最新福建省计算机二级c语言选择题题库_第1页
最新福建省计算机二级c语言选择题题库_第2页
最新福建省计算机二级c语言选择题题库_第3页
最新福建省计算机二级c语言选择题题库_第4页
最新福建省计算机二级c语言选择题题库_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上  答案试题C 1.  在C语言源程序中,以下叙述正确的是(  )。 A. main函数必须位于文件的开头     B. 每行只能写一条语句     C. 程序中的一个语句可以写成多行 D. 每个语句的最后必须有点号 C 2.  关于C语言的源程序的叙述中,错误的是(  )。 A.&

2、#160;C语言的源程序由函数构成 B. main函数可以书写在自定义函数之后      C. 必须包含有输入语句 D. 一行可以书写多个语句 C 3.  关于C语言数据类型的叙述,正确的是(  )。 A. 枚举类型不是基本类型 B. 数组不是构造类型 C. 变量必须先定义后使用 D. 不允许使用空类型 CP6 4.  C程序中

3、main函数的位置( )。 A. 必须在最开始 B. 必须在系统库函数后面 C. 可以在自定义函数后面 D. 必须在最后 B 5.  C语言的函数体由( )括起来。 A. ( ) B.    C.    D.  /* */ D 6.  关于C语言的叙述中,不正确的是( )。

4、60;A. C程序可由一个或多个函数组成 B. C程序必须包含一个main()函数 C. C程序的基本组成单位是函数 D. 注释说明只能位于一条语句的后面 D 7.  以下叙述不正确的是(  )。 A. C程序的执行总是从main函数开始v B. 一个C源程序必须包含一个main函数 C. C语言程序的基本组成单位是函数 D. 在编译C程序源程序时,可发现注释中的拼写错误 C 8.

5、60; 结构化程序设计的三种基本结构是(  )。 A. 函数结构、分支结构、判断结构 B. 函数结构、嵌套结构、平行结构 C. 顺序结构、分支结构、循环结构 D. 分支结构、循环结构、嵌套结构 C 9.  对于C语言源程序,以下叙述错误的是(  )。 A. 可以有空语句 B. 函数之间是平等的,在一个函数内部不能定义其它函数 C. 程序调试时如果没有提示错误,就能得到正确结果&

6、#160;D. 注释可以出现在语句的前面 DP39 10.  下面关于C语言用户标识符的描述,正确的是(  )。 A. 不区分大小写 B. 用户标识符不能描述常量 C. 类型名也是用户标识符 D. 用户标识符可以作为变量名 D 11.  以下(  )是正确的变量名。 A. 5f B. if C. f.5 D. _f5 D

7、0;12.  以下(  )是正确的常量。 A. E-5 B. 1E5.1 C. 'a12'  D. 32766L D 13.  以下(  )是正确的变量名。 A. a.bee B. -p11 C. int D. p_11 C 14.  以下(  )是正确的字符常量。 A.&

8、#160;"c" B. ' ' ' C. 'W' D. "32a" A P52 15.  以下(  )是不正确的字符串常量。字符常量是一对。字符串常量一对“” A. 'abc' B. "12'12" C. "0" D. " " BP40

