}
void main() { int m=12,n=8;
printf(\fun(m)/fun(n)/③ ); }
第 26 页 共 50 页
机试部分
(第一套)
(60分钟)
一、程序调试题(文件名为test1-1.c) (40分)
磁盘上有一个名为test1-1.c的C程序文件,其中函数fun的功能是:在字符串a中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前字符串为:123aBYdZf,调用后字符串中的内容为:f123aBYdZ。
在main函数中,从文本文件test1-1.txt中读出字符串放入一维数组a中,调用fun函数构成新的数组,在主函数中输出处理后的结果。
请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下: #include
{ char max,*q; int i=0; max=p[i]; while(p[i]!=0) {if(max>p[i])
{ max=p[i]; q=p+1;
} i++; }
while(q>p) {*q=*(q-1); q++; }
p[0]=max; }
void main( ) { FILE *fp; char a[255]; int i=0;
if((fp=fopen(\ { printf(\
exit(0); }
while(1)
{ a[i++]=fgetc(); if(a[i]==EOF) break; i++; }
第 27 页 共 50 页
a[i]=\
printf(\ puts(a); fun(a);
printf(\ %s\\n\\n\ fclose(fp); }
二、编写程序(程序文件名命为test1-2.c)(60分)
(1)编写函数fun,fun函数的功能是:将一个由二进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含32位二进制数字。例如,若输入11111111,则输出将是255。 (2)在main函数中输入二进制数字字符串s的值,调用fun函数,并输出转换后的十进制数。
(第二套)
(60分钟)
一、程序调试题(文件名为test2-1.c) (40分)
磁盘上有一个名为test2-1.c 的C程序文件,其中函数fun的功能是:统计数组a中素数的个数,并将个数作为函数值返回。
在main函数中,从文件test2-1.txt中读出10个整数放入整型数组中,调用fun函数,将整型数组的10个数及素数的个数输出到屏幕上。
请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构。 源程序如下: #include if(i%j==0) continue; if(j>a[i]/2) cnt++; } return cnt; void main( ) { int a[10],i,cnt; file *fp; if((fp=fopen(\{ } for(i=0;i<10;i++) { scanf(fp,\ } printf(\ printf(\exit(0); cnt=fun(a,10); printf(\ 第 28 页 共 50 页 fclose(fp); } 二、编写程序(程序文件名命名为test2-2.c) (60分) (1)编写函数fun,它的功能是:将字符串中ASCII码为奇数的字符删除。例如:原串中的内容为ABCDEFG123,则删除后的结果为BDF2。 (2)在main函数中输入一个字符串,调用fun函数,并输出删除后的结果。 (第三套) (60分钟) 一、程序调试题(文件名为test3-1.c) (40分) 磁盘上有一个名为test3-1.c的C程序文件,其函数strfun的功能是:在字符串中,删除以字符‘<’开始,字符‘>’结束的字符串内容(包括<>符号本身)。 例如,输入的字符串为:This is a html page,则输出结果为:This is a html page。 在main函数中,从文本文件test3-1.txt中读出一个字符串放入一维数组中,调用函数strfun删除以字符‘<’开始,字符‘>’结束的字符串内容,在主函数中输出删除后的结果。 请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: #include \#include \ void strfun(char str, char start, char end) { char *pstart,*pend; while (str) { if (*str=start) { pstart=str; pend=str+1; while (*pend!='\\0' || *pend!=end) pend++; if (pend==end) while (*pstart++=*++pend); } str++; } } void main( ) { char string[81]; FILE *fp; if((fp=fopen(\{ printf(\ exit(0); } fgets(string,81,fp); strfun(string,'<','>'); puts(string); } 二、编写程序(程序文件名命名为test3-2.c) (60分) 第 29 页 共 50 页 (1)编写move函数,其功能是:对10个整数循环右移n(n<=10)位后,存入main函数的a数组中。 (2)编写main函数,对长度为10的整型数组a进行初始化,输入n,调用move函数,最后输出循环右移n位后的10个数组元素。 例如,原数组 a[10]={0,1,2,3,4,5,6,7,8,9},n=3,则移位后的结果为{7,8,9,0,1,2,3,4,5,6}。 (第四套) (60分钟) 一、程序调试题(文件名为test4-1.c ) (40分) 磁盘上有一个名为test4-1.c的C程序文件,程序的功能是从文件test4-1.dat中输入N个学生的信息,包括每个学生的姓名、学号、3门课程的成绩。计算并输出每个学生3门课程的平均分,并输出平均分最高学生的信息(包括姓名、学号、3门课程的成绩和平均成绩)。 请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: #include void main() { FILE *fp; int i,k,max; if((fopen(\ { printf(\ exit(0); } for(i=0;i fscanf(fp,\ fclose(fp); printf(\verage:\ for(i=0;i { s[i].score[3]=(s[i].score[0] + s[i].score[1] + s[i].score[2])/3; printf(\ } max=s[i].score[3]; k=0; for(i=0;i<=N;i++) if(s[i].score[3] max=s[i].score[3]; } printf(\ printf(\ 第 30 页 共 50 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言近几年考题(6)在线全文阅读。
相关推荐: