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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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:

相关文档
最新文档