二级C语言笔试真题(四)

更新时间:2023-07-08 05:24:50文/高考志愿库

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

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

  (1) 十进制数112.375转换成十六进制数为 【1】 。

  (2) 存储200个32×32点阵的汉字信息需 【2】 KB。

  (3) 数字符号0的ASCII码十进制表示为48,数字符号9的ASCII码十进制表示为 【3】 。

  (4) DOS命令分为内部命令与外部命令,TREE命令属于 【4】 命令。

  (5) 自动批处理文件的文件名为【5】 。

  (6)表示条件:10

  (7) 下列程序的输出结果是【7】

  main()

  { char b[]="ABCDEFG";

  char *chp=&b[7];

  while(--chp>&b[0]) putchar(*chp);

  putchar('\n'); }

  (8) 下列程序的输出结果是【8】 。

  int ast(int x,int y,int * cp,int * dp)

  { *cp=x+y; *dp=x-y; }

  main()

  { int a,b,c,d;

  a=4;b=3;

  ast(a,b,&c,&d);

  printf("%d %d/n",c,d); }

  (9) 以下程序的功能是:人键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.

  main()

  { float x,amax,amin;

  scanf("%f",&x);

  amax=x; amin=x;

  while(【9】)

  { if(x>amax) amax=x;

  if(【10】) amin=x;

  scanf("%f",&x); }

  printf("\namax=%f\namin=%f\n",amax,amin); }

  (10) 下面程序通过函数average计算数组中各元素的平均值,请填空.

  float average(int * pa,int n)

  { int i;

  float avg=0.0;

  for(i=0;i

  avg=【12】;

  return avg; }

  main()

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

  float mean;

  mean=average(a,5); printf("mean=%f\n",mean);}

  (11) 阅读程序:

  #include "string.h"

  #include "stdio.h"

  strle(char a[],char b[])

  { int num=0,n=0;

  while(*(a+num)!='\0'),num++;

  while(b[n]){ *(a+num)=b[n];num++;n++;}

  return (num);}

  main()

  { char str1[81],str2[81],*p1=str1,*p2=str2;

  gets(p1); gets(p2);

  printf("%d\n",strle(p1,p2)); }

  运行上面程序,如果从键盘上输入字符串qwerty和字符串abcd则程序的输出结果是 【13】 。

  (12) 以下程序的输出结果是 【14】 。

  fun(int n,int *s)

  { int f1,f2;

  if(n = =1||n = =2) *s=1;

  else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2;} }

  main()

  { int x;

  fun(6,&x); printf("%d\n",x); }

  (13) 阅读程序:

  main()

  { char str1[]="how do you do" ,str2[10];

  char *p1=str1,*p2=str2;

  scanf("%s",p2); printf("%s",p2); printf("%s\n",p1); }

  运行上面的程序,输入字符串HOW DO YOU DO 则程序的输出结果是【15】 。

  (14) 以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空.

  #include

  main()

  { FILE * fp;

  char ch,fname[10];

  printf("lnput the name of file\n");

  gets(fname);

  if((fp=【16】)==NULL)

  { printf("Cannot open\n"); exit(0);}

  printf("Enter data\n");

  while((ch=getchar())!='#') fputc(【17】,fp);

  fclose(fp); }

  (15) 以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回.请填空:

  #include

  struct list { char data; struct list * next; };

  struct list * creat()

  { struct list * h,* p,* q;

  char ch;

  h=【18】 malloc(sizeof(struct list));

  p=q=h;

  ch=getchar();

  while(ch!='?')

  { p=【19】 malloc(sizeof(struct list));

  p->data=ch;

  p->next=p;

  q=p;

  ch=getchar();

  }

  p->next='\0';

  【20】

  }

  〖完〗

  1997年4月二级C笔试试卷参考答案

  一 选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分)

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

  (11)D (12)D (13)C (14)D (15)B (16)D (17)C (18)A (19)C (20)D

  (21)B (22)A (23)A (24)C (25)D (26)D (27)C (28)D (29)D (30)C

  (31)C (32)B (33)C (34)B (35)A (36)D (37)D (38)D (39)D (40)B

  (41)D (42)C (43)D (44)B (45)B (46)C (47)A (48)A (49)C (50)D

  二 填空题(每空2分,共40分)

  ((1)至(5)题中所有字母都允许大`小写或大小写混合)

  (1) 【1】 70.6

  (2) 【2】 25(答25KB不扣分)

  (3) 【3】 57

  (4) 【4】 外部(答外部命令不扣分)

  (5) 【5】 AUTOEXEC.BAT(答AUTOEXEC扣1分)

  (6) 【6】 (x>10 && x<100)││x<0 或(1010 && x<100) 或 0>x││(10< && x<100)

  (并且括号有无都可以)

  (7) 【7】 GFEDCB

  (8) 【8】 7 1

  (9) 【9】 x>=0.0 或 !(x<0) 或!(x<0.0)

  或0.0<=x 或!(0.0>x) 或! (0>x)

  (10)【10】 xx 或 amin>=x

  【11】 *(pa+i) 或 pa[i]

  【12】 avg/n 或avg/(float)n 或 avg/(double)n

  (11)【13】 10

  (12)【14】 8

  (13)【15】 HOW how do you do (说明:HOW 和how之间有无空格均可)

  (14)【16】 fopen(fname,"w")说明:"w"开头的字符串均可)

  【17】 ch

  (15)【18】 (struct list *)

  【19】 (struct list *)

  【20】 return(h); 或 return h;

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