2012春江苏省高校计算机等级考试二级C语言上机题(C01)及其解答张柏雄.doc
文本预览下载声明
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2012春)
二级 C语言(试卷代号C01)
(本试卷完成时间 70分钟)
改错题(16分)
【程序功能】
以下程序中函数void csort(char str[][N],int n)对str指向的二级数组前n行中存储的n个字符串分别做如下处理:从中间将字符串一分为二,左半部分字符子串按字符的ASCII码从大到小排序(若字符串长度为奇数,则中间字符不参加排序)。
【测试数据与运行结果】
测试字符串:”abcdefgh”,”123498765”
屏幕输出:dcbaefgh
432198765
【含有错误的源程序】
#includestdio.h
#includestring.h
#includeconio.h
#define N 80
void csort(char str[][N],int n);
void main()
{ char s[2][N]=abcdefgh,123498765; int i;
csort(s,2);
for(i=0;i2;i++)
puts(s);
getch();
}
void csort(char str[][N],int n)
{ int i,j,k,len,half;
char temp;
for(i=0;in;i++)
{ len=strlen(str[i][0]);
half=len/2;
for(j=0;jhalf-1;j++)
for(k=j+1;khalf-1;k++)
if(str[i][j]str[i][k])
{ temp=str[i][j];
str[i][j]=str[i][k];
str[i][k]=temp;
}
}
}
【要求】
打开T盘中myfl.c文件或将上述程序录入到myf1.c文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
改正后的源程序(文件名myfl.c)保存在T盘的根目录中供阅卷使用,否则不予评分。
二、编程题(24分)
【程序功能】
对于所给的一个自然数n,查找并输出所有满足以下条件的等差数列:⑴公差为1;⑵数列中各项数值之和等于n。
【编程要求】
1、编写函数int found(int a[][30], int n)。函数功能:查找满足上述条件的所有等差数列并依次将其保存到a指向的数组中(一行保存一个数列),函数返回找到的数列个数。
2、编写函数main()。函数功能:声明一个二级整型数组用于保存查找结果,输入一个整数并保存到变量n中(n≤600)。用n和整型数组作实参调用found函数,将找到的所有等差数列输出到屏幕及数据文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。
【测试数据与运行结果】
输入m=500
屏幕输出:
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
59 60 61 62 63 64 65 66
98 99 100 101 102
500
My number is【要求】
源程序文件名为myf2.c,输出结果文件名为myf2.out。
数据文件的打开、使用、关闭均用C语言标准库中文件操作函数实现。
源程序文件和运行结果文件均需保存到T盘上,供阅卷使用。
不要复制扩展名为obj和exe的文件到T盘上。
【改错题解答:myf1.c】
#includestdio.h
#includestring.h
#includeconio.h
#define N 80
void csort(char str[][N],int n);
void main()
{ char s[2][N]={abcdefgh,123498765}; int i; //1、二维字符串赋值需要在数值两边加大括弧
csort(s,2);
for(i=0;i2;i++)
puts(s[i]); //2、二维数组一行字符串,加下标,即puts(s);→puts(s[i]);
getch();
}
void csort(char s
显示全部