二级c语言笔试练习题_第1页
二级c语言笔试练习题_第2页
二级c语言笔试练习题_第3页
二级c语言笔试练习题_第4页
二级c语言笔试练习题_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

全国计算机等级考试

二级C语言程序设计

第1章C语言程序设计概述.....................................................1

第2章C语言的基本数据类型与表达式..........................................3

第3章顺序程序设计..........................................................11

第4章选择结构程序设计......................................................13

第5章循环结构..............................................................18

第6章函数与编译预处理......................................................24

第7章数组..................................................................34

第8章指针..................................................................42

第9章结构体数据类型与链表.................................................57

第10章位运算与文件操作....................................................64

上机考试题......................................................................71

目录

第1章C语言程序设计概述第7章数组

1.1程序与程序设计7.1一维数组

1.2算法及其描述7.2二维数组

1.3C语言的发展及特点7.3数组的应用

1.4C语言程序的基本结构7.4字符数组与字符串

1.5C语言字符集、标识符和关键字7.5数组作为函数的参数

1.6C语言程序的开发环境7.6程序举例

第2章C语言的基本数据类型第8章指针

与表达式8.1指针与指针变量

2.1C语言的基本数据类型8.2指针与函数

2.2常量和变量8.3指针与数组

2.3运算符与表达式8.4指针与字符串

2.4数据类型转换8.5指针数组与命令行参数

8.6程序举例

第3章顺序程序设计

3.1C语言的基本语句第9章结构体数据类型与链表

3.2数据输入与输出9.1结构体类型的定义

3.3程序举例9.2结构体类型变量

9.3结构体类型数组

第4章选择结构程序设计9.4结构体类型指针

4.1关系运算符与关系表达式9.5结构体与函数

4.2逻辑运算符与逻辑表达式9.6链表

4.3if语句

4.4switch语句第10章位运算与文件操作

10.1位运算与位运算符

第5章循环结构10.2位运算举例

5.1while语句10.3C文件概述

5.2do-while语句10.4文件类型指针

5.3for语句10.5文件的打开与关闭

5.4break>continue和goto语句10.6文件的定位

5.5循环的嵌套

5.6复合结构程序举例第11章上机考试题分析

第6章函数与编译预处理

6.1模块化程序设计与函数

6.2函数的定义与调用

6.3函数的递归调用

6.4变量的作用域与存储方式

6.5编译预处理

第1・C错言程声钺什概述

第1章C语言程序设计概述

一、选择题

1、以下叙述中正确的是

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

2、以下说法正确的是

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

3、C语言规定,在一个源程序中,main函数的位置

A)必须在最开始B)必须在系统调用的库函数的后面

C)可以任意D)必须在最后

4、以下叙述不正确的是

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含--个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

5、C语言程序的基本单位是

A)程序行B)语句

C)函数D)字符

6、以下叙述正确的是

A)在C程序中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

7、以下选项错误的是

A)main()B)main()

{intx,y,z;{intx,y,z;

x=0;y=x-l;x=O,y=x+l;

z=x+y;}z=x+y;}

C)main()

D)main()

{intx;int

{intx,y,z;

inty;

x=O;y=x+l;

x=O,y=x+l;

z=x+y;}z=x+y,}

1仔细答题,认真总结!二级考试专用

第1*C语言程序强针概述

8、以下4个选项中,不能看做一条语句的是

A);B)a=5,b=2.5,c=3.6;

C)if(a<5);D)if(b!=5)x=2;y=6;

9、字符型数据在机器中是用ASCH码表示的,字符“5”和“7”在机器中表示为

A)10100011和01110111B)01000101W01100011

C)00110101^00110111D)01100101和01100111

二、填空题

1、用高级语言编写的程序称为【】程序,它可以通过解释程序翻译•句执行一句的方式

执行,也可以通过编译程序一次翻译产生目标程序,然后执行。

2、C语言程序的注释可以出现在程序中的任何地方,一个注释以【】作为开始和结束。

三、部分填空题解析

2、解析:C语言程序的注释可以出现在程序基本单词之间的任何地方,C语言程序的注释以'

/*'作为开始标记,并以'*/'作为结束标记。

仔细答题,认真总结!二级考试专用2

第2*C语言的基声裁据类型•&表达K

