c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计

习题(P111)

4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?

答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。

4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=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

解:该题在求解过程中注意:

一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;

二、逻辑表达式的求值规则。(P94)

所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1

4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。

分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法类似。法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。

参考程序如下:

法一:

main()

{ int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/

scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/

if(a>b) max=a;

else max=b;

if(max

printf("\nmax=%d\n",max);

}

法二:

main()

{ int a,b,c,max;

printf("\ninput the value of a,b,c:");

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

max=a;

if(max

if(max

printf("\nmax=%d\n",max);

}

4.6有一个函数:写一段程序,输入x,输出y的值。

分析:这是一个典型的分断函数的求解应用。运行时从键盘输入x的值,再判断其范围根据表达式计算y值并输出即可。该题的关键是如何判断x值的范围,需要用到嵌套的分支选择语句。具体方法比较多,可以先确定任意一个范围,在确定其余范围时可以用到前一条件不满足的隐含条件。注意嵌套语句中else和if 的配对关系。另外仍然要注意C语言表达式和数学表达式的区别,乘号(*)在C语言表达式中一定不能省略。

参考程序如下:

#include

{ float x,y;

printf("input x:");

scanf("%f",&x);

if(x<1)

y=x;

else if(x<10) /* 使用了隐含条件x >=1 */

y=2*x-1;

else /* 前两个条件都不满足,则隐含条件为 x>=10 */

y=3*x-11;

printf("y=%f\n",y);

}

思考:还有其他的改写方法吗?请动手写一写。

4.8给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

分析:该题是一个多分支选择的应用。C 语言中实现多分支选择的方法可以用if~else 嵌套语句或用switch 语句,该题这两种方法都可以实现。在用if~else 实现的时候注意else 和if 的配对,方法同上题;用switch 语句实现的时候注意成绩处理为可以列举的值,方法是将成绩取整后整除10,这样百分制的成绩只有11种可能了。

参考程序如下:

法一(if~else 语句实现):

main()

{ float score; /*存放输入的百分制成绩*/

char grade; /*存放等级*/

printf("\nPlease input the score: "); /*提示输入*/

scanf("%f",&score); /* 完成输入*/

while(score>100 || score < 0) /*对输入的成绩进行合法性检查*/

{ printf("Score input error!\nPlease input the score:"); /*若不合法则提示重新输入*/

scanf("%f",&score); /*重新输入*/

}

printf("\n");

/*以下对成绩进行判断,计算出对应的等级*/

if(score>=90) grade='A';

else if(score>=80) grade='B';

else if(score>=70) grade='C';

else if(score>=60) grade='D';

else grade='E';

printf("Score=%g Grade is %c \n",score,grade); /*输出结果*/

}

法二(switch 语句实现):

if(x<10) if(x<1) y=x; else y=2*x-1; else y=3*x-11; if(x>=10) y=3*x-11; else if (x<1) y=x; else y=2*x-1; if(x>=1 && x<=10)

y=2*x-1;

else if(x>10) y=3*x-11;

else y=x;

{ float score;

char grade;

printf("\nPlease input the score: ");

scanf("%f",&score);

while(score>100 || score < 0)

{ printf("Score input error!\nPlease input the score:");

scanf("%f",&score);

}

printf("\n");

switch( (int)score/10 ) /*先将成绩取整,再整除10,得商的整数部分*/

/* 以下case后为switch后表达式计算出来可能的值*/

{ case 10:

case 9: grade='A'; break; /* 两个case值共用一组执行语句*/

case 8: grade='B'; break;

case 7: grade='C'; break;

case 6: grade='D'; break;

default: grade='E';

}

printf("Score=%g Grade is %c\n",score,grade);

}

4.9 给一个不多于5位的正整数,要求:求出它是几位数;分别输出每一位数字;按逆序输出各位数字。

分析:该题的关键是将一个整数分解为各位数字,可以用整除和取余相结合的方法实现,并分别用不同的变量保存起来。由于整数的位数在1~5位之间不确定,所以适合用switch开关语句实现。

参考程序如下:

main()

{ long int num; /* num存放输入的原始数据,由于最大的5位数是99999,

它超出了int型的范围(-32768 ~ +32767)所以定义为long型*/

int w,a,b,c,d,e; /* 变量w用于存放数的位数,其余存放5位数的各位数字*/

printf("Please input a number(0~99999):"); /*提示输入*/

scanf("%ld",&num); /* 输入长整型数据*/

while( num<0 || num>99999 ) /* 检查输入数据的合法性*/

{ printf("\nInput Error! Please re-enter:");

scanf("%ld",&num);

}

/* 一组if~else的嵌套确定输入的num是几位数*/

if(num<10) w=1;

else if(num<100) w=2;

else if(num<1000) w=3;

else if(num<10000) w=4;

else w=5;

/* 根据位数分解num的各位数字*/

switch( w )

{ case 5: e=num/10000; /* 万位存于变量e中*/

case 4: d=num/1000%10; /* 千位存于变量d中*/

case 3: c=num/100%10; /* 百位存于变量c中*/

case 1: a=num%10; /* 个位存于变量a中*/

}

/* 顺序、逆序输出分解后的各位数字*/

switch(w)

{ case 5: printf("Shunxu:%d%d%d%d%d\n", e,d,c,b,a);

printf("Nixu:%d%d%d%d%d\n", a,b,c,d,e);

break;

case 4: printf("Shunxu:%d%d%d%d\n",a,b,c,d);

printf("Nixu:%d%d%d%d\n",d,c,b,a);

break;

case 3: printf("Shunxu:%d%d%d\n",a,b,c);

printf("Nixu:%d%d%d\n",c,b,a);

break;

case 2: printf("Shunxu:%d%d\n",a,b);

printf("Nixu:%d%d\n",b,a);

break;

case 1: printf("Shunxu:%d%d\n",a,b);

printf("Nixu:%d%d\n",b,a);

break;

}

}

4.11 输入4个整数,要求按照由小到大的顺序输出。

分析:小规模数据的简单排序可参考P88例4.3,先将第一个变量和其后各变量逐一比较,逆序交换,最终将最值存于第一个变量中;然后将第二个变量和其后各变量再逐一比较,逆序交换,将第二个最值存于第二个变量中;以此类推,直到最的两个变量比较,逆序交换。最后按顺序输出各变量的值即为有序。

参考程序如下:

main()

{ int a,b,c,d,t;

printf("\n请输入4个整数:");

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

if(a>b) { t=a; a=b; b=t; }

if(a>c) { t=a;a=c;c=t; }

if(a>d){t=a;a=d;d=t; }

if(b>c){t=b;b=c;c=t; }

if(b>d){t=b;b=d;d=t;}

if(c>d){t=c;c=d;d=t;}

printf("排序的结果是:%d,%d,%d,%d\n",a,b,c,d);

}

补充题:

输入三个整数a,b,c,判断其是否能构成三角形?是何种三角形(等腰/等边/普通)?

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

C语言 选择结构程序设计练习题

第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)

c语言第五章-选择结构程序设计(习题册答案)资料讲解

c语言第五章-选择结构程序设计(习题册答 案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、 !。其中优先级最高的为! ,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以 0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为 k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。

c语言选择结构试题带答案

1. 以下非法的赋值语句是 A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0; 2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 1 3. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。 A: 3 B: 4 C: 5 D: 6 4. 有如下程序 main0 { int a=2,b=-1,c=2; if(a main()

a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2==0 B: x%2==1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf("%d",a); b=2a; if(b>0) printf("%b",b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数 B: 大于零的整数 C: 非零的数 D: 非零的整数

C语言选择结构程序教案设计

一、教学思想(包括教学背景、教学目标) 1、关于“C语言” 计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念,只有懂得程序设才能懂得计算机,真正了解计算机是怎样工作的;通过学习程序设计可以使我们进一步了解计算机的工作原理,更好地理解个应用计算机,学会用计算机处理问题的方法。C语言作为一种高级程序设计语言,相比其他高级程序设计语言有着公认的一些特点,比如语言本身简介,生成的代码质量高,使用灵活等。它既可以编写计算机系统软件又可以编写各类应用软件。C语言作为一种简洁高校并且支持结构化编程的程序设计语言,在讲究效率的时代,对于帮助学习者掌握程序设计的基本思想和方法,进而更好地理解计算机的工作,会有极大的帮助。 2、关于选择结构程序设计 选择结构程序设计是结构化程序设计的3种基本结构之一,是程序设计中常用的结构。前面介绍的顺序结构里,程序中的所有语句按照书写顺序依次执行。而在日常生活中,处理事情的顺序并不都是按部就班的顺序进行,有时会根据某些条件进行选择。比如在进行周末活动安排时,我们可以说:“如果天气好,我们就去郊游,否则我们就去体育馆打球。”在这样安排中,可以看到,“郊游”和“打球”哪个动作实际执行依赖于“天气好”这个条件是否满足。 在程序设计中,上述安排就要用选择结构来实现。选择结构的作用是根据所给条件的真假,决定程序的运行途径。在上述实例中,“天气好?”是控制条件,它的作用是决定程序的流程,如果天气确实好,则条件为真,进行“郊游”这个活动,如果天气不好,则条件为假,进行“打球”这个活动。 “郊游”和“打球“两个活动只进行一个,该选择结构结束后,再执行下面的语句。 3、教学目标 知识与技能目标:掌握关系运算、逻辑运算和C语言条件语句的使用。 过程与方法目标:通过课程举例,程序的比较和运行和程序流程图的使用,让学生加深记忆,理解条件语句的执行顺序。

C语言期中测试题(含答案)

一、填空 1.C语言源程序文件的后缀是 .c 。 2.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。 3.在C语言中,用关键字 int 定义基本整型变量,一个基本整型变量系统分配 2 字节,用关键字 float定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。二、选择 1.以下选项中正确的实型常量是( A ) A.12. B.-20 C. 1,000 D. 4 5 6 2.以下选项中不正确的实型常量是(无正确答案) A. B. C. D. 456e-2 3.以下选项中不合法的用户标示符是( C ) A. _123 B.A12_1 C. A $ D.Dim 4.C语言中运算对象必须是整型的运算符是( A ) A .% B./ C.! D.* 5. 若变量已正确定义并赋值,符合C语言语法的表达式是( B ) A.a=a+7 ; B.a=7+b+c,a++ C. int%4) D.a=a+7=c+b 6.下面合法的赋值语句是( C ) A.a=b=58 B.k=int(a+b) C. a=58,b=58 D.--i 7.若变量已正确定义为int ,要给a,b,c输入数据,正确的输入语句是( D ) A.read(a,b,c) B.scanf(“%d%d%d”,a,b,c) C.scanf(“%D%D%D”,&a,&b,&c) D.scanf(“%d%d%d”,&a,&b,&c) 8.若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是( C ) A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C.a=t;t=b;b=a D.t=b;b=a;a=t; 9.若有正确定义语句:

第5章 选择结构程序设计

第5章选择结构程序设计 第一讲选择结构简介、单分支选择结构、多分支选择 结构 教学目标 1. 了解选择结构。 2. 理解掌握单分支选择结构和多分支选择结构的使用。 教学过程 预备知识 5.1 选择结构程序的设计 所谓选择结构就是由特定的条件决定执行哪条语句的程序结构。 在C#中,提供两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。 5.2 单分支选择结构(if语句) if语句是程序设计中基本的选择语句,它根据条件表达式的值选择要执行的后面的内嵌语句序列。一般用于简单选择,即选择项中有一个或两个分支,语句执行的过程中根据不同的情况进行选择其中一个分支执行。 5.2.1if 语句 格式: if(布尔条件表达式) 语句序列; 功能:根据布尔条件表达式的值进行判断: 当该值为真时执行if后的语句序列;

当该值为假时什么都不执行。 5.2.2if …else语句 格式为: if (布尔条件表达式) 内嵌语句序列1; else 内嵌语句序列2; 根据布尔条件表达式的值进行判断,当该值为真时执行if语句后的语句序列,当为假时,执行else语句后的语句序列。该结构一般用于两种分支的选择。 下面结合实例介绍if…else语句的使用方法。

【例5-1】某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品多于1000元的,打8折优惠。试采用if语句实现该优惠。 分析:该问题属于数学分段函数问题,当所购商品总额<1000元时,打折后的商品总额为(所购商品总额*0.9);当所购商品总额>1000时,打折后的商品总额为(所购商品总额*0.8)。 (1) 建立项目 在Visual https://www.360docs.net/doc/6318866524.html,中, 打开“文件”菜单, 依次选择“新建→项目”命令, 打开“新建项目”对话框, 选择“Visual C#项目”, 选择“Windows应用程序”输入项目的名称和存放位置。 (2) 设计窗体 单击工作区左侧的“工具箱”或单击工具栏上工具箱图标,工具箱将显示在工作区左侧。添加相应的控件。 (3) 编辑代码 选中按钮控件,单击鼠标右键,在弹出的菜单中选择“查看代码”命令,或通过“视图”菜单中的“代码”命令,切换到代码视图。也可以双击控件直接在事件中添加代码。代码为: private void button1_Click(object sender, System.EventArgs e)

C语言选择结构程序设计编程题.doc

实验2 选择结构程序设计 一.实验目的: 1.掌握选择控制语句的使用方法; 2.了解C程序语句的执行过程。 二.实验内容: 1.编写程序:输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。 2.从键盘输入的正整数,判断是否能被5和7同时整除,若是,则输出Yes;否则输出No。 3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。 4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E’(用if…else…与switch 语句两种方法实现)。 5. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提5%;40万元到60万元之间时,高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。 6. 输入某年某月某日,判断这一天是这一年的第几天。 7. 输入一个字符,请判断是字母、数字还是特殊字符。 8. 身高预测: 男性成人身高=(父亲身高+母亲身高)*0.54cm 女性成人身高=(父亲身高*0.923+母亲身高)/2cm 如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。 9. 要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式。 操作数1 运算符op 操作数2 计算表达式的值。指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 在此基础上,增加如下要求: (1)如果要求程序能进行浮点数运算,程序应该如何修改?如何比较实型变量和常数0是否相等? (2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? (3)如果要求连续多次算术运算,每次运算结束后,程序都给出提示: Do you want to continue(Y/N y/n)? 如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么程序如何进行修改?

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=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 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max

C语言选择结构考试试题

C 语言选择结构考试试题 一、选择题(每题2分,共30分) 1. 有如下程序: main () { int x=1,a=0,b=0; switch (x ) { case 0: b++; case 1: a++; case 2: a++;b++; } printf ("a=%d,b=%d \n",a,b );} 该程序的输出结果是 A )a=2,b=1 B )a=1,b=1 C )a=1,b=0 D )a=2,b=2 2. 有以下程序 main () { int i=1,j=1,k=2; if ((j++||k++)&&i++)printf ("%d,%d,%d \n",i,j,k );} 执行后输出结果是 A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 3. 有如下程序 main () { float x=2.0,y; if (x<0.0)y=0.0; else if (x<10.0)y=1.0/x; else y=1.0; printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000 4. 设int x=1,y=1;表达式(!x||y--)的值是 A )0 B )1 C )2 D )-1 5. 若运行时给变量x 输入12,则以下程序的运行结果是 main (){ int x,y; scanf ("%d",&x ); y=x>12?x+10:x-12; printf ("%d \n",y );} A )0 B )22 C )12 D )10 6. 在C 程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表

