#include
void swap(int *p1,int *p2) {
int p; p=p1; p1=p2; p2=p; }
void sort(int a[N][N]) {
int i,j,k;
for(i=0;i for(j=0;j for(k=j+1;k if(i%2==0?a[i][j]a[i][k]) swap(a[i]+j,a[i]+k); } void main() { int a[N][N]={{3,4,2,1},{8,7,5,6},{12,10,11,9},{15,14,16,13}}; int i,j; sort(a[N][N]); for(i=0;i for(j=0;j 【要求】 ? 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 ? 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或者编译预处理命令,但不能增加其他语句,也不能删去整条语句。 ? 将改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。 二、编程题 【编程要求】 1.编写函数fun,它的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符串移动字符串的前部。例如:字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC. 2.编写main函数。在main函数中初始化一个字符串,调用函数fun,将结果字符串及函数返回值写入到文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 【要求】 ? 源程序文件名必须取为myf2.c,输出结果文件名必须取为myf2.out ? 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 ? 源程序文件和运行结果文件必须保存在考试盘的根目录下,供阅卷用。 ? 不要复制扩展名为OBJ和EXE的文件到考试盘上。 模拟测试题八 一、改错题 【程序功能】 函数HolandFlag的功能是:已知在flag指向的有n个元素的字符数组中,每个元素的值是字符’R’、’W’或’B’中的一个。函数按照’R’、’W’、’B’的顺序重新排列flag数组中所有元素的值。 算法提示: 若flag数组初始值为RBWBRWRBW,则在flag数组中出现数据交换的步骤与效果为: 第1步:flag[1]与flag[8]交换后数据为RWWBRWRBB 第2步:flag[3]与flag[6]交换后数据为RWWRRWBBB 第3步:flag[1]与flag[4]交换后数据为RRWRWWBBB 第4步:flag[2]与flag[3]交换后数据为RRRWWWBBB 【测试数据与运行结果】 测试数据:RBWBRWRBW 运行结果:RRRWWWBBB 【含有错误的源程序】 #include void HolandFlag(char flag[],int num) { int i,j,k,m; char c,color[3]={B,W,R}; m=num; for(k=0;k<2;k++) for(i=0;i if(flag[i]==color[k]) { for(j=m-1;j>i;j--) if(flag[j]==color[k]) { c=flag[i]; flag[i]=flag[j]; flag[j]=c; m--; break; } if(i==j) m=i; } } void main() { char flag[N]=\ int i,k,n=strlen(flag); HolandFlag(flag[N],n); for(i=0;i printf(\} 【要求】 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或者编译预处理命令,但不能增加其他语句,也不能删去整条语句。 将改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。 二、编程题 【程序功能】 以矩阵的行作为排序的交换单位,使得排序后的矩阵按指定列的元素值递减有序。 【编程要求】 1.编写函数void sort(int x[][4],int n,int col)。它的功能是:对x指向的二维数组(该数组中保存了一个n*4矩阵)以行作为交换单位,按照下标为col的列元素值做递减排序。 2.编写main函数。函数功能:声明一个3行4列二维数组并用测试数据初始化该数组,调用sort函数对该数组中保存的矩阵按第3列(列下标为2)排序,将排序后二维数组中的矩阵输出到屏幕并用写文件函数保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 【测试数据与运行结果】 测试数据(排序前): 101 80 60 90 102 70 90 50 103 60 70 80 运行结果(按第3列排序后): 102 70 90 50 103 60 70 80 101 80 60 90 my exam number is :考生本人准考证号字符串 【要求】 源程序文件名必须取为myf2.c,输出结果文件名必须取为myf2.out 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 源程序文件和运行结果文件必须保存在考试盘的根目录下,供阅卷用。 不要复制扩展名为OBJ和EXE的文件到考试盘上。 参考答案: 模拟测试题一: 改错: typedef struct//struct if((con1>con2)||con1==con2&&strcmp(x[j].name,x[j+1].name)>0)//if((con1 char *sortkey[]={\printf(\ %s\ %s\编程: #include int findword(char *s,char *t,char ch[][20]) { char tmp[10][20]; int cn=0,i,count=0,j,m,n,len,lena; while(*s) { while(!isalpha(*s)&&*s) s++; if(isalpha(*s)&&*s) { i=0; while(isalpha(*s)&&*s) { tmp[cn][i++]=*s; s++; } tmp[cn][i]=0;