首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 考试试题 >

09年4月全国计算机等级二级C语言笔试练习(12)

2008-11-21 
C语言笔试练习

    特意为大家整理的09年4月全国计算机等级二级C语言考前练习,希望对大家的备考有好的帮助!

    1.若有如下定义:
  int s[3][4];
  则下面表达式中能代表数组元素s[1][0]的值的是()
  A)*(s+1)
  B)s[1]
  C)s+1
  D)*(s[1])

  2.若有定义和语句
  int **pp,*p,a=10,b=20;
  pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);
  则输出结果是()
  A)10,10
  B)10,20
  C)20,10
  D)20,20

  3.有以下程序
  main()
  { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
  for(i=0;i<3;i++)
  for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
  printf("%d\n",t);
  }
  程序运行后的输出结果是()
  A)3
  B)4
  C)1
  D)9

  4.下列程序执行后输出的结果是()
  #include<stdio.h>
  f(int a)
  { int b=0;
  static c=3;
  a=c++,b++;
  return(a);
  }
  main()
  { int a=2,i,k;
  for(i=0;i<2;i++)
  k=f(a++);
  printf("%d\n",k);
  }
  A)3
  B)0
  C)5
  D)4

  5.下列程序执行后的输出结果是()
  #define MA(x) x*(x-1)
  main()
  { int a=1,b=2;
  printf("%d\n",MA(1+a+b));
  }
  A)5
  B)6
  C)7
  D)8

  6.有以下程序段
  # include<stdio.h>
  main()
  { char s[4][10];
  int i;
  scanf("%s%s",s[0],s[1]);gets(s[2]);gets(s[3]);
  for(i=0;i<4;i++)
  puts(s[i]);
  }
  输入数据如下:aaaa bbbb<CR>(此处<CR>代表回车符)
  cccc dddd<CR>
  输出结果是()
  A)aaaa
  bbbb
  cccc dddd
  B)aaaa
  bbbb
  cccc
  dddd
  C)aaaa
  bbbb
  cccc dddd
  eeee
  D)aaaa bbbb
  cccc
  dddd

  7.有以下程序
  main()
  {charst[20]="hello\0\t′\\";
  printf("%d%d\n",strlen(st),sizeof(st));
  }
  程序运行后的输出结果是()
  A)9 9
  B)5 20
  C)13 20
  D)20 20

  8.不合法的main函数命令行参数表示形式是()
  A)main(inta,char*c[])
  B)main(intarc,char**arv)
  C)main(intargc,char*argv)
  D)main(intargv,char*argc[])

  9.下面程序的输出结果为()
  struct st
  { int x;
  int*y;
  } *p;
  int dt[4]={10,20,30,40};
  struct st aa[4]={50,&dt[0],60,&dt[1],,&dt[2],80,&dt[3]};
  main()
  { p=aa;
  printf("%d\n",++p->x);
  printf("%d\n",(++p)->x);
  printf("%d\n",++(*p->y));
  }
  A)10
  B)50
  C)51
  D)60
  20 60 60 70
  20 21 21 31

  10.以下程序的功能是()
  # include<stdio.h>
  main ()
  { FILE*fp1;*fp2;
  fp1=fopen ("file1","r");
  fp2=fopen ("file2","w");
  while (!feof (fp1))
  fputc (fgetc (fp1),fp2);
  fclose (fp1); fclose (fp2); }
  A)将磁盘文件的内容显示在屏幕上
  B)将两个磁盘文件合为一个
  C)将一个磁盘文件复制到另一个磁盘文件中
  D)将两个磁盘文件合并后送屏幕
  
  参考答案:1.D 2.D 3.B 4.D 5.D 6.A 7.B 8.C 9.C 10. C

    11.在下列叙述中,错误的一条是()
  A)scanf()函数可以用来输入任何类型的多个数据
  B)数组名作函数参数时,也采用“值传递”方式
  C)如果形参发生改变,不会改变主调函数的实参值
  D)函数的实参与形参的类型应一致

  12.有以下程序
  union myun
  {struct
  {intx,y,z;}u;
  int k;
  }a;
  main()
  {a.u.x=4;a.u.y=5;a.u.z=6;
  a.k=0;
  printf(“%d\n”,a.u.x);
  }
  程序运行后的输出结果是()
  A)4
  B)5
  C)6
  D)0

  13.以下程序的输出结果是()
  #include
  main()
  { chars1[]="123",s2[]="abc",ss[20]="010";
  strcat(ss+1,strcpy(s2,s1));
  printf("%s\n",ss);
  }
  A)010123
  B)0abc
  C)01123
  D)01abc

  14.有以下程序
  # include
  main()
  { int *p,j;
  p=NULL;
  p=fun();
  for(j=0;j<4;j++){printf("%d",*p);p++;}
  }
  int*fun()
  {
  int a[4],k;
  for(k=0;k<4;k++)a[k]=k;
  return(a);
  }
  程序运行后的输出结果是()
  A)程序有错不能运行
  B)输出4个NULL
  C)输出0 1 2 3
  D)输出1 1 1 1

  15.有以下程序:
  void fun(intk)
  { static inta[5]; int i;
  for(i=0;i<5;i++)
  { a[i]+=i+k;printf("%d",a[i]);}
  printf("\n");
  }
  main()
  {fun(1);fun(2);}
  程序的输出结果是()
  A)1 2 3 4 5
  B)随机数
  C)1 2 3 4 5
  D)1 2 3 4 5
  3 5 7 9 11 2 3 4 5 6 2 4 6 8 10

  16.有以下程序
  main()
  {int m,n;
  printf("Enter m,n∶");scanf("%d%d",&m,&n);
  while(m!=n)
  {while(m>n)m-=n;
  while(n>m)n-=m;
  }
  printf("m=%d\n",m);
  }
  如果从键盘上输入65 14<回车>,则输出结果为()
  A)m=3
  B)m=2
  C)m=1
  D)m=0

  17.以下程序的输出结果是()
  void fun(float *p1,float *p2,float *s)
  { s=(float*)calloc(1,sizeof(float));
  *s=*p1+*p2++;
  }
  main()
  { floats[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
  fun(a,b,s);
  printf("%5.2f\n",*s);
  }
  A)11.10
  B)12.00
  C)21.10
  D)1.10

  18.有以下程序
  #include
  #include
  fun(char*w,int n)
  {char t,*s1,*s2;
  s1=w;s2=w+n-1;
  while(s1<s2);
  {t=*s1++;
  *s1=*s2--;
  *s2=t;
  }
  }
  main()
  {charp[]="1234567";
  fun(p,strlen(p));
  puts(p);
  }
  程序运行后的输出结果是()
  A)1234567
  B)7654321
  C)1711717
  D)7177171

  19.若有如下程序:
  struct student
  {char name[10];
  float score[3];}stu[3]={{"lili",75,90,90},
  {"liudan",90,85,75};
  {"guoli",85,85,70}};
  main()
  {int i;float sum=0,aver;
  for(i=0;i<3;i++)
  sum=sum+stu[i].score[1];aver=sum/i;
  printf("%6.2f\n",aver);}
  则程序运行后的输出结果是()
  A)83.33
  B)85.00
  C)86.00
  D)86.67

  20.有如下定义:
  struct person
  {char name[9];int age;}
  struct person class[10]={"John",17,
  "Paul",19,
  "Mary",18,
  "Adam",16};
  能输出字母M的是()
  A)printf("%c\n",class[3].name);
  B)printf("%c\n",class[3].name[1]);
  C)printf("%c\n",class[2].name[1]);
  D)printf("%c\n",class[2].name[0]);

  答案:1.B 2.D 3.A 4.A 5.A 6.C 7.D 8.C 9.D 10.D

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行