第四章c语言 流程控制语句(一)

第四章 流程控制语句(一)

一、大纲

1.       掌握关系和逻辑运算符的使用

2.       掌握if-else语句和switch语句的使用

3.       了解条件运算符的使用

二、实验目标:

1.      理解关系运算符的用法,重点掌握关系运算符在条件判断和分支结构中的应用。

2.      正确理解”==”和”=”的区别,以及使用它们的运算结果对程序的影响。

3.      理解逻辑运算符的用法,掌握运算法则。重点掌握其在条件判断和分支结构中的应用。

4.      掌握短路运算的运算原理和使用方法。

5.      掌握表达式语句,复合语句的使用。

6.      熟练掌握使用if语句的各种语句格式进行编程,建立面向过程的编程思路。

7.      掌握条件运算的使用。

8.      熟练掌握使用switch语句进行分支结构程序的设计。

三、实验方式:

要求学生自己独立完成

四、上机指导任务

4.1任务1:数字判断(时间:20分钟)

4.1.1 任务描述

写一个程序,从键盘上接收两个整数,输出这两个整数中值大的一个。

#include

int main(){

int a,b;

printf(“请输入两个整数:\n”);

fflush(stdout);

 

scanf(“%d,%d”,&a,&b);

if(a>b){

printf(“%d”,a);

}else{

Printf(“%d”,b);

}

return 0;

}

4.1.2 任务目的

(1)     建立面向过程的编程思路。

(2)     掌握关系运算符的使用。

(3)     掌握条件表达式的使用

(4)     掌握if语句的使用。

4.1.3 任务要求

(1)    使用if语句条件判断进行实现

(2)    使用条件表达式进行实现。

(3)    在用户输入数据前应给出提示信息,在输出结果时也应给出相应的关于结果的提示信息。

(4)    为程序添加适当的注释信息。

4.1.4 难点提示

用条件表达式进行实现时,可以将比较结果保存到另一个变量中,输出时直接输出该变量即可。

4.2任务2:阅读程序(时间:10分钟)

4.2.1 任务描述

(1)     分别阅读下面两段程序,分析程序的结果。

// 程序1

#include

using namespace std;

int main()

{

intpassword  = 0;

  cout << "请输入密码:";

  cin >> password;

 

  if( password == 123456 )

  {

     cout << "输入正确,可以进行下面的操作." <

  }

  else

  {

     cout << "输入错误,程序即将退出."<< endl;

  }

 

  return 0;

}

 

(2)      

// 程序2

#include

using namespace std;

int main()

{

intpassword  = 0;

  cout << "请输入密码:";

  cin >> password;

 

  if( password = 123456 )

  {

     cout << "输入正确,可以进行下面的操作." <

  }

  else

  {

     cout << "输入错误,程序即将退出."<< endl;

  }

 

  return 0;}

 

4.2.2 任务目的

(1)     正确理解”= =””=”的区别,以及使用它们的运算结果对程序的影响。

(2)     掌握if-else语句在程序中的使用。

(3)     编写面向过程的程序的编程思想。

4.2.3 任务要求

(1)     分析程序结果,掌握此类程序的编程流程。

(2)     进行相应总结:此类程序的编程思想,以及”= =””=”各自的含义、表达式的返回值以及运算规则。

4.3任务3:整除运算(时间:20分钟)

4.3.1 任务描述

写一个程序,接收两个整数ab,并判断a是否能被b整除,输出判断结果。

#include

int main(){

int a,b;

printf(“请输入两个整数:\n”);

fflush(stdout);

scanf(“%d,%d”,&a,&b);

if(a%b==0){

printf(“a能被b整除”);

}else{

Printf(“a不能被b整除”);

}

return 0;

}

 

4.3.2 任务目的

(1)     复习算数运算符的使用。

(2)     掌握逻辑运算在if-else语句中的使用。

(3)     掌握错误处理在程序中的使用。

4.3.3 任务要求

(4)     程序要能对输入的错误整数进行错误判断(if(cin.fail()){…})。

(5)     程序各个部分之间要用空行隔开,为程序添加适当的注释信息。

(6)     对输入输出有相应的提示信息。

4.3.4 难点提示

注意: a是能被b整除的意思是说:b除以a没有余数(即余数为0)。

4.4任务4:数字判断2(时间:20分钟)

4.4.1 任务描述

(1)     写一个程序,接收两个数字,判断这两个数字的乘积是否大于等于5000,如果大于则告诉用户大于5000,如果相等则告诉用户等于5000,否则告诉用户小于5000

#include

