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

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

2008-11-17 
C语言笔试练习题

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

    1.有以下程序:
  main()
  {char a[]="abcdefg",b[10]="abcdefg";
  printf("%d %d\n",sizeof(a),sizeof(b));
  }
  执行后输出结果是()
  A)7 7
  B)8 8
  C)8 10
  D)10 10

  2.有以下程序:
  void swapl(int c[])
  {int t;
  t=c[0];c[0]=c[1];c[1]=t;
  }
  void swap2(int c0,int c1)
  {int t;
  t=c0;c0=c1;c1=t;
  }
  main()
  {int a[2]={3,5},b[2]={3,5};
  swap1(a);swap2(b[0],b[1]);
  printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
  }
  其输出结果是()
  A)5 3 5 3
  B)5 3 3 5
  C)3 5 3 5
  D)3 5 5 3

  3.有以下程序:
  void sum(int *a)
  {a[0]=a[1];}
  main()
  {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
  for(i=2;i>=0;i--)sum(&aa[i]);
  printf("%d\n",aa[0]);
  }
  执行后的输出结果是()
  A)4
  B)3
  C)2
  D)1

  4.有以下程序:
  int f(int b[][4])
  {int i,j,s=0;
  for(j=0;j<4;j++)
  {i=j;
  if(i>2)i=3-j;
  s+=b[i][j];
  }
  return s;
  }
  main()
  {int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
  printf("%d\n",f(a));
  }
  执行后的输出结果是()
  A)12
  B)11
  C)18
  D)16

  5.有以下定义:
  #include
  char a[10],*b=a;
  不能给a数组输入字符串的语句是()
  A)gets(a)
  B)gets(a[0]);
  C)gets(&a[0]);
  D)gets(b);

  6.有以下程序:
  main()
  {char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
  printf("%d\n",strlen(p[4]));
  }
  执行后输出结果是()
  A)2
  B)3
  C)4
  D)5

  7.有以下程序:
  int a=2;
  int f(int *a)
  {return(*a)++;}
  main()
  {int s=0;
  {int a=5;
  s+=f(&a);
  }
  s+=f(&a);
  printf("%d\n",s);
  }
  执行后输出结果是()
  A)10
  B)9
  C)7
  D)8

  8.有以下程序:
  #define f(x) x*x
  main()
  {int i;
  i=f(4+4)/f(2+2);
  printf("%d\n",i);
  }
  执行后的输出结果是()
  A)28
  B)22
  C)16
  D)4

  9.设有以下语句:
  typedef struct S
  {int g;char h;}T;
  则下面叙述中正确的是()
  A)可用S定义结构体变量
  B)可以用T定义结构体变量
  C)S是struct类型的变量
  D)T是struct S类型的变量

  10.有以下程序:
  struct STU{
  char name[10];
  int num;
  };
  void f1(struct STU c)
  {struct STU b={"LiSiGuo",2042};
  c=b;
  }
  void f2(struct STU *c)
  {sturct STU b={"SunDan",2044};
  *c=b;
  }
  main()
  {struct STU a={"YangSan",2041},b={"WangYin",2043};
  f1(a);f2(&b);
  printf("%d%d\n",a.num,b.num);
  }
  执行后的输出结果是()
  A)2041 2044
  B)2041 2043
  C)2042 2044
  D)2042 2043

  答案:1.C 2.B 3.A 4.D 5.B 6.A 7.C 8.A 9.D 10.A
        11.s1和s1已正确定义并分别指向两个字符串,若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是()
  A)if(s1>s2)S;
  B)if(strcmp(s1,s2))S;
  C)if(strcmp(s2,s1)>0)S;
  D)if(strcmp(s1,s2)>0)S;

  12.设有定义语句intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()
  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)++);

  13.以下程序的输出结果是()
  #include<stdio.h>
  main()
  {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
  *q=*(q+5);
  printf("%d%d\n",*p,*q);
  }
  A)运行后报错
  B)66
  C)611
  D)510

  14.设有以下定义和语句int a[3][2]={1,2,3,4,5,6},*p[3];
  p[0]=a[1];
  则*(p[0]+1)所代表的数组元素是()
  A)a[0][1]
  B)a[1][0]
  C)a[1][1]
  D)a[1][2]

  15.以下程序的输出结果是()
  main()
  {char str[][10]={"china","Beijing"},*p=str;
  printf("%s\n",p+10);
  }
  A)China
  B)Beijing
  C)ng
  D)ing

  16.Examda提示: 以下程序的输出结果是()
  main()
  {char s[]="ABCD",*p;
  for(p=s+1;p<s+4;p++)printf("%s\n",p);
  }
  A)ABCD
  BCD
  CD
  D
  B)A
  B
  C
  D
  C)B
  C
  D
  D)BCD
  CD
  D

  17.在函数调用过程中,如果函数funA调用了函数funB,函数funB Examda提示: 又调用了函数funA,则()
  A)称为函数的直接递归调用
  B)称为函数的间接递归调用
  C)称为函数的循环调用
  D)C语言中不允许这样的递归调用

  18.已有定义:int i,a[10],*p;,则合法的赋值语句是()
  A)p=10;
  B)p=a[5]
  C)p=a[2]+2;
  D)p=a+2;

  19.以下叙述中正确的是()
  A)局部变量说明为static的存储类,其生存期将得到延长
  B)全局变量说明为static存储类,其作用域将被扩大
  C)任何存储类的变量在未赋初值时,其值都是不确定的
  D)形参可以使用的存储类说明符与局部变量完全相同

  20.设有定义语句:char c1=2,c2=2;,则以下表达式中值为零的是()
  A)c1^c2
  B)c1&c2
  C)~c2
  D)c1|c2

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

 

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

热点排行