计算机二级C语言笔试题和面试题答案目(二)

|来源:新高考网

  31. 下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST"要求的是

  A if(strcmp(s2,s1)==0)ST; B if(sl==s2)ST; C if(strcpy(s l ,s2)==1)ST;

  D if(sl-s2==0)ST 答案:A

  32. 以下不能将s所指字符串正确复制到t所指存储空间的是

  A while(*t=*s){t++;s++;} B for(i=0;t[i]=s[i];i++);

  C do{*t++=*s++;}while(*s); D for(i=0,j=0;t[i++]=s[j++];); 答案:C

  33. 有以下程序( strcat函数用以连接两个字符串)

  #include

  #include

  main()

  {char a[20]=”ABCD\OEFG\0”,b[]=”IJK”;

  strcat(a,b);printf(”%s\n”,a);

  }

  程序运行后的输出结果是

  A ABCDE\OFG\OIJK B ABCDIJK\ C IJK D EFGIJK 答案:B

  34. 有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母

  #include

  #include

  voidfun(char*p)

  {inti=0;

  while (p[i])

  {if(p[i]==’ ’&& islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;

  i++;

  }

  }

  main()

  {char s1[100]=”ab cd EFG!”;

  fun(s1); printf(”%s\n”,s1);

  }

  程序运行后的输出结果是

  A abcdEFG! B AbCdEFg! C aBcDEFG! D abcdEFg! 答案:C

  35. 有以下程序

  #include

  voidfun(int x)

  {if(x/2>1)fun(x/2);

  printf(”%d”,x);

  }

  main()

  {fun(7);printf(”\n”);}

  程序运行后的输出结果是

  A 1 3 7 B 7 3 1 C 7 3 D 3 7 答案:B

  36. 有以下程序

  #include

  int fun()

  {static int x=1;

  x+=1;return x;

  }

  main()

  {int i;s=1;

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

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

  }

  程序运行后的输出结果是

  A 11 B 21 C 6 D 120 答案:B

  37. 有以下程序

  #inctude

  #include

  Main()

  {int *a,*b,*c;

  a=b=c=(int*)malloc(sizeof(int));

  *a=1;*b=2,*c=3;

  a=b;

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

  }

  程序运行后的输出结果是

  A 3,3,3 B 2,2,3 C 1,2,3 D 1,1,3 答案:A

  38. 有以下程序

  #include

  main()

  {int s,t,A=10;double B=6;

  s=sizeof(A);t=sizeof(B);

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

  }

  在VC6平台上编译运行,程序运行后的输出结果是

  A 2,4 B 4,4 C 4,8 D 10,6 答案:C

  39. 若有以下语句

  Typedef struct S

  {int g; char h;}T;

  以下叙述中正确的是

  A 可用S定义结构体变量 B 可用T定义结构体变量

  C S是struct类型的变量 D T是struct S类型的变量 答案:B

  40. 有以下程序

  #include

  main()

  {short c=124;

  c=c_______;

  printf(“%d\n”、C);

  }

  若要使程序的运行结果为248,应在下划线处填入的是

  A >>2 B |248 C &0248 D < 答案:C

  二、填空题(每空2分,共30分)

  请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

  1. 一个栈的初始状态为空。首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】

  答案:1DCAB2345

  2. 在长度为n的线性表中,寻找最大项至少需要比较【2】次。

  答案:log2(n)

  3. 一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有【3】个结点。

  答案:25

  4. 仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。答案:结构化

  5. 数据库设计的四个阶段是:需求分析,概念设计,逻辑设计【5】。答案:物理设计

  6. 以下程序运行后的输出结果是【6】。

  #include

  main()

  {int a=200,b=010;

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

  } 答案:2008

  7. 有以下程序

  #include

  main()

  {intx,Y;

  scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);

  }

  程序运行时输入:1234567程序的运行结果是【7】。答案:3

  8. 在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为【8】时表示逻辑值“真”。

  答案:非0

  9. 有以下程序

  #include

  main()

  {int i,n[]={0,0,0,0,0};

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

  {n[i]=n[i-1]*3+1; printf(”%d ",n[i]);}

  }

  程序运行后的输出结果是【9】。答案:1 4 13 40

  10. 以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)

  int fun(int x[N])

  {int i,k=0;

  for(i=0;i

  if(x[i]

  return x[k];

  } 答案:i

  11. 有以下程序

  #include

  int*f(int *p,int*q);

  main()

  {int m=1,n=2,*r=&m;

  r=f(r,&n);printf(”%d\n”,*r);

  }

  int*f(int *p,int*q)

  {return(*p>*q)?p:q;}

  程序运行后的输出结果是【11】 答案:2

  12. 以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)

  int fun(int a[N][M))

  {int i,j,row=0,col=0;

  for(i=0;i

  for(j=0;j

  if(a[i][j]>a[row][col]){row=i;col=j;}

  return(【12】): 答案:a[row][col]

  13. 有以下程序

  #include

  main()

  {intn[2],i,j;

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

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

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

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

  }

  程序运行后的输出结果是【13】 答案:2

  14. 以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。

  #include

  main()

  {int a〔10],*p,*s;

  for(p=a;p-a<10;p++)scanf(”%d”,p);

  for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;

  printf("max=%d\n”,【14】);

  } 答案:*s

  15. 以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。

  #include

  main()

  {【15】*fp;

  char a[5]={’1’,’2’,’3’,’4’,’5’},i;

  fp=fopen(”f .txt”,”w”);

  for(i=0;i<5;i++)fputc(a[i],fp);

  fclose(fp);

  }

  答案:FILE

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