第2章C语言的基本数据类型与

表达式

一、选择题

1、C语言中最简单的数据类型包括

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、字符型、逻辑型D)字符型、实型、逻辑型

2、下列各数据类型不属于构造类型的是

A)枚举型B)共用型

C)结构型D)数组型

3、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第•个字符

A)必须为字母B)必须为下划线

C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符

4、下列可用于C语言用户标识符的一组是

A)void,define,WORDB)a3_b3,_123,Car

C)For,-abc,IFCaseD)2a,DO,sizeof

5、请选出可用作C语言用户标识符的是

A)void,define,WORDB)a3_b3,_123,IF

C)FOR,—abc,CaseD)2a,Do,Sizeof

6、以下选项中合法的用户标识符是

A)longB)_2Test

C)3DmaxD)A.dat

7、下列是用户自定义标识符的是

A)_wlB)3_xy

C)intD)LINE-3

8、下面四个选项中,均是不合法的用户标识符的选项是

A)AP_0doB)floatlaO_A

C)b-agotointD)_123tempint

9、下面四个选项中,均是合法整型常量的选项是

A)160-Oxffff011B)-OxcdfOlaOxe

C)-01986,0120668D)-0x48a2e5Ox

10、下面四个选项中,均是不正确的8进制数或16进制数的选项是

A)016Ox8f018B)Oabc017Oxa

C)010-0x110x16D)0al27ff-123

3仔细答题,认真总结!二级考试专用

第2*C语言的基声裁据类型•&表达K

11、下列数据中,不合法的C语言实型数据的是

A)0.123B)123e3

C)2.1e3.5D)789.0

12、在C语言中,退格符是

A)\nB)\t

C)\fD)\b

13、下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是

A)\bB)\t

C)\vD)\f

14、若有说明语句:charc='\72';则变量c

A)包含1个字符B)包含2个字符

C)包含3个字符D)说明不合法,c的值不确定

15、在C语言中,char型数据在内存中的存储形式是

A)补码B)反码

C)原码D)ASCH码

16、若变量已正确定义并赋值,以下符合C语言语法的表达式是

A)a:=b+lB)a=b=c+2

C)int18.5%3D)a=a+7=c+b

17、若变量a,i已正确定义,且i己正确赋值,合法的语句是

A)a==1B)++i;

C)a=a++=5:D)a=int(i);

18、在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是

A)a=20000+20000;B)a=4000*10;

C)a=30000+10000;D)a=4000L*10L

19、若运行时给变量x输入12,则以下程序的运行结果是

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

printf("%d\n",y);

)

A)0B)22

C)12D)10

20、在C语言中,运算对象必须是整型数的运算符是

A)%B)\

C)%和\D)**

21、C语言中运算对象必须是整型的运算符是

A)%=B)/

仔细答题,认真总结!二级考试专用4

第2章C辖言的基洋毅据奏型易表达W

C)=D)<=

22、已知各变量的类型说明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

则以下不符合c语言语法的表达式是

A)x%(-3)B)w+=-2

C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

23、若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A)2.500000B)2.750000

C)3.500000D)0.000000

24、请选出以下语句的输出结果

printf("%d\n”,strlen("\t\"\065\xff\n"));

A)5B)14

C)8D)输出项不合法,无正常输出

25、设有数组定义:chararray口="China";则数组array所占的空间为

A)4个字节B)5个字节

C)6个字节D)7个字节

26、以下不正确的叙述是

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实

型数值

27、sizeof(float)是

A)一个双精度型表达式B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

28、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为

A)4B)16

C)32D)52

29、下列程序的输出结果是

main()

{doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n”,d*y);

)

A)3B)3.2

C)0D)3.07

30、设变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f值的数据类型为

A)intB)float

5仔细答题,认真总结!二级考试专用

第2*C语言的基漳裁据类型与表达K

、C)doubleD)不确定

31、设以卜变量均为int类型,表达式的值不为7的是

A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+l)

C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)

32、若有条件表达式(exp)?a++:b-,则以下表达式中能完全等价于表达式(exp)的是

A)(exp==0)B)(exp!=0)

C)(exp==l)D)(exp!=l)

33、以下选项中,与k=n++完全等价的表达式是

