全国计算机二级C语言各章节复习题_第1页
全国计算机二级C语言各章节复习题_第2页
全国计算机二级C语言各章节复习题_第3页
全国计算机二级C语言各章节复习题_第4页
全国计算机二级C语言各章节复习题_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章C语言概述 略第2章 程序的灵魂-算法 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 2.1以下叙述中正确的是 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点 正确答案: C 2.2 以下叙述中正确的是 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义声明 正确答案: A 2.3

2、以下说法正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 正确答案: C 2.4 C语言规定,在一个源程序中,main函数的位置 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 正确答案: C 2.5 以下叙述不正确的是 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面任意位置 正确答案

3、: D 2.6 下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用 正确答案: D 2.7 以下叙述正确的是 A)在C程序中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 正确答案: D 2.8 以下说法错误的是 A)一个算法应包含有限个步骤 B)在计算机上实现的算法是用来处理数据对象的 C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实

4、现 D)算法的目的是为了求解 正确答案: C 2.9 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是 A)有零个输入或多个输入 B)高效性有效性 C)有穷性 D)确定性 正确答案: B 2.10 下列关于C语言的说法不正确的是 A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能 B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号 C)注释可以出现在程序中任意合适的地方 D)命令行后面不能加分号,命令行不是C语言的语句 正确答案: B 2.11 以下说法错误的是 A)高级语言都是用接近人们习惯的自然语言和数学语言

5、作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据 C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE(c)的二进制文件 D)每一种高级语言都有它对应的编译程序 正确答案: C 2.12 C语言中用于结构化程序设计的3种基本结构是 A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue 正确答案: A 二、填空题(请将每一个空的正确答案写在答题卡相应序号后。) 2.13 用高级语言编写的程序称为【1】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程

6、序一次翻译产生目标程序,然后执行。 正确答案: 源程序 2.14 C语言程序的注释可以出现在程序中的任何地方,一个注释以【2】作为开始和结束。 正确答案: /* */第3章 数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母,数字

7、和下划线中任一字符 3.3 下列可用于C语言用户标识符的一组是A)void,define,0WORD B)a3_b3,_123,Car C)For,-abc,IFCase D)2a,DO,sizeof 3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018 B)0abc 017 0xa C)010 -0x11 0x16 D)0a12 7ff -123 3.5 下列数据中,不合法的C语言实型数据的是A)0.123 B)123e3 C)2.1e3.5 D)789.0 3.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是long后

8、面要加L,%ldA)a=20000+20000; B)a=4000*10; C)a=30000+10000; D)a=4000L*10L; 3.7 若有说明语句:char c='72';则变量cA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 3.8 有字符串如下,"n407as1"xabc",则字符串的长度为A)6 B)7 C)8 D)9 正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%= (%两侧均要求为整数) B)/ C)= D)<= 正确答案: A3.10 若变量已正确定义并赋值,以下

9、符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 正确答案: B3.11 若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1 B)+i; C)a=a+=5; D)a=int(i); 正确答案: B3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000 B)2.750000 C)3.500000 D)0.000000 正确答案: A3.13 若有运算符<<,sizeof,&=,则它们按优先级由高至低的正确排列

10、次序是A)sizeof,&=,<<, B)sizeof,<<,&= C),<<,sizeof,&= D)<<,&=,sizeof 正确答案: B3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 正确答案: D3.15 已知int i,a;执行语句i=(a=3,a+,- -a,a+4,a+5

11、,+a);后,变量i的值为A)2 B)3 C)4 D)5 正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为A)int B)float C)double D)不确定 正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码 B)反码 C)原码 D)ASCII码 正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符5和7在机器中表示为A)10100011和 01110111 B)01000101和01100011C)00110101和00110111 D)01100101和0110011

12、1 正确答案: C3.19 不能进行+和- -运算的数据类型为A)指针 B)整型 C)长整型 D)常量 正确答案: D3.20 设有int x=11;则表达式(x+*1/3)的值是A)3 B)4 C)11 D)12正确答案: A3.21 以下程序的输出结果是main() int a=21,b=11;printf("%dn",- -a+b,- -b+a);A)30 B)31 C)32 D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+b+c+的值为A)17 B)16 C)15 D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=

