福建省计算机2级C语言-复习习题题库_第1页
福建省计算机2级C语言-复习习题题库_第2页
福建省计算机2级C语言-复习习题题库_第3页
福建省计算机2级C语言-复习习题题库_第4页
福建省计算机2级C语言-复习习题题库_第5页
已阅读5页,还剩166页未读 继续免费阅读

下载本文档

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

文档简介

第一部分:选择题(40分,20小题/套)

概述

1、下面关于C语言的叙述中,正确的是()

A.每行只能写一条语句B.程序中必须包含

有输入语句

C.main函数必须位于文件的开头D.每条语句最后必

须有一个分号

2、下面关于C语言的叙述中,错误的是()

A.若一条语句较长,也可分写在下一行上

B.构成C语言源程序的基本单位是表达式

C.C语言源程序中大、小写字母是有区别的

D.一个C语言源程序可由一个或多个函数组成

3、关于C语言数据类型的叙述,正确的是()

A,枚举类型不是基本类型B.数组不是构造类型

C.变量必须先定义后使用D.不允许使用空类型

4、C程序中main函数的位置()

A.必须在最开始B.必须在系统库函数后面

C.可以在自定义函数后面D.必须在最后

5、C语言的函数体由()括起来

A.()B.{}C.[]D./**/

6、关于C语言的叙述中,不正确的是()

A.C程序可由一个或多个函数组成B.C程序必须包含

1

一个main。函数

C.C程序的基本组成单位是函数D.注释说明只能

位于一条语句的后面

7、一个程序的执行是从()

A.本程序的第一个函数开始,到最后一个函数结束

B.本程序的main函数开始,到main函数结束

C.本程序的main函数开始,到最后一个函数结束

D.本程序的第一个函数开始,到main函数结束

8、结构化程序设计的三种基本结构是()

A.函数结构、分支结构、判断结构B.函数结构、

嵌套结构、平行结构

C.顺序结构、分支结构、循环结构D.分支结构、

循环结构、嵌套结构

9、调试程序是指对程序进行()

A.编辑B.编译C.查错和排错D.连接

10、C语言中,复合语句的构成是将一系列语句置于()

A.begin与end之间B.一对圆括号"()”之间

C.一对花括号“{}”之间D.一对方括号“[]”之间

H、构成C语言源程序的基本单位是()

A.语句B.过程C.表达式D.函数

语法基础

2

12、在C语言中,正确的用户标识符是()

A.3fB.forC.structD._f.5

13、C语言的基本数据类型包括()

A.整型、实型、字符型B.整型、实型、字

符型、逻辑型

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

辑型

14、以下()是正确的常量

A.E-5B.1E5.1C.'al2'D.

32766L

15、以下()是正确的变量名

A.a.beeB.-pllC.intD.p_ll

16、以下()是正确的字符常量

A."c"B.C.'W'D."\32a”

17、以下()是不正确的字符串常量

A.'abc'B.C.“0”D.“

18、C语言的整型数据在内存中的存储形式是()

A.原码B.反码C.补码D.ASCII

19、以下()是正确的浮点数

A.e3B..62C.2e4.5D.123

3

20、下列不属于C语言关键字的是()

A.continueB.integerC.staticD.

signed

21、C语言的字符型数据在内存中的存储形式是()

A.原码B.补码C.反码D.ASCII

22、在C语言中,变量所分配的内存空间大小是()

A.由变量的类型决定B.由用户自己决定

C.任意的D.均为两个字节

23、若有定义:inta=2;则正确的赋值表达式是()

A.a-=(a*3)B.double(-l)C.a*3D.

a*4=3

24>语句x=(a=3,b=++a);运行后,x、a、b的值依次为()

A.3,3,4B.4,4,3C.4,4,4D.3,4,3

25、语句a=(3/4)+3%2;运行后,a的值为()

A.0B.1C.2D.3

26、以下四项中,符合C语言语法的语句是()

A.inta+b=c;B.inta=12:b=12:c=12;

C.inta=12,b=12,c=12;D.inta,b=12,floatc=21

27、若有定义:intx,a;则语句x=(a=3,a+l);运行后,x^a

的值依次为()

A.3,3B.4,4C.4,3D.3,4

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

4

()

A.a=8+b+c,a++B.a=3aC.int(12.3%4)

D.a=a+l=c+b

29^若有定义:inta,b;doublex;则以下不符合C语言语

法的表达式是()

A.x%(-3)B.a+=-lC.a=b=2D.

x=a+b

30、若有定义:intx=2,y=3;floati;则以下符合C语言语

法的表达式是()

A.x=x*3=2B.x=(y==l)C.i=float(x)

D.i%(-3)

31、若有定义:intx;则语句x=(2*3)+6%5;运行后,x的

值是()

A.8B.7C.6D.5

32、下面关于C语言变量的叙述中,错误的是()

A.可以用const关键字定义变量B.在C程序中,

SUM和sum是不同的变量

C.变量名必须由字母或下划线组成D.变量的类型

确定了变量的取值范围

33、若有定义:intx=5,y=6;则表达式x=(y==6)的值为()

A.5B.1C.6D.0

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

5

A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价

C.++5与6等价D.0与"A”等价

35、下面叙述中,错误的是()

A.C语言基本的算术运算符不包含模运算符“%”

B.算术运算符的优先级高于关系运算符

C.自加和自减运算符的结合方向是”自右向左”

D.C语言规定在表达式求值时,按其中运算符的优先级先高

后低的次序进行

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

A.强制类型转换运算的优先级高于算术运算B.若a和b

是整型变量,(a+b)++是合法的

C.是不合法的D.

是合法的

37、若有定义:inti=l,j=5;则表达式(++j)*(i--)的值为()

A.1B.OC.6D.7

38、设整型变量a为5,使b不为2的表达式是()

A.b=(++a)/3B.b=6-(-a)C.b=a%2

D.b=a/2

39、若有定义:inta=l,b=2,c=3;贝ij语句++a||++b&&++c;运行

后b的值为()

A.1B.OC.2D.3

40>若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()

6

A.7B.8C.9D.10

41、若有定义:inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()

A.7B.8C.9D.10

42>若有定义:inti=2,j=5;则表达式(i+l,j+l,(++i+(j--))的值

为()

A.8B.6C.7D.5

43、若已定义:inti=3,k;则语句k=(i--)+(i--);运行后k的值

为()

A.4B.5C.6D.7

44、C语言的运算符按运算对象的个数可以分为()

A.单目运算符一种B.单目和双目运算符

C.单目、双目和三目运算符D.单目、双目、三目和

四目运算符

45、若已定义:floatm;拟从键盘输入135.78这一数据给变

量m,则应选用的语句是()

A.scanf(u%5.2r,&m);B.scanf("%3.2P,&m);

C.scanf(“%6.2r‘,&m);D.scanf(t4%6r,&m);

46>已知doublea;使用scanf()函数输入一个数值给变量a,

正确的函数调用是()

A.scanf(“%ld”,&a);B.scanf(t4%ir,&a);

C.scanf(“%c”,&a);D.scanf(“%u”,&a);

47>已知chara;使用scanf()函数输入一个字符给变量a,不

7

正确的函数调用是()

A.scanf(“%d”,&a);B.scanf(t4%ir,&a);

C.scanf(“%c”,&a);D.scanf("%u”,&a);

48>putchar。函数的功能是向终端输出()

A.多个字符B.一个字符C.一个实型变量

值D.一个整型变量表达式

49、以下程序段运行后的输出结果是()

intk=ll;

printf(ttk=%d,k=%o,k=%x\n,,,k,k,k);

A.k=ll,k=13,k=cB.k=ll,k=12,k=13

C.k=ll,k=13,k=bD.k=ll,k=13,k=a

50、若有定义:intx=l234,y=l23,z=l2;贝ll语句

printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为()

A.123412312B.12341234123412341231231231212

C.1234+1234+1234D.1234+123+12

51、已有如下定义和输入语句,

inta;charcl,c2;

scanf(M%d%c%cH,&a,&cl,&c2);

若要求a>cl、c2的值分别为10、A和B,正确的数据

输入是O

A.10ABB.10ABC.10ABD.

10AB

8

52、以下程序段的运行结果是()

inta=O,b=O,c=O;

if(a&&++b)

c++;

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

A.0,0B.1,2C.2,2D.1,0

53、以下程序的运行结果是()

voidmainO

(

inta=65;

charc='A';

printf("%x,%d”,b,c);

)

A.65,aB.41,aC.65,65D.41,65

54、若已定义:inta=5;floatb=63.72;以下语句中能输出正确

值的是()

A.printfft%d%d,,,a,b);B.pnntf(t4%d%2r,a,b);

C.printf(t4%2f%2F,a,b);D.printf(u%2f%d,,,a,b);

55、运行以下程序段时编译出错,其原因是()

charcl=,8\c2=,2008,;

printf(n%c,%d\nH,cl,c2);

A.c2是字符变量,只能赋以字符常量,不能赋以字符串常

9

B.字符串要用“2008”表示,而'2008'不是字符串表示

C.'2008’只能赋值给字符数组

D.字符变量不能用%~格式输出

56、若已定义:inta=3,b=15,c;则语句c=a>b;运行后c的值

为()

A.1B.0C.tD.f

57、在C语言中,判定逻辑值为“真”的最正确的叙述是()

A.1B.非0的数C.大于0的数D.

非0的整数

58、若已定义:inta=-36,b=-30,c;则语句c=a〈b;运行后c的

值为()

A.1B.tC.0D.f

59、能正确表示数学关系式800>=y>=500的C语言表达式

为()

A.(y<=800)&&(y>=500)B.(y<=800)

AND(y>=500)

C.800>=y>=500D.(y<=800)

&(y>=500)

60>若有定义:intx=3,y=4;则表达式!x||y的值为()

A.1B.0C.3D.4

61、若有定义:inti=7,j=8;则表达式i>=j||ivj的值为()

10

A.1B.变量i的值C.0D.变量j的

62、若希望当a的值为奇数时,表达式的值为“真”,a的值

为偶数时,表达式的值为“假"。则不能满足要求的表达式是

A.a%2==lB.!(a%2==0)C.!(a%2)

D.a%2

63、若有定义:intx=3,y=4,z=5;则值为0的表达式是()

A.'x'&&yB.x<=y

C.x||y+z&&y-zD.!((x<y)&&!z||l)

64>若有定义:inta=5,b=2,c=l;则表达式a-b<c||b==c的值

是()

A.0B.1C.3D.-1

65、C语言中,能正确表示条件10<x<20的逻辑表达式是()

A.10<x<20B.x>10||x<20C.x>10&&<20

D.(x>10)&&(x<20)

66、以下运算符中优先级最低的是()

A.«B.&C.»D.|

67>已知doublea=5.2;则正确的赋值表达式是()

A.a+=a-=(a=4)*(a=3)B.a=a*3=2

C.a%3D.a=double(-2)

68>已知chara=,R,;则正确的赋值表达式是()

11

A.a=(a++)%4B.a+2=3C.a+=256—

D.a=,\078,

69、已知inta=,R,;则正确的表达式是()

A.a%10B.a=int(3e2)C.2*a=a++D.

a=a+a=a+3

70、设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是()

A.x*=y-4B.x*=yC.x=y+4D.x+=y

71、若有定义:floatx=3.5,intz=8;则表达式x+z%3/4的值为

()

A.3o75B.3.5C.3D.4

72>设有语句intx=3,y=3,a=l,b=2;表达式(x=a>b)&&

(y=b>a)的值是()

A.8B.1C.5D.O

73、若有定义:inta=2,b=3;floatx=3.5,y=2.5;

则表达式(float)(a+b)/2+(int)x%(int)y的值是()

A.3.5B.3.0C.2.5D.2.0

74>若有定义:intb=7;floata=2.5,c=4.7;则表达式

a+(b/2*(int)(a+c)/2)%4的值是()

A.2.5B.3.5C.4.5D.5.5

75、若有定义:inta=6,b=2;charcl=,a\c2=,b,;贝ij表达式

a+b%5+c2-cl的值是()

A.7B.8C.9D.表达式错误

12

76、在下列运算符中,优先级最高的运算符是()

A.<=B.!=C.!D.||

77、设有定义:charc;floatf;inti;unsignedu;doubled;下歹(J

各表达式的类型分别是()

1.u+92.D!=f&&(i+2)3.8.2*i+c

A.1.unsigned,2.int,3.double

B.1.double,2.double,3.double

C.,2.double,3.char

D.1.unsigned,2.double,3.int

控制结构

78、以下程序段运行时,若从键盘输入10,则输出结果是()

inta;

scanf(w%dw,&a);

if(a++>10)

printf(w%d\n,,,a);

else

printf(tt%d\n,,,++a);

A.2B.11C.3D.12

79、以下程序的运行结果是()

13

voidmainQ

intx,y=l,z;

z=-l;

if(z==O)

z=-z;

else

x=y>0?3:5;

printf(w%d\nw,x);

)

A.-1B.3C.1D.5

80、对于整型变量x,下属if语句()与赋值语句:

x=x%2==0?l:0;不等价。

A.if(x%2!=0)x=O;elsex=l;B.if(x%2)x=l;elsex=0;

C.if(x%2==0)x=l;elsex=0;D.if(x%2==l)x=0;else

x=l;

81、以下程序段运行的结果是()

inta,b,c,x;

a=b=c=0;x=15;

if(!a)x—;

elseif(b);

if(c)x=3;

14

else

x+=4;

printf(H%d\nH,x);

A.15B.17C.18D.19

82若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c

的值分别为O

if(a<b)

{c=a;a=b;b=c;}

A.a=l,b=2,c=3

B.a=2,b=3,c=l

C.a=2,b=3,c=3

D.a=2,b=l,c=l

83、以下程序段运行后变量a的值为()

intx=6,y=5;

inta;

a=(~x==y++)?x:y+1

A.0B.1C.6D.5

84、以下程序的运行结果是()

voidmain()

(

intn=,e,;

switch(n-)

15

defalut:printf(Merror");

case'a':

case'b':printf("good'');break;

case<c,:printf(<<passM);

cased:printf("warn'');

)

)

A.errorB.goodC.errorgoodD.warn

85、以下程序的运行结果是()

voidmainO

(

intn='c';

switch(n++)

(

defalut:printf("eiror");

case'a':

case'b':printf(“good");break;

case'c':printf(“pass");

cased:printf("warii");

)

)

16

A.passB.warnC.passwarnD.error

86、以下程序的运行结果是()

voidmainO

(

intn=5;

if(n++>6)

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

else

printf(u%d\n,,,++n);

)

A.4B.5C.6D.7

87、下面关于switch语句的叙述中,错误的是()

A.case后面的表达式可以是关系表达式

B.switch语句是多分支选择语句

C.每一个case后面的值必须互不相同,否则会出现矛盾的

现象

D.在执行一个case分支后,可用一个break语句使流程跳

出switch语句

88、若有定义:inta=l,b=2,c=3;则以下程序段运行后c的值

为()

if(a>b)

c=a*b;

else

c=a-b;

A.2B.0C.1D.-1

89、若有定义:intx;以下不会产生死循环的是()

A.for(;(x=getchar())!=,\n,;);B.while(l){x++;}

C.for(i=10;;i++);D.for(;;x+=l);

90>在循环语句的循环体中,break语句的作用是()

A.暂停程序的运行B.结束本次循环

C.继续执行break语句之后的循环体各语句

D.提前结束循环,接着执行该循环后续的语句

91、以下程序段运行后,循环体中的“count+=2;”语句运行

的次数为()

inti,j,cuont=0;

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

(

count+=2;

printf(t4%d^^,count);

)

A.4次B.10次C.16次D.20次

92、在c语言中while循环和do-while循环的主要区别是()

A.do-while循环体内可以使用break语句,while循环体内

不能使用break语句

B.do-while的循环体至少无条件执行一次,while的循环体

不是

C.do-while循环体可以使用continue语句,while循环体内

不能使用continue语句

D.while的循环体至少无条件执行一次,do-while的循环体

不是

93、以下程序段运行后,循环体运行的次数为()

inti=0,x;

for(;i<10;i++)x=x+i;

A.10B.0C.1D.无限

94、以下程序段运行后变量n的值为()

inti=l,n=l;

for(;i<3;i++)

{continue;n=n+i;}

A.4B.3C.2D.1

95、有以下程序:

voidmain()

(

inti;

for(i=0;i<3;i++)

switch(i)

19

casel:printf(tt%d,,,i);

case2:printf(w%d,,,i);

case3:printf("%d”,i);

)

)

执行后输出的结果是()

A.11122B.01222C.013020D.120

96、以下程序的运行结果是()

voidmainO

(

intsum=0,item=0;

while(item<5)

(

item++;

sum+=item;

if(sum>=6)

break;

)

)

A.10B.15C.6D.7

97、以下程序的运行结果是()

20

voinmainQ

intsum=0,item=0;

while(item<5)

(

item++;

if(item==2)

continue;

sum+=item;

)

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

)

A.10B.13C.15D.1

98、以下程序段执行后变量sum的值为()

inti,j=l,sum=0;

for(i=l,iv=3,i++)

(

sum+=j;

j++;

)

A.5B.3C.6D.4

99、以下程序的运行结果是()

21

#include<studio.h>

mainO

(

inty=10;

do

{y-;}

while(-y);

printf(H%d\nH,y-);

)

A.1B.2C.-1D.0

数组

100、C语言中数组元素下标的数据类型是()

A.实型常量B.整型常量或整型表达式

C.任何类型的表达式D.字符型常量

101、下列数组定义中,正确的是()

A.inta[10|;

B.intn=10,a[n];

C.intN=10;inta[N];

D.inta[n];

102、若已定义:inta[13];则不能正确引用a数组的元素的

是()

22

A.a[0]B.a[10]C.a[10+3]D.a[13-5]

103、若有定义:inta[3]={0,l,2};则a[l]的值为()

A.0B.1C.2D.3

104、若有定义:inta[5]={l,2,3,4,5};

则语句a[l]=a[2]+a[2+2]-a[3-l];运行后a[l]的值为()

A.6B.5C.1D.2

105、以下合法的数组定义是()

A.inta[]=wstringM;B.inta[5]={0,l,2,3,4,5};

C.chara[]={0,l,2,3,4,5);D.chars={<<stringM);

106、若有如下程序段:

chars[10];

s="abcd";

printf(“%s\n”,s);

则()。

A.执行时输出:abedB.执行时输出:a

C.执行时输出:abD.编译不通过

107、F面程序段的运行结果是()

inti=0,a[]={7,5,7,3,8,3};

do{

a[i]+=2;

}while(a[++i]>5);

for(i=0;i<6;i++)

23

printf(n%dH,a[i]);

A.9795105

B.9593103

C.957383

D.757383

108、下面程序段的运行结果是()

inti=0,a[]={l,2,3,4,5);

do{

a[i]+=10;

}while(a[++i]>2);

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

printf(n%dH,a[i]);

A.112345B.12345C.1112131415

D.1112345

109、西面关于数组的叙述中,正确的是()

A.数组必须先定义,然后使用

B.定义数组时,可不加类型说明符

C.定义数组后,可通过赋值运算符“=”对该数组名直接赋

D.在数据类型中,数组属于基本类型

110、一下程序段的运行结果是()

inti=0,a[]={6,5,3,7};

24

do

a[i]++;

}while(a[i]<4);

for(i=0;i<4;i++)printf(H%dn,a[i]);

A.6537B.7563C.7537D.5673

111、有如下程序段:

intt[][3]={l,2,3,4,5,6,7,8,9,10,ll,12);

printf(,,%d\n,,,t[2][l]);

则执行该程序段后输出结果是()

A.8B.7C.4D.2

112、以下程序段运行后s的值是()

inta[3][3]={l,2,3,l,2,3,l,2,3);

inti,j,s=l;

for(i=0;i<3;i++)

for(j=i;j<3;j++)s*=a[i][j];

A.18B.108C.2D.12

113、以下不能对二维数组arr进行正确初始化的语句是()

A.intarr[2][3]={0};B.int

arr[][3]={l,2,3,4,5);

C.intarr[2H3]={{l,2},{3,4},{5,6}};D.int

arr[2][3]={{l},{3,4,5});

25

114、若有定义:血打[3][4]={{1,2},{0},{1,2,3}};则2口][1]的值

为()

A.0B.{1,2}C.1D.3

115、若有定义:inta[3][3];则表达式&a[2][l]-a的值为()

A.7B.8C.6D.9

116、若有定义:inti=O,x=O;int2[3][3]={1,2,3,4,5,6,7,8,9};则

以下程序段运行后x的值为()

for(;i<3;i++)x+=a[i][2-i];

A.0B.12C.15D.18

117、若有定义inta[2][3];则对数组元素的非法引用的是()

A.a[0][l/2]B.C.a[4-4][0]D.

a[0][3]

118、以下数组定义中,正确的是()

A.inta[2]n={l,2,3,4,5};B.inta[][2]={{0},{}};

C.inta[2][2]={{l,2},{3}};D.inta[川={1,2,3,4};

119、若有定义inta[][3]={l,2,3,4,5,6,7,8,9};则表达式

sizeof(a)/sizeof(a[0])的值为()

A.3B.4C.5D.9

120、以下程序段运行后s的值是()

inta[3][3]={l,2,3,4,5,l,2,3,4);

inti,j,s=l;

for(i=0;i<3;i++)

26

for(j=i+l;j<3;j++)

s*=a[i][j];

A.6B.120C.24D.480

121、设已定义:inta[H4]={0,0};则下列描述错误的是()

A.数组a的每个元素都可得到初值0B.二维数组a

的第一维大小为1

C.数组a的行数为1

D.只有元素a[0][0]和可得到初值0,其余元素均得

不到初值0

,,,,

122、设已定义:charstrl[10],str2[10]=Fujian;则能将字

符串"Fujian”赋给数组str1的正确语句是()

A.strl="Fujian”B.strcpy(strl,str2);C.

strcpy(str2,strl);D.strl=str2;

123、有如下定义:charstr[3][2]={卬巧;则语

句:printf(”%s”,str[0]);的输出结果是()

A.abB.abcefC.abc\0D.abc

124>设有如下数组定义:charstr[8]={"Fujian”};则分配给

数组str的存储空间是()字节

A.6B.7C.8D.9

125>若有定义:chara[]=,,abcdef,;charb[]="xyz";贝以下

程序段运行后屏幕输出为()

strcpy(a,b);

27

printf(H%cH,a[2]);

A.cB.zC.\0D.d

126、以下程序段运行后屏幕输出为()

chara[]=,,abc\OmisH;

printf(H%dH,strlen(a));

A.5B.8C.3D.4

127、若有定义:inta=2;则语句a=strcmp(Hmissn,HmissH);

运行后a的值为()

A.1B.0C.-1D.2

128、以下对C语言字符数组描述中,正确的是()

A.可以用length函数计算字符数组中字符串的长度

B.可以在赋值语句中通过赋值运算符『”对字符数组整体

赋值

C.存放在字符数组中的字符串,以W作为该字符串结束标

D.字符数组只能存放字符串,不能存放字符

129、以下程序段运行后屏幕输出为()

charstr[80];

strcpy(str,HhelloH);

printf("%dH,strlen(str));

A.5B.6C.7D.80

130、若有定义:charstrl[6]=nabcdmH,*ps,*str2=HabcdefH;

28

则()是正确的

A.strcpy(strl,str2);B.表达式strcmp(strl,str2)的值

大于0

C.strl=str2;D.表达式strlen(strl)的值为6

131、已有定义:charstrl[15]={"university"},str2[15];则以

下语句中正确的是O

A.str2=strl;B.str2="college”;C.

scanf(“%s”,&str2);D.printf(“%s”,strl);

132、设已定义:charsl[20]=,,Youare”,s2[9]="welcome!”;

若要形成字符串"Youarewelcome!”,正确的语句是()

A.strcat(sl,s2);B.strcpy(sl,s2);C.sl+s2;

D.sl&s2

函数

133、在C语言中,数组名作为函数调用的实参时,传递给

形参的是()

A.数组元素的个数B.数组的第一个元素值

C.数组中全部元素的值D.数组的首地址

134、以下程序的运行结果是()

intfun(intarray[4][4])

intj;

29

for(j=0;j<4;j++)printf(H%2dn,array[2][j]);

printf(H\n”);

)

rnainQ

(

inta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0);

fun(a);

)

A.2005B.1004C.0120D.045

0

135、C语言允许函数值类型缺省定义,此时该函数值隐含

的类型是()

A.float型B.long型C.int型D.

double型

136、以下程序运行后屏幕输出为()

#include<studio.h>

intf(intx,inty)

(

return(x+y);

)

mainQ

30

inta=2,b=3,c;

c=f(a,b);

printf("%d+%d=%d\nn,a,b,c);

)

A.0B.2+3=5C.2+3=0D.3+2=5

137、以下程序运行后屏幕输出为()

#include<stdio.h>

inta=2,b=3;

intmax(inta,intb)

(

intc;

c=a>b?a:b;

return(c);

)

main()

(

inta=4;

printf(H%dM,max(a,b));

)

A.3,2B.2C.3D.4

138、以下程序的运行结果是()

fun(inti)

31

inta=2;

a=i++;

printf(H%dH,a);

mainO

(

inta=5,c=3;

fun(c);

printf(H%dH,a);

)

A.45B.35C.44D.33

139、若有如下函数定义:

intfun()

(

staticintk=O;

return++k;

)

以下程序段运行后屏幕输出为()

inti;

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

printf(H%dH,fun());

32

A.0B.1C.5D.6

140、下面程序的输出结果是:()

#include<stdio.h>

intglobal=100;

fun()

{

intglobal=5;

return++global;

)

voidmainO

(

printf(H%d\nH,funO);

)

A.100B.101C.5D.6

141、下列关于C语言函数的描述中,正确的是()

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用都可以嵌套

D.函数的定义和函数的调用都不可以嵌套

142、以下程序的运行结果是()

fun(intx,inty)

33

intz;

z=(x<y)?(x+y):(x-y);

return(z);

)

mainO

{

inta=10,b=6;

printf(H%d\nH,fun(a,b));

)

A.4B.6C.10D.6

143、以下程序运行结果是()

voidmainO

(

intmin(floatx,floaty);

floata=-7.9,b=-6.3;

intc;

c=min(a,b);

printf(H%d\nH,c);

)

intmin(floatx,floaty)

floatz;

34

if(x>y)z=y;

elsez=x;

return(z);

)

A.-7.9B.-7C.-6.3D.-6

144、以下程序的运行结果是()

^defineM(a,b)a*b

mainQ

(

intx=3,y=2,sl,s2;

sl=M(x+y,x-y);

s2=M(x-y,x+y);

printf(H%d,%d\nn,sl,s2);

)

A.-1,7B.5,5C.7,-1D.5,-5

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

A."#definePRICE=30”定义了与30等价的符号常量

PRICE

B.预编译处理命令行都必须以“#"开头

C.程序中使用带参的宏时,参数类型要与宏定义时一致

D.宏名只能包含大写字母和数字字符

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

35

A.宏展开不占用运行空间,只占用编译时间

B.预编译处理命令行必须以分号结束

C.一个源程序只能有一个预编译处理命令行

D.使用带参数的宏定义时,应该说明每个参数的数据类型

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

A.宏展开不占用运行时间,只占用编译时间B.宏

名无类型

C.宏名必须用大写字母表示D.预

处理命令行都必须以#号开始

148、若有定义:#definePI3,在表达式PI*2*2的值为()

A.12B.4C.3D.不确定

149、以下程序运行后,屏幕输出为()

//defineMIN(a,b)((a)<(b)?(a):(b))

mainO

(

intx=2,y=3,z;

z=2*MIN(x,y);

printf(H%du,z);

)

A.2B.3C.4D.6

150>下列#include命令中,正确的是()

A.#inclue[string.h]B.#include{string.h}

36

C.#include(string.h)D.#include<string.h>

151、下面程序的输出结果是()

#include<stdio.h>

#defineONE1

#defineTWOONE+1

#defineTHREETWO+1

voidmain()

(

printf(H%d\nH,THREE-ONE);

)

A.产生错误B.1C.2D.3

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

A.预处理命令行必须位于C源程序的起始位置

B.在C语言中,预处理命令行都以“#”开头

C.每个C程序必须在开头包含预处理命令行:

#include<stdio.h>

D.C语言的预处理只能实现宏定义和条件编译的功能

153、以下程序的运行结果是()

#defineADD(x)x+x

main()

intm=l,n=2,k;

37

k=ADD(m+n)*3;

printf(H%dH,k);

)

A.9B.10C.12D.18

154、下面程序的运行结果是()

^defineM10

^defineS(x)x*x

#defineF(x)(x*x)

mainO

(

intnl,n2;

nl=1000/S(M);

n2=1000/F(M);

printf(H%d,%d\nn,nl,n2);

)

A.10,10B.1000,10C.10,1000D.

1000,1000

指针

155、设有以下语句,则()是对a数组元素的不正确引用,

其中0<=i<10o

inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;

38

A.a[p-a]B.*(&a[i])C.p[i]D.

*(*(a+i))

156、若有定义int*pl,*p2;则指针变量pl、p2不能进行运

算的是O

A.<B.=C.+D.-

157、以下关于指针概念的叙述中,错误的是()

A.一个指针变量只能指向同一类型的变量B.一个变

量的地址称为该变量的指针

C.两个同类型的指针变量可以作加减运算

D.任何指针变量都可以与空指针NULL进行比较

158、以下程序段运行后*(p+3)的值为()

chara[]="good”;

char*p;

P=a;

A.dB.,(rc.存放d的地址D「(r

159、以下程序段运行后*(++p)的值为()

chara[5]=,,work?,;

char*p;

P=a;

A.4w5B.存放W的地址C.QD.存

放,o,的地址

160、若有定义:int*p,a=4;p=&a;则以下均代表地址的是()

39

A.a,pB.&a,pC.&a,*pD.a,*p

161、若有说明语句:double*p,a;则能通过scanf语句正确

给输入项读入数据的程序段是O

A.*p=&a;scanf(<<%lf,,p);B.

*p=&a;scanf(tt%lf,,*p);

C.p=&a,scanf(tt%lf,,*p);D.p=&a;scanf(<t%If,,p);

162>若已定义:intx=12;对①int*p=&x;和②*p=x;这两条

语句的正确理解是()

A.语句①是在对指针变量p定义时初始化,使p指向x;而

语句②是将变量x的值赋给指针变量p所指向的变量

B.语句①和②中的*p含义相同,都表示给指针变量赋值

C.语句①是在对指针变量p定义时初始化,使p指向x;而

语句②是将变量x的值赋给指针变量p

D.语句①和②的执行结果都是把变量x的地址赋给指针变

量P

163、下面语句正确的是()

A.int*p;*p=20B.char

*s=,,abcdef,;printf(tt%s\n,,,s);

C.charstr[]=,,abcd,,;str++;D.char

str[]={4a,,,b,,,c,};printf(u%s,,,str);

164、若有定义inta[2][3],*p=a;则以下不能表示数组元素

的是()

40

A.*(a[l]+2)B.*(p[l]+2)C.p[5]D.

*(p+5)

165>若已定义:int2=5右;且p=&a;则以下表示中不正确的

是()

A.&(*p)==&aB.*(&a)==aC.&(*p)==p

D.*(p++)==a++

166、若有以下程序段,其中0v=i<4,0<=j<3,则不能正确

访问a数组元素的是()

inti,j,(*p)[3];

inta[][3]={l,2,3,4,5,6,7,8,9,10,ll,12);

P=a;

A.*(*(a+i)+j)B.C.r(p+i))[j]

D.p[i]+j

167、以下程序段的运行结果是()

intx[]={2,3,4,5,6,7},*p=x;

inti,s=O;

for(i=l;i<6;i++)s+=p[i++];

printf(H%du,s);

A.12B.15C.25D.27

168、下面程序的运行结果是()

main()

41

intx=36,y=63;

int*p,*q,*t;

p=&x;q=&y;

t=p;

p=q;

q=t;

printf(n%d,%d\nn,x,y);

)

A.36,36B.63,63C.36,63D.63,36

169、以下程序段运行后x的值为()

inta[]={l,2,3,4,5,6,7};

inti,x,*p;

x=l;

p=&a[2];

for(i=0;i<3;i++)

x*=*(p+i);

A.不确定B.24C.120D.60

170、以下程序段运行后x的值为()

inta[]={l,2,3},b[]={4,2,5);

int*p,*q;

inti,x;

p=a;q=b;

42

for(i=0;i<3;i++)

if(*(p+i)==*(q+i))

x=*(p+i)*2;

A.2B.4C.5D.不确定

171、以下程序运行结果是()

mainO

(

chara[]="1357”,*p;

for(p=a;p<a+4;p++)

printf(H%sH,p);

)

A.1357B.1357357577C.7531D.

7531531311

172、下面程序的输出结果是()

#include<stdio.h>

voidmain()

(

inti;

char*s=Habc";

for(i=0;i<3;i++)

printf(H%s\nM,s+i);

43

A.abc

be

c

B.c

be

abc

C.abc

c

be

D.a

ab

abc

173、下面程序的输出结果是()

#include<stdio.h>

voidmain()

(

char*str=n12345H,*ps=str+4;

printf(n%c\nn,ps[-4]);

)

A.1B.2C.3D.错误

44

174、以下程序执行时,输入12345V回车〉,输出为()

#include<stdio.h>

#defineN5

voidmain()

(

inta[NJ;

int*p=a;

whi!e(p<a+N)

scanf("%dH,p++);

while(p>a)

printf(,,%d,,,*(-p));

)

A.54321B.12345C.23451D.43

215

175.以下程序段的运行结果是()

intx[]={2,3,4,5,6,7}/p=x;

inti,s=0;

for(i=l;i<6;i+=2)s+=*(p+i);3+5+7

printf(H%dH,s);

A.27B.25C.12D.15

176.以下程序运行结果()

main()

45

inta[]={9,8,7,6,5,4},*p,*q,i;

p=a;q=p+5;

for(i=0;i<6;i++)

printf(n%d%dn,*(p+

温馨提示

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

评论

0/150

提交评论