A)k=n,n=n+lB)n=n+1,k=n

C)k=++nD)k+=n+1

34、以下程序的输出结果是

main()

{inta=21,b=11;

printf("%d\n",-a+b,—b+a);

A)30B)31

C)32D)33

35、设x、y均为整型变量,且x=10y=3,则以下语句的输出结果是

printf("%d,%d\n",x—y);

A)10,3B)9,3

C)9,2D)10,2

36、表达式a<bll(c&d)中运算符优先级最高的是

A)IIB)&

C)<D)()

37、在C语言中,int,char和short三种类型数据在内存中所占用的字节数

A)由用户自己定义B)均为2个字节

C)是任意的D)由所用机器的机器字长决定

38、若有以下定义,则能使值为3的表达式是

intk=7,x=12;

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5D)(x%=k)-(k%=5)

39、下面程序的输出结果为

main()

{inta,b;b=(a=3*5,a*4,a*5);

printf("%d",b);}

A)60B)75

C)65D)无确定值

40、假定x和y为double型,则表达式x=2,y=x+3/2的值是

A)3.500000B)3

仔细答题,认真总结!二级考试专用6

第2章C语言的基漳敏提奏型星表达W

C)2.000000D)3.000000

41、以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x+y+z的C语

言表达式是

A)x/y*zB)x*(1/(y*z))

C)x/y*l/zD)x/y/z

42、以下程序的输出结果是

main()

{charc='z';

printf("%c”,c-25);

)

A)aB)Z

C)z-25D)y

43、有以下程序

#include<string.h>

main()

{char*p="abcde\Ofghjik\0

printf(0%d\nH,strlen(p));

)

程序运行后的输出结果是

A)12B)15

C)6D)5

44、设有intx=U;则表达式(x++*l/3)的值是

A)3B)4

C)11D)12

45、若变量a是int类型,并执行了语句:a='A'+16,则正确的叙述是

A)a的值是字符CB)a的值是浮点型

C)不允许字符型和浮点型相加D)a的值是字符'A'的ASCH值加上1

46、下列程序运行的结果是

main()

{floatx;

inti;

x=3.6;

i=(int)x;

printf("x=%f,i=%d”,x,i);

)

A)x=3.600000,i=3B)x=3.6,i=3

C)x=3,i=3D)x=3.600000,i=3.000000

二、填空题

1、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double

型数据在内存中所占的字节数为【1

7仔细答题,认真总结!二级考试专用

第2章C语者的基中於据类型易表达K

2、以下程序的输出结果是

main()

{inti=010,j=10;

pirntf(z,%d,%d\n,z,i,j);

)

3、已知字母a的ASCH码为十进制数97,且设ch为字符型变量,则表达式ch='a/+'8'-'

3'的值为【】。

4、下列程序的输出结果为【】。

main()

(intx=3,y=5;

printf('%d”,x=(x-)*(-y));

)

5、设y是int型,请写出y为奇数的关系表达式【10

6^设inta=5,b=6,表达式(++a==b―)?++a:―b的值是【】。

7、以下程序的输出结果是“】。

main()

{inta=0;

a+=(a=8);

printf("%d\n〃,a);}

8、在计算机中,字符的比较是对它们的进行比较。

9、在内存中,存储字符'xz要占用1个字节,存储字符串〃X"要占用【】个字节。

10、下列程序的输出结果是16.00,请填空。

main()

{inta=9,b=2;

floatx=[},y=l.1,z;

z=a/2+b*x/y+l/2;

printf(〃%5.2f\n〃,z);

)

ii、以下程序段的输出结果是

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf(〃%d〃,a);

)

12、以下程序段的输出结果是“】o

intx=17,y=26;

printf(〃%d〃,y/=(x%=6));

仔细答题,认真总结!二级考试专用8

第2章C辖言的基漳毅据奏型易表达W

13、将以下程序写成三目运算表达式是“】o

if(a>b)max=a;

elsemax=b;

14、下列y的值是【】。

inty;y=sizeof(2.25*4);

15、下列x的值是【】。

intx;x=sizeof2.25*4;

16、设x和y均为int型变量,且x=l,y=2,则表达式double(1+x/y)的值为【】。

17、把数学表达式m-n改写成C语言的表达式是【】。

18、若有以下定义:

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为1】o

19、若有以下程序段:

intcl=l,c2=2tc3;

c3=l.0/c2*cl;

则执行后,c3中的值是【】。

三、部分填空题解析

2、解析:以0开头的是八进制数。

3、解析:在C语言中,整型,实型,字符型数据间可以混合运算,在进行运算时,不同类

型的数据要先转换成同一类型,然后再进行运算。我们可以这样计算本题,97+8-3=102,即

102所对应的字母为f。

4、解析:X—的值为3,一y的值为4;注意前缀一和后缀一的区别。

8、解析:C语言中,字符也可以进行比较运算,且是按照ASCH码值进行的。

9、计算机存储一个字符用1个字节,存储字符串时,每个字符用占用1个字节,另在字符串

的有效字符之后存储1个字符串的结束标记符。所以存储字符串“X”要占用2个字节,存储

字符'x'只要1个字节。

10、解析:本题最后一条语句,表示以浮点格式输出z的值,宽度为5,其中所含2位小数,

应该注意的是,两个整型运算结果仍为整型,如1/2的结果为0,对本题可逐步求解:

16.00=9/2+2*x/l.1+1/2

16.00=4+2*x/l.1+0

12.00=2*x/l.1

所以,x的值为6.6。

11、解析:a*=16+(b++)-(++c)等价于a=a*(16+(b++)-(++c)),b++的值为3,++c

9仔细答题,认真总结!二级考试专用

第2*C语言的基洋裁据类型•&表达K

的值为5,请注意前缀++和后缀++的用法。

12、解析:%是取余运算,操作数为整型,所以最后的结果也为整型,运算过程如下:

y/=(x%-6);

y/=(x=x%6);

y/=5;

y=y/5;y=5;

13、解析:本题考查三目运算符的用法,条件运算符要求有三个操作对象,称三目(元)

运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式

2:表达式3所以,我们可以写成(a>b)?a:b,它是一个“条件表达式"。执行顺序是:如

果(a>b)条件为真,则条件表达式取值a,否则取值b。

14、解析:sizeof(2.25*4)为sizeof(10.00)值为8,C语言规定浮点型常量当双

精度处理(以IBM-PC机为例)。

15、解析:sizeof运算符高于算术运算符,所以sizeof2.25*4等价于(sizeof2.25)*4

为8X4=32(以IBM-PC机为例)。

16、解析:本题考查两个知识点•是x/y的值为整型即为0,二是数字1存放在double中是

double类型。

18、解析:C语言中,如果运算符两边的数据类型不同,将进行类型转换,根据转换规则,

短整型转为长整型;整型转换为实型。

19、解析:在赋值运算中,如果表达式中变量和常量的数据类型不一致就会自动进行类型

转换。系统会计算L0/c2,由于1.0是实型,所以均先转化为双精度型0.500000,再和cl转

化后的双精度数相乘得0.500000。但其要赋值给整型变量c3,故要进行强制转换,c3的值为0。

仔细答题,认真总结!二级考试专用10

第3*喉方程声钱什

第3章顺序程序设计

一、选择题

1、结构化程序所规定的三种最基本控制结构是

A)输入、处理、输出B)树形、网形、环形

C)顺序、选择、循环D)主程序、子程序、函数

2、若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是

A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p);

C)scanf("%d",n);D)p=&n;scanf("%d",p);

3、以下程序段的输出结果是

inta=1234;

printf("%2d\n",a);

A)12B)34

C)1234D)提示出错、无结果

4、已有定义inta=-2;和输出语句printf("%81x",a);以下正确的叙述是

A)整型变量的输出形式只有%d一种

B)%x是格式符的一种,它可以适用于任何•种类型的数据

C)%x是格式符的•种,其变量的值按十六进制输出,但%81x是错误的

D)%81x不是错误的格式符,其中数字8规定了输出字段的宽度

5、对下面程序描述正确的一项是(每行程序前面的数字表示行号)

1main()

2(

3floata[3]={0.0};

4inti;

5for(i=0;i<3;i++)scanf("%d",&a[i]);

6for(i=l;i<3;i++)a[0]=a[0]+aLi];

7printf("%f\n",a[0]);

8)

A)没有错误B)第3行有错误

C)第5行有错误D)第7行有错误

6、若变量已正确说明为int类型,要通过语句scanf("%d%d%d”,&a,&b,&c);给2赋值3,b

赋值5,c赋值8,正确的输入形式是

A)3c回车〉

5〈回车>

8c回车〉

B)3,5,8<回车)

C)3V回车〉

58〈回车>

D)35c回车〉

8〈回车>

II仔细答题,认真总结!二级考试专用

第3*艰本在再强什

7、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是

main()

{int*p,*q,a,b;

p=&a;

printf("inputa:u);

scanf("%d",*p);

)

A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址

C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

8、x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是

A)INPUTx、y、z;

B)scanf(n%d%d%dM,&x,&y,&z);

C)scanf("%d%d%d",x,y,z);

D)read(',%d%d%d,',&x,&y,&z);

9、执行下列程序时输入:123〈空格>456(空格>789〈回车〉输出结果是

main()

{chars[100];intc,i;

scanf("%c”,&c);scanf(n%d",&i);scanf("%s",s);

printf("%c,%d,%s\nn,c,i,s);}

A)123,456,789B)1,456,789

C)1,23,456,789D)1,23,456

二、填空题

1、以下程序的输出结果是【

inta=1234;

printf(u%2d\nu,a);

仔细答题,认真总结!二级考试专用12

第4*送考修构程再钺计

第4章选择结构程序设计

一、选择题

1、在C程序中,判逻辑值时、用“非(T表示逻辑值“真'又用"0"表示逻辑值“假”。在求逻

辑值时,用()表示逻辑表达式值为“真、又用()表示逻辑表达式值为“假乙

A)10B)01

C)非0非0D)11

2、有如下程序段

inta=14,b=15,x;

charc=zA';

x=(a&&b)&&(cv'B');

3、执行该程序段后,x的值为

A)tureB)false

C)0D)1

4、若运行以下程序时,从键盘输入ADescriptor<CR>(vCR>表示回车),则下面程序的运

行结果是#足4鼠©<stdio.h>

main()

{chare;

intv0=l,vl=0,v2=0;

do{switch(c=getchar())

{case'a':case'A’:

case'e':case'E’:

case'i':case'I’:

case'o':caseO':

case1u':case'U':vl+=l;

default:vO+=1;v2+=1;}

}while(c!=z\nr);

printf(uv0=%d,v1=%d,v2=%d\nn,v0,v1,v2);}

A)v0=7,vl=4,v2=7B)v0=8,vl=4,v2=8

C)v0=ll,vl=4,v2=llD)v0=13,vl=4,v2=12

5、有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x>10.0)y=1.0/x;

elsey=1.0;

printf(u%f\n",y);}

该程序的输出结果是

A)0.000000B)0.250000

C)0.500000D)1.000000

6、能正确表示逻辑关系:“a210或aWO”的C语言表达式是

13仔细答题,认真总结!二级考试专用

第4本达舞修构程再效计

A)a>=10ora<=0B)a>=0la<=10

C)a>=10&&a<=0D)a>=10IIa<=0

7、有如下程序

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elseC++;

printf("%d\n",c);

)

该程序的输出结果是

A)0B)1

C)2D)3

8、若变量c为char类型,能正确判断出c为小写字母的表达式是

A)'a'<=c<='z'

B)(c>=,a')II(c<=zz')

C)('a'<=c)and('z'>=c)

D)(c>=za')&&(cv='z')

9、判断char型变量cl是否为大写字母的正确表达式是

A)'A'<=cl<=,Z'

B)(cl>=A)&&(cl<=Z)

C)('A'>=cl)II(zZ'<=cl)

D)Cc\>=A')&&(cl<='Z')

10、下列函数的运行结果是

main()intf(inta,intb)

{inti=2,p;{intc;

intj,k;if(a>b)c=l;

j=i;elseif(a==b)c=0;

k=++i;elsec=-l;

p=f(j,k);return(c);

u

printf(%d",p);)

11、设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是

A)x&&yB)x<=y

C)xll++y&&y-zD)!(x<y&&!zlll)

12、以下程序的输出结果是

main()