9、 16.  以下(  )是错误的整型常量。 A. -0xcdf B. 018 /* 以0开头的是八进制数 C. 0xe D. 011 B 17.  以下(  )是正确的浮点数。 A. e3 B. .62 C. 2e4.5 D. 123 A 18.  若有说明语句:char c='95'

10、; 则变量c包含(  )个字符。 A. 1 B. 2 C. 3 D. 语法错误 A 19.  若有定义:int a=2; 则正确的赋值表达式是(  )。 A. a-=(a*3) B. double(-a) C. a*3 D. a*4=3 C 与23题对比 20.  语句x=(a=3,b=+a);运行后,x、a

11、、b的值依次为(  )。 A. 3,3,4 B. 4,4,3 C. 4,4,4 D. 3,4,3 B 21.  语句a=(3/4)+3%2;运行后,a的值为(  )。 A. 0 B. 1 C. 2 D. 3 A 22.  char型变量存放的是( )。 A. ASCII代码值 B. 字符本

12、身 C. 十进制代码值 D. 十六进制代码值 C与20题对比 23.  若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。 A. 3,3 B. 4,4 C. 4,3 D. 3,4 B 24.  若有定义:int a; 则语句a=(3 * 4)+ 2 % 3;运行后,a的值为( )。

13、 A. 12 B. 14 C. 11 D. 17 A 25.  若有定义:int a,b; double x,则以下不符合C语言语法的表达式是(  )。 A. x%(-3) B. a+=-2 C. a=b=2 D. x=a+b B 26.  若有定义:int x=2,y=3;float i;,则以下符合C语言

14、语法的表达式是(  )。 A. x=x*3=2 B. x=(y=1) C. i=float(x) D. i%(-3) C 27.  设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是(  )。 A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*3 B 28.

15、0; 下面叙述正确的是(  )。 A. 2/3 与 2.0/3.0  等价 B. (int)2.0/3 与 2/3 等价 C. +5 与 6 等价 D. 'A'与"A"等价 A 29.  下面叙述中,错误的是(  )。 A. 其算术运算对象不包含函数 B. %(模

16、运算符)的运算对象只能为整型量 ? C. 算术运算符的结合方向是"自左至右" D. 自加和自减运算符的结合方向是"自右至左" A 30.  下面叙述正确的是(  )。 A. 强制类型转换运算的优先级高于算术运算 B. 若a和b是整型变量,(a+b)+是合法的 C. 'A'*'B' 是不合法的 D. "A"+"B&qu

17、ot;是合法的 B 31.  若有定义:int k,i=2,j=4; 则表达式 k=(+i)*(j-) 的值是( )。 A. 8 B. 12 C. 6 D. 9 C 32.  设整型变量a为5,使b不为2的表达式是( )。 A. b=(+a)/3 B. b=6-(-a) C. b=a%2 D. b=a/2 C 

18、;33.  若有定义:int a=1,b=2,c=3; 则语句 +a|+b&&+c;运行后b的值为( )。 A. 1 B. 0 C. 2 | 一个真,则真。因为(+a)成立,所以(+b)没运行,即输出原值 D. 3 B 34.  若有定义:int i,j;则表达式(i=2,j=5,i+,i+j+)的值是(  )。 A. 7 B. 8 

19、;C. 9 D. 10 B 35.  若有定义:int a,b;则表达式(a=2,b=5,a*2,b+,a+b)的值是(  )。 A. 7 B. 8 a=2 , b=6. C. 9 D. 10 B 36.  若有定义:int m=5,n=3;则表达式(m+1,n+1,(-m)+(n-)的值是(  )。 A. 6 B. 7 m=4

20、 n=3 C. 8 D. 9 B 37.  已知 int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是(  )。 A. scanf("%d",a); B. scanf("%d",&a); C. scanf("%f",&a); D. scanf("%lf",&a); D 38.

21、  已知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是(  )。 A. scanf("%ld",&a); B. scanf("%d",&a); C. scanf("%7.2f",&a); D. scanf("%lf",&a); B 39.  已知 char a;使

22、用scanf()函数输入一个字符给变量a,不正确的函数调用是(  )。 A. scanf("%d",&a); B. scanf("%lf",&a); C. scanf("%c",&a); D. scanf("%u",&a); B 40.  putchar()函数的功能是向终端输出( )。 A. 多个字符 B.

23、0;一个字符 C. 一个实型变量值 D. 一个整型变量表达式 D 41.  getchar()函数的功能是从终端输入( )。 A. 一个整型变量值 B. 一个实型变量值 C. 多个字符 D. 一个字符 D 42.  若有定义:int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出

24、结果为( )。 A.  B.  C. 1234+1234+1234 D. 1234+123+12 A 43.  已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(  )。 A. 10AB B. 10  

25、;A  B C. 10A  B D. 10  AB B 44.  已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为10和20,正确的数据输入是(  )。 A. 10  20 B. 10,20 C. a=10,b=20 D. 10;20 D 

26、;45.  以下程序的运行结果是(  )。void main()  int a=65;  char c='A'  printf("%x,%d",a,c); A. 65,a B. 41,a C. 65,65 D. 41,65 A 46.  下面叙述中,(  )不是结构化程序设计中的三种基本结构之一。

27、60;A. 数据结构 B. 选择结构  C. 循环结构 D. 顺序结构 A 47.  下面叙述中,(  )不是结构化程序设计三种基本结构的共同特点。 A. 先判断后执行 B. 单入口,单出口 C. 程序中没有执行不到的语句 D. 无死循环 AP34 48.  结构化程序设计不包括(  )。 A. 最优化 B.

28、 自顶而下,逐步细化 C. 模块化设计 D. 结构化编码 D 49.  以下运算符中优先级最高的是( )。 A. > B. | C. && D. + A 50.  若有定义:int x=3,y=4;则表达式 !x|y 的值为( )。 A. 1 B. O C. 3 D.

29、 4 A 51.  若有定义:int i=7,j=8;则表达式 i>=j|i<j 的值为( )。 A. 1  i>=j为0 i<j 为1 。 B. 变量i的值 C. 0 D. 变量j的值 C 52.  若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假"。则不能满足要求的表达式是( 

30、60;)。 A. a%2=1 B. !(a%2=0) C. !(a%2) D. a%2 D 53.  若有定义:int x=3,y=4,z=5;则值为0的表达式是(  )。 A. 'x'&&'y' B. x<=y 3 C. x|y+z&&y-z 1 D. !(x<y)&&!z|1) A&

31、#160;54.  若有定义:int a=5,b=2,c=1;则表达式a-b<c|b=c的值是(  )。 A. 0 B. 1 C. 2 D. -1 A 55.  已知double a=5.2; 则正确的赋值表达式是(  )。 A. a+=a-=(a=4)*(a=3) B. a=a*3=2 C. a%3 D. a=

32、double(-3) A 56.  已知char a='R' 则正确的赋值表达式是(  )。 A. a=(a+)%4 B. a+2=3 C. a+=256- D. a='078' A 57.  已知int a='R' 则正确的表达式是(  )。 A. a%10 B. a=int(3e2)&#

33、160;C. 2*a=a+ D. a=a+a=a+3 A 58.  设单精度型变量f、g的值均为2.0,使f为4.0的表达式是( )。 A. f+=g B. f-=g+2 C. f*=g-6 D. f/=g*10 B 59.  若有定义:float x=3.5;int z=8;则表达式 x+z%3/4 的值为( )。 A. 3.75 B.

34、 3.5 C. 3 D. 4 A 60.  若有定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式 (x=a>b)&&(y=c>d) 的值为( )。 A. 0 B. 1 C. 5 D. 6 A 61.  若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(flo

35、at)(a+b)/2+(int)x%(int)y的值是(  )。 A. 3.5 B. 3.0 C. 2.5 D. 2.0 C 62.  若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是(  )。 A. 2.5 B. 3.5 C. 4.5 D. 5.5 C 

36、63.  若有定义:int a=6,b=2;char c1='a',c2='b'则表达式a+b%5+c2-c1的值是(  )。 A. 7 B. 8 C. 9 D. 表达式错误 B 64.  以下的if语句中,x的值一定被重新赋值的是(  )。 A. if(x=y) x+=y; B. if(x>y &&a

37、mp; x!=y );   x+=y; C. if(x!=y)    scanf("%d",&x);  else    scanf("%d",&y);  D. if(x<y)   x+;y+;  B 65.  C语言对if嵌套语句的规定:else总是与( &

38、#160;)配对。 A. 第一个if B. 之前最近的且尚未配对的if C. 缩进位置相同的if D. 之前最近的if B 66.  对于整型变量x,下述if语句(  )与赋值语句:     x=x%2=0?1:0;不等价。 A. if (x%2!=0) x=0; else x=1; B. if (x%2) x=1;&

39、#160;else x=0; C. if (x%2=0) x=1; else x=0; D. if (x%2=1) x=0; else x=1; B 67.  若有定义:int x=1,y=2,z=4;则以下程序段运行后z的值为( )。if(x>y) z=x+y;else z=x-y; A. 3 B. -1 C. 4 D.

40、 不确定  D 68.  若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )。if (a<b) c=a;a=b;b=c; A. a=1,b=2,c=3 B. a=2,b=3,c=1 C. a=2,b=3,c=3 D. a=2,b=1,c=1 D 69.  以下程序段运行后变量a的值为( )。int x=6,y=5;int a;

41、a=(-x=y+)?x:y+1; A. 0 B. 1 C. 6 D. 5 C 70.  以下程序的运行结果是(  )。void main()  int n='e'  switch(n-)      default: printf("error ");   

42、0; case 'a':    case 'b': printf("good "); break;    case 'c': printf("pass ");    case 'd': printf("warn "); 

43、60; A. error B. good C. error good D. warn C 71.  以下程序的运行结果是(  )。void main()  int n='c'  switch(n+)      default: printf("error "); break

44、;    case 'a':    case 'b': printf("good "); break;    case 'c': printf("pass ");    case 'd': printf("warn 

45、");   A. pass B. warn C. pass warn D. error D 72.  以下程序的运行结果是(  )。void main( ) int n=5;  if(n+>=6)    printf("%dn",n);  else   

46、 printf("%dn",+n); A. 4 B. 5 C. 6 D. 7 B 73.  设有整型变量x,下述语句(  )不会出现死循环。 A. for(;x+=1); B. for(;(x=getchar()!='n'); C. while(1) x+; D. for(x=10;x-); B 74. 

47、0;对于整型变量x,与while(!x)等价的是(  )。 A. while(x!=0) B. while(x=0) C. while(x!=1) D. while(x) A 75.  对于整型变量x和y,语句    for(x=0,y=0;(y!=123)&&(x<4);x+) y+;  中的“y+;”被执行(  )。 A. 4次&#

48、160;B. 0次 C. 123次 D. 3次 B 76.  在c语言中while循环和do-while循环的主要区别是( )。 A. do-while循环体内可以使用break语句,while循环体内不能使用break语句 B. do-while的循环体至少无条件执行一次,while的循环体不是 C. do-while循环体内可以使用continue语句,while循环体内不能使用continue语句 D. while的循环

49、体至少无条件执行一次,do-while的循环体不是 B 77.  以下程序段运行后,循环体运行的次数为( )。int i=10,x;for (;i<10;i+) x=x+i; A. 10 B. 0 C. 1 D. 无限 D 78.  以下程序段运行后变量n的值为( )。int i=1,n=1;for (;i<3;i+)    continue;n=n+i;

50、 A. 4 B. 3 C. 2 D. 1 B 79.  以下程序的运行结果是(  )。void main()  int sum = 0, item = 0;  while(item < 5)      item+;    sum

51、60;+= item;    if(sum=5)      break;    printf("%dn",sum); A. 10 B. 15 C. 5 D. 6 C 80.  以下程序的运行结果是(  )。void main()  int sum =

52、 0, item = 0;  while(item < 5)      item+;    sum += item;    if(sum>=6)      break;    printf("%dn",sum); A.

53、 10 B. 15 C. 6 D. 7 B 81.  以下程序的运行结果是(  )。void main()  int sum = 0, item = 0;  while(item < 5)      item+;    if(item 

54、;= 2)      continue;    sum += item;    printf("%dn",sum); A. 10 B. 13 C. 15 D. 1 A 82.  下列数组定义中,正确的是(  )。 A. int a5=0; 

55、B. int a=0 1 2; C. int a5=0; D. int a; A 83.  下列数组定义中,正确的是(  )。 A. int a10; B. int n=10,an; C. int N=10;int aN; D. int n;scanf("%d",&n); int&

56、#160;an; A 84.  已知 int  a10;  则对a数组元素引用不正确的是(  )。  A. a10 B. a3+5 C. a10-10 D. a5 B 85.  若有定义:int a3=0,1,2;则a1的值为( )。 A. 0 B. 1 C. 2 D. 3 A&

57、#160;86.  若有定义:int a5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为( )。 A. 6 B. 5 C. 1 D. 2 D 87.  以下能对一维数组a进行正确初始化的语句是( )。 A. int a5=(0,0,0,0,0); B. int a5=0; C. int a5=1,2,3,4,5,6,7

58、; D. int a=0; D 88.  下面程序段的运行结果是(  )。int i=0,a=3,4,5,4,3;do  ai+; while(a+i<5);for(i=0;i<5;i+)  printf("%d ",ai); A. 4 5 6 5 4 B. 3 4 5 4 3 C.&#

59、160;4 5 5 5 4 D. 4 5 5 4 3  C 89.  下面程序段的运行结果是(  )。int i=0,a=7,5,7,3,8,3;do ai+=2; while(a+i>5);for(i=0;i<6;i+)  printf("%d ",ai); A. 9 7 9 5 10

60、 5 B. 9 5 9 3 10 3 C. 9 5 7 3  8 3 D. 7 5 7 3  8 3  A 90.  下面程序段的运行结果是(  )。int i=0,a=1,2,3,4,5;do   ai+=10;  while(a+i&g

61、t;2);for(i=0;i<5;i+)  printf("%d ",ai); A. 11  2  3  4  5 B. 1   2  3  4  5 C. 11 12 13 14 15 D. 11 12  3 &

62、#160;4  5  C 91.  设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0;for(i=0;i<3;i+)  for(j=0;j<i;j+)     s=s+aij;则执行该程序段后,s的值是(  )。 A. 0 B. 1 C. 2 D. 3 B 92.  有如下定义

63、60;   int a3=1,2,3,4,5,6,7,8;则数组a的行数是(  )。 A. 2 B. 3 C. 4 D. 无法确定的 D 93.  以下数组定义中,正确的是(  )。 A. int a23=1,2,3,4,5,6,7; B. int a=1,2,3,4,5,6,7,8,9; C. int a2=

64、0;1,2,3,4,5,6; D. int a4= 6; A 94.  若有定义:int a34=1,2,0,1,2,3;则a11的值为( )。 A. 0 下标对应的序号是从 0开始的。 B. 1,2 C. 1 D. 3 A 95.  若有定义:int a33;则表达式&a21-a的值为( )。 A. 7 B. 8 C.

65、 6 D. 9 C 96.  若有定义:int i=0,x=0;int a33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为( )。for (;i<3;i+) x+=ai2-i; A. 0 B. 12 C. 15 D. 18 D 97.  若有定义int a23;则对数组元素的非法引用是(  )。 A. 

66、a01/2 B. a11 C. a4-40 D. a03 这里3超出下标范围C 98.  以下数组定义中,正确的是(  )。 A. int a2=1,2,3,4,5; B. int a2=0,; C. int a22=1,2,3; D. int a=1,2,3,4; D 99.  若有定义int a3=1,2,3,4,5,6,7

67、,8,9;则表达式sizeof(a)/sizeof(a0)的值为(  )。 A. 3 B. 4 C. 5 D. 9 A 100.  设有以下变量定义:   char str1="string",str28,*str3,*str4="string"(  )是正确的。 A. strcpy(str1,"China"); B.

68、 str2="China" C. strcpy(*str3,"China"); D. strcpy(str40,"China"); D 101.  有如下定义:   char str6= 'a','b','0','d','e','f'则语句:   printf("%s&qu

69、ot;,str);的输出结果是(  )。 A. ab B. abdef C. ab0 D. ab C 102.  设有如下数组定义:   char str8= "FuJian"则分配给数组str的存储空间是(  )个字节。 A. 6 B. 7 C. 8 D. 9 B 103. &

70、#160;若有定义:char a="abcdef"char b="xyz"则以下程序段运行后屏幕输出为( )。strcpy(a,b);printf("%c",a2); A. c B. z C. 0 D. d C 104.  以下程序段运行后屏幕输出为( )。char a="abc0mis"printf("%d",strlen(a);

71、60;A. 5 B. 8 C. 3 D. 4 B 105.  若有定义:int a=2;则语句a=strcmp("miss","miss");运行后a的值为( )。 A. 1 B. 0 C. -1 D. 2 B 106.  以下程序段运行后屏幕输出为(  )。    c

72、har str="abcd"    printf("%d",strlen(str); A. 4 B. 5 C. 6 D. 7 A 107.  以下程序段运行后屏幕输出为(  )。char str80;strcpy(str,"hello");printf("%d",strlen(str); A. 5 

73、B. 6 C. 7 D. 80 B 108.  若有定义:char str16="abcdm",*ps,*str2="abcdef"(  )是正确的。 A. strcpy(str1,str2);   B. 表达式strcmp(str1,str2)的值大于0 C. str1=str2; D. 表达式strlen(str1)的值为6 A 10

74、9.  设有如下函数定义:int fun(char *str) char *p=str;  while ( *p != '0') p+;   return (p-str);则以下语句执行后的输出结果是(  )。printf("%dn",fun("Student"); A. 7 B. 8 C. 

75、9 D. 10 A 110.  以下程序的运行结果是(  )。int fun(int array44) int j;  for(j=0;j<4;j+) printf("%2d",array2j);  printf("n");main() int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0;  fun(a); A.&

76、#160;2 0 0 5 B. 1 0 0 4 C. 0 1 2 0 D. 0 4 5 0 C 111.  如下fun函数的类型是(  )。fun(float x)double y; int z  y=x * x  z=(int)y   r

77、eturn(z); A. void B. double C. int D. float B 112.  以下程序运行后屏幕输出为( )。#include<stdio.h>int f(int x,int y)  return(x+y);main()  int a=2,b=3,c;  c=f(a,b);  printf("%d+%d=%dn

78、",a,b,c); A. 0 B. 2+3=5  C. 2+3=0 D. 3+2=5 D 113.  以下程序运行后屏幕输出为( )。#include<stdio.h>int a=2,b=3;int max(int a,int b)  int c;          c=a>b?a

79、:b;  return(c);main()  int a=4;  printf("%d",max(a,b); A. 2,3 B. 2 C. 3 D. 4 B 114.  以下程序运行后屏幕输出为( )。#include<stdio.h>void f(int i)  int a=2;  a=i+; 

80、 printf("%d,",a);main()  int a=1,c=3;  f(c);  a=c+;  printf("%d",a); A. 4,3 B. 3,3 C. 4,5 D. 3,5 D 115.  若有如下函数定义:int fun() static int k=0; return

81、0;+k;以下程序段运行后屏幕输出为(  )。int i;for(i=1;i<=5;i+) fun();printf("%d",fun(); A. 0 B. 1 C. 5 D. 6 D 116.  下面程序的输出结果是(  )。#include <stdio.h>int global=100;fun()int global=5;return +glo

82、bal;void main() printf("%dn",fun(); A. 100 B. 101 C. 5 D. 6 B 117.  下列关于C语言函数的描述中,正确的是(  )。 A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用都可以嵌套 D. 函数的定义和函数的调

83、用都不可以嵌套 D 118.  若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是(  )。int z,a=15,b=100;z=MOD(b,a); A. 100 B. 15 C. 11 D. 10 B 119.  以下叙述中,正确的是(  )。 A. “#define PRICE=30”定义了与30等价的符号常量PRICE

84、 B. 预编译处理命令行都必须以“#”开头 C. 宏名只能包含大写字母和数字字符 D. 在程序的一行上可以书写几个有效的宏定义 A 120.  以下叙述中,正确的是(  )。 A. 宏展开不占用运行时间,只占用编译时间 B. 预编译处理命令行必须以分号结束 C. 一个源程序只能有一个预编译处理命令行 D. 使用带参数的宏定义时,应该说明每个参数的数据类型 C 121.  以下的

85、叙述中不正确的是( )。 A. 宏展开不占用运行时间,只占用编译时间 B. 宏名无类型 C. 宏名必须用大写字母表示 D. 预处理命令行都必须以#号开始 A 122.  若有定义:#define PI 3,则表达式PI*2*2的值为( )。 A. 12 B. 4 C. 3 D. 不确定 C 123.  以下程序运行后,屏幕输出为(

86、0;)。#define MIN(a,b) (a)<(b)?(a):(b)main()int x=2,y=3,z;     z=2*MIN(x,y);     printf("%d",z); A. 2 B. 3 C. 4 D. 6 A 124.  下面程序的输出结果是( )。#include <stdio.h

87、>#define SQR(x) (x*x)void main()  int a,b=3;  a=SQR(b+2);  printf("n%d",a); A. 11 B. 25 C. 不定值 D. 产生错误 C 125.  下面程序的输出结果是( )。#include <stdio.h>#define ONE 1

88、#define TWO ONE+1#define THREE TWO+1void main()  printf("%dn",THREE-ONE); A. 产生错误 B. 1 C. 2 D. 3 B 126.  以下叙述中正确的是( )。 A. 预处理命令行必须位于C源程序的起始位置 B. 在C语言中,预处理命令行都以"#"开头&

89、#160;C. 每个C程序必须在开头包含预处理命令行:#include<stdio.h> D. C语言的预处理不能实现宏定义和条件编译的功能 D 127.  设有以下语句,则(  )是对a数组元素的不正确引用,其中0i10。    int a10=0,1,2,3,4,5,6,7,8,9, *p=a; A. ap-a B. *(&ai) C. pi D. *(

90、*(a+i) C 128.  对于基类型相同的两个指针变量之间,不能进行的运算是(  )。 A. < B. = C. + D. - B 129.  执行以下程序段的输出结果是(  )。    int a=10,*p=&a;    printf("%d",+*p); A. 10

91、 B. 11 C. 变量a的地址 D. 变量a的地址 + 1 A 130.  以下程序段运行后*(p+3)的值为( )。char a="good"char *p;p=a; A. 'd' B. '0' C. 存放'd'的地址 D. 'o' C 131.  以下程序段运

92、行后*(+p)的值为( )。char a5="work"char *p;p=a;  A. 'w' B. 存放'w'的地址 C. 'o' D. 存放'o'的地址 B 132.  若有定义:int *p,a=4; p=&a;则以下均代表地址的是( )。 A. a,p B. &a,p 

93、 C. &a,*p D. a,*p D 133.  若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。 A. *p=&a;scanf("%lf",p); B. *p=&a;scanf("%lf",*p); C. p=&a;scanf("%lf",*p); D. p=&a;scanf

94、("%lf",p); A 134.  在16位编译系统上,若有定义int a=10,20,30,*p=&a;当执行p+;后下列叙述错误的是( )。 A. p向高地址移了一个字节 B. p与a+1等价 C. 语句printf("%d",*p);输出20 D. p指向数组元素a1 B 135.  下面语句正确的是( )。 A. int *p; 

95、*p=20;   B. char *s="abcdef" printf("%sn",s); C. char str="abcd" str+; D. char str='a','b','c'printf("%s",str); D 136.  若有以下程序段,且0i4,0j3,则不能正确访问a数组元素的是(

96、0; )。int i,j,(*p)3;int a3=1,2,3,4,5,6,7,8,9,10,11,12;p = a; A. *(*(a+i)+j) B. pij C. (*(p+i)j D. pi+j B 137.  若函数fun的函数头为:   int fun(int i, int j)且函数指针变量p定义如下:   int(*p)(

97、int i, int j);则要使指针p指向函数fun的赋值语句是(  )。 A. p=*fun; B. p=fun; C. p=fun(i,j); D. p=&fun; D 138.  设有如下变量定义:    char aa3='a','b','c','d','e','f'

98、0;   char (*p)3=aa;则以下程序段的运行结果是(  )。    p+;    printf("%c",*p); A. a B. b C. c D. d D 139.  以下程序段运行后x的值为( )。int a=1,2,3,4,5,6,7,8;int i,x,*p;x=1;p=&am

99、p;a2;for(i=0;i<3;i+)x*=*(p+i); A. 不确定 B. 24 C. 120 D. 60 B 140.  以下程序段运行后x的值为( )。  int a=1,2,3,b=4,2,5;int *p,*q;int i,x;p=a; q=b;for(i=0;i<3;i+)if(*(p+i)=*(q+i)x=*(p+i)*2; A. 2 B. 4 C. 6

温馨提示

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

评论

0/150

提交评论