int main(){

int a,b;

printf(“请输入两个整数”);

fflush(stdout);

scanf(“%d,%d”,&a,&b);

if(a*b>5000){

printf(“两个数字的乘积大于5000”);

}else if{

printf(“两个数字的乘积等于5000”);

}else{

printf(“两个数字的乘积小于5000”);

}

return 0;

}

4.4.2 任务目的

(1)     掌握使用if语句实现多重分支进行流程判断。

(2)     掌握关系运算符的使用。

4.4.3 任务要求

(1)     要求分别使用简单的if语句和在else中嵌套if-else语句的格式进行实现。

(2)     给出适当的提示信息和注释信息

4.4.4 难点提示

 

4.5任务5:对自动取款机业务的简单实现(时间:30分钟)

4.5.1 任务描述

(1)     银行的自动取款机大概有如下几种操作:存款、取款、查询余额、转账等几种功能。要求用switch语句进行模拟其操作。

(2)     由于在这里没有具体的按钮,可以使用数字来模拟用户的选择。例如:可以提示用户"存款请按1""取款请按2""查询余额请按3""转账请按4""退出请按5"。来让用户进行选择。

(3)     而具体的操作,可以直接在屏幕上输出操作过程即可。例如:当用户选择1后,可以直接在屏幕上打印“正在进行存款操作.”即可,其它操作类似。\

#include

int main(){

int a;

printf(“请选择服务种类 :

存款请按1

取款请按2

查询余额请按3

退出请按4

请您选择 :

”);

fflush(stdout);

scanf(“%d”,&a);

swich(a){

case 1:printf(“您正在存款”);

break;

case 2:printf(“您正在取款”);

break;

case 3:printf(“您正在查询余额”);

break;

case 4:printf(“您正在退出”);

break;

default

case 4:printf(“你输入的业务号码错误”);

break;

return 0;

}

4.5.2 任务目的

(1)     使用面向过程的编程思路解决一些实际问题。

(2)     掌握使用switch语句进行多分支的条件判断。

(3)     复习错误处理机制的使用(对cin的出错判断)

4.5.3 任务要求

(1)     程序开始首先应在屏幕上所有的业务提示信息,提示可以为用户提供的服务:

请选择服务种类 :

存款请按1

取款请按2

查询余额请按3

退出请按4

请您选择 :

(2)     然后让用户选择,并进行相关业务处理。

(3)     要求为程序添加错误处理机制。

4.5.4 难点提示

注意:

(1)     switch语句添加default选项。

(2)     每个分支后面不要忘记添加break;

4.6 作业130分钟)

4.6.1 作业任务

从键盘上接收一个字符,判断它到底是哪种字符:数字,小写字母,大写字母,其他字符。

#include

int main(){

char choice;

printf(“请输入一个字符:\n”);

fflush(stdout);

scanf(“%c”,&choice);

if(choice>’a’&&choice<’z’)

{

printf(“你输入的是小写字母”);

}else if(choice>’A’&&choice<’z’){

printf(“你输入的是大写字母”);

}else if(choice>=0&&choice<=9){

printf(“你输入的是数字”);

}else{

printf(“你输入的是其他字符”);

}

return 0;

}

4.6.2 任务要求

(1)     使用简单if语句进行实现。

(2)     再使用在else中嵌套if-else语句的语句格式进行实现。

(3)     判断单个字符,是根据字符在ASCII码表中的顺序进行编写的,例如:对是否是小写字母就可以用下面这种判断方式:if( chioce>='a' && chioce<='z'  ){…}。其它几种判断类似。

4.7 作业220分钟)

4.7.1 作业任务

写一个程序,能够判断从键盘上输入的年份是否是一个闰年。

#include

int main(){

int year
printf("
请输入一个年份:\n");

fflush(stdout);
scanf("%d",&year);
if((year%4==0&&year%100!=0)||year%400==0){
printf("%d
闰年\n",year);

}else{
printf("%
不是闰年\n",year)

}

Return 0;

4.7.2 任务要求

(1)     使用逻辑运算符进行运算。

(2)     需要有相关的错误处理机制。

4.8 作业315分钟)

4.8.1 作业任务

写一个程序,接收一个数字,判断它是否能同时被23整除

#include

int main(){

int num;

printf(“请输入一个数字”);

fflush(stdout);

scanf(“%d”,&num);

if(num%3==0&&num%2==0){

printf(“%d同时被23整除”,num);

}else{

printf(“%d不能同时被23整除”,num);

}

return 0;

}

4.8.2 任务要求

(1)     能同时被23整除的意思是说:让这个数分别去除以23,看是否余数全为0

(2)     要求使用逻辑运算符进行运算。

(3)     添加适当的注释信息。

五、课后作业

5.1作业一(15分钟)

5.1.1作业任务

写出下面各逻辑表达式的值,a=3b=4c=5

(1)a+b>c&&b==c

(2)a||b+c&&b-c

(3)!(a>b)&&!c||1

(4)!(x=a)&&(y=b)&&0

(5)!(a+b)+c-1&&b+c/2

5.1.2任务要求

1)先计算结果在敲代码验证结果

2)熟悉运算符的优先级。

3)掌握逻辑表达式的运算。

