最新四川省计算机等级考试二级C语言机试题22.docx
- 文档编号:5859390
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:12
- 大小:18.70KB
最新四川省计算机等级考试二级C语言机试题22.docx
《最新四川省计算机等级考试二级C语言机试题22.docx》由会员分享,可在线阅读,更多相关《最新四川省计算机等级考试二级C语言机试题22.docx(12页珍藏版)》请在冰豆网上搜索。
最新四川省计算机等级考试二级C语言机试题22
四川省计算机等级考试二级C语言机试题(第二十二次)
2009-03-2916:
37:
54
(第一套)
(60分钟)
一、程序调试题(文件名testl-l.c)(40分)
软盘上有一个名为testl-l.c的C程序文件,其中函数move的功能是将字符串str中的字符"循环左移"r位。
例如,输入"HELLO",r=2,则应该输出"LLOHE"。
注意:
不得增行或删行,也不得更改程序的结构。
源程序如下:
#include
#include
charmove(char*str,intr)
{chart;
inti,len;
len=strlen(str);
for(k=0;k<=r;k++)
{t=*str;
strcpy(str+1,str);
str[len-1]=t;
}
return*str;
}
voidmain()
{chars[81];
intm;
printf("\nPleaseenterastring:
\n");
gets(s);
do
{printf("\nPleaseenterm:
");
scanf("%d",m);
if(m>strlen(s))
printf("\nDataerror!
!
\n");
}while(m>strlen(s));
printf("\nResult:
%s\n",move(s,m));
}
二、编写程序(程序文件名取为testl-2.c)(60分)
编写一个程序,从文件testl-2.in中读出一行字符(即一个字符串,长度在128个字符
内),将排列在奇数位上的字符取出,按从小到大的顺序排列并输出到屏幕上。
要求:
(1)在main函数中实现从文件testl-2.in中读出一行字符,调用sort函数排序,然后将结果输出到屏幕上。
(2)编写sort函数,实现将排列在奇数位上的字符取出,然后按从小到大的顺序排列。
例如,hqwbodze奇数位为q、b、d、e,排序后为bdeq。
(第二套)
(60分钟)
一、程序调试题(文件名为test2-l.c)(40分)
程序的功能是找出数组a中每行的最小值并输出。
请改正程序申的错误,使程序能得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构。
源程序如下:
#include
main()
{
floata[][10],min;
inti,j;
intinvert();
for(i=0;i<10;i++)
for(j=0;j<10;j++)
a[i][j]=i+j;
for(i=0;i<10;i++)
{
min=invert(a,10);
printf("a[%d]min=%f\n",i,min);
}
}
floatinvert(float*a,n)
{
inti;
floatmin;
min=*(a+0);
for(i=1;i { if(min<*(a+i)) min=(a+i); } returnmin; } 二、编写程序(程序文件名取为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个学生的成绩中统计出低于平均分的学生人数,此人数由函数返回,平均分存放在形参aver所指的存储单元中。 例如,若8名学生的成绩为: 80.5 60 72 90.5 98 51.5 88 64,则低于平均分的学生人数为4(平均分为75.5625)。 请改正程序中的错误,便它能计算出正确的结果。 洼意: 不得增行或删行,也不得更改程序的结构。 源程序如下: #include intfun(floats,intn,float*aver) {floatave,t=0.0; intcount,k,i; for(k=0;k t=s[k]; ave=t/n; for(i=0;i if(s[i]>ave)count++; *aver=&ave; returncount; } main() {floats[30],aver; intm,i; printf("\nPleaseentern(<30): "); scanf("%d",&m); printf("\nPleaseenter%dmark: \n",m); for(i=0;i scanf("%f",s+i); printf("\nThenumberofstudents: %d\n",fun(s,m,aver)); printf("Ave=%f\n",aver); } 二、编写程序(程序文件名取为test3-2.c)(60分) 编写函数fun和input: (1)函数fun对整数数组s中除首、尾数据外的其余M-2个数据按升序排列。 例如,若原来的数据为9876543,则排序后输出为9456783。 (2)函数input从文件test3-2.in中读出待排序的数据。 编写main函数,调用input函数和fun函数,将排序的结果输出到屏幕上 四川省计算机等级考试二级C语言机试题(第二十二次)答案 2009-03-2916: 38: 21 22-1套参考答案: 一、程序调试题(文件名为test1-1.c)(40分) #include #include charmove(char*str,intr) /*改为*move */ {chart; inti,len; /*改为k */ len=strlen(str); for(k=0;k<=r;k++) /*改为k {t=*str; strcpy(str+1,str); /*改为strcpy(str+1,str)*/ str[len-1]=t; } return*str; /*改为str */ } voidmain() {chars[81]; intm; printf("\nPleaseenterastring: \n"); gets(s); do {printf("\nPleaseenterm: "); scanf("%d",m); /*改为&m */ if(m>strlen(s)) printf("\nDataerror! ! \n"); }while(m>strlen(s)); printf("\nResult: %s\n",move(s,m)); } 评分标准: 每改对1处得5分,结果正确得10分。 二、编写程序(程序文件取名为test1-2.c)(60分) 评分标准: 1.被调函数编写正确 25分 2.文件打开、数据读出正确 10分 3.函数调用正确 10分 4.屏幕输出正确 10分 5.程序结构合理 5分 参考程序: #include sort(chara[],charb[]) { charc; inti,j=0; for(i=1;i b[j++]=a[i]; b[j]='\0'; for(i=1;i for(j=0;j if(b[j]>b[j+1]) {c=b[j];b[j]=b[j+1];b[j+1]=c;} } main() { FILE*in; chara[128],b[65]; 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() { floata[][10],min; /*改为a[10][10] */ inti,j; intinvert(); /*改为float */ for(i=0;i<10;i++) for(j=0;j<10;j++) a[i][j]=i+j; for(i=0;i<10;i++) { min=invert(a,10); /*改为a[i] */ printf("a[%d]min=%f\n",i,min); } } floatinvert(float*a,n) /*改为intn */ { inti; floatmin; min=*(a+0); for(i=1;i { if(min<*(a+i)) /*改为> */ min=(a+i); /*改为*(a+i) */ } returnmin; } 评分标准: 每改对1处得5分,结果正确得10分。 二、编写程序(程序文件取名为test2-2.c)(60分) 评分标准: 1.被调函数编写正确 15分 2.文件打开、数据写入正确 15分 3.函数调用正确 10分 4.屏幕输出正确 10分 5.程序结构合理 10分 参考程序: #include intselect(inta) { if(! (a%3)&&! (a%5)) return1; else return0; } main() { inti,k=0; FILE*fp; if((fp=fopen("test2-2.dat","wb"))==NULL) { printf("cannotopenthefile\n"); exit(0); } for(i=3;i<400;i++) if(select(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 intfun(floats,intn,float*aver) /*改为*s */ {floatave,t=0.0; intcount,k,i; /*改为count=0 */ for(k=0;k t=s[k]; /*改为+= */ ave=t/n; for(i=0;i if(s[i]>ave)count++; /*改为< */ *aver=&ave; /*改为ave */ returncount; } main() {floats[30],aver; intm,i; printf("\nPleaseentern(<30): "); scanf("%d",&m); printf("\nPleaseenter%dmark: \n",m); for(i=0;i scanf("%f",s+i); printf("\nThenumberofstudents: %d\n",fun(s,m,aver)); /*改为&aver*/ printf("Ave=%f\n",aver); } 评分标准: 每改对1处得5分,结果正确得10分。 二、编写程序(程序文件取名为test3-2.c)(60分) 评分标准: 1.被调函数编写正确 20分 2.文件操作和读数据正确 15分 3.函数调用正确 10分 4.屏幕输出正确 10分 5.程序结构合理 5分 参考程序: #include #include #defineM10 voidfun(int*s) { inti,j,t; for(i=1;i for(j=i+1;j if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } intinput(ints[]) { FILE*fp; inti; 二、资料网址: if((fp=fopen("test3-2.in","r"))==NULL) { printf("cannotopenfile\n"); 经常光顾□偶尔会去□不会去□ return(0); } 民族性手工艺品。 在饰品店里,墙上挂满了各式各样的小饰品,有最普通的玉制项链、珍珠手链,也有特别一点如景泰蓝的手机挂坠、中国结的耳坠,甚至还有具有浓郁的异域风情的藏族饰品。 for(i=0;i fscanf(fp,"%d",&s[i]); 500元以上1224% fclose(fp); return (1); 4.WWW。 google。 com。 cn。 大学生政策2004年3月23日} main() { 2003年,上海市总人口达到1464万人,上海是全国第一个出现人口负增长的地区。 ints[M]; inti; 附件 (二): 调查问卷设计 if(input(s)) “碧芝”隶属于加拿大的beadworks公司。 这家公司原先从事首饰加工业,自助首饰的风行也自西方,随着人工饰品的欣欣向荣,自制饰品越来越受到了人们的认同。 1996年'碧芝自制饰品店'在迪美购物中心开张,这里地理位置十分优越,交通四八达,由于是市中心,汇集了来自各地的游客和时尚人群,不用担心客流量问题。 迪美有300多家商铺,不包括柜台,现在这个商铺的位置还是比较合适的,位于中心地带,左边出口的自动扶梯直接通向地面,从正对着的旋转式楼拾阶而上就是人民广场中央,周边4、5条地下通道都交汇于此,从自家店铺门口经过的90%的顾客会因为好奇而进看一下。 { 大学生对手工艺制作兴趣的调研 fun(s); printf("\n"); for(i=0;i printf("%d",s[i]); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 四川省 计算机等级考试 二级 语言 试题 22