二、填空题(每空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;