就业数据资源平台
当前位置:首页 > C语言程序设计
2011年9月计算机等考二级C语言冲刺试题及答案4

 一、 单项选择题(共30分,每题1分)

  1.在PC机中,‘\n’在内存占用的字节数是( )


  A.1


  B.2


  C. 3


  D.4


  2.字符串“ABC”在内存占用的字节数是( )


  A.3


  B.4


  C.6


  D.8


  3.在C语言中,合法的长整型常数是( )


  A.0L


  B.4962710


  C.0.054838743


  D.2.1869 e10


  4.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次是( )


  A.3,3,2


  B.3,2,2


  C.3,2,3


  D.2,3,2


  5.设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是( )


  A.3


  B.0


  C.9


  D.-12


  6.设int k=32767;执行k=k+1;后k值为( )


  A.32768


  B.-32768


  C.0


  D.-1


  7.下列正确的标识符是( )


  A.hot_do


  B.a+b


  C.test!


  D.%y


  8.设int a=5,使b不为2的表达式是( )


  A.b=6-(--a)


  B.b=a%2


  C.b=a/2


  D.b=a>3?2:1


  9.执行x=(6*7%8+9)/5;后,x的值为( )


  A.1


  B.2


  C.3


  D.4


  10.执行语句x=(a=3,b=a--)后,x,a,b的值依次为( )


  A.3,2,3


  B.2,3,2


  C.3,3,2


  D.3,2,2


  11.设a=-3;执行(a>0)?a:-a;后,a的值为( )


  A.3


  B.1


  C.0


  D.-3


  12.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为( )


  A.7


  B.8


  C.9


  D.2


  13.下面正确的字符常量是( )


  A.”c”


  B.’\\’’


  C.’W’


  D. ‘’


  14.若有代数式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/c*3


  15.在C语言中,要求运算数必须是整型的运算符是( )


  A./


  B.++


  C.!=


  D.%


16.若有说明语句:char c=’\72’;则变量c ( )

  A.包含1个字符


  B.包含2个字符


  C.包含3个字符


  D.说明不合法,c值不确定


  17.sizeof (float)是( )


  A.一个双精度型表达式


  B.一个整型表达式


  C.一种函数调用


  D 一个不合法的表达式


  18.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是( )


  A.int


  B.folat


  C.double


  D.不确定


  19.若有定义int a[10],*p=a;,则p+5表示( )


  A.元素a[5]的地址


  B.元素a[5]的值


  C.元素a[6]的地址


  D.元素a[6]的值


  20.以下与int *q[5];等价的定义语句是( )


  A.int q[5];


  B.int * q


  C.int (q[5])


  D.int (*q)[5]


  21.若有定义int a[5],*p=a;则对a数组元素地址的正确引用是( )


  A.P+5


  B.*a+1


  C.&a+1


  D &a[0]


  22.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是( )


  A.auto


  B.static


  C.extern


  D.register


  23.若用数组名作为函数调用的实参,传递给形参的是( )


  A.数组的首地址


  B.数组第一个元素的值


  C.数组中全部元素的值


  D .数组元素的个数


  24.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )


  A.float


  B.int


  C.long


  D.double


  25.以下对二维数组a的正确说明是( )


  A.int a[3][]


  B.float a(3,4)


  C.double a[1][4]


  D.float a(3)(4)


  26.若有说明int a[3][4];则对a数组元素的正确引用是(A )


  A.a[2][4]


  B.a[1,3]


  C.a[1+1][0]


  D.a(2)(2)


  26.语句while(!E);中的表达式!E等价于( )


  A.E= =0


  B.E!=1


  C.E!=0


  D.E= =1


  27.C语言中while和do—while循环的主要区别是( )


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


  B. While的循环控制条件比do—while的循环控制条件严格


  C. do—while允许从外部转到循环体内


  D. do—while循环体不能是复合语句


  28.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else子句总与( )配对


  A.缩排位置相同的if


  B.其之前最近的if


  C.其之后最近的if


  D.同一行上的if


  29.判断char型变量ch是否为大写字母的正确表达式是( )


  A.’A’<=ch<=’Z’


  B.(ch>=’A’)&(ch<=’Z’)


  C.(ch>=’A’)&&(ch<=’Z’


  D.(‘A’<=ch)AND (‘Z’>=ch)


  30.以下能正确定义整型变量a、b、c并为其赋初值5的语句是( )


  A.int a=b=c=5;


  B.int a,c, c=5;


  C.a=5,b=5,c=5;


二、 填空(20分,每空1分)

  1.C语言中的实型变量分为两种类型,它们是( )和( )。


  2.C语言中的标识符只能由三种字符组成,它们是( )、( )和( )。


  3.若有定义:char c=’\010’;则变量c中包含的字符个数是( )。


  4.C语言提供的三种逻辑运算符是( )、( )、( )。


  5.设y为int型变量,请写出描述“y是奇数”的表达式( )。


  6.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式( )。


  7.在C语言中,二维数组元素在内存中的存放顺序是( )。


  8.若有定义:double x[3][5];则x数组中行下标的下限为( ),列小标的上限为( )。


  9.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是( ),a[2][2]得到的初值是( )。


  10.若自定义函数要求返回一个值,则应在该函数体中有一条( )语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符( )。


  11.函数中的形参和调用时的实参都是数组名时,传递方式为( ),都是变量时,传递方式为( )。


  三、 读程序(30分)


  1. main()


  {int a=2,b=3,c;


  c=a;


  if (a>b) c=1;


  else if (a= =b) c=0;


  else c=-1;


  printf (“%d\n”,c);} 运行结果:


  2. main()


  {int a=2,b=7,c=5;


  switch (a>0)


  { case 1: swithch (b<0)


  {case 1:printf(“@”);break;


  case 2:printf(“!”);break;


  }


  case 0: switch (c= =5)


  { case 0:printf(“*”);break;


  case 1:printf(“#”),break;


  default:printf(“#”);break;


  }


  default:printf(“&”); 运行结果:


  } printf (“\n”);


  }


  3.#include


  main()


  { int i;


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


  switch (i%5)


  { case 0:printf(“*”);break;


  case 1:printf(“#”);break;


  default:printf(“\n”);


  case 2:printf (“&”); 运行结果:


  }


  }


  4. main()


  { int i,b,k=0;


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


  {b=i%2;


  while (b-->=0) k++;


  } 运行结果:


  printf (“%d,%d”,k,b);


  }


  5. #include


  main()


  { char ch[7]={“12ab56”};


  int i,s=0;


  for (i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)


  s=s*10+ch[i]-‘0’; 运行结果:


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


  }


  6. main()


  { int a=2,i;


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


  printf (“M”,f(a));


  }


  f(int a)


  { int b=0;static int c=3;


  b++;c++; 运行结果:


  return(a+b+c);


  }


  四、 编写程序(20分)


  1. 从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。


  2. 已有变量定义和函数调用语句:int x=57;isprime(x);函数isprime()用来判断一个整数a是否是素数,若是素数,函数返回1,否则返回0。请编写isprime函数。


  insprime( int a)


  {……}; {……}


参考答案


  一、 单项选择题(共30分,每题1分)


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


  6. B 7. A 8. B 9. B 10. A


  11. D 12. A 13. C 14. C 15. D


  16. A 17. B 18. C 19. A 20. D


  21. D 22. A 23. A 24. B 25. C


  26. A 27. A 28. B 29. C 30. A


  二、 填空(20分,每空1分)


  1. 单精度,双精度


  2. 数字、下划线、英文字母


  3. 1个


  4. 与&&、或||、非!


  5. y%2!=0


  6. x7. 行列


  8. 0,4


  9. 0,8


  10.return,void


  11.地址传送,值传送


  三、 读程序(30分)


  1.-1 2.&


  3.#&


  *


  4.8,-2


  5.1


  6. 7 8 9


  四、 编写程序(20分)


  1.#include


  main()


  {int i,a;


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


  {scanf(“%d”,&a);


  if (a%7= =0) {printf (“%d”,a); break;}


  }


  if (i>10) printf (“not exist”);


  }


  2.insprime(int a)


  {int i;


  for (i=2;i<=a-1;i++)


  if (i%2= =0)return(0); =0)return(0);


  return(1); }

就业数据资源平台