二级C语言笔试题和面试题答案目及答案(二)

更新时间:2023-07-08 03:13:12文/高考志愿库

  (32) 执行下面的程序后,a的值为

  main()

  { int a,b;

  for (a=1,b=1;a<=100;a++)

  { if(b>=20) break;

  if(b%3==1) {b+=3; continue; }

  b-=5; } }

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

  (33) 以下程序段的输出结果是

  int x=3;

  do { printf("%3d",x-=2);} while(!(--x));

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

  (34) 定义如下变量: int n=10; 则下列循环的输出结果是

  while(n>7)

  { n--;

  printf("%d\n",n); }

  A) 10 B) 9 C) 10 D) 9

  9 8 9 8

  8 7 8 7

  7 6

  (35) 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

  main( )

  { int x;

  scanf("%d",&x);

  if(x + + >5) printf("%d",x);

  else printf("%d\n",x - -); }

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

  (36) 设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下就法中正确的是

  A) aa数组成元素的值分别是"abcd"和ABCD"

  B) aa是指针变量,它指向含有两个数组元素的字符型一维数组

  C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

  D) aa数组的两个元素中各自存放了字符'a'和'A'的地址

  (37) 以下程序的输出结果是

  main( )

  { int a=-1,b=4,k;

  k=(+ +a〈0)&&!(b - -〈=0);

  printf("%d%d%d\n",k,ab); }

  A) 104 B) 103 C) 003 D) 004

  (38) 设有以下定义:

  int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

  int (*prt)[3]=a,*p=a[0];

  则下列能够正确表示数组元素a[1][2]的表达式是

  A) *((*prt+1) [2]) B) *(*(p+5)) C) (*prt+1)+2 D) *(*(a+1)+2)

  (39) 下列程序的输出结果是

  main( )

  { char*p1,*p2,str[50]="xyz";

  p1="abcd";

  p2="ABCD";

  strcpy(str+2,strcat(p1+2,p2+1);

  printf)"%s",str); }

  A) xyabcAB B) abcABz C) ABabcz D) xycdBCD

  (40) 执行下面的程序后,a的值是

  #define SQR(X) X*X

  main( )

  { int a=10,k=2,m=1;

  a/=SQR(k+m)/SQR(k+m);

  printf("%d\n",a); }

  A) 10 B) 1 C) 9 D) 0

  (41) 下列程序执行后输出的结果是

  #include

  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

  (42) 下列程序的输出结果是

  main( )

  { int a[5]={2,4,6,8,10},*P,* *k;

  p=a; k=&p;

  printf("%d",*(p++)); printf("%d\n",* *k); }

  A) 4 4 B) 2 2 C) 2 4 D) 4 6

  (43) 阅读下列程序:

  main( )

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

  for(i=0;i〈3;i++〉 n[i]=0;

  k=2;

  for (i=0;i〈k;i++〉

  for (j=0;j〈k;j++〉 n[j]=n[i]+1;

  printf("%d\n",n[1]); }

  下述程序运行后输出结果是

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

  (44) 字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是

  #include

  main( )

  { union { int i[2]; long k; char c[4]; }r,*s=&r;

  s->i[0]=0x39;

  s->i[1]=0x38;

  printf("%c\n",s->c[0]) }

  A) 39 B) 9 C) 38 D) 8

  (45) 设有以下定义:

  typedef union { long i;int k[5];char c;}DATE;

  struct date { int cat;DATE cow;double dog;}too;

  DATE max;

  则下列语句的执行结果是

  printf("%d",sizeof(struct date)+sizeof(max));

  A) 25 B) 30 C) 18 D) 8

  (46) 执行以下程序后,y的值是

  main ( )

  { int a[]={2,4,6,8,10};

  int y=1,x,*p;

  p=&a[1];

  for(x=0;x<3;x++) y + = * (p + x);

  printf("%d\n",y); }

  A) 17 B) 18 C) 19 D) 20

  (47) 下列程序执行后输出的结果是

  int d=1;

  fun (int q)

  { int d=5;

  d + =p + +; printf("%d".d); }

  main( )

  { int a=3;

  fun(a);

  d + = a + +; printf("%d\n",d); }

  A) 8 4 B) 9 6 C) 9 4 D) 8 5

  (48) 下列程序的输出结果是

  main( )

  { char ch[2][5]={"6934,"8254"},*p[2];

  int i,j,s=0;

  for(i=0;i<2;i + +) p[i]=ch[i];

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

  for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0';

  printf("%d\n",s);

  A) 6385 B) 69825 C) 63825 D) 693825

  (49) 以下程序的输出结果是

  fut (int*s,int p[2][3])

  { *s=p[1][1]; }

  main( )

  { int a[2][3]={1,3,5,7,9,11},*p;

  p=(int*)malloc(sizeof(int));

  fut(&p,a);

  primtf("%d\n",*p); }

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

  (50) 以下程序的输出结果是

  #include"ctype.h"

  space (char *str)

  { int i,t;char ts[81];

  for(i=0,t=0;str[i]!='\0';i+=2)

  if(! isspace(*str+i)&&(*(str+i)!='a'))

  ts[t++]=toupper(str[i]);

  ts[t]='\0';

  strcpy(str,ts); }

  mian( )

  { char s[81]={"a b c d e f g"};

  space(s);

  puts(s); }

  A) abcdeg B) bcde C) ABCDE D) BCDE

中国点击率最高的一篇文章 !