第四章 选择结构课后编程题答案
- 格式:pps
- 大小:51.00 KB
- 文档页数:10
第四章选择结构一、选择题1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==12、设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m3、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a==1)&&(!b==0) B)(a < b)&& !c||1C)a && b D)a||(b+b)&&(c-a)4、有以下程序main(){ int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,05、有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 36、有以下程序main(){int a=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d++ +1);elseprintf("%d",++d +1);printf("%d\n",d); }程序运行后的输出结果是A) 2 B) 3 C) 43 D) 447、下列条件语句中,功能与其他语句不同的是A) if(a) printf("%d\n",x); else printf("%d\n",y);B) if(a==0) printf("%d\n",y); else printf("%d\n",x);C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);D) if(a==0) printf("%d\n",x); else printf("%d\n",y);8、以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0;C) if(a>0); D)if(b==0) m=1;n=2;9、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是A)if((a>b) &&(b>c) ) k=1; B)if((a>b) ||(b>c) ) k=1else k=0;C)if(a<=b) k=0; D) if(a>b) k=1;else if(b<=C) k=1; else if(b>c) k=1;else k=0;10、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a < b);printf("%d,%d\n",k,m); }程序运行后的输出结果是A)0,0 B)0,1 C)1,0 D)1,111、有定义语句:int a=1,b=2,c=3,x; 则以下选项中各程序段执行后,x的值不为3的是A) if (c < a) x=1; B) if(a<3) x=3;else if (b < a) x=2; else if (a < 2) x=2;else x=3; else x=1;C) if (a < 3) x=3; D)if (a< b) x=b;if (a < 2) x=2; if (b< c) x=c;if (a< 1) x=1; if (c< a) x=a;12、有以下程序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 13、有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c) printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);else printf("%d\n",d+2) }执行后输出结果是A)2 B)3 C) 4 D)编译时有错,无结果14、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A)6 B)0 C)2 D)115、以下程序的输出结果是main(){int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b)); }A)5 B) 4 C)6 D)不确定16、以下程序的输出结果是main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d); }A)1 B)0 C)非0的数 D)-117、设 a、b、 c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为A) 0 B) 1 C)2 D) 318、阅读以下程序:main(){int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输入5,则输出结果是A)3 B) 4 C) 5 D) 619、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A)不定值 B)4 C)3 D)120、若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10 C) 9 D) 8main(){int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}21、有如下程序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.250000C)0.500000 D)1.00000022、有如下程序main(){int a=2,b=-1,c=2;if(a< b)if(b< 0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是A) 0 B)1 C) 2 D) 323、设 int x=1, y=1; 表达式(!x||y--)的值是A)0 B) 1 C) 2 D) -124、语句:printf("%d",(a=2)&&(b= -2));的输出结果是A)无输出 B)结果不确定 C)-1 D)125、有以下程序段int k=0,a=1,b=2,c=3; k=a< b ? b:a; k=k> c ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)026、若整型变量a、b、c、d中的值依次为:1、4、3、2。
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
第四章选择结构选择:1.以下关于运算符优先级的描述中,正确的是()。
A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)2.逻辑运算符的运算对象的数据类型()。
A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型D)任何类型的数据3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)4.判断字符型变量ch为数字的表达式是( ) 。
A) 0<=ch<=9 B)(ch>=0)&&(ch<=9)C)'0'<=ch<='9' D)(ch>='0')&&(ch<='9')5.若有以下函数关系x<0 → y=2xx>0 → y=xx=0 → y=x+1下面程序段能正确表示以上关系的是()。
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
第4章选择结构程序设计习题解答1.设x、t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为 0 。
2.假定所有变量均已正确定义,则程序段:int a=0,y=10;if(a=0) //条件式为0y--;else if(a>0)y++;elsey+=y;运行后y的值是 20 。
3.能表述20<x<30或x<-100的C语言表达式是 x>20 && x<30 || x<-100 。
4.若有定义语句“int a=25,b=14,c=19;”,则以下语句执行结果是 ***a=25,b=14,c=19*** 。
if(a<=25 && b<=2 && c)printf("***a+b=%d,a-b=%d***\n",a+b,a-b);elseprintf("***a=%d,b=%d,c=%d***\n",a,b,c);5.假定i和j为int型变量,则执行以下语句后i的值是 37 。
#include<stdio.h>void main(){int i=1,j;switch(i){case 1:for(j=0;j<9;j++)i+=j;break;case 2:for(j=1;j<10;j++)i+=j;break;case 3:i++;}}6.以下两条if语句:可合并成一条if语句,即。
if(a<=b)x=1;y=2;if(a>b)printf("***y=%d\n",y);elseprintf("***x=%d\n",x);可合并成一条if语句,即:if(a<=b){x=1;printf("***x=%d\n",x);}else{y=2;printf("***y=%d\n",y);}7.输入两个字符,若这两个字符的序号(ASCII码)之差为偶数,则输出它们的后继字符,否则输出它们的前驱字符。
石家庄市求实电脑职业培训学校全国计算机等级考试
二级C语言程序设计
统编教程课后编程题参考答案
第四章选择结构
全国统编教程第49页
石家庄市求实电脑职业培训学校
4.21 若a 的值小于100,请将以下选择结构改写成由switch 语句构成的
选择结构。
if(a<30) m=1;
else if(a<40) m=2;else if(a<50) m=3;else if(a<60) m=4;else m=5;
30
40
50
60
100
m=1m=2m=3m=4m=5
switch(a/10)
{ case 3:m=2;break;case 4:m=3;break;case 5;m=4;break;case 6:case 7:
case 8:case 9:m=5;break;default:m=1;}
此类试题需要绘制一个数轴,进行分析并写出程序。
石家庄市求实电脑职业培训学校
4.22 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并
输入当前的日期(年:y1、月:m1、日:d1 ),输出该省的实际年龄。
# include <stdio.h>main()
{ int y0,m0,d0;int y1,m1,d1;int age;
printf(“请输入出生年月日:”);
scanf(“%d,%d,%d”,&y0,&m0,&d0);printf(“\n 请输入当前年月日:”);
scanf(“%d,%d,%d”,&y1,&m1,&d1);if(y1<y0) printf(“输入错误!\n”);else if(m0<m1) age=y1-y0;else if(m0>m1) age=y1-y0-1;else if(d0<=d1) age=y1-y0;else if(d0>d1) age=y1-y0-1;
printf(“\n 该生年龄为:%d \n”,age);}
石家庄市求实电脑职业培训学校
4.23 编写程序,输入一个整数,打印出它是奇数还是偶数。
# include <stdio.h>main(){ int num;
printf(“请输入一个整数:”);scanf(“%d”,&num);if(num%2)
printf(“%d是奇数\n”,num);else
printf(“%d是偶数\n”,num);}
石家庄市求实电脑职业培训学校
4.24 编写程序,输入a 、b 、c 三个数,打印出最大值。
# include <stdio.h>main()
{ int a,b,c;int max;
printf(“请输入三个整数:”);
scanf(“%d,%d,%d”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d \n”,a,b,c);max=a;
if(b>max) max=b;if(c>max) max=c;
printf(“max=%d \n”,max);}
石家庄市求实电脑职业培训学校
4.25 对于以下函数:
y=
x (-5<x<0)x-1 (x=0)
x+1 (0<x<10)
编写程序,要求输入x 的值,输出y 的值。
分别用:(1)不嵌套的if 语句(2)嵌套的if 语句(3)if-else if 语句(4)switch 语句
石家庄市求实电脑职业培训学校
-5
10
(1)不嵌套的if 语句
# include <stdio.h>main(){ int x,y;
printf(“请输入一个整数:”);scanf(“%d”,&x);if(x>-5 && x<0) y=x;if(x==0) y=x-1;
if(x>0 && x<10) y=x+1;printf(“y=%d \n”,y);}
石家庄市求实电脑职业培训学校
-5
10
# include <stdio.h>main(){ int x,y;
printf(“请输入一个整数:”);scanf(“%d”,&x);if(x==0) y=x-1;if(x<0)
if(x>-5) y=x;else
if(x<10) y=x+1;printf(“y=%d \n”,y);}
石家庄市求实电脑职业培训学校
-5
10
# include <stdio.h>main(){ int x,y;
printf(“请输入一个整数:”);scanf(“%d”,&x);if(x>-5 && x>0) y=x;else if(x==0) y=x-1;else if(x<10) y=x+1;printf(“y=%d \n”,y);}
石家庄市求实电脑职业培训学校
-5
10
# include <stdio.h>main(){ int x,y;
printf(“请输入一个整数:”);scanf(“%d”,&x);switch(x)
{ case -4:case -3:case -2:case -1:y=x;break;case 0:y=x-1;break;
case 1:case 2:case 3:case 4:case 5:
case 6:case 7:case 8:case 9:y=x+1;break;}
printf(“y=%d \n”,y);}。