C语言选择结构题(含答案)

第9、10课时 实验一:写出下列程序的运行结果。 1、以下程序的运行结果是:2,-1 #include "stdio.h" main() { int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d",a,b); } 2、以下程序的运行结果是:0,6,0 main() { int a=5,b=6,w=1,x=2,y=3,z=4,c; c=(a=w>x)&&(b=y>z); printf("%d,%d,%d",a,b,c); } 3、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是D。 A)’x’&&‘y’ B)x<=y C)x||y+z&&y-z D)!((x

4、设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值为B。 A)1 B)2 C)3 D)4 5、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是B。 if(x>y) z=x; x=y; y=z; A)x=10,y=20,z=30 B)x=20,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20 6、以下if语句语法正确的是B。 A)if(x>0) printf(?%f?,x) else printf(?%f?,-x); B)if(x>0) { x=x+y; printf(?%f?,x); } else printf(?%f?,-x); C)if(x>0) { x=x+y; printf(?%f?,x); }; else printf(?%f?,-x); D)if(x>0) { x=x+y; printf(?%f?,x) } else printf(?%f?,-x);

C语言第五章选择结构复习题

选择结构程序设计复习题 一.选择题 1.已有定义语句:int x=3,y=4,z=5;,则值为0的表达式是:()a) x>y++ b) x<=++y c) x !=y+z>y-z d) y%z>=y-z 2.已有定义语句:int x=3,y=0,z=0;,则值为0的表达式是:() a) x&&y b) x||z c) x ||z+2&&y-z d) !((x

main() { int i=0; if(i==0) printf(“**”); else printf(“$”); printf(“*\n”); } a) * b) $* c) ** d) *** 8. 若变量a,b,c都为整型,且a=1、b=15、c=0,则表达式a==b>c的值是() a) 0 b) 非零c) “真”d) 1 9. a为0时,值为“真”的表达式是() a) a b) !(++a) c) a=0 d) a==0 10. 若有定义和语句:int a=4,b=5,c=0d; d=!a&&!b||!c;,则d 的值是() a) 0 b) 1 c) -1 d) 非0的数 11. 以下选项不能正确判断a为偶数的表达式是() a) a%2==0 b) !a%2!=0 c) a/2*2-a==0 d) !(a%2) 12. 有以下程序: main() { int a=2,b=1,c=2; if(b

C语言复习题选择结构

C语言程序设计复习题_选择结构 一、选择 1、判断x ? [a, b] 的表达式为C。 A)x > a && x < b B)x < a && x > b C)x < a || x > b D)x < a, x > b 2、下面的程序段将输出A。 int a = 9, b = 7, c = 3, d = 5, x; x = a > b ? c : d; printf("%d\n", x); A) 3 B) 5 C) 7 D) 9 3、判断x∈ (a, b) 的表达式为B。 A) a < x < b B) a < x && x < b C) a < x || x < b D) a < x, x < b 4、下列语句中,(C)中的if语法是错误的。 A) if(x>y); B) if(x==y) x+y; C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if(x0?1:x<0?-1:0);的功能相同的if语句是(A ) A) if (x>0) y=1; else if(x<0) y=-1; else y=0; B) if (x) if(x>0) y=1; else if(x<0) y=-1; else y=0; C) y=-1; if(x>0) y=1; else y=-1; D) y=0; if(x>=0) y=1; else if(x==0) y=0; else y=-1; 6、在下列条件语句中,只有一个在功能上与其它三个语句不等价(其中s1、s2表示某个C 语句),这个不等价的语句是(D) A) if (a ) s1; else s2; B) if (!a ) s2; else s1; C) if (a!=0 ) s1; else s2; D) if (a==0 ) s1; else s2; 7、已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是(D)。 A)6 B)0 C) 2 D)1 8、为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。 A)缩排位置相同的if B)在其之前未配对的if C)在其之前未配对的最近的if D)同一行上的if 9、下列运算符中优先级最高的是(C)。 A)< B)&& C)+ D)!= 10、选择出合法的if语句(设int x,a,b,c;)(A)。 A)if(a=b) c++; B)if(a=b) c++; D)if(a=>b) c++; 11、判断char型变量s是否为小写字母的正确表达式是(C)。 A)‘a’<= s<=‘z’B) (s>=‘a’) & (s<=‘z’) C) (s>=‘a’) && (s<=‘z’) D) (‘a’<=s) and (‘z’>=s)

c语言选择结构试题带答案教案资料

c语言选择结构试题 带答案

一、选择题 1. 以下非法的赋值语句是 A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0; 2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 1 3. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。 A: 3 B: 4 C: 5 D: 6 4. 有如下程序 main0 { int a=2,b=-1,c=2; if(a main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) { int x; scanf("%d",&x);

if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2==0 B: x%2==1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf("%d",a); b=2a; if(b>0) printf("%b",b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数B: 大于零的整数C: 非零的数D: 非零的整数 10. C 语言的switch 语句中,case 后 A: 只能为常量 B: 只能为常量或常量表达式 C: 可为常量及表达式或有确定值的变量及表达式 D: 可为任何量或表达式 11. 已知int i=10;表达式"20-0<=i<=9"的值是 A: 0 B: 1 C: 19 D: 20 12. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为 A: 1 B: 2 C: 3 D: 0 13. 逻辑运算符两侧运算对象的数据类型 A: 只能是0 或1 B: 只能是0 或非0 正数 C: 只能是整型或字符型数据 D: 可以是任何类型的数据 14. 能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为 假”的表达式是() A: (x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B: (x>=1)||(x<=10)||(x>=200)||(x<=210) C: (x>=1)&&(x<=10)||(x>=200)&&(x<=210) D: (x>=1)||(x<=10)&&(x>=200)||(x<=210) 15. 已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值

C语言选择结构考试考试试题

C 语言选择结构考试试题 一、选择题(每题2分,共30分) 1. 有如下程序: main () { int x=1,a=0,b=0; switch (x ) { case 0: b++; case 1: a++; case 2: a++;b++; } printf ("a=%d,b=%d \n",a,b );} 该程序的输出结果是 A )a=2,b=1 B )a=1,b=1 C )a=1,b=0 D )a=2,b=2 2. 有以下程序 main () { int i=1,j=1,k=2; if ((j++||k++)&&i++) printf ("%d,%d,%d \n",i,j,k );} 执行后输出结果是 A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 3. 有如下程序 main () { float x=2.0,y; if (x<0.0)y=0.0; else if (x<10.0)y=1.0/x; else y=1.0; printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000 4. 设int x=1,y=1;表达式(!x||y--)的值是 A )0 B )1 C )2 D )-1 5. 若运行时给变量x 输入12,则以下程序的运行结果是 main () { int x,y; scanf ("%d",&x ); y=x>12?x+10:x-12; printf ("%d \n",y );} A )0 B )22 C )12 D )10 6. 在C 程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”, 又用()表示逻辑表达式值为“假”。 A )1 0 B )0 1 C )非0 非0 D )1 1 7. 若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a<=25&&b--<=2&&c?printf ("***a=%d,b=%d,c=%d \n",a,b,c ):printf ("###a=%d,b=%d,c=%d \n",a,b,c );程序输出的结果是 A )***a=25,b=13,c=19 B )***a=26,b=14,c=19 C )### a=25,b=13,c=19 D )### a=25,b=14,c=19 8. 有如下程序 main () { float x=2.0,y; if (x<0.0)y=0.0; else if (x>10.0)y=1.0/x; else y=1.0; printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000 9. 以下4个选项中,不能看做一条语句的是 A ); B )a=5,b=2.5,c=3.6; C )if (a<5); D )if (b!=5)x=2;y=6; 10. 能正确表示逻辑关系:“a ≥10或a ≤0”的C 语言表达式是 A )a>=10 or a<=0 B )a>=0|a<=10 C )a>=10 &&a<=0 D )a>=10‖a<=0 11. 有如下程序 main () { int a=2,b=-1,c=2; if (a

C语言选择结构选择题

如果c为字符型变量,判断c是否为空格不能使用________。 A) if(c=='32') B) if(c==32) C) if(c=='\40') D) if(c==' ') 运行下面程序时,若从键盘输入"456", 则程序的输出结果是( )。 #include void main( ) { int magic=123; int guess; scanf("%d",&guess); if (guess==magic) printf("**Right**"); else {printf("**Wrong**"); if (guess>magic) printf("Too high**"); else printf("Too low**"); } } 执行下面程序时,若从键盘输入"2",则程序的 运行结果是( )。 #include void main( ) { int k; char cp; cp=getchar( ); if (cp>='0' && cp<='9') k=cp-'0'; else if (cp>='a' && cp<='f') k=cp-'a'+10; else k=cp-'A'+10; printf("%d\n",k); } #include void main( ) { int x=8,y=-7,z=9; if (x",则输出结果是( )。 #include

C语言选择结构程序教学设计

、教学思想(包括教学背景、教学目标) 1、关于“ C 语言” 计算机的本质是“程序的机器” ,程序和指令的思想是计算机系统中最 基本的概念,只有懂得程序设才能懂得计算机,真正了解计算机是怎样工作 的;通过学习程序设计可以使我们进一步了解计算机的工作原理,更好地理 解个应用计算机,学会用计算机处理问题的方法。 C 语言作为一种高级程序 设计语言,相比其他高级程序设计语言有着公认的一些特点,比如语言本身 简介,生成的代码质量高,使用灵活等。它既可以编写计算机系统软件又可 以编写各类应用软件。 C 语言作为一种简洁高校并且支持结构化编程的程序 设计语言,在讲究效率的时代,对于帮助学习者掌握程序设计的基本思想和 方法,进而更好地理解计算机的工作,会有极大的帮助。 2、 关于选择结构程序设计 选择结构程序设计是结构化程序设计的 3 种基本结构之一, 是程序设计 中常用的结构。前面介绍的顺序结构里,程序中的所有语句按照书写顺序依 次执行。而在日常生活中,处理事情的顺序 并不都是按部就班的顺序进行, 有时会根据某些条件进行选择。 “如果天气好,我们就去郊游, 可以看到,“郊游”和“打球” 件是否满足。 在程序设计中,上述安排就要用选择结构来实现。选择结构的作用是根 据所给条件的真假,决定程序的运行途径。在上述实例中, “天气好?”是 控制条件,它的作用是决定程序的流程,如果天气确实好,则条件为真,进 行“郊游”这个活动,如果天气不好,则条件为假,进行“打球”这个活动。 “郊游”和“打球“两个活动只进行一个,该选择结构结束后,再执行下面 的语句。 3、 教学目标 知识与技能目标:掌握关系运算、逻辑运算和 C 语言条件语句的使用。 过程与方法目标:通过课程举例,程序的比较和运行和程序流程图的使 用,让学生加深记忆,理解条件语句的执行顺序。 比如在进行周末活动安排时,我们可以说: 否则我们就去体育馆打球。 ”在这样安排中, 哪个动作实际执行依赖于“天气好”这个条

C语言循环结构选择题(新)

1、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for (j=0;j<4;j++){...} A) 20 B) 25 C) 24 D) 30 A for(i=0,j=10;i<=j;i++,j--) k=i+j; 2、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 A) 12 B) 10 C) 11 D) 9 B 3、当执行以下程序段时 x=-1; do { x=x*x;} while( !x); A) 循环体将执行一次 B) 循环体将执行两次 C) 循环体将执行无限次 D) 系统将提示有语法错误 A 4、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())=='e') printf("*"); A) 5 B) 4 C) 6 D) 1 B 5、有以下程序段 int k=0; while (k=1) k++; while循环执行的次数是 A) 无限次B) 有语法错,不能执行 C) 一次也不执行D) 执行一次 A 6、语句while(!e);中的条件!e 等价于( )。 A) e==0 B) e!=1 C) e!=0 D) ~e A 7、以下for循环是( )。 for(x=0,y=0;(y!=123) && (x<4);x++) A) 无限循环B) 循环次数不定 C) 执行4次D) 执行3次 C 8、C语言中while 和do-while 循环的主要区别是( )。 A) do-while的循环体至少无条件执行一次 B) while 的循环控制条件比do-while 的循环控制条件严格

相关文档
最新文档