预赛试题 复赛试题 决赛试题

第四届全国ITAT教育工程就业技能大赛预赛试题
C语言

  一、单选题(共60小题,每题1分,共60分)

  1. 执行下列程序中的输出语句后,x的值是______.(知识点3.10)

  main()

  {int x ;

  printf(“%d\n”,(x=5*6,x*2,x+20));}

  A)30 B)60 C)50 D)80

  2. 下列程序的输出结果是_______.(知识点3.8)

  main()

  {int x=1,y=0,z;

  z=(x<=0)&&(y- ->=0);

  printf(“%d %d% d%\n”,z,x,y) ;}

  A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1

  3. 在C语言中,下列选项属于合法的长整型常数的是_______.(知识点3.3)

  A)0L B)1234567 C)0.0234567 D)3.14159e3

  4. 下列选项中属于不正确的赋值语句的是_____. (知识点3.6)

  A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1;

  5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)

  则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________. (知识点4.2)

  A) scanf(“%d %d”,&a,&b);

  x=getchar();y=getchar();

  B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y);

  C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y);

  D) scanf(“%d%d %c %c”, &a, &b,&x,&y);

  6. 下列转义字符不正确的是_______.(知识点3. 5)

  A)'\\' B)'\' C)'\053' D)'\0'

  7. 下列选项可作为C语言赋值语句的是_______.(知识点4.2)

  A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x);

  8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______.(知识点5.2)

  A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b;

  9. 有以下程序:

  main()

  { unsigned int a ;

  int b=-1;

  a=b;

  printf(“%u”,a);}

  该程序运行后的输出结果是_______.(知识点4.5)

  A)-1 B)65535 C)32767 D)-32768

  10. 若x、b、m、n均为int型变量,执行下面语句后b的值为_______.(知识点3.10)

  m=20;n=6;

  x=(- -m= =n++)?- -m:++n;

  b=m++;

  A)11 B)6 C)19 D)18

  11. 有以下程序:

  main()

  { int a=111,b=222;

  printf(“%d\n”,a,b);

  }

  该程序运行后的输出结果是_______.(知识点4.5)

  A)错误信息 B)111 C)222 D)111,222

  12. 以下程序的输出结果是_______.(知识点4.5)

  main()

  { int a=2,c=5;

  printf(“a=%%%d,b=%%%d\n”,a,c);}

  A) a=%2,b=%5 B) a=2,b=5 C) a=%%%d,b=%%%d D) a=%%d,b=%%d

  13. 对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式是_______.(知识点3.8)

  A)f=(f*100+0.5)/100.0 B)f=(f*100+0.5)/100

  C)f=(int)(f*100+0.5)/100.0 D)f=(f/100+0.5)*100

  14. 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行(m=a>b)&&(n=c>d) 后m,n的值为______.(知识点5.2)

  A) 2,2 B) 2,0 C) 0,2 D) 0,0

  15. 语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));的输出结果是______.(知识点7.3)

  A) 9 B) 11 C) 7 D) 8

  16. 有以下程序:

  main( )

  {

  int y=1234;

  printf(“y=%6d”,y);

  printf(“y=%+06d\n”,y);

  }

  该程序的运行结果是______.(知识点4.5)

  A) y= 1234y=001234 B) y= 1234y=+01234

  C) y=1234y=+01234 D) y= 1234y=1234

  17. 语句:printf(“%d”, !9);的输出结果是______.(知识点5.2)

  A) 0 B) 1 C) 有语法错误 ,不能执行 D) -9

  18. 已有定义语句:int x=6,y=4,z=5;执行以下语句后,能正确表示x、y、z值的选项是______.(知识点5.3)

  if(x<y)z=x;x=y ;y=z;

  A) x=4,y=5,z=6 B) x=4,y=6,z=6

  C) x=4,y=5,z=5 D) x=5,y=6,z=4

  19. 下列选项中属于正确的switch语句的是______.(知识点5.4)

  A)switch(1.0) B)swicth(1)

  { case 1.0 :printf(“A\n”); { case 1 :printf(“A\n”);

  case 2.0 :printf(“B\n”); } case 2 :printf(“B\n”);}

  C)switch((int)(1.0+2.5)) D)switch(“a”);

  { case 1 :printf(“A\n”); { case “a” :printf(“A\n”);

  case 1+2 :printf(“B\n”);} case “b” :printf(“B\n”);}

  20. 若k为int型变量,以下语句段执行后的输出结果是______.(知识点5.3)

  k=-3;

  if(k<=0) printf(“####”)

  else printf(“****”);

  A) #### B) **** C) ####**** D) 有语法错误 ,不能执行

  21. 当a=2,b=3,c=4,d=5时, 执行下面一段程序后x的值为_____.(知识点5.3)

  if(a>b)

  if(c<d)x=1 ;

  else

  if(a<c)

  if(b>d)x=2 ;

  else x=3 ;

  else x=4 ;

  else x=5 ;

  A)2 B)3 C)4 D)5

  22. 下列程序的运行结果是________.(知识点6.3)

  main()

  { int y=10;

  do { y- - ;} while(- -y);

  printf(“%d\n”,y- -);}

  A)-1 B)1 C)8 D)0

  23. 下列程序的运行结果是________.(知识点6.5)

  # include <stdio.h>

  main()

  {

  int i ;

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

  { if(i %2)printf(“*”);

  else continue ;

  printf(“#”);

  }

  printf(“$\n”);

  }

  A)*#*#$ B)#*#*#*$ C)*#*#*#$ D)***#$

  24. 若x是int型变量,且有下面的程序片段: (知识点6.5)

  for(x=5;x<8;x++)

  printf((x%2)?(“**%d”):(“##%d\n”),x);

  该程序片段的输出结果是 _______.

  A)**5##6 B)##5 C)##5**6##7 D)**5##6**7 **7 **6##7

  25. 有以下程序:

  main()

  {int a=1,b=0;

  switch(a)

  { case 1:switch(b)

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

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

  case 2: printf(“$$$$”);break ; }

  该程序的输出结果是________.(知识点5.4)

  A)**** B)****$$$$ C)****####$$$$ D) ####$$$$

  26. 下列程序段的输出结果是_______.(知识点6.4)

  int x=3;

  do {printf(“%3d”,x-=2);}

  while(!(——x));

  A)1 B)3 0 C)1 -2 D)死循环

  27. 有以下程序,其中x、y为整型变量;

  for(x=0,y=0;(x<=1)&&(y= 1);x++,y——);

  printf(“x=%d,y=%d”,x,y);

  该程序的输出结果是_____.(知识点6.5)

  A)x=2,y=0 B) x=1,y=0 C) x=1,y=1 D) x=0,y=0

  28. 有以下程序段:

  int n=0,p;

  do { scanf(“%d”,&p);n++;} while(p!=12345&&n<3);

  此处do-while循环的结束条件是_____.(知识点6.4)

  A)p的值不等于12345并且n的值大于3

  B)p的值等于12345并且n的值大于等于3

  C)p的值不等于12345或者n的值小于3

  D)p的值等于12345或n的值大于等于3

  29. 在下述程序中,if (i>j) 语句共执行的次数是_____.(知识点6.5)

  main()

  { int i=0,j=10,k=2,s=0;

  for(;;)

  { i+= k ;

  if(i>j)

  { printf(“%d”,s);

  break ;

  }

  s+=i ;

  }

  }

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

  30. 以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。

  main()

  { int n,k;float score,ave;

  ave=0.0;

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

  { for(k=1;k<=4;k++)

  { scanf(“%f”,&score);

  ave+=score/4 ;}

  printf(“NO%d:%f\n”,n,ave);}

  }造成程序计算结果错误的语句行是_____.(知识点6.6)

  A)ave=0.0; B)for(n=1;n<=10;n++)

  C)ave+=score/4 ; D)printf(“NO%d:%f\n”,n,ave);

  31. 若有以下定义:char s[10]={'a','b','c','0','\0','2','\x32','\0'};执行语句printf(“%d”,strlen(s));的结果是_____.(知识点7.3)

  A)3 B)4 C)8 D)10

  32. 设有数组定义:char array[ ]=“abcdef”;则数组array所占的空间为_____.(知识点7.3)

  A)4个字节 B)5个字节 C)6个字节 D)7个字节

  33. 有以下程序:

  main()

  { char str[ ][10]={“China”,“Beijing”},*p=str;

  printf(“%s\n”,p+10);}

  该程序运行后的输出结果是_____.(知识点10.4)

  A)China B)Beijing C)ng D)ing

  34. 阅读下面程序,该程序段的功能是_____.(知识点7.1)

  #include <stdio.h>

  main()

  { int c[ ]={23,1,56,234,7,0,34},i,j,t;

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

  { t=c[i];j=i-1;

  while(j>=0&&t>c[j]) { c[j+1]=c[j];j- - ;}

  c[j+1]=t;}

  for(i=0;i<7;i++)printf(“%d ”,c[i] );

  putchar('\n');

  }

  A)对数组元素的升序排列 B)对数组元素的降序排列

  C)对数组元素的倒序排列 D)对数组元素的随机排列

  35. 下列程序的输出结果是_____.(知识点7.2)

  main()

  { int n[3][3],i,j;

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

  for(j=0;j<3;j++)n[i][j]=i+j;

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

  for(j=0;j<2;j++)n[i+1][j+1]+= n[i][j];

  printf(“%d \n”,n[i][j]);

  }

  A)14 B)0 C)6 D)值不确定

  36. 下列函数调用语句中含有______个参数。(知识点8.3)

  func((f1,f2),(f2,f3,f4),f5)

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

  37. 下列程序的运行结果是_______.(知识点7.3)

  #include <string.h>

  main()

  { char *p1,*p2,ch[20]=“ABCDEFabcdef”;

  p1=“1234”;p2=“abcd”;

  strcpy(ch+1,p2+1);strcpy(ch+3,p1+3);

  pintf(“%s\n”,ch);}

  A)Abc4EFabcde B)Abc4EF C)AbcdEF D)Abc4

  38. 下列程序的运行结果是_______.(知识点8.6)

  # include <stdio.h>

  int f(int a)

  { switch (a)

  { case 0:return 0;

  case 1:case 2:return 1;

  }

  return(f(a-2)+f(a-3));

  }

  main()

  { int b;

  b=f(10);

  printf(“b=%d\n”,b);

  }

  A) 12 B)10 C)9 D)8

  39. 有以下程序:

  fun(int n)

  { if(n= =1|| n= =2)return 2;

  return s=n-fun(n-2);}

  main()

  {printf(“%d\n”,fun(7));}

  该程序运行后的输出结果是_____.(知识点8.6)

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

  40. 下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:

  void sort(int a[ ],int n)

  { int i,j,t;

  for(i=0;i<n-1;i++)

  for(j=i+1;j<n;j++)

  if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

  }

  main()

  { int aa[10]={1,2,3,4,5,6,7,8,9,10 },i;

  sort(&aa[3],5);

  for(i=0;i<10;i++)printf(“%d,”,aa[i]);

  printf(“\n”);

  }

  该程序运行后的输出结果是_____.(知识点8.4)

  A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,

  C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,

  41. 下列程序的运行结果是_____.(知识点8.3)

  main()

  { int a=3,y;

  y=fn(a,a++);

  printf(“%d”,y);}

  int fn(x,c)

  { int b;

  if(x<c)b=1;

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

  else b=-1 ;

  return(b);

  }

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

  42. 下列程序的运行结果是_____.(知识点7.3)

  main()

  { char arr[2][4];

  strcpy(arr,“you”);strcpy(arr[1],“me”);

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

  A)you me B)you C)me D)arr

  43. 下列程序的输出结果是_____.(知识点8.8)

  int f()

  { static int i=0;

  int s=1;

  s+=i;i++;

  return s;}

  main()

  { int i , a=0;

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

  printf(“%d\n”,a);}

  A)20 B)24 C)25 D)15

  44. 程序中对fun函数有如下说明:

  void *fun();

  此说明的含义是_____.(知识点10.6)

  A) fun函数无返回值

  B) fun函数的返回值可以是任意的数据类型

  C) fun函数的返回值是无值型的指针类型

  D) 指针fun指向一个函数,该函数无返回值

  45. 设有下列定义:static int x,*p=&x,*q;

  scanf(“%d,%d”,p,q);

  若输入3,4,则x的值为_____.(知识点8.8)

  A)3 B)4 C)0 D)无法确定

  46. 设有以下程序:

  int fun(char *s)

  { int n=0;

  while(*s){ n++;s++ ;}

  return n ;}

  main()

  {char y[ ]=“this_is_an_example.”;

  printf(“%d\n”,fun(&y[6]));

  }

  该程序的输出结果是_____.(知识点:10.4)

  A)12 B)13 C)14 D)16

  47. 下列程序的功能是_____.(知识点:10.4)

  int fun(char *a)

  { char *b=a;

  while(*b)b++;

  {return b-a ;}

  }

  A) 比较两个字符串的大小 B)字符串的复制

  C) 计算字符串的长度 D) 字符串的连接

  48. 下列程序的输出结果是_______.(知识点10.2)

  main()

  {

  int k=3,m=5,n=7;

  int *pk=&k,*pm=&m,*p;

  *(p=&n)=*pk*(*pm);

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

  }

  A)5 B)7 C)15 D)21

  49. 下列程序的执行结果是_______.(知识点10.3)

  main()

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

  printf(“%d”,*——p);}

  A)非法 B)a[4]的地址 C)5 D)4

  50. 以下函数返回a所指的数组中最小值所在的下标值:

  fun(int *a, int n)

  { int i , j=0 , p ;

  p=j ;

  for(i=j;i<n;i++)

  if(a[i]<a[p]) _______ ;

  return(p);}

  在下划线处应填入_______.(知识点10.2)

  A)i=p B)a[p]=a[i] C)p=j D)p=i

  51. 下列程序的运行结果是_______.(知识点10.2)

  void fun(int *a,int *b)

  { int *k;

  k=a;a=b;b=k;}

  main()

  { int a=3,b=6,*x=&a,*y=&b;

  fun(x,y);

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

  }

  A)6 3 B)3 6 C)编译出错 D)0 0

  52. 有如下程序:

  #define f(x)x*x

  main()

  { int i ;

  i=f(4+4)/(2+2);

  printf(“%d\n”,i);}

  该程序执行后的输出结果是_______.(知识点9.1)

  A)28 B)21 C)16 D)4

  53. 下列程序的输出结果是_______.(知识点11.4)

  struct tt;

  { int n1;char n2;float n3;

  union uu{int u1[2];char u2[2];}su;

  };

  main()

  {printf(“%d\n”,sizeof(struct tt));}

  A)11 B)12 C)7 D)9

  54. 下列程序的输出结果是_______.(知识点11.6)

  struct LH

  { int n;struct LH *m;}p[4];

  main()

  { int i;

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

  {p[i].n=i;p[i].m=&p[i+1];} p[i].m=p;

  printf(“%d,%d\n”,(p[1].m)->n,p[3].m->n);

  } A)1,2 B)1,3 C)2,0 D)程序出错

  55. 下列程序的输出结果是_______.(知识点11.6)

  struct st

  { int x;int *y;}*p;

  int dt[4]={10,20,30,40};

  struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};

  main()

  { p=aa;

  printf(“%d ”,++p->x);

  printf(“%d ”,(++p)->x);

  printf(“%d ”,++(*p->y));}

  A)10 20 20 B)50 60 21 C)51 60 21 D)60 70 31

  56. 字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是_______.(知识点11.8)

  #include <stdio.h>

  main()

  { union

  { int i[4];

  long k;

  char c[6];

  }a,*s=&a ;

  s->i[0]=0x39;

  s->i[1]=0x38;

  printf(“%c\n”,s->c[0]);

  }

  A)5 B)3 C)6 D)9

  57. 下列程序的运行结果是_______.(知识点12.2)

  main()

  { unsigned c1=0xff,c2=0x00;

  c1=c2|c1>>2;c2=c1^0236;

  printf(“%x,%x\n”,c1,c2);

  }

  A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a1

  58. 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的排列次序正确的是_______.(知识点3.8)

  A)sizeof,&= , <<, ^ B)sizeof,<<, ^,&=

  C)^,<<,sizeof, &= D)<<,^,&=,sizeof

  59. 有以下程序:

  #include <stdio.h>

  void fun(char *fname,char *st)

  { FILE *myf;int i;

  myf=fopen(fname,“w”);

  for(i=0;i<strlen(st);i++)fputc(st[i],myf);

  fclose(myf);

  }

  main()

  { fun(“test.t”,“new world”);fun(“test.t”,“hello,”);}

  执行该程序后,文件test.t中的内容是_______.(知识点13.4)

  A)hello, B)new worldhello, C)new world D)hello,rld

  60. 有以下程序:

  #include <stdio.h>

  main()

  { FILE *fp;int i=20,j=30,k,n;

  fp=fopen(“d1.dat”,“w”);

  fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);

  fclose(fp);

  fp=fopen(“d1.dat”,“r”);

  fscanf(fp,“%d%d”,&k,&n);printf(“%d %d\n”,k,n);

  fclose(fp);}

  该程序运行后的输出结果是_______.(知识点13.4)

  A)20 30 B)20 50 C)30 50 D)30 20

  二、多选题(共20小题,每题2分,共40分)

  1. 下列符号串中,不属于C语言合法标识符的有_____.(知识点3.2)

  A)_1_2_3 B)a-b-c C)int D)9cd

  2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有_______.(假设k>0)(知识点5.3)

  A)k%2 B)k%2= =1 C)(k%2)!=0 D)!k%2= =0

  3. 已有定义 int a=-2;和输出语句printf(“%8lx”,a);下列叙述不正确的有_______.(知今识点4.5)

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

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

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

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

  4. 下列选项中,没有构成死循环的程序段有_____.(知识点6.7)

  A)int i=100; B)for( ; ; )

  while(1)

  { i=i%100+1;

  if(i>=100)break;}

  C)int k=0; D)int s=36;

  do { ++k;} while(k>=0); while(s);——s;

  5. t为int类型,进入下面的循环之前,t的值为0:

  while(t=1)

  { ………。}

  则下列叙述不正确的有________.(知识点6.3)

  A)循环控制表达式的值为0 B)循环控制表达式的值为1

  C)循环控制表达式不合法 D)循环有可能是个无限循环

  6. 下列判断正确的是_______.(知识点10.3)

  A) char *a=“china”;等价于 char *a;*a=“china”;

  B) char str[6]={“china”};等价于char str[ ]= {“china”};

  C) char *s=“china”;等价于char *s;s=“china”;

  D) char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;

  7. 若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有_____.(知识点:6.7)

  A)i=1;s=1; B)i=0;s=0;

  do do

  { s=s+i;i++; { i++; s=s+i;

  while(i<5); while(i<5);

  C)i=1;s=0; D)i=0;s=0;

  do do

  { s=s+i;i++; { s=s+i; i++;

  while(i<6); while(i<=5);

  8. 下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是______.(知识点10.2)

  main()

  { int a[10]={5,2,9,6,7,1,12,8,23,0},*p=a,i;

  for(i=0;i<10;i++,p++)

  if(______) *a=*p ;

  printf(“%d”,*a);

  }

  A)p>a B)*p<a[0] C)*p<*a[0] D)*p<*a

  9. 设有如下定义:

  char *s[2]={“abcd”,“ABCD”};

  则下列说法正确的有_____.(知识点:10.3)

  A) s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址

  B) s是指针数组名,它含有两个元素分别指向字符型一维数组

  C) s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素

  D) s数组的两个元素中分别存放了字符'a'和'A'的地址

  10. 以下有关字符串赋值、赋初值的语句错误的有_______.(知识点10.4)

  A)char sz[2][40];sz[1]=“string1”;

  B)char *sz[2];sz[1]=“string2”;

  C)char sz[][40]=“string3”;

  D)char *sz[ ]=“string4”;

  11. 若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_______.(0<=i<4,0<=j<9)(知识点10.3)

  A)*(&a[0][0]+9*i+j) B)*(a+i)(j) C)*(*(a+i)+j) D)*(a[i]+j)

  12. 若有定义:char *st=“how are you!”;下面程序段正确的有_____.(知识点:7.3)

  A) char a[11],*p;strcpy(p=a+1,&st[4]);

  B) char a[11];strcpy(++a,st);

  C) char a[11];strcpy(a,st);

  D) char a[ ],*p;strcpy(p=&a[1],st+2);

  13. 设有以下说明语句:

  Struct stu

  { int a ;

  float b ;

  }stutype ;

  则下列叙述正确的有_______.(知识点11.2)

  A) struct是结构体类型的关键字

  B) struct stu是用户定义的结构体类型

  C) stutype是用户定义的结构体类型名

  D) a和b都是结构体成员名

  14. 若已建立如图所示的单向链表:
  

  则下列选项中能将s所指的结点插入到链表尾部,构成新的单项链表的语句组有_______.(知识点11.7)

  A)s->link=a->link->link ;a->link->link=s;

  B)a=a->link ; a->link=s ;s->link=NULL;

  C)s->link=NULL ;a=(*a)。link ; (*a)。link =s;

  D)a=a->link ; s->link=a->link;a->link=s->link;

  15. 设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i;

  要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______.(知识点10.3)

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

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

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

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

  16. 下列叙述正确的有_____.(知识点8.5)

  A) 函数可以嵌套定义,但不能嵌套调用

  B) 函数可以嵌套调用,也可以嵌套定义

  C) 函数不可以嵌套定义,但可以递归调用

  D) 函数可以嵌套调用,但不能嵌套定义

  17. 下列叙述不正确的有_____.(知识点8.8)

  A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区

  B)局部变量只在本函数范围内有效,形式参数属于局部变量

  C)局部变量如没有被说明为静态的存储类别,则会被分配动态存储空间,存储在动态存储区中

  D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它

  18. 若变量已正确定义,要求程序段完成求5!的计算,下列选项中不能完成此操作的程序段有____(知识点6.7)

  A)for(i=1,p=1;i<=5;i++)p*=i;

  B)for(i=1;i<=5;i++){p=1;p*=i;}

  C)i=1;p=1;while(i<=5) p*=i;i++;

  D)i=1;p=1;do { p*=i;i++;} while(i<=5);

  19. 若有以下说明,则对strcpy库函数的调用不正确的有_______.(知识点10.4)

  char *str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5=“hijk”

  A)strcpy(str2,str1); B)strcpy(str3,str1);

  C)strcpy(str4,str1); D)strcpy(str5 ,str1);

  20. 下列选项中可以将变量n清零的表达式有_______.(知识点12……2)

  A)n=n&~n B)n=n&0 C)n=n^n D)n=n|n

  1. 单选题

1

2

3

4

5

6

7

8

9

10

A

C

A

D

C

B

C

C

B

C

11

12

13

14

15

16

17

18

19

20

B

A

C

C

C

B

A

C

C

D

21

22

23

24

25

26

27

28

29

30

D

D

C

A

B

C

A

D

D

A

31

32

33

34

35

36

37

38

39

40

B

D

B

B

C

A

D

C

C

C

41

42

43

44

45

46

47

48

49

50

B

B

D

C

A

B

C

C

C

D

51

52

53

54

55

56

57

58

59

60

B

B

A

C

C

D

D

B

A

A

  1. 多选题

1

2

3

4

5

6

7

8

9

10

BCD

ABC

ABC

AC

AC

BC

BCD

BD

ABD

ACD

11

12

13

14

15

16

17

18

19

20

B

A

ABD

ABC

ABC

CD

ABCD

BC

BC

ABC


  附件:
 

Copyright © 2006 - 2012 www.itatedu.com All Rights Reserved.