四川省计算机等级考试二级C语言机试题22
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川省计算机等级考试二级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;k<=r;k++)
{ t=*str;
strcpy(str+1,str);
str[len-1]=t;
}
return *str;
}
void main()
{ char s[81];
int m;
printf("\n Please enter a string:\n");
gets(s);
do
{ printf("\n Please enter m:");
scanf("%d",m);
if(m>strlen(s))
printf("\n Data error!!\n");
}while(m>strlen(s));
printf("\n Result:%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()
{
float a[ ][10], min;
int i, j;
int invert();
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);
}
}
float invert(float *a, n)
{
int i;
float min;
min=*(a+0);
for(i=1;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个学生的成绩中统计出低于平均分的学生人数,此人数由函数返回,平均分存放在形参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;k t=s[k]; ave=t/n; for(i=0;i if(s[i]>ave) count++; *aver=&ave; return count; } main() { float s[30],aver; int m, i; printf("\nPlease enter n(<30):"); scanf("%d", &m); printf("\nPlease enter %d mark:\n",m); for(i=0;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: