收藏 分销(赏)

四川省计算机等级考试二级C语言机试题22.doc

上传人:天**** 文档编号:3063728 上传时间:2024-06-14 格式:DOC 页数:14 大小:40.50KB
下载 相关 举报
四川省计算机等级考试二级C语言机试题22.doc_第1页
第1页 / 共14页
四川省计算机等级考试二级C语言机试题22.doc_第2页
第2页 / 共14页
四川省计算机等级考试二级C语言机试题22.doc_第3页
第3页 / 共14页
四川省计算机等级考试二级C语言机试题22.doc_第4页
第4页 / 共14页
四川省计算机等级考试二级C语言机试题22.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、四川省计算机等级考试二级C语言机试题(第二十二次) 2009-03-29 16:37:54 (第一套)(60分钟)一、程序调试题 (文件名 testl-l.c)(40分) 软盘上有一个名为testl-l.c的C程序文件,其中函数move的功能是将字符串str中的字符循环左移 r位。例如,输入HELLO,r=2,则应该输出LLOHE。注意:不得增行或删行,也不得更改程序的结构。源程序如下:#include #include char move( char *str, int r) char t; int i,len; len=strlen(str); for(k=0;kstrlen(s) pri

2、ntf(n Data error!n); while(mstrlen(s); printf(n Result:%sn,move(s,m);二、编写程序 (程序文件名取为 testl-2.c)(60分) 编写一个程序,从文件testl-2.in中读出一行字符(即一个字符串,长度在128个字符内),将排列在奇数位上的字符取出,按从小到大的顺序排列并输出到屏幕上。 要求: (1) 在main函数中实现从文件testl-2.in中读出一行字符,调用sort函数排序,然后将结果输出到屏幕上。(2)编写sort函数,实现将排列在奇数位上的字符取出,然后按从小到大的顺序排列。例如,hqwbodze奇数位为q

3、、b、d、e,排序后为bdeq。(第二套)(60分钟)一、程序调试题 (文件名为 test2-l.c)(40分)程序的功能是找出数组a中每行的最小值并输出。请改正程序申的错误,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序的结构。源程序如下:#include main() float a 10, min; int i, j; int invert(); for(i=0;i10;i+) for(j=0;j10;j+) aij= i+j; for(i=0;i10;i+) min=invert(a,10); printf(a%dmin=%fn,i,min); float invert(

4、float *a, n) int i; float min; min=*(a+0); for(i=1;in;i+) if(min*(a+i) min=(a+i); return min;二、编写程序 (程序文件名取为 test2-2.c)(60分)请编写函数select判断一个数能否被3和5整除,main函数中调用select函数,求出所有小于400、能被3和5整除的数(例如15,30等),然后将求得的数以每行5个数,每个数占10列方式输出到屏幕上和存放到文件test2-2.dat中。(第三套)(60分钟)一、程序调试题 (文件名为 test3-1.c) (40分)函数fun的功能是:从n个学

5、生的成绩中统计出低于平均分的学生人数,此人数由函数返回,平均分存放在形参aver所指的存储单元中。例如,若8名学生的成绩为:80.5 60 72 90.5 98 51.5 88 64,则低于平均分的学生人数为4(平均分为75.5625)。请改正程序中的错误,便它能计算出正确的结果。洼意:不得增行或删行,也不得更改程序的结构。源程序如下:#include int fun(float s, int n, float *aver) float ave,t=0.0; int count,k,i; for(k=0;kn;k+) t=sk; ave=t/n; for(i=0;iave) count+; *

6、aver=&ave; return count;main() float s30,aver; int m, i; printf(nPlease enter n(30):); scanf(%d, &m); printf(nPlease enter %d mark:n,m); for(i=0;im;i+) scanf(%f, s+i); printf(nThe number of students:%d n,fun(s, m, aver); printf(Ave=%f n, aver);二、编写程序 (程序文件名取为 test3-2.c) (60分)编写函数fun和input:(1) 函数fun对

7、整数数组s中除首、尾数据外的其余M-2个数据按升序排列。 例如,若原来的数据为9876543,则排序后输出为9456783。(2) 函数input从文件test3-2.in中读出待排序的数据。编写main函数,调用input函数和fun函数,将排序的结果输出到屏幕上四川省计算机等级考试二级C语言机试题(第二十二次)答案 2009-03-29 16:38:21 22-1套 参考答案:一、程序调试题(文件名为test1-1.c)(40分)#include #include char move( char *str, int r) /* 改为 *move */ char t; int i,len;

8、/* 改为 k */ len=strlen(str); for(k=0;k=r;k+) /* 改为 kstrlen(s) printf(n Data error!n); while(mstrlen(s); printf(n Result:%sn,move(s,m);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数编写正确 25分2文件打开、数据读出正确 10分3函数调用正确 10分4屏幕输出正确 10分5程序结构合理 5分参考程序:#include sort(char a,char b) char c; int i,

9、j=0; for(i=1;istrlen(a);i+=2) bj+=ai; bj=0; for(i=1;istrlen(b);i+) for(j=0;jbj+1) c=bj; bj=bj+1; bj+1=c; main() FILE *in; char a128,b65; in=fopen(test1-2.in,r); fgets(a,128,in); fclose(in); sort(a,b); puts(b);22-2套 参考答案:一、程序调试题(文件名为test2-1.c)(40分)#include main() float a 10, min; /* 改为 a1010 */ int i

10、, j; int invert(); /* 改为 float */ for(i=0;i10;i+) for(j=0;j10;j+) aij= i+j; for(i=0;i10;i+) min=invert(a,10); /* 改为 ai */ printf(a%dmin=%fn,i,min); float invert(float *a, n) /* 改为 int n */ int i; float min; min=*(a+0); for(i=1;in;i+) if(min */ min=(a+i); /* 改为 *(a+i) */ return min;评分标准:每改对1处得5分,结果正确

11、得10分。二、编写程序(程序文件取名为 test2-2.c)(60分)评分标准:1被调函数编写正确 15分2文件打开、数据写入正确 15分3函数调用正确 10分4屏幕输出正确 10分5程序结构合理 10分参考程序:# include int select(int a) if(!(a%3)&!(a%5) return 1; else return 0;main() int i,k=0; FILE *fp; if(fp=fopen(test2-2.dat,wb)=NULL) printf(cannot open the filen); exit(0); for(i=3;i400;i+) if(se

12、lect(i) k=k+1; printf(%10d,i); fprintf(fp,%10d,i); if(k%5=0) printf(n); fprintf(fp,n); fclose(fp);22-3套 参考答案:一、程序调试题(文件名为test3-1.c)(40分)#include int fun(float s, int n, float *aver) /* 改为 *s */ float ave,t=0.0; int count,k,i; /* 改为 count=0 */ for(k=0;kn;k+) t=sk; /* 改为 += */ ave=t/n; for(i=0;iave) c

13、ount+; /* 改为 */ *aver=&ave; /* 改为 ave */ return count;main() float s30,aver; int m, i; printf(nPlease enter n(30):); scanf(%d, &m); printf(nPlease enter %d mark:n,m); for(i=0;im;i+) scanf(%f, s+i); printf(nThe number of students:%d n,fun(s, m, aver); /* 改为 &aver */ printf(Ave=%f n, aver);评分标准:每改对1处得

14、5分,结果正确得10分。二、编写程序(程序文件取名为 test3-2.c)(60分)评分标准:1被调函数编写正确 20分2文件操作和读数据正确 15分3函数调用正确 10分4屏幕输出正确 10分5程序结构合理 5分参考程序:#include#include#define M 10void fun(int *s) int i,j,t; for(i=1;iM-2;i+) for(j=i+1;jsj) t=si; si=sj; sj=t; int input(int s) FILE *fp; int i; if(fp=fopen(test3-2.in,r)=NULL) printf(cannot open filen); return(0); for(i=0;iM;i+) fscanf(fp,%d ,&si); fclose(fp); return(1);main() int sM; int i; if(input(s) fun(s); printf(n); for(i=0;iM;i+) printf(%d ,si);

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服