C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案_第1页
C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案_第2页
C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案_第3页
C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案_第4页
C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案_第5页
已阅读5页,还剩74页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第第页C语言程序设计(青岛职业技术学院)【智慧树知到】章节答案C语言程序设计(青岛职业技术学院)章节测试答案

第一章测试

1、C语言是一种()

A、机器语言

B、汇编语言

C、高级语言

D、低级语言

我的答案:C

2、下列各项中,不是C语言的特点是()。

A、语言简洁、紧凑,使用方便

B、数据类型丰富,可移植性好

C、能实现汇编语言的大部分功能

D、有较强的网络操作功能

我的答案:D

3、下列叙述错误的是()。

A、C程序中的每条语句都用一个分号作为结束符

B、C程序中的每条命令都用一个分号作为结束符

C、C程序中的变量必须先定义,后使用

D、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写

我的答案:B

4、一个C程序的执行是从()。

A、本程序的main函数开始,到main函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、本程序文件的第一个函数开始,到本程序main函数结束

D、本程序的main函数开始,到本程序文件的最后一个函数结束

我的答案:A

5、以下叙述不正确的是()。

A、一个C源程序必须包含一个main函数

B、一个C源程序可由一个或多个函数组成

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

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

我的答案:D

第二章测试

1、已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++)-(++c)以后,a值为()

A、31

B、30

C、29

D、28

我的答案:D

2、在C语言中,要求参加运算的数必须是整数的运算符是()。

A、++

B、

C、!

D、%

我的答案:D

3、合法的c标识符是()。

A、5dm

B、ab

C、h1

D、$s

我的答案:C

4、执行下列程序后,显示的结果是()main(){inta;printf(“%d”,(a=3*5,a*4,a+5));}

A、65

B、20

C、15

D、10

我的答案:B

5、执行下列程序中的输出语句后,x的值是()。main(){intx;printf(“%d”,(x=4*5,x*2,x+20));}

A、20

B、40

C、60

D、80

我的答案:A

6、判断:表达式1/4+2.75的值是3。

我的答案:X

7、下列转义字符不正确的是()。

A、'/'

B、’’

C、’+’

D、’-’

我的答案:B

8、对于intn=3;执行n+=n-=n*n;后n的值是9。

我的答案:X

9、在C语言中8.9e1.2是不正确的实型常量。

我的答案:√

10、对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。

我的答案:√

11、若x为整型变量、j为实型变量,当执行语句:x=(int)j;后,j也变为整型变量。

我的答案:X

12、“!”的优先级可以比“/”高。

我的答案:√

13、两个char型数据相加,其结果为char型。

我的答案:X

14、若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

我的答案:X

15、在C程序中,%是只能用于整数运算的运算符。

我的答案:√

16、以下各数均不是合法的八进制数:256、03A2、-0127。

我的答案:X

17、C语言程序中,任何英语单词均可以作标识符。

我的答案:X

18、若有宏定义:#defineM(x,y,z)x*y+z,则宏引用M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)*(4+5)+6+7。

我的答案:X

19、C语言中不区分大小写英文字母。

我的答案:X

20、程序中的变量代表内存中的一个存储单元,它的值不可以随时修改。

我的答案:X

21、0x173是正确的十六进制常数。

我的答案:√

22、逻辑表达式-5!8的值为1。

我的答案:X

23、下面程序的输出是________#includestdio.hintmain(){intk=11;printf(k=%d,k=%o,k=%x\n,k,k,k);return1;}

A、k=11,k=12,k=11

B、k=11,k=13,k=13

C、k=11,k=013,k=0xb

D、k=11,k=13,k=b

我的答案:D

24、在下列选项中,不正确的赋值语句是_______.

A、++t;

B、n1=(n2=(n3=0));

C、k=i=j;

D、a=b+c=1;

我的答案:D

25、下面程序的输出的是_________.#includestdio.hvoidmain(){intx=10,y=3;printf(%d\n,y=x/y);}

A、0

B、1

C、3

D、不确定的值

我的答案:C

26、已知字母A的ASCII码为十进制的65,下面程序的输出是_________.#includestdio.hvoidmain(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf(%d,%c\n,ch1,ch2);}

A、67,D

B、B,C

C、C,D

D、不确定的值

我的答案:A

27、为表示关系x≥y≥z,应使用C语言表达式____.

A、(x=y)(y=z)

B、(x=y)AND(y=z)

C、(x=y=z)

D、(x=y)(y=z)

我的答案:A

28、下面程序的输出结果是_______.#includestdio.hvoidmain(){inta=-1,b=4,k;k=(++a=0)(b--=0);printf(%d,%d,%d\n,k,a,b);}

A、1,1,2

B、1,0,3

C、0,1,2

D、0,0,3

我的答案:D

29、若有以下定义和语句:inta=010,b=0x10,c=10;printf(%d,%d,%d\n,a,b,c);则输出结果是________.

A、10,10,10

B、8,16,10

C、8,10,10

D、8,8,10

我的答案:B

30、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4的值是________.

A、2.4

B、2.5

C、2.75

D、0

我的答案:B

31、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序段执行后,m的值是_______.假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序段执行后,m的值是_______.

A、4

B、3

C、2

D、1

我的答案:D

32、有以下程序,其中k的初值为八进制数#includestdio.hmain(){intk=011;printf(%d\n,k++);}程序运行后的输出结果是________

A、12

B、11

C、10

D、9

我的答案:D

33、有以下程序#include#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(%d\n,d);}程序运行后的输出结果是_______

A、0

B、-12

C、-20

D、10

我的答案:C

34、有以下定义语句,编译时会出现编译错误的是_______

A、chara=’a’;

B、chara=’\n’;

C、chara=’aa’;

D、chara=’\x2d’

我的答案:C

35、以下选项中,不正确的C语言浮点型常量是_______

A、160.

B、0.12

C、2e4.2

D、0.0

我的答案:C

36、以下选项中,_______是不正确的C语言字符型常量。

A、'a'

B、'\x41'

C、'\101'

D、a

我的答案:D

37、以下合法的标识符是_______。

A、int

B、_a12

C、3ce

D、stu#

我的答案:B

38、已知intx=023,表达式++x的值是_______。

A、17

B、18

C、19

D、20

我的答案:D

39、已知intx=10,表达式x+=x-=x-x的值是_______。

A、10

B、40

C、30

D、20

我的答案:D

40、在C语言中,字符型数据在计算机内存中,以字符的_______形式存储。

A、原码

B、反码

C、ASCII码

D、BCD码

我的答案:C

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

A、4

B、16

C、32

D、52

我的答案:C

42、下列不正确的转义字符是_______。

A、'\\'

B、'\''

C、'074'

D、'\0'

我的答案:C

43、

A、a/b/c*e*3

B、3*a*e/b/c

C、3*a*e/b*c

D、a*e/c/b*3

我的答案:C

44、要为字符型变量a赋初值,下列语句中哪一个是正确的_______。

A、chara=3;

B、chara=‘3’;

C、chara=%;

D、chara=*;

我的答案:B

45、字符串ABC在内存占用的字节数是_______。

A、3

B、4

C、6

D、8

我的答案:B

46、若有说明语句:charc='\72';则变量c在内存占用的字节数是_______。

A、1

B、2

C、3

D、4

我的答案:A

47、C语言中,要求运算对象只能为整数的运算符是_______。

A、%

B、/

C、

D、*

我的答案:A

48、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_______。

A、1

B、2

C、2.0

D、2.5

我的答案:C

49、sizeof(double)的结果值是_______。

A、8

B、4

C、2

D、出错

我的答案:A

50、以下用户标识符中,合法的是_______。

A、int

B、nit

C、123

D、a+b

我的答案:B

51、表达式18/4*sqrt(4.0)/8值的数据类型是_______。

A、int

B、float

C、double

D、不确定

我的答案:C

第三章测试

1、以下选项中不是C语句的是()

A、++t

B、;

C、k=i=j;

D、{a/=b=1;b=a%2;}

我的答案:A

2、以下语句的输出结果是()printf(%d,strlen(65xff));

A、5

B、14

C、8

D、输出项不合法,无法正常输出

我的答案:A

3、若变量已正确说明为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回车

C、10.0回车22.033.0回车

D、1022回车33回车

我的答案:B

4、调用getchar和putchar函数时,必须包含的头文件是()。

A、stdio.h

B、stdlib.h

C、define

D、以上都不对

我的答案:A

5、使用scanf(a=%d,b=%d,a,b)为变量a,b赋值。要使a,b均为50,正确的输入是()

A、a=50b=50

B、5050

C、a=50,b=50

D、50,50

我的答案:C

6、“putchar(70);”这一C语句输出的结果为()

A、70

B、F

C、提示语法错误

D、C

我的答案:B

7、C语言标准格式输入函数scanf()的参数表中要使用变量的地址值。

我的答案:√

8、表达式语句和表达式没有什么区别。

我的答案:X

9、C语言标准输入操作中,gets()函数一次只可读取一个字符。

我的答案:X

10、C语言程序中可以有多个函数,但只能有一个主函数。

我的答案:√

11、C语言标准输出操作中,putchar()函数可以输出显示一个字符串。

我的答案:X

12、C语言标准格式输出函数printf()的参数表是由若干个表达式组成。

我的答案:√

13、C语言标准输入操作中,gets()函数一次只可读取一个字符。

我的答案:X

14、以下叙述中正确的是

A、用C程序实现的算法必须要有输入和输出操作

B、用C程序实现的算法可以没有输出但必须要有输入

C、用C程序实现的算法可以没有输入但必须要有输出

D、用C程序实现的算法可以既没有输入也没有输出

我的答案:C

15、在C语言中,执行下面两个语句后,输出的结果为()。charc1=97,c2=98;printf(%d%c,c1,c2);

A、9798

B、97b

C、a98

D、ab

我的答案:B

16、下列语句中符合C语言语法的赋值语句是

A、a=7+b+c=a+7;

B、a=7+b++=a+7;

C、a=7+b,b++,a+7

D、a=7+b,c=a+7;

我的答案:D

17、在C语言语言中,退格符是()

A、\n

B、\t

C、\f

D、\b

我的答案:D

18、putchar()函数可以向终端输出一个

A、整型变量表达式值

B、实型变量值

C、字符串

D、字符或字符型变量值

我的答案:D

19、以下选项中不是C语句的是()。

A、++t

B、;

C、k=i=j;

D、{a/=b=1;b=a%2;}

我的答案:A

20、有定义语句:inta=5,b,不能给b赋2的赋值语句是()。

A、b=a/2;

B、b=b+2;

C、b=2%a;

D、b=5;b=2;

我的答案:B

21、已有定义inta=-2;和输出语句printf(%8lx,a);以下正确的叙述是()。

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

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

C、%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的

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

我的答案:C

22、以下语句的输出结果是()。printf(%d\n,strlen(\t\\065\xff\n));

A、5

B、14

C、8

D、输出项不合法,无法正常输出

我的答案:A

23、若变量已正确说明为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回车

C、10.0回车22.033.0回车

D、1022回车33回车

我的答案:B

24、使用scanf(a=%d,b=%d,a,b)为变量a,b赋值。要使a,b均为50,正确的输入是()。

A、a=50b=50

B、5050

C、a=50,b=50

D、50,50

我的答案:C

25、调用getchar和putchar函数时,必须包含的头文件是()。

A、stdio.h

B、stdlib.h

C、define

D、以上都不对

我的答案:A

26、以下叙述中不正确的是()。

A、调用printf函数时,必须要有输出项

