x=(y=z);printf("%d\n",x), 13.下列程序的输出结果是 #include<stdio.h> void main ( {char a; a=A': printf("%d%c",a a); } 14.下面程序的输出结果是 void main ( { int x=2,y,z; x*=3+2;printf("%d\n",x); x*=y=z=4;printf("%d\n",x); xy=1; z=x++-1;printf("%d,%d\n"x.z); z+=-x+++(++y);printf("%d,%d",x,z); } 15.下面程序的输出结果是 void main ( { int x,y; x=16,y=(x++)+x;printf("%d\n".y), x=15;printf("%d,%d\n",++x,x), x=20,y=x--+x;printf("%d\n",y); x=13:printf("%d,%"x++,x): } 16.以下程序的输出结果为 void main ( {f1oata=3.14,b=3.14159: printf("%f,%5.3f n",a,b).) 17.若想通过输入语句"scanf("a=%d,b-%d”,&a,&b,",给a赋值l,给b赋值2,则输入 数据的形式应该是 18.以下程序的输出结果是 int main(void) int a=2,b=3; a=a+b; 戈
11 x=(y=z);printf("%d\n",x); } 13. 下列程序的输出结果是 。 #include<stdio.h> void main ( ) { char a; a='A'; printf("%d%c",a,a); } 14. 下面程序的输出结果是 。 void main ( ) { int x=2,y,z; x*=3+2;printf("%d\n",x); x*=y=z=4;printf("%d\n",x); x=y=1; z=x++-1;printf("%d,%d\n",x,z); z+=-x++ +(++y);printf("%d,%d",x,z); } 15. 下面程序的输出结果是 。 void main ( ) { int x,y; x=16,y=(x++)+x;printf("%d\n",y); x=15;printf("%d,%d\n",++x,x); x=20,y=x-- +x;printf("%d\n",y); x=13;printf("%d,%",x++,x); } 16. 以下程序的输出结果为____________。 void main ( ) { float a=3.14, b=3.14159; printf(“%f, %5.3f\n”,a,b); } 17. 若想通过输入语句 "scanf("a=%d,b=%d",&a,&b);",给a赋值1,给b赋值2,则输入 数据的形式应该是 。 18. 以下程序的输出结果是 。 int main(void) { int a=2, b=3; a=a+b;
b=a-b; a=a-b; printf("%d,%dn",a,b); return 0;) 19.若变量定义为"intx,z;double y,",则要依次输入x、y、z,语句可写为 20.若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值。 a=7 b=9 请完成输出语句"printf(" ",ab);"。 21.下列程序运行时输入"12<回车>",则程序输出结果是 int main(void) { char chl.ch2:int nl.n2: chl=getchar();ch2=getchar(): nl=chl-'0';n2=nl*10+(ch2-'0')5 printf("%d\n",n2); return 0: 22.已知字符A的ASCI代码值为65,下列程序运行时若从键盘输入"B33<回车>", 则输出结果是 int main(void) char a,b; a=getchar();scanf("%d",&b); a=a-'A+'0,b=b*2 printf("%c%c\n",a,b): return0; 参考答案 一,选择题 1.A 2.B 3.D 4.A 5.A 6.B 7.B 8.A 9.D 10.A 11.A 12.C 13.C 14.A 15.D 16.D 17.D 18.C 19.B 20.C 二.填空题 1.向终端输出一个字符 2.在终端设备上(或系统隐含的输出设备上)按照指定的格式进行输出 3.格式说明 普通字符 2
12 b=a-b; a=a-b; printf("%d,%d\n", a, b); return 0; } 19. 若变量定义为"int x, z; double y;",则要依次输入x、y、z,语句可写为 。 20. 若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值。 a=7 b=9 请完成输出语句"printf (" ",a,b);"。 21. 下列程序运行时输入"12<回车>",则程序输出结果是 。 int main(void) { char chl,ch2; int nl,n2; chl=getchar(); ch2=getchar(); nl=chl-'0';n2=nl*10+(ch2-'0'); printf("%d\n",n2); return 0; } 22. 已知字符A的ASCII代码值为65,下列程序运行时若从键盘输入"B33<回车>", 则输出结果是 。 int main(void) { char a,b; a=getchar( ); scanf("%d", &b); a=a-'A'+'0'; b=b*2; printf("%c %c\n",a,b); return 0; } 参 考 答 案 一. 选择题 1.A 2.B 3.D 4.A 5.A 6.B 7.B 8.A 9.D 10.A 11.A 12.C 13.C 14.A 15.D 16.D 17.D 18.C 19.B 20.C 二. 填空题 1. 向终端输出一个字符 2. 在终端设备上(或系统隐含的输出设备上)按照指定的格式进行输出 3. 格式说明 普通字符
4.d c s 5.小于左 右 6.连续两个% 7.从终端输入一个字符 8.地址 a在内存中的地址 9.变量地址 变量名 10.一个分号 11.花括弧 12.10<回车>40<回车>4<回车>4<回车> 13.65 A 14.10<回车>40<回车>2 0<回车>30 15.32<回车>16 15<回车>40<回车>13 13 16.3.140000 3.141 17.a=1,b=2 18.3,2 19.scanf("%d%lf%d",&x,&y,&z); 20.a=%d小nb=%d 21.12 22.1B 习题四分支结构 一.选择题 1.设有定义"inta=1,b=2,c=3,d=4,m=2,n=2;",则执行表达式”(m=a>b)&&(n=c>d)"后,n的值 为()。 A.1 JB.2 C.3 D.0 2.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )。 A.c=b=a; B.(a=c)ll(b=c); C.(a=c)&&(b=c D.a=c=b: 3.能正确表示a和b同时为正或同时为负的逻辑表达式是()。 A.(a>=0lIb>=0)&&(a<0llb<0) B.(a>=0&&b>=0)&&(a<0&&b<0) C.(a+b>0)&&(a+b<=0) D.a*b>0 4.己知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中 的值为大写字母的表达式是( )。 A.kk>=A&&kk<=Z B.!(kk>=A'lkk<=Z) C.(kk+32>='a&&(kk+32)<='z D.!(kk<'A'llkk>'Z) 5.当变量c的值不为2、4、6时,值也为"真"的表达式是()。 A.(c=2)lI(c=4)1(c-=6) B.(c>=2&&c<=6)川(cl=3)川(cl=5) C.(c>=2&&c<=6)&&1(c%2) D.(c>=2&&c<=6)&&(c%21=1) 13
13 4. d c s 5. 小于 左 右 6. 连续两个% 7. 从终端输入一个字符 8. 地址 a 在内存中的地址 9. 变量地址 变量名 10. 一个分号 11. 花括弧 12. 10<回车>40<回车>4<回车>4<回车> 13. 65 A 14. 10<回车>40<回车>2 0<回车>3 0 15. 32<回车>16 15<回车>40<回车>13 13 16. 3.140000 3.141 17.a=1,b=2 18.3, 2 19.scanf("%d %lf%d",&x,&y,&z); 20.a=%d\nb=%d 21.12 22.1 B 习题四 分支结构 一. 选择题 1. 设有定义"int a=1,b=2,c=3,d=4,m=2,n=2;",则执行表达式”(m=a>b )&&(n=c>d)"后,n的值 为( )。 A. 1 J B. 2 C. 3 D. 0 2. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )。 A. c=b=a; B. (a=c) || (b=c) ; C. (a=c) &&(b=c); D. a=c=b; 3. 能正确表示a和b同时为正或同时为负的逻辑表达式是( )。 A. (a>=0 || b>=0)&&(a<0 || b<0) B. (a>=0&&b>=0)&&(a<0&&b<0) C. (a+b>0)&&(a+b<=0) D. a*b>0 4. 已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中 的值为大写字母的表达式是( )。 A. kk>='A'&&kk<='Z' B. !(kk>='A'||kk<='Z') C. (kk+32>= 'a' && (kk+32)<= 'z' D. !(kk<'A'||kk>'Z') 5. 当变量c的值不为2、4、6时,值也为"真"的表达式是( )。 A. (c==2)||(c==4) ||(c==6) B. (c>=2&&c<=6)||(c!=3)||(c!=5) C. (c>=2&&c<=6)&& !(c%2) D. (c>=2&&c<=6)&&(c%2!=1)
6.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的 形式是11110000,若要求将a的高4位取反,低4位不变,所要执行的运算是( )。 A.ab B.a*b C.a&b D.a<<4 7.在以下一组运算符中,优先级最高的运算符是()。 A.<= B.= C.% D.&& 8.有如下定义"inta=l4,b=15,x;char c=A':",则执行"x=(a&&b)&&(c<B')”后x的值为 ()。 A.true B.false C.0 D.1 9.设有定义"inta=2,b=3,c=4;",则下列选项中值为0的表达式是( )。 A.(Ia=l)&&(Ib=0) B.(a<b)&&!cl C.a&&b D.all(b+b)&&(c-a) 10.能正确表示逻辑关系"a≥10或a≤0"的C语言表达式是()。 A.a>=10ora<=0 B.a>=0la<=10 C.a>=10&&a<=0 D.a>=10lla<=0 11.在嵌套使用if语句时,C语言规定else总是( )。 A.和之前与其具有相同缩进位置的i配对 B.和之前与其最近的if配对 C.和之前与其最近的且不带else的if配对 D.和之前的第一个f配对 12.若变量x、y都为it型数,以下表达式中不能正确表示数学关系x-y水10的是 ()。 A.abs(x-y)<10 B.X-y>-10&&x-y<10 C.(x-y)<-10y-x)>10 D.(x-y)*(x-y)100 13.在执行以下程序时,为使输出结果为=4,则给a和b输入的值应满足的条件是 ( int main(void) int s,t,a,b; scanf("%d,%d",&a&b); sl;t=1; if(a>0)s=s+l; if(a>b)t=s+t; else if(a==b)t=5; else t=2*s; printf("t=%d\n",t); return 0; A.a>b B.a<b<0 C.0<a<b D.0>a>b 14.若a、b、c、c2、X、y均是整型变量,以下正确的switch语句是()。 14
14 6. 变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的 形式是11110000,若要求将a的高4位取反,低4位不变,所要执行的运算是( )。 A. a^b B. a*b C. a&b D. a<<4 7. 在以下一组运算符中,优先级最高的运算符是( )。 A. <= B. = C. % D. && 8. 有如下定义"int a=14,b=15,x; char c='A';",则执行"x=( a&&b )&&( c<'B')”后x的值为 ( )。 A. true B. false C. 0 D. 1 9. 设有定义"int a=2,b=3,c=4;",则下列选项中值为0的表达式是( )。 A. (!a==l)&&(!b=0) B. (a<b)&&!c||1 C. a&&b D. a||(b+b)&&(c-a) 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. 在嵌套使用if语句时,C语言规定else总是( )。 A. 和之前与其具有相同缩进位置的if配对 B. 和之前与其最近的if配对 C. 和之前与其最近的且不带else的if配对 D. 和之前的第一个if配对 12. 若变量x、y都为int型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( )。 A. abs(x-y)<10 B. x-y>-10&& x-y<10 C. (x-y)<-10||!(y-x)>10 D. (x-y)*(x-y)<100 13. 在执行以下程序时,为使输出结果为t = 4,则给a和b输入的值应满足的条件是 ( )。 int main(void) { int s,t,a,b; scanf("%d, %d",&a,&b); s=l;t=1; if(a>0) s=s+l; if(a>b) t=s+t; else if( a==b ) t=5; else t=2*s; printf("t=%d\n",t); return 0; } A. a>b B. a<b<0 C. 0<a<b D. 0>a>b 14. 若a、b、cl、c2、x、y均是整型变量,以下正确的switch语句是( )
A.swich(a+b); B.swich(a*a+b*b)方 case 1:y=a+b;break; case3; case 0:y=a-b;break; case 1:y=a+b;break; case 3:y=b-a;break; C.switch a D.swich(a-b方 case cl :y=a-b;break; default:y=a*b;break; case c2:x=a*d;break; case 3:case 4:x=a+d;break; default:x=a+b; case 10:case 11:y=a-d;break;) 15.有定义语句"ita=1,b=2,c=3,x",则以下各程序段执行后,x的值不为3的是()。 A.if(c<a)x=l; 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=l; if (c<a)x=a; 16.下列程序段运行时从键盘上输入"2.0<回车>",则输出的结果是( int main(yoid) float x,y; scanf("%f"&x); if(x<0.0)y=0.0: else if((x<5.0)&&(xl=2.0)y=1.0/x+2.0): else if(x<10.0)y=1.0/x; else y=10.0; printf("%tn",y); return0;} A.0.000000 B.0.250000 C.0.500000 D.1.000000 17.下列程序段的输出结果是( )。 int main(void) {intx=100,a=10,b=20,ok=5;ok2=0: if(a<b) if(b!=15) if(!okl)x=1; else if(ok2)x=10; X=-l; printf("%din"x); return0; A.-1 B.0 C.1 D.不确定的值 15
15 A. swich( a+b ); B. swich( a*a+b*b ); { case 1:y=a+b; break; { case 3; case 0:y=a-b; break; } case 1:y=a+b; break; case 3:y=b-a; break; } C. switch a D. swich( a-b ); { case c1 :y=a-b; break; default: y=a*b; break; case c2: x=a*d; break; case 3: case 4:x=a+d; break; default: x=a+b; } case 10: case 11:y=a-d; break; } 15. 有定义语句"int a=1,b=2,c=3,x;",则以下各程序段执行后,x的值不为3的是( )。 A. if (c<a) x=l; 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=l; if (c<a) x=a; 16.下列程序段运行时从键盘上输入"2.0<回车>",则输出的结果是( )。 int main(yoid) { float x,y; scanf("%f",&x); if (x<0.0) y=0.0; else if((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0); else if (x<10.0) y=1.0/x; else y=10.0; printf("%t\n",y); return 0; } A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000 17. 下列程序段的输出结果是( )。 int main(void) { int x=100, a=10,b=20, okl=5; ok2=0; if(a<b) if(b!=15) if(! ok1) x=1; else if(ok2) x=10; x=-l; printf("%d\n",x); return 0; } A. -1 B. 0 C. 1 D. 不确定的值