13、a*a;语句后,a的值为先进行a-=a*a的计算A)36 B)0 C)-24 D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式正确答案: B3.26 在C语言中,int,char和short三

14、种类型数据在内存中所占用的字节数A)由用户自己定义 B)均为2个字节C)是任意的 D)由所用机器的机器字长决定正确答案: D3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是A)x/y*z B)x*(1/(y*z)C)x/y*1/z D)x/y/z正确答案: A3.28 下列关于复合语句和空语句的说法错误的是A)复合语句是由“”开头,由“”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C3.29 下列关于字符串的说法

15、中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符0作为字符串结束标志B)0作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入0D)在C语言中,字符串常量隐含处理成以0结尾正确答案: B二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)3.30 以下程序的输出结果是【1】。int a=1234;printf ("-n",a);正确答案: 12343.31 在计算机中,字符的比较是对它们的【2】进行比较。正确答案: ASCII码3.32 在内存中,存储字符x要占用1个字节,存储字符串X要占用【3】个字节。正

16、确答案: 23.33 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【4】。正确答案: 83.34 以下程序段的输出结果是【5】。main ()int a=2,b3,c=4;a*=16+(b+)-(+c);printf("%d",a);正确答案: 28 16+3-5=14*2=283.35 以下程序段的输出结果是【6】 。int x=17,y=26;printf ("d",y/=(x%=6);正确答案: 5 x%=6=>x=x%6=5 y=y/5=53.36 下列y的值是

17、 【7】 。int y; y=sizeof(2.25*4);正确答案: 83.37 以下程序的输出结果是 【8】 。main ()int i=010八进制的,j=10;pirntf ("%d,%dn",i,j);正确答案: 8,103.38 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为 【9】 。正确答案: f a后移5位得f3.39 如下语句printf("%cn",B+40);在执行后的输出结果是 【10】 。正确答案: j B+32=b b+8=j3.40 定义int a=5,b=20;若执行语句pr

18、intf("%dn",+a*- -b/5?);后,输出的结果为 【11】 。正确答案: 9第到此4章 顺序程序设计 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 4.1 若变量已正确说明为float型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是 A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回

19、车> C)10.0<回车>22.0 33.0<回车> D)10 22<回车>33<回车> 正确答案: B 4.2 现有以下程序段 #include  main()  int a,b,c; scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c); printf("a=%d,b=%d,c=%dn",a,b,c);  若输出的结果为a=20,b=30,c=40,则以下能够正

20、确输入数据的是 A)a=1020,b=2030,c=40 B)20,30,40 C)a=20,b=30,c=40 D)a=1020,b=3020,c=40 注: “”表示空格,表示回车 正确答案: D 4.3 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

21、%d%d",&x,&y,&z); 正确答案: B 4.4 已有定义int a=-2;和输出语句 printf("%8lx",a);以下正确的叙述是 A)整型变量的输出形式只有%d一种 B)%x是格式符的一种,它可以适用于任何一种类型的数据 C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 正确答案: D 4.5 下列程序段的输出结果是: int a=1234; float b=12

22、3.456; double c=12345.54321; printf("-,%2.1f,%2.1f",a,b,c); A)无输出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5 正确答案: C 4.6 执行下列程序时输入:123<空格>456<空格>789<回车> 输出结果是 main()  char s100; int c, i; scanf("

23、%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%sn",c,i,s); A)123,456,789 B)1,456,789 C)1,23,456,789 D)1,23,456 正确答案: D 4.7 若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后 a<=25&&b-<=2&&c?printf(&

24、quot;*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=19 B)*a=26,b=14,c=19 C)# a=25,b=13,c=19 D)# a=26,b=14,c=19 正确答案: C 4.8 请选出以下语句的输出结果 printf("%dn",strlen("t"065xffn"); A)5 B)14 C)8 D)