B、使用putchar函数时,必须在之前包含头文件stdio.h

C、在C语言中,整数可以以十进制、八进制或十六进制的形式输出

D、使用putchar函数可以不要输出项

我的答案:A

27、putchar()函数可以向终端输出一个()。

A、整型变量表达式值

B、实型变量值

C、字符串

D、字符或字符型变量

我的答案:D

28、用getchar()函数可以从键盘读入一个()。

A、整型变量表达式值

B、实型变量值

C、字符串

D、字符或字符型变量

我的答案:D

第四章测试

1、若要求在if后的圆括号中表示a不等于0的关系,能正确表示这一关系的表达式是()。

A、a0

B、!a

C、a=0

D、a

我的答案:B

2、以下程序段,运行后的输出结果是()charm='b';if(m++'b')printf(%c,m);elseprintf(%c,m--);

A、a

B、b

C、c

D、d

我的答案:C

3、设a=1,b=2,c=3,d=4,则表达式ab?b:cd?a:b的结果为()。

A、4

B、3

C、2

D、1

我的答案:C

4、下列叙述中正确的是()。

A、在switch语句中,不一定使用break语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case配对使用

D、break语句只能用于switch语句

我的答案:A

5、以下程序段的输出结果是()。inta=13,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(%d,m);

A、1

B、2

C、3

D、4

我的答案:C

6、逻辑表达式的值只能为1或0。

我的答案:√

7、在switch语句中,每一个的case常量表达式的值可以相同。

我的答案:X

8、在switch语句中,多个case可以共用一组执行语句。

我的答案:√

9、下列关于运算符优先顺序的描述中正确的是()。

A、关系运算符算术运算符赋值运算符逻辑与运算符

B、逻辑运算符关系运算符算术运算符赋值运算符

C、赋值运算符逻辑与运算符关系运算符算术运算符

D、算术运算符关系运算符赋值运算符逻辑与运算符

我的答案:C

10、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。

A、(x=1)(x=10)(x=200)(x=210)

B、(x=1)||(x=10)||(x=200)||(x=210)

C、(x=1)(x=10)||(x=200)(x=210)

D、(x=1)||(x=10)(x=200)||(x=210)

我的答案:C

11、在C语言中,设有如下定义:inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=ab)(n=cd)后,n的值为()。

A、1

B、2

C、3

D、0

我的答案:B

12、设有如下定义:inta=2,b;则执行b=a1;语句后,b的结果是()。

A、0

B、1

C、2

D、3

我的答案:B

13、设a=3,b=4,c=5,则表达式!(ab)!c||1的结果是()。

A、1

B、0

C、2

D、4

我的答案:A

14、能正确表示a和b同时为正或同时为负的逻辑表达式是()。

A、(a=0||b=0)(a0||b0)

B、(a=0b=0)(a0b0)

C、(a+b0)(a+b=0)

D、a*b0

我的答案:D

15、以下程序段的输出结果是()。inta=10,b=50,c=30;if(ab)a=b;b=c;c=a;printf(a=%db=%dc=%d\n,a,b,c);

A、a=10b=50c=10

B、a=10b=30c=10

C、a=50b=30c=10

D、a=50b=30c=50

我的答案:B

16、有如下程序intmain(){floatx=2.0,y;if(x0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);return0;}该程序的输出结果是()。

A、0.000000

B、0.250000

C、0.500000

D、1.000000

我的答案:C

17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。

A、a0

B、!a

C、a=0

D、a

我的答案:D

18、有如下程序段:intx=1,y=1;intm,n;m=n=1;switch(m){case0:x=x*2;case1:{switch(n){case1:x=x*2;case2:y=y*2;break;case3:x++;}}case2:x++;y++;case3:x*=2;y*=2;break;default:x++;y++;}执行完成后,x和y的值分别为()。

A、x=6y=6

B、x=2y=1

C、x=2y=2

D、x=7y=7

我的答案:A

19、以下程序的输出结果是()intmain(){inta=1,b=3,c=5,d=4,x;if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;printf(“x=%d”,x);return0;}

A、1

B、2

C、3

D、6

我的答案:B

20、在C语言中,设x=1,y=2,执行表达式(xy)?x++:++y以后x和y的值分别为()。

A、1和2

B、1和3

C、2和2

D、2和3

我的答案:B

21、以下程序段,运行后的输出结果是()。charm='b';if(m++'b')printf(%c\n,m);elseprintf(%c\n,m--);

A、a

B、b

C、c

D、d

我的答案:C

22、以下程序段的输出结果是()。inta=13,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(%d,m);

A、1

B、2

C、3

D、4

我的答案:C

第五章测试

1、若i为整型变量,则以下循环执行的次数是()。(单选)for(i=0;i=5;i++)printf(%d,i++);

A、5次

B、2次

C、3次

D、6次

我的答案:C

2、下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为()。#includestdio.hmain(){inti,ch,n[10];for(i=0;i10;++i)n[i]=0;while((ch=getchar())!=‘’)if(ch=‘0’ch=‘9’)________;for(i=0;i10;++i)printf(数字%d出现的次数是:%d,i,n[i]);}

A、n[ch-‘0’]++

B、n[ch]++

C、i++

D、n[i]++

我的答案:A

3、下列程序段的输出结果是()。intx=3;do{printf(“%3d”,x-=2);}while(!(--x));

A、1

B、0

C、-2

D、死循环

我的答案:C

4、若x是int型变量,且有下面的程序片段:for(x=5;x8;x++)printf((x/2)?(“**%d”):(“##%d”),x);该程序片段的输出结果是()。

A、**5**6**7

B、##5**6##7**8

C、**5##6**7

D、**5##6**7##8

我的答案:A

5、C语言中()。

A、不能使用do-while语句构成的循环

B、do-while语句构成的循环必须用break语句才能退出

C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环

我的答案:D

6、break语句只能用于循环语句中。

我的答案:X

7、continue语句可以用于switch结构中。

我的答案:X

8、在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应该能够为0

我的答案:√

9、三种循环(while语句、for语句、do-while语句)都可以用来处理同一个问题,一般它们可以相互代替。

我的答案:√

10、for(i=0,k=-1;k=1;k++,i++)printf(*\n);循环体一次也不执行。

我的答案:X

11、for(i=4;i1;i--)for(j=1;ji;j++)putchar('#');输出为######。

我的答案:√

12、对下面程序段描述正确的是______.intx=0,s=0;while(!x!=0)s+=++x;printf(%d,s);

A、运行程序段后输出0

B、运行程序段后输出1

C、程序段中的控制表达式是非法的

D、程序段循环无数次

我的答案:B

13、下面程序段的输出结果是______.x=3;do{y=x--;if(!y){printf(*);continue;}printf(#);}while(x=2);

A、##

B、##*

C、死循环

D、输出错误信息

我的答案:C

14、下面程序的输出结果是_______.#includestdio.hvoidmain(){intn=4;while(n--)printf(%d,n--);}

A、20

B、31

C、321

D、210

我的答案:B

15、以下程序运行后的输出结果是________.#includestdio.hvoidmain(){inti=10,j=0;do{j=j+1;i--;}while(i2);printf(%d\n,j);}

A、50

B、52

C、51

D、8

我的答案:D

16、下面程序的输出结果是________.main(){inti,k=0,a=0,b=0;for(i=1;i=4;i++){k++;if(k%2==0){a=a+k;continue;}b=b+k;a=a+k;}printf(k=%da=%db=%d\n,k,a,b);}

A、k=5a=10b=4

B、k=3a=6b=4

C、k=4a=10b=3

D、k=4a=10b=4

我的答案:D

17、下面程序的输出结果是_______.#includestdio.hvoidmain(){inty=9;for(;y0;y--){if(y%3==0){printf(%d,--y);continue;}}}

A、741

B、852

C、963

D、875421

我的答案:B

18、有以下程序#includestdio.hmain(){inti,j,m=1;for(i=1;i3;i++){for(j=3;j0;j--){if(i*j3)break;m=i*j;}}printf(m=%d\n,m);}程序运行后的输出结果是_______.

A、m=1

B、m=2

C、m=4

D、m=5

我的答案:A

19、有以下程序#includestdio.hmain(){intc=0,k;for(k=1;k3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是_______

A、3

B、5

C、7

D、9

我的答案:A

20、for(i=1;i9;i+=1);该循环共执行了_______次。

A、7

B、8

C、9

D、10

我的答案:B

21、inta=2;while(a=0)a--;该循环共执行了_______次。

A、0

B、1

C、2

D、3

我的答案:A

22、执行完循环for(i=1;i100;i++);后,i的值为_______。

A、99

B、100

C、101

D、102

我的答案:B

23、以下for语句中,书写错误的是_______。

A、for(i=1;i5;i++)

B、i=1;for(;i5;i++);

C、for(i=1;i5;i++);

D、for(i=1;i5;)i++;

我的答案:A

24、_______语句,在循环条件初次判断为假,还会执行一次循环体。

A、for

B、while

C、do-while

D、以上都不是

我的答案:C

25、有以下程序段,其运行结果是_______inti=5;do{if(i%3==1)if(i%5==2){printf(*%d,i);break;}i++;}while(i!=0);

A、*2*6

B、*7

C、*5

D、*3*5

我的答案:B

26、i、j已定义为int类型,则以下程序段中内循环体的执行次数是_______。for(i=5;i;i--)for(j=0;j4;j++){…}

A、20

B、24

C、25

D、30

我的答案:A

27、以下不构成无限循环的语句或语句组是_______。

A、n=10;while(n);{n--;}

B、n=0;while(1){n++;}

C、n=0;do{++n;}while(n=0);

D、for(n=0,i=1;;i++)n+=i;

我的答案:A

28、有以下程序段,其运行结果是_______。Inty=9;for(;y0;y--)if(y%3==0)printf(%d,--y);

A、875421

B、963

C、852

D、741

我的答案:C

29、有以下程序段,其运行结果是_______。inti,j;for(i=3;i=1;i--){for(j=1;j=2;j++)printf(%d,i+j);printf(\n);}

A、234345

B、432543

C、233445

D、453423

我的答案:D

第六章测试

1、以下不能对一维数组a进行正确初始化的语句是()

A、inta[10]={0,0,0,0,0};

B、inta[10]={};

C、inta[]={0};

D、inta[10]={10*1};

我的答案:B

2、在C语言中,引用数组元素时,其数组下标的数据类型允许是()

A、整型常量

B、整型表达式

C、整型常量或整型表达式

D、任何类型的表达式

我的答案:C

3、对以下说明语句,理解正确的是()。inta[10]={6,7,8,9,10};

A、将5个初值依次赋给a[1]到a[5]

B、将5个初值依次赋给a[0]到a[4]

C、将5个初值依次赋给a[6]到a[10]

D、因为数组长度与初值的个数不相同,所以此语句不正确

我的答案:B

4、若有以下语句,则正确的描述是()。chara[]=toyou;charb[]={'t','o','y','o','u'};

A、a数组和b数组的长度相同

B、a数组长度小于b数组长度

C、a数组长度大于b数组长度

D、a数组等价于b数组

我的答案:C

5、若有说明inta[3][4];则a数组元素的非法引用是()

A、a[0][2*1]

B、a[1][3]

C、a[4-2][0]

D、a[0][4]

我的答案:D

6、以下能对二维数组a进行正确初始化的语句是()。

A、inta[2][]={{1,0,1},{5,2,3}};

B、inta[][3]={{1,2,3},{4,5,6}};

C、inta[2][4]={{1,2,3},{4,5},{6}};

D、inta[][3]={{1,0,1},{},{1,1}};

我的答案:B

7、下面叙述正确的是()

A、两个字符串所包含的字符个数相同时,才能比较字符串

B、字符个数多的字符串比字符个数少的字符串大

C、字符串”STOP”与”STOP”相等

D、字符串”That”小于字符串”The”

我的答案:D

8、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。

我的答案:√

9、在对数组全部元素赋初值时,可以省略行数,但不能省略列数

我的答案:√

10、数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。

我的答案:√

11、C语言中,字符串常量存放在字符数组中要有一个结束符,该结束符是0。

我的答案:X

12、C语言允许用字符串的方式对数组作初始化赋值。

我的答案:√

13、在对数组全部元素赋初值时,不可以省略行数,但能省略列数

我的答案:X

14、对二维数组的正确说明是

A、inta[][]={1,2,3,4,5,6};

B、inta[2][]={1,2,3,4,5,6};

C、inta[][3]={1,2,3,4,5,6};

D、inta[2,3]={1,2,3,4,5,6};

我的答案:C

15、以下关于数组的描述正确的是

A、数组的大小是固定的,但可以有不同的类型的数组元素;

B、数组的大小是可变的,但所有数组元素的类型必须相同;

C、数组的大小是固定的,但所有数组元素的类型必须相同;

D、数组的大小是可变的,但可以有不同的类型的数组元素;

我的答案:C

16、在定义inta[10];之后,对a的引用正确的是

A、a[9]

B、a[6.3]

C、a(6)

D、a[10]

我的答案:A

17、以下对一维数组a进行不正确初始化的是

A、inta[10]=(0,0,0,0);

B、inta[10]={};

C、inta[]={0};

D、inta[10]={10*2};

我的答案:A

18、以下不能对一维数组a进行正确初始化的语句是()。

A、inta[10]={0,0,0,0,0};

B、inta[10]={};

C、inta[]={0};

D、inta[10]={10*1};

我的答案:C

19、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。

A、整型常量

B、整型表达式

C、整型常量或整型表达式

D、任何类型的表达式

我的答案:C

20、对以下说明语句,理解正确的是()。inta[10]={6,7,8,9,10};

A、将5个初值依次赋给a[1]到a[5]

B、将5个初值依次赋给a[0]到a[4]

C、将5个初值依次赋给a[6]到a[10]

D、因为数组长度与初值的个数不相同,所以此语句不正确

我的答案:B

21、若有说明:inta[][4]={0,0};则下面不正确的叙述是()。

A、数组a的每个元素都可得到初值0

B、二维数组a的第一维大小为1

C、当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D、只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

我的答案:A

22、若有说明inta[3][4];则a数组元素的非法引用是()。

A、a[0][2*1]

B、a[1][3]

C、a[4-2][0]

D、a[0][4]

我的答案:D

23、以下能对二维数组a进行正确初始化的语句是()。

A、inta[2][]={{1,0,1},{5,2,3}};

B、inta[][3]={{1,2,3},{4,5,6}};

C、inta[2][4]={{1,2,3},{4,5},{6}};

D、inta[][3]={{1,0,1},{},{1,1}};

我的答案:B

24、设有数组定义:chararr[]=China;则数组arr所占空间为()。

A、4个字节

B、5个字节

C、6个字节

D、7个字节

我的答案:C

25、若有以下语句,则正确的描述是()。chara[]=toyou;charb[]={'t','o','y','o','u'};

A、a数组和b数组的长度相同

B、a数组长度小于b数组长度

C、a数组长度大于b数组长度

D、a数组等价于b数组

我的答案:C

26、下面叙述正确的是()。

A、两个字符串所包含的字符个数相同时,才能比较字符串

B、字符个数多的字符串比字符个数少的字符串大

C、字符串”STOP”与”STOP”相等

D、字符串”That”小于字符串”The”

我的答案:D

27、在定义inta[5][4];之后,对数组元素的引用正确的是

A、a[2][4]

B、a[5][0]

C、a[0][0]

D、a[0,0]

我的答案:C

28、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是

A、1

B、2

C、4

D、5

我的答案:C

29、在定义inta[3][4][2];后,第10个元素是()

A、a[2][1][2]

B、a[1][0][1]

C、a[2][0][1]

D、a[2][2][1]

我的答案:B

30、在C语言中,引用数组元素时,其数组下标的数据类型允许是

A、整型常量

B、整型表达式或整型常量

C、实型常量

D、任何类型的表达式

我的答案:B

31、有字符数组a[80],b[80],则正确的输出语句是

A、puts(a,b);

B、printf(“%s,%s”,a[],b[]);

C、putchar(a,b);

D、puts(a);puts(b);

我的答案:D

32、以下不能正确进行字符串赋初值的语句是

A、charstr[5]=good!;

B、charstr[]=good!;

C、char*str=good!;

D、charstr[5]={''g'',''o'',''o'',''d''};

我的答案:A

33、已有定义:chara[]=xyz,b[]={''x'',''y'',''z''};,以下叙述中正确的是()。

A、数组a和b的长度相同

B、a数组长度小于b数组长度

C、a数组长度大于b数组长度

D、上述说法都不对

我的答案:C

34、在C语言中,能实现字符串连接的函数是()

A、strcat()

B、strcmp()

C、strcpy()

D、strlen()

我的答案:A

35、在C语言中,有:charstr[]=abcd;printf(%d\n,strlen(str));上面程序片段的输出结果是()

A、3

B、4

C、6

D、12

我的答案:B

36、在C语言中,不能把字符串Hello!赋给数组b的语句是()。

A、charb[10]={''H'',''e'',''l'',''l'',''o'',''!''};

B、charb[10];b=Hello!;

C、charb[10];strcpy(b,Hello!);

D、charb[10]=Hello!;

我的答案:B

37、函数调用:strcat(strcpy(str1,str2),str3)的功能是

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str1连接到串str2之后再复制到串str3之后

C、将串str2复制到串str1中后再将串str3连接到串str1之后

D、将串str2连接到串str1之后再将串str1复制到串str3中

我的答案:C

38、不能把字符串:Hello!赋给数组b的语句是

A、charb[10]={'H','e','l','l','o','!',0};

B、charb[10];b=Hello!;

C、charb[10];strcpy(b,Hello!);

D、charb[10]=Hello!;

我的答案:B

第七章测试

1、以下叙述中正确的是()

A、用户自己定义的函数只能调用库函数

B、实用的C语言源程序总是由一个或多个函数组成

C、不同函数的形式参数不能使用相同名称的标识符

D、在C语言的函数内部,可以定义局部嵌套函数

我的答案:B

2、以下程序的输出结果是()。#includestdio.hvoidfunA(intn){n++;}intmain(){inta=1;funA(a);printf(%d,a);funA(a);printf(%d,a);return0;}

A、12

B、11

C、22

D、21

我的答案:B

3、以下程序的输出结果是()。#includestdio.hintf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}intmain(){intz;z=f(3);printf(%d,z);return0;}

A、0

B、9

C、6

D、8

我的答案:C

4、以下程序的输出结果是()。#includestdio.hintfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}intmain(){printf(%d,fun(7));return0;}

A、2

B、3

C、7

D、0

我的答案:A

5、以下程序的输出结果是()。#includestdio.hintfun(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}intmain(){intk=4,m=1,p;p=fun(k,m);printf(%d,,p);p=fun(k,m);printf(%d,p);return0;}

A、8,17

B、8,16

C、8,8

D、8,20

我的答案:A

6、函数的实参传递到形参有两种方式值传递和地址传递。

我的答案:√

7、如果函数定义出现在函数调用之前,可以不必加函数声明。

我的答案:√

8、函数的实参可以是常量,变量或表达式。

我的答案:√

9、以下叙述中正确的是()。

A、用户自己定义的函数只能调用库函数

B、C语言源程序总是由一个或多个函数组成

C、不同函数的形式参数不能使用相同名称的标识符

D、在C语言的函数内部,可以定义局部嵌套函数

我的答案:B

10、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以出现在表达式中

D、函数调用可以作为一个函数的形参

我的答案:D

11、以下程序的输出结果是()。#includestdio.hvoidfunA(intn){n++;}intmain(){inta=1;funA(a);printf(%d,a);funA(a);printf(%d\n,a);return0;}

A、12

B、11

C、22

D、21

我的答案:B

12、有以下程序,程序运行后的输出结果是()。#includestdio.hintnew_div(doublea,doubleb){returna/b+0.5;}intmain(){printf(%d,new_div(7.8,3.1));return0;}

A、1

B、2

C、3

D、0

我的答案:C

13、在一个C语言程序中,下列说法正确的是()。

A、main函数必须出现在所有函数之前

B、main函数可以出现在其它函数之外的任何位置

C、main函数必须出现在所有函数之后

D、main函数必须出在固定位置

我的答案:B

14、以下叙述中正确的是()。

A、函数名允许用数字开头

B、函数调用时,不必区分函数名称的大小写

C、调用函数时,函数名必须与被调用的函数名完全一致

D、在函数体中只能出现一次return语句

我的答案:C

15、以下程序的输出结果是()。#includestdio.hintf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}intmain(){intz;z=f(3);printf(%d\n,z);return0;}

A、0

B、9

C、6

D、8

我的答案:C

16、有以下程序#includestdio.hintmain(){intfindmax(int,int,int),m;┋m=findmax(a,b,c);┋}intfindmax(intx,inty,intz){…}则以下叙述正确的是()。

A、在main函数中声明了findmax函数

B、在main函数中定义了findmax函数

C、在main函数中两次调用了findmax函数

D、在main函数内、外重复定义了findmax函数

我的答案:A

17、设有函数定义:voidsub(intk,charch){…}则以下对函数sub的调用语句中,正确的是()。

A、sub(1,97);

B、sub(2,'97');

C、n=sub(3,'a');

D、sub(4,a);

我的答案:A

18、下列叙述中错误的是()。

A、主函数中定义的变量在整个程序中都是有效的。

B、在其它函数中定义的变量在主函数中也不能使用。

C、形式参数也是局部变量。

D、复合语句中定义的变量只在该复合语句中有效。

我的答案:A

19、凡是函数中未指定存储类别的局部变量,其隐含的存储类型是()。

A、自动(auto)

B、静态(static)

C、外部(extern)

D、寄存器(register)

我的答案:A

20、下面程序的输出结果是()。#includestdio.hintmain(){intx=10;{intx=20;printf(%d,,x);}printf(%d\n,x);return0;}

A、10,20

B、20,10

C、10,10

D、20,20

我的答案:B

21、以下程序的输出结果是()。#includestdio.hintfun(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}intmain(){intk=4,m=1,p;p=fun(k,m);printf(%d,,p);p=fun(k,m);printf(%d\n,p);return0;}

A、8,17

B、8,16

C、8,8

D、8,20

我的答案:A

22、下面程序的输出结果是()。intmain(){inta=2,i;for(i=0;i3;i++)printf(%4d,f(a));return0;}f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}

A、777

B、71013

C、7911

D、789

我的答案:D

23、函数返回值的类型是由()决定的。

A、调用函数时临时

B、return语句的表达式类型

C、调用该函数的主调函数类型

D、定义函数时,所指定的函数类型

我的答案:D

24、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A、函数的形参和实参分别占用不同的存储单元

B、形参只是形式上的存在,不占用具体存储单元

C、同名的实参和形参占同一存储单元

D、函数的实参和其对应的形参共占同一存储单元

我的答案:A

25、有如下函数定义:#includestdio.hintfun(intk){if(k1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是()。

A、1

B、2

C、3

D、5

我的答案:C

第八章测试

1、下列程序的输出结果是()。main(){intk=4,m=5,n=7;int*pk=k,*pm=m,*p;*(p=n)=*pk*(*pm);printf(“%d”,n);}

A、5

B、7

C、20

D、21

我的答案:C

2、对于类型相同的指针变量,不能进行的运算是()。

A、+

B、-

C、=

D、==

我的答案:A

3、以下程序的输出结果是()。#includestdio.hintmain(){charstr[100]=ABCDEFG,*p=str;inti;for(i=0;*p!=’’;p++,i++);printf(%d,i);return0;}

A、7

B、8

C、99

D、100

我的答案:A

4、已知有以下的说明,inta[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为()。

A、5

B、0

C、4

D、7

我的答案:B

5、有以下程序:main(){charstr[][10]={“China”,“Beijing”},*p=str;printf(“%s”,p+10);}该程序运行后的输出结果是()。

A、China

B、Beijing

C、ng

D、ing

我的答案:B

6、下列关于指针定义的描述正确的有()。

A、指针变量是一种变量,该变量是用来存放某个变量的地址值的

B、指针变量的类型与它所指向的变量类型一致

C、指针变量的命名规则与标识符相同

D、在定义指针时,”*”号表示指针变量的指向

我的答案:ABCD

7、设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组中6个元素中的值,下列选项中能完成此操作的语句有()。

A、for(i=0;i6;i++)printf(“%2d”,*(p++));

B、for(i=0;i6;i++)printf(“%2d”,*(p+i));

C、for(i=0;i6;i++)printf(“%2d”,*p++);

D、for(i=0;i6;i++)printf(“%2d”,(*p)++);

我的答案:ABC

8、inti=3,*p;p=i;printf(%d,*p);是正确的。

我的答案:√

9、C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首地址值。

我的答案:√

10、在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。

我的答案:√

11、对同一类型的两个指针变量而言,一个变量向另外一个变量赋值的结果是使得两个指针指向同一个对象。

我的答案:√

12、将一维数组a的第i个元素的地址赋给指针变量p的语句是p=a[i-1];

我的答案:√

13、char*p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。

我的答案:X

14、inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则p+5相当于a[5]。

我的答案:X

15、有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8)。

我的答案:√

16、若有inta[3][4];*(a+1)+2表示a[1][2]元素的地址。

我的答案:√

17、C语言程序中,当调用函数时实参和形参各占一个独立的存储单元。

我的答案:X

18、若有定义:inta[5],*p;,则操作p=a;是合法的操作。

我的答案:√

19、若有定义:inta[5],*p;,则操作p=a[2];是合法的操作。

我的答案:√

20、若有定义:inta[5][5],*p;,则操作p=a;是合法操作。

我的答案:X

21、若有定义:inta[5][5],(*p)[5];,则操作p=*a;是合法操作。

我的答案:X

22、若有定义:inta[5][5],(*p)[5];,则操作p=a[0];是合法操作。

我的答案:X

23、凡是整型变量可以参加的运算,指针变量都可以参加。

我的答案:X

24、对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。

我的答案:√

25、对数组各元素的存取完全可以不用下标变量而用指针来代替。

我的答案:√

26、下列关于指针概念的描述中,错误的是()

A、指针中存放的是某变量或对象的地址值

B、指针的类型是它所存放的数值的类型

C、指针是变量,它也具有一个内存地址值

D、指针的值是可以改变的

我的答案:B

27、已知:inta[5],*p=a;则与++*p相同的是()。

A、*++p

B、a[0]

C、*p++

D、++a[0]

我的答案:D

28、已知:inta[]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是()。

A、(a+1)

B、(p+1)

C、p[2]

D、*p++

我的答案:C

29、若有语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则()不是对a数组元素的正确引用(其中0≤i10)。

A、p[i]

B、*(*(a+i))

C、a[p-a]

D、*(a[i])

我的答案:B

30、下列语句组中,正确的是()

A、char*s;s=Olympic;

B、chars[7];s=Olympic;

C、char*s;s={Olympic};

D、chars[7];s={Olympic};

我的答案:A

31、若有定义int(*pt)[3];,则下列说法正确的是()

A、定义了基类型为int的三个指针变量

B、定义了基类型为int的具有三个元素的指针数组pt

C、定义了一个名为*pt、具有三个元素的整型数组

D、定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

我的答案:D

32、有以下程序#includestdio.hintf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,4);printf(%d\n,s);}intf(intt[],intn){if(n0)returnt[n-1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是()

A、4

B、1O

C、14

D、6

我的答案:B

33、有以下程序#includestdio.hmain(){intm=1,n=2,*p=m,*q=n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是()

A、1,2,1,2

B、1,2,2,1

C、2,1,2,1

D、2,1,1,2

我的答案:B

34、若有定义语句:inta[4][10],*p,*q[4];且0≤i4,则错误的赋值是()

A、p=a

B、q[i]=a[i]

C、p=a[i]

D、p=a[2][1]

我的答案:A

35、有以下程序#includestdio.h#includestring.hmain(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是()

A、9,One*World

B、9,One*Dream

C、10,One*Dream

D、10,One*World

我的答案:C

36、下列函数的功能是()fun(char*a,char*b){while((*b=*a)!=’\0’){a++,b++;}}

A、将a所指字符串赋给b所指空间

B、使指针b指向a所指字符串

C、将a所指字符串和b所指字符串进行比较

D、检查a和b所指字符串中是否有’\0’

我的答案:A

37、设有定义:char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是()

A、charstr[]=”string”;c=str;

B、scanf(“%s”,c);

C、c=getchar();

D、*c=”string”;

我的答案:A

38、有以下程序#includestdio.hvoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=x,*q=y;fun(p,q);printf(%d,%d,,*p,*q);fun(x,y);printf(%d,%d\n,*p,*q);}程序运行后的输出结果是()

A、3,5,5,3

B、3,5,3,5

C、5,3,3,5

D、5,3,5,3

我的答案:B

39、已知chars[10],*p=s;,则在下列语句中,错误的语句是()。

A、p=s+5;

B、s=p+s;

C、s[2]=p[4]

D、*p=s[0]

我的答案:B

40、已知charb[5],*p=b;,则正确的赋值语句是()。

A、b=””;

B、*b=”abcd”;

C、p=”abcd”;

D、*p=”abcd”;

我的答案:C

41、已知chars[20]=”programming”,*ps=s;则不能引用字母o的表达式是()。

A、ps+2

B、s[2]

C、ps[2]

D、ps+=2,*ps

我的答案:A

42、下列选项中,正确的语句组是()。

A、chars[8];s={Beijing};

B、char*s;s={Beijing};

C、chars[8];s=Beijing;

D、char*s;s=Beijing;

我的答案:D

43、已知char*p,*q;下面语句正确的是()。

A、p*=3;

B、p/=q;

C、p+=3;

D、p+=q;

我的答案:C

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

A、p=n;scanf(%d,p);

B、p=n;scanf(%d,*p);

C、scanf(%d,n);

D、p=n;scanf(%d,p);

我的答案:D

45、若有定义:intx,*pb;则以下正确的表达式是()

A、pb=x

B、pb=x

C、*pb=x

D、*pb=*x

我的答案:A

46、以下程序的输出结果是()#includestdio.hvoidmain(){printf(“%d\n”,NULL);}

A、因变量无定义输出不定值

B、0

C、-1

D、1

我的答案:B

47、已知指针p的指向如图所示的a[1],则执行语句*p++;后,*p的值是()。

A、20

B、30

C、21

D、31

我的答案:B

48、已知指针p的指向如图所示的a[1],则表达式*++p的值是()。

A、20

B、30

C、21

D、31

我的答案:B

49、已知指针p的指向如图所示的a[1],则表达式++*p的值是()。

A、20

B、30

C、21

D、31

我的答案:C

50、若有语句int*point,a=4;和point=a;下面均代表地址的一组选项是()。

A、a,point,*a

B、*a,a,*point

C、*point,*point,a

D、a,*point,point

我的答案:D

51、若有下面的程序段:chars[]=china;char*p;p=s;则下列叙述正确的是()。

A、s和p完全相同

B、数组s中的内容和指针变量p中的内容相等

C、s数组长度和p所指向的字符串长度相等

D、*p与s[0]相等

我的答案:D

52、已定义以下函数fun(char*p2,char*p1){while((*p2=*p1)!=’\0’){p1++;p2++;}}函数的功能是()。

A、将p1所指字符串复制到p2所指内存空间

B、将p1所指字符串的地址赋给指针p2

C、对p1和p2两个指针所指字符串进行比较

D、检查p1和p2两个指针所指字符串中是否有’\0’

我的答案:A

53、下面程序段中,输出*的个数是()。char*s=\ta\018bc;for(;*s!=′\0′;s++)printf(*);

A、9

B、5

C、6

D、7

我的答案:C

54、阅读下列程序,则执行后的结果为()。#includestdio.hintmain(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf(%x,%x\n,c[2][2],*(*(c+1)+1));}

A、3e,6

B、62,5

C、56,5

D、3E,6

我的答案:A

55、现有inta,*b;,b=a;,则下列运算错误的是()。

A、*a

B、*a

C、*b

D、*b

我的答案:B

56、现有如下定义语句,表示数组元素s[i]的表达式不正确的是()。int*p,s[20],i;p=s;

A、*(s+i)

B、*(p+i)

C、*(s=s+i)

D、*(p=p+i)

我的答案:C

第九章测试

1、若有以下语句typedefstructS{intg;charh;}T;以下叙述中正确的是()。

A、可用S定义结构体变量

B、可用T定义结构体变量

C、S是struct类型的变量

D、T是structS类型的变量

我的答案:B

2、若已经定义:structstu{inta,b;}student;则下列输入语句中正确的是()

A、scanf(%d,a);

B、scanf(%d,student);

C、scanf(%d,stu.a);

D、scanf(%d,student.a);

我的答案:D

3、有以下程序#includestdio.hstructball{charcolor[10];intdim;};intmain(){structballlist[2]={{white,2},{yellow,3}};printf(%s:%d,(list+1)-color,list-dim);return0;}程序运行后的输出结果是()

A、yellow:3

B、yellow:2

C、white:2

D、white:3

我的答案:B

4、以下叙述中正确的是()。

A、结构体数组名不能作为实参传给函数

B、结构体变量的地址不能作为实参传给函数

C、结构体中可以含有指向本结构体的指针成员

D、即使是同类型的结构体变量,也不能进行整体赋值

我的答案:C

5、有以下程序#includestdio.h#includestring.hstructS{charname[10];};voidchange(structS*data,intvalue){strcpy(data-name,#);value=6;}intmain(){structSinput;intnum=3;strcpy(,OK);change(input,num);printf(%s,%d,,num);return0;}程序运行后的输出结果是()

A、8,17

B、8,16

C、8,8

D、8,20

我的答案:D

6、结构体成员的类型必须是基本数据类型。

我的答案:X

7、结构体数组中可以包含不同结构体类型的结构体变量。

我的答案:X

8、结构体类型本身不占用内存空间,结构体变量占用内存空间。

我的答案:√

9、以下关于C语言数据类型使用的叙述中错误的是()。

A、若要准确无误差的表示自然数,应使用整数类型

B、若要保存带有多位小数的数据,应使用双精度类型

C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D、若只处理“真”和“假”两种逻辑值,应使用逻辑类型

我的答案:D

10、下面有关typed

温馨提示

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

评论

0/150

提交评论