5.1.3难点提示

5.2作业二(15分钟)

5.2.1作业任务

3个整数abc,由键盘输入,输出其中最大的数。

#include
void main()
{
 
/ /*int a,b,c,d;

       printf("请输入三个整数:");

       fflush(stdout);

       scanf("%d%d%d",&a,&b,&c);*/

       //方法一

              /*if(a>b && a>c){

                     printf("最大的数是%d",a);

              }else if(b>c &&b>a){

                     printf("最大的数是%d",b);

              }else if(c>a &&c>b){

                     printf("最大的数是%d",c);

              }*/

       //方法二

       /*d=a>b?a:b;

       d=d>c?d:c;

       printf("最大数为:%d",d);*/

}

return0;
}

5.2.2任务要求

1)给出适当的提示信息和注释信息。

2)用两种方法输出最大数。

5.2.3任务难点提示

1)方法一利用if语句。

2)方法二利用条件运算符(?:)

5.3作业三(20分钟)

5.3.1作业任务

给出一百分制成绩,要求从键盘输入成绩后,输出成绩等级‘A’、‘B’、‘C’、‘D’、'E'90分以上为‘A,8089分为‘B’,7079分为‘C’,6069分为‘D’,60分一下为'E'

给出一百分制成绩,要求从键盘输入成绩后,输出成绩等级‘A’、‘B’、‘C’、‘D’、'E'90分以上为‘A,8089分为‘B’,7079分为‘C’,6069分为‘D’,60分一下为'E'

#include


int main()
{

int a,s;

printf(“请输入分数:\n”);
 
scanf("%d",&a);
 s=a / 10;
 switch (s)
    { case 10:

       case 9:printf("A");

break;


      
case 8: printf("B");

break;
      
case 7:printf("C")

;break;
      
case 6:printf("D");

break;
      
default:printf("E");

break;
    
}
  return 0;
 }

5.3.2任务要求

1)给出适当的提示信息和注释信息。

2)要求用switch caseif else 两种方法)

5.3.3任务难点提示

switch case时注意break的使用。

5.4作业四(25分钟)

5.4.1作业任务

给你个不多于5位的正整数,要去:

1)求出它是几位数;

2)分别输出每一位数字;

3)按逆序输出各位数字,例如原数为321,应输出123

5.4.2任务要求

1)给出适当的提示信息和注释信息。

2)从键盘输入不多于5位的数。若大于五位数提示输入错误

#include


int main()
{

int a;//输入一个整数

printf(“请输入一个整数:\n”);

fflush(stdout);

scanf(“%d”,&a);

if(a>1000&&a>9999)

}

5.4.3任务难点提示

1)利用if语句判断是否大于五位数。

2)判断几位数方法if(n>9999){五位数}

else if(n>999){ 四位数}

3)分别利用/%求每一位数字如324 324/100=4,324-(4*100)/10=3,324%10=4

5.5作业五(20分钟)

5.5.1作业任务

从键盘输入三个整数,判断是否能构成三角形,若能构成三角形判断是直角三角形,等腰三角形还是等边三角形还是任意三角形。

#include

int main(){

int a,b,c;

printf(“请输入三个数字”);

fflush(stdout);

scanf(“%d,%d,%d”,&a,&b,&c);

if(a+b>c&&b+c>a&&a+c>b){

printf(“这三个数可以构成三角形”);

if(a*a=b*b+c*c,){

printf(“直角三角形”);

}else if(a*a>b*b+c*c){

printf(“直角三角形”);

}else{

printf(“锐角三角形”);

 

}

}else a*a

printf(“这三个数不可以构成三角形”);

}

return 0;

}

5.5.2任务要求

1)给出适当的提示信息和注释信息。

2)要求分别使用简单的if语句和在else中嵌套if-else语句的格式进行实现。

5.5.3任务难点提示

1)构成三角形条件(两边之和大于第三边)

2)直角三角形a*a=b*b+c*c,钝角三角形a*a>b*b+c*c,锐角三角形a*a

 

你可能感兴趣的:(c语言)