25、输出项不合法,无正常输出 正确答案: A 4.9 下列程序的输出结果是 main()  double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%dn", d*y); A)3 B)3.2 C)0 D)3.07 正确答案: C 4.10 调用gets和puts函数时,必须包含的头文件是 A)stdio.h B)stdlib.h C)define D)以上都不对 正确答案

26、: A 4.11 阅读下面程序段 #include "stdio.h" main()  char c; c=(z-a)/2+A; putchar(c); 输出结果为 A)M B)N C)O D)Q 正确答案: A 二、填空题(请将每一个空的正确答案写在答题卡相应序号后。) 4.12 下列程序的输出结果是16.00,请填空。 main() int a=9, b=2; float x=【1】, y=1.1,z; z=a/2+b*x/y+1/

27、2; printf("%5.2fn", z );  正确答案: 6.6 4.13 在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【2】 。 正确答案: #include 4.14 下列程序的输出结果是 【3】 , 【4】 。 #include  main()  float a=-1.3;b=1.3; printf("%f,%f",fabs(a),fabs(b);

28、 正确答案: 1.300 000 正确答案: 1.300 000 4.15 执行程序时的输入为123456789,则程序的运行结果为 【5】 。 #include "stdio.h" main()  int a,b; scanf("-%*2d",&a,&b); printf("%dn",a-b); 正确答案: 7第5章 选择结构程序设计一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确

29、的,请将正确选项填涂在答题卡相应位置上。)5.1 在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。A)1 0 B)0 1 C)非0 非0 D)1 1正确答案: A5.2 已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为A)0 B)1 C)4 D)5正确答案: B5.3 能正确表示逻辑关系:“a10或a0”的C语言表达式是A)a>=10 or a<=0 B)a>=0|a<=10C)a>=10 &&a<

30、;=0 D)a>=10a<=0正确答案: D5.4 若变量c为char类型,能正确判断出c为小写字母的表达式是A)a<=c<=z B)(c>=a)|(c<=z)C)(a<=c)and(z>=c) D)(c>=a)&&(c<=z)正确答案: D5.5 设int x=1,y=1;表达式(!x|y- -)的值是A)0 B)1 C)2 D)-1正确答案: B5.6 有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);执行该程序段后,x的值为A)tu

31、re B)false C)0 D)1正确答案: D5.7 以下程序的输出结果是main() int a=4,b=5,c=0,d;d=!a&&!b|!c;printf("%dn",d); A)1 B)0 C)非0的数 D)-1正确答案: A5.8 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d)后n的值是A)1 B)2 C)3 D)4正确答案: B5.9 已知x,y,z均为整型变量,且值均为1,则执行语句+x|+y&&+z;后,表达式x+y的值为A)1 B)2 C)

32、3 D)4正确答案: C5.10 表达式a<B|(C&D)中运算符优先级最高的是A)| B)& C)< D)()正确答案: D5.11 若运行时给变量x输入12,则以下程序的运行结果是main()int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%dn",y); A)0 B)22 C)12 D)10正确答案: A5.12 已知char ch=C;则以下表达式的值是ch=(ch>=A && ch<=Z)?(ch+32):ch;A)A B)a

33、C)Z D)c正确答案: D5.13 若有条件表达式 (exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A)(exp=0) B)(exp!=0) C)(exp=1) D)(exp!=1)正确答案: B5.14 有以下程序main()int i=1,j=1,k=2;if(j+|k+)&&i+)printf("%d,%d,%dn",i,j,k);执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3正确答案: C5.15 请阅读以下程序:main() int a=5,b=0,c=0;if(a=b+c)printf(&

34、quot;*n");else printf("n");以上程序A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出* D)输出正确答案: D5.16 若执行下述程序时,若从键盘输入6和8时,结果为main()int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<B)s=b;s*=s;printf("%d",s);A)36 B)64 C)48 D)以上都不对正确答案: B5.17 有如下程序main()float x=2.0,y;if(x<0.0)y=0.0;el

35、se if(x<10.0)y=1.0/x;else y=1.0;printf("%fn",y);该程序的输出结果是A)0.000000 B)0.250000 C)0.500000 D)1.000000正确答案: C5.18 以下4个选项中,不能看做一条语句的是A); B)a=5,b=2.5,c=3.6;C)if(a<5); D)if(b!=5)x=2;y=6;正确答案: D5.19 若int k=8;则执行下列程序后,变量k的正确结果是main()int k=8;switch(k)case 9:k+=1;case 10:k+=1;case 11:k+=1;bre

36、ak;default:k+=1;printf("%dn",k);A)12 B)11 C)10 D)9正确答案: D5.20 阅读如下程序段#include "stdio.h"main() int a=45,b=40,c=50,d;d=a>30?b:c;switch(d) case 30 : printf("%d,",a);case 40 : printf("%d,",b);case 50 : printf("%d,",c);default : printf("#");则

37、输出的结果是A)40,50, B)50,# C)40,# D)40,50,#正确答案: D5.21 现有如下程序段,此程序段编译有错误,则程序段的错误出在#include main() int a=30,b=40,c=50,d;d=a>30?b:c;switch(d) case a:printf("%d,",a);case b:printf("%d,",b);case c:printf("%d,",c);default:printf("#");A)default:printf("#");这

38、个语句 B)d=a>30?b:c;这个语句C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句D)switch(d)这个语句正确答案: C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)5.22 设y是int型,请写出y为奇数的关系表达式 【1】 。正确答案: (y%2)=1 或 (y%2)!=05.23 设int a=5,b=6,表达式(a= =b- -)?+a:-b的值是【2】 。正确答案: 75.24 将以下程

39、序写成三目运算表达式是【3】 。if(a>b)max=a;else max=b;正确答案: max=(a>b)?a:b;5.25 以下程序输出的结果是【4】。main() int a=5,b=4,c=3,d;d=(a>b>c);printf("%dn",d);正确答案: 05.26 若从键盘输入58,则以下程序输出的结果是 【5】 。main()int a;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",

40、a);if(a>30)printf("%d",a);正确答案: 5858585.27 阅读下面语句,则程序的执行结果是 【6】 。#include "stdio.h"main() int a=-1,b=1,k;if(+a<0)&&!(b- -<=0)printf("%d,%dn",a,b);else printf("%d,%dn",b,a);正确答案: 1,05.28 阅读下面程序,则在执行时候的输出为 【7】 。#include "stdio.h"main()

41、int x=1,y=2,z=0;if(x=2)z=x,x=y,y=z;printf("%d,%dn",x,y);正确答案: 2,25.29 以下程序的输出结果是【8】。main() int x=100, a=10, b=20, ok1=5, ok2=0;if(aelse if(ok2)x=10;else x=-1;printf("%dn", x);正确答案: -15.30 阅读下面的程序,当程序在执行时,如果输入的是A,则输出结果为 【9】 。#include "stdio.h"main()char a;a=getchar();swi

42、tch(a) case 65: printf("%c",A);case 66: printf("%c",B);default :printf("%sn","other");正确答案: ABother第6章 循环控制 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 6.1 对表达式for(表达式1; 表达式3)可理解为 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(

43、表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 正确答案: B 6.2 在下列选项中,没有构成死循环的是 A)int i=100; while(1) i=i0+1; if(i>100)break;  B)for(;); C)int k=10000; dok+;while(k>10000); D)int s=36; while(s)-s; 正确答案: D 6.3 下面有关for循环的正确描述是 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体

44、语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 正确答案: D 6.4 若int i,j;,则for(i=j=0;i<10&&j<8;i+,j+=3)控制的循环体执行的次数是 A)9 B)8 C)3 D)2 正确答案: C 6.5 阅读下列程序段,则程序的输出结果是 #include "stdio.h" main()  int a=10,b=10

45、,k; for(k=0;a>8;b=+k) printf("%d,%d,",a- -,- -b); printf("n"); A)10,10,10,0, B)10,9,9,0, C)10,10,9,1, D)9,9,9,1, 考生答案: 正确答案: B 6.6 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。 #include 

46、; main()  int i; for(i=100;i<200;i+) if(i-2)%4=0) if(!(i-3)%7) if(_) printf("%d",i); A)i%9=5 B)i%9!=5 C)(i-5)%9!=0 D)(i-5)%9=0 正确答案: D 6.7 下列程序的输出结果是 #include "stdio.h" main() int i,a=0,b=0; for(i=1;i<10;i+)  if(i%2= =0

47、)  a+; continue;  b+;  printf("a=%d,b=%d",a,b); A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5 正确答案: B 6.8 阅读下列程序,则执行结果是 #include "stdio.h" main() int a=0,b=0,c=0,i; for(i=0;i<4;i+) switch(i)  case 0:a=i+; case 1:b=i+;

48、case 2:c=i+; case 3:i+;  printf("%d,%d,%d,%dn",a,b,c,i); A)0,1,3,4 B)1,2,3,4 C)0,1,2,5 D)0,2,3,4 正确答案: C 6.9 阅读下列程序,程序的输出结果是 #include "stdio.h" main() int m,n; float k; for(m=6;m>2;m- -)  k=0; for(n=m;n>1;n-&#

49、160;-) k=k+m*n; printf("%fn",k); A)5.000000 B)15.000000 C)25.000000 D)35.000000 正确答案: B 6.10 下面程序的运行结果是 #include "stdio.h" main()  int j,i,k=0; for(j=50;j<=60;j+)  if(!(k) printf("n"); for(i=2;i<J;I+)&NBSP; if(

50、!(j%i) break; if(i>=j-1)  printf("%d",j); k+;  A)5359 B)5953 C)3595 D)9535 正确答案: A 6.11 已知 int t=0; while(t=1) . 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 正确答案: B 6.12 设有以下程序段 int x=0,s=0; while(!x!

51、=0)s+=+x; printf("%d",s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 正确答案: B 6.13 下列程序的输出结果是 #include "stdio.h" main()  int i=6; while(i- -) printf("%d",- -i); printf("n"); A)531 B)420 C)654321&

52、#160;D)死循环 正确答案: B 6.14 对下,两个语句描述正确的是 .while(1).for(;) A)都是无限循环 B)是无限循环,错误 C)循环一次,错误 D)以上答案都错 正确答案: A 6.15 以下程序段的描述,正确的是 x=-1; do x=x*x; while(!x); A)是死循环 B)循环执行两次  C)循环执行一次 D)有语法错误 正确答案: C 6.16 若有如下语句 int x=3; do printf("%dn"

53、;,x-=2);while(!(- -x); 则上面程序段 A)输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环 正确答案: B 6.17 下面程序的运行结果是 #include  main()  int a=1,b=10; do  b-=a; a+; while(b- -<0); printf("a=%d,b=%dn",a,b); A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a

54、=4,b=9 正确答案: B 6.18 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include  main() char c; int v0=1,v1=0,v2=0; doswitch(c=getchar() case a:case A: case e:case E: case i:case I: case o:case O: case u:case U:v1+=1; default:v

55、0+=1;v2+=1;   while(c!=n);  printf("v0=%d,v1=%d,v2=%dn",v0,v1,v2); A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11 D)v0=13,v1=4,v2=12 正确答案: D 6.19 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。 #include  main()  int i=0,j,k; do i+;

56、 k=316-13*i; while(_); j=k/11;  printf("316=13*%d+11*%d",i,j); A)k/11 B)k C)k/11=0 D)k=0 正确答案: B 6.20 C语言中 while 和do-while循环的主要区别是 A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件更严格 C)do-while允许从外部转到循环体内 D)do-while 的循环体不能是复合语句 正

57、确答案: A 6.21 下列说法中错误的是 A)只能在循环体内使用break语句 B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和dowhile循环中,continue语句并没有使整个循环终止 D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断 正确答案: A 二、填空题(请将每一个空的正确答案写在答题卡相应序号后。) 6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。 for(i=0, j=10; 

58、i<=j; i+, j- -) k=i+j; 正确答案: 10 6.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() int i, x, y=1; scanf("%d", &x); for(i=2; i<=x/2; i+) if【2】 y=0; break; printf("%dn", y); 正确答案: (x%i= =0) 6.24 以下程序的输出结果是【3】。 main()  int y=9; for(; y>0; y- -)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论