1、第3章 顺序结构选择题1. 若变量已正确说明为float型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是A)102233B)10.0,22.0,33.0C)10.022.0 33.0D)10 22332. 若执行下述程序时,若从键盘输入6和8时,结果为main()int a,b,s;scanf(%d%d,&a,&b);s=aif(ab)s=b;s*=s;printf(%d,s);A)36B)64C)48D)以上都不对3. 下列程序段的输出结果是:int a=1234;float b=123.456;double
2、 c=12345.54321;printf(%2d,%2.1f,%2.1f,a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.54. 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值5. 下列程序的输出结果是main() double d=3.2; int x,y;x=1.2; y=(x+3.8
3、)/5.0;printf(%dn, d*y);A)3B)3.2C)0D)3.076. 以下程序段的输出结果是int a=1234;printf(%2dn,a);A)12B)34C)1234D)提示出错、无结果7. 已有定义int a=-2;和输出语句 printf(%8lx,a);以下正确的叙述是A)整型变量的输出形式只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度8. 以下程序的输出结果是main() int a=21,b=11;printf(%d
4、n,-a+b,-b+a);A)30B)31C)32D)339. 若变量已正确说明为int类型,要通过语句scanf(%d %d %d ,&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是A)358B)3,5,8C)35 8D)3 5810. x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是A)INPUT x、y、z;B)scanf(%d%d%d,&x,&y,&z);C)scanf(%d%d%d,x,y,z);D)read(%d%d%d,&x,&y,&z);11. 设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf(%d
5、,%dn,x-,-y);A)10,3B)9,3C)9,2D)10,212. 下面程序的输出结果为main() int a,b;b=(a=3*5,a*4,a*5);printf(%d,b);A)60B)75C)65D)无确定值13. C 语言中,系统的标准输入文件是指A)键盘B)显示器C)软盘D)硬盘14. 已知i,j,k为int型变量,若从键盘输入:1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是A)scanf(%2d,%2d,%2d, i, j, k);B)scanf(%d %d %d,&i,&j,&k);C)scanf(%d,%d,%d,&i,&j,&k);D)
6、scanf(i=%d,j=%d,k=%d,&i,&j,&k);15. 下列程序运行的结果是main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d ,x,i);A)x=3.600000,i=3B)x=3.6,i=3C)x=3,i=3D)x=3.600000,i=3.00000016. 已知int k=10,m=3,n;则下列语句输出结果是printf(%dn,n=(k%m,k/m);A)2B)3C)4D)517. 已知int a;float b;所用的scanf调用语句格式为:scanf(a/%d,b=%f,&a,&b);为了将数据3和25.08分
7、别赋给x和y,正确的输入应当是A)3,25.08B)a=3,b=25.08 C)a/3,b=25.08D)a/3b=25.08填空题1. 以下程序的输出结果是【1】。int a=1234;printf (%2dn,a);2. 以下程序的输出结果是【2】。main()int a=0;a+=(a=8); printf(%dn,a);第4章 选择结构选择题: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=%dn,a,b);该程序的输出结果是A)a=2,b=1B)a=
8、1,b=1C)a=1,b=0D)a=2,b=22. 有以下程序main()int i=1,j=1,k=2;if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是 A)1,1,2B)2,2,1C)2,2,2D)2,2,33. 有如下程序main()float x=2.0,y;if(x0.0)y=0.0;else if(x12?x+10:x-12;printf(%dn,y); A)0B)22C)12D)106. 在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”, 又用()表示逻辑表达
9、式值为“假”。A)1 0B)0 1C)非0 非0D)1 17. 若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a=25&b-=2&c?printf(*a=%d,b=%d,c=%dn,a,b,c):printf(#a=%d,b=%d,c=%dn,a,b,c);程序输出的结果是A)*a=25,b=13,c=19B)*a=26,b=14,c=19C)# a=25,b=13,c=19D)# a=25,b=14,c=198. 有如下程序 main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;printf(%fn,y);
10、该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.0000009. 以下4个选项中,不能看做一条语句的是A);B)a=5,b=2.5,c=3.6;C)if(a=10 or a=0|a=10 &a=10a=011. 有如下程序main() int a=2,b=-1,c=2;if(ab)if(b0)c=0;else c+;printf(%dn,c);该程序的输出结果是A)0B)1C)2D)312. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是A)x&yB)x=yC)x|+y&y-zD)!(xb)&(n=cd)后n的值是
11、A)1B)2C)3D)416. 设x,y,t均为int型变量,执行语句:x=y=3;t=+x|+y;完成后,y的值为A)不确定B)4C)3D)117. 若执行下面的程序时,从键盘上输入5和2,则输出结果是main() int a,b,k;scanf(%d,%d ,&a,&b);k=a;if(ab)k=a%b;else k=b%a;printf(%dn ,k);A)5B)3C)2D)018. 请阅读以下程序:main() int a=5,b=0,c=0;if(a=b+c)printf(*n);else printf(n);以上程序A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D
12、)输出19. 当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是A)m=k=nB)(m=k)&(n=k)C)(m=k)|(n=k)D)(k=m)&(n=k)20. 下列程序的运行结果是#include stdio.hmain() int x=-9,y=5,z=8;if(xy)if(yy)if(xz)printf(%d,x);else printf(%d,y);printf(%dn,z);第5章 循环结构选择题1. 已知int t=0;while (t=1).则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对2. 有如下程序
13、:main()int n=9;while(n6)n-; printf(%d,n);该程序的输出结果是A)987B)876C)8765D)98763. 在下列选项中,没有构成死循环的是A)int i=100;while(1)i=i%100+1;if(i100)break;B)for(;);C)int k=10000;dok+;while(k10000);D)int s=36;while(s)-s;4. 设有以下程序段int x=0,s=0;while(!x!=0)s+=+x;printf(%d,s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限
14、次5. 以下程序段的描述,正确的是x=-1;dox=x*x;while(!x);A)是死循环 B)循环执行两次C)循环执行一次D)有语法错误6. 在下述程序中,判断ij共执行的次数是main()int i=0, j=10, k=2, s=0;for (;)i+=k;if(ij)printf(%d,s);break;s+=i;A)4B)7C)5D)67. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。#include main() int i=0,j,k;doi+;k=316-13*i;while(_);j=k/11;printf(316=13*%d+
15、11*%d,i,j);A)k/11B)k%11C)k/11=0D)k%11=08. 下面程序的运行结果是#include main() int y=10;doy-;while(-y);printf(%dn,y-); A)-1B)1C)8D)09. 下面程序的运行结果是#include main() int a=1,b=10;dob-=a;a+;while(b-0);b0成立循环继续,b0不成立循环结束 然后b自减1printf(a=%d,b=%dn,a,b);A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=910. 有如下程序 main() int x=23;do p
16、rintf(%d,x-);while(!x);该程序的执行结果是A)321B)23C)不输出任何内容D)陷入死循环11. 执行语句 for(i=1;i+4;); 后变量 i 的值是A)3B)4C)5D)不定12. 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。#include main() int i;for(i=100;i200;i+)if(i-2)%4=0)if(!(i-3)%7)if(_)printf(%d,i);A)i%9=5B)i%9!=5C)(i
17、-5)%9!=0D)(i-5)%9=013. 设有程序段int k=10;while(k=0)k=k-1;则下面描述中正确的是A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次14. 对表达式for(表达式1; ;表达式3)可理解为A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)15. 以下程序的输出结果是main() int a,i;a=0;for(i=1;i5;i+)switch(i)case 0:case 3:a+=2;case 1:ca
18、se 2:a+=3;default:a+=5;printf(%dn,a);A)31B)13C)10D)2016. 若有如下语句int x=3;do printf(%dn,x-=2);while(!(-x);则上面程序段A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环17. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。#include main()int a,b,t;scanf(%d%d,&a,&b);while(_)if(ab)t=a;a=b;b=t;printf(%d,%dn,a,b); scanf(%d%d,&a,&b);
19、 A)!a=bB)a!=bC)a=bD)a=b18. 下面有关for循环的正确描述是A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来19. 以下程序的输出结果是main() int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j3;j+) if(j%2)continue;x+;x+;printf(x=%dn,x);A)x=4B)x=8C)x=6D)x=1220. 设有以下程序段int x=0,s=0;while(
20、!x!=0)s+=+x;printf(%d,s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次21. 对下,两个语句描述正确的是.while(1).for(;)A)都是无限循环B)是无限循环错误C)循环一次,错误D)以上答案都错22. 以下描述中正确的是A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略whil
21、e23. 下列说法正确的是int i,x;for(i=0,x=0;i=9 &x!=876;i+)scanf(%d,x);A)最多的执行10次B)最多执行9次C)是无限循环D)循环体一次也不执行24. C语言中 while 和do-while循环的主要区别是A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件更严格C)do-while允许从外部转到循环体内D)do-while 的循环体不能是复合语句25. 现有定义int k=1;则执行语句while(+k4);后,k的值为A)4B)5C)6D)826. 以下程序的运行结果为#include
22、stdio.hmain()int m,n;for(m=0,n=10;m2;m-) k=0;for(n=m;n1;n-)k=k+m*n; printf(%fn,k);A)5.000000B)15.000000C)25.000000D)35.00000028. 下列程序的输出结果是#include stdio.hmain()int i,a=0,b=0;for(i=1;i10;i+)if(i%2=0)a+;continue;b+;printf(a=%d,b=%d,a,b);A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5第6章 字符型数据选择题1. 有说明语句:char c=
23、72;则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定2. 在C语言中,退格符是A)nB)tC)fD)b3. 字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为A)10100011和01110111B)01000101和01100011C)00110101和00110111D)01100101和011001114. 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main()char c;int v0=1,v1=0,v2=0;doswitch(c=getchar()case a
24、:case A:case e:case E:case i:case I:case o:case O:case u:case U:v1+=1;default:v0+=1;v2+=1; while(c!=n); printf(v0=%d,v1=%d,v2=%dn,v0,v1,v2);A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=125. 有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为A)tureB)falseC)0D)16. 若变量c为char类型,能正确判断出c为小写字母的表达式是A)a=c=a)|(c=z)C)(a=c)D)(c=a)&(c=z)7. 在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码8. 以下程序的输出结果是main() char c=z;printf(%c,c-25);A)aB)ZC)z-25D)y9. 下列选项可以正确表示字符型常量的是A)rB)aC)897D)296填空题1. 如下语句printf(%cn,B+40);在执行后的输出结果是 【1】 。2. 下列程序的输出结果是【2】。maim ()char b =Hello you;b5=0;printf (%sn,b);