{inta,i;a=0;

for(i=l;i<5;i++)

{switch(i)

{case0:

case3:a+=2;

case1:

仔细答题,认真总结!二级考试专用14

第4本达乔修构程再领针

case2:a+=3;

default:a+=5;

)

Jprintf(n%d\nn,a);

)

A)31B)13

C)10D)20

13、以下程序的输出结果是

main()

{inta=4,b=5,c=0,d;

d=!a&&!bll!c;

printf(u%d\n",d);}

A)1B)0

C)非0的数D)-1

14、设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b)&&(n=c>d)后n的值是

A)1B)2

C)3D)4

15、设x,y,t均为int型变量,执行语句:

x=y=3;

t=++xll++y;

完成后,y的值为

A)不确定B)4

C)3D)1

16、若执行下面的程序时,从键盘上输入5和2,则输出结果是

main()

{inta,b,k;

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

k=a;

if(a<b)k=a%b;

elsek=b%a;

printf(n%d\nn,k);

)

A)5B)3

C)2D)0

17、请阅读以下程序:

main()

{inta=5,b=0,c=0;

if(a=b+c)printf(n***\n,f);

elseprintf("$$$\nn);

}

以上程序

A)有语法错不能通过编译B)可以通过编译但不能通过连接

15仔细答题,认真总结!二级考试专用

第4*述存辂构程再领计

C)输出***D)输出$$$

二、填空题

1、若已知a=10,b=20,则表达式!a<b的值为【】。

2、若从键盘输入58.则以下程序输出的结果是【】。

main()

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

)

3、以下程序输出的结果是【入

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

printf("%d\n",d);

}

4、关系表达式x<y<z,用C语言的表达式为【】。

5、以下程序的输出结果是【

main()

{intx=100,a=10,b=20,ok1=5,ok2=0;

if(a<b)if(b!=15)if(!okl)x=l;

elseif(ok2)x=10;

elsex=-l;

printf("%d\n",x);}

6、以下程序的输出结果是【L

#definePR(ar)printf("%d,",ar)

main()

{intj,a[]={1,3,5,7,9,11,15},*p=a+5;

for(j=3;j;j-)

switch(j)

{case1:

case2:PR(*p++);break;

case3:PR(*(一p));

)

printf(n\nM);

仔细答题,认真总结!二级考试专用16

第4*送考修构程再钺计

三、部分填空题解析

1、解析:计算表达式!a<b,先计算!a,因a的值为10,!a的值为0。关系表达式0<20为真,

所以表达式!a<b的值为1。

2、解析:本题考查对if语句的掌握,当输入58以后,程序中的3个if语句都成立,所以分别

输出58。

3、解析:本题的关键在于对变量c的赋值运算:

d=(a>b>c)

d=(5>4>3)

先算5>3,为真,得1,即:d=(1>3),此时1>3,为假,得0。

4、解析:x<y<z的意思是y大于x并且y小于z,在C语言中,表达“并且”用逻辑与运算符“&&”。

5、程序预置变量x的值为100,a的值为10,b的值为20,okl为5,ok2为0。程序中给出的if

语句可以写成更结构化的形式如下:

if(a<b)

if(b!=15)

if(!okl)x=l;

else

if(ok2)x=10;elsex=-l;

由于条件a<b成立,并且条件b!=15也成立,而okl不等于0,执行else后的语句。又因ok2等

于0,执行else后的语句赋给X。所以程序输出

6、解析:程序的宏定义PR以d格式输出参数的值和逗号字符。程序给数组a赋初值,并由

指针p指向元素a[5]。程序让j从3至1,共循环3次。当j是3时,让p减I,并输出p所指元素的

值9;当j是2和1时,输出p所指的数组元素的值,并让p增1,顺序输出9和11。所以程序输出:

9,9,11,

17仔细答题,认真总结!二级考试专用

菊5*循林楼构

第5章循环结构

一、选择题

1、下面有关for循环的正确描述是

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

2、对表达式for(表达式1;;表达式3)可理解为

A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)

3、以下描述中正确的是

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复

合语句

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,是先执行一次循环,再进行判断

D)do-while循环中,根据情况可以省略while

4、C语言中while和do-while循环的主要区别是

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件更严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

5、对下I,n两个语句描述正确的是

I.while(1

温馨提示

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

评论

0/150

提交评论