1、评分标准:每改对一处得5分,运行结果正确得5分。二、编写程序(程序文件取名为 test1-2.c)(60分)1文件打开与关闭正确 10分 2文件读写正确 10分3函数及函数调用正确 20分 4屏幕上显示结果正确 10分5Test1-2.txt中结果正确 10分参考程序:# define M 10int aMM=0;fm(int aM,int m) int j,k; for(j=0;m; for(k=0;kk+) ajk=(k+1)*(j+1); int i,j,n; FILE *fp; fp=fopen(test1-2.txt,w);Enter n:,&n); fm(a,n); for(i=0
2、;io); /* 改为 while(s0) */ s=s/100; t=s%10*s1+t; /* 改为 *t=s%10*s1+*t */ s1=s1*100; /* 改为 s1=s1*10 */void main() long s,t;nPlease enter integer s:%lds); if(s0) fun(s,&t);The result is :%ldn,t); else printf(s value error.n每改对一处得6分,第二处有两个错误,结果正确得10分。1文件打开、关闭正确 10分 2屏幕结果输出正确 5分3文件结果输出正确 5分 4数据输入方法正确 5分5排号
3、正确 5分 6数据初始化正确 5分7数据处理正确 20分 8找出结果正确 5分# define nmax 50 int i,k,m,n,numnmax,*p;Please enter the n: p=num; *(p+i)=i+1; i=0;k=0;m=0; while(mvoid fun(char *s,char *t1,char *t2,char *w) char *p,*r,*place; strcpy(w,s); place=NULL; while(*w) p=w; r=t1; while(r) /* 改为 *r */ if(*r=*p) /* 改为 *r=*p */ r+;p+;
4、else continue; /* 改为 break */ if(*r=0) /* 改为 0 */ place=w; w+; if(place!=NULL) r=t2; while(&r) /* 改为 *r */ *place=*r,place+,r+; char s100,t1100,t2100,w100;nPlease enter string s:%s,s);nPlease enter substring t1:,t1);nPlease enter substring t2:,t2); if(strlen(t1)=strlen(t2) fun(s,t1,t2,w);nThe result
5、 is:%sn,w);Error:strlen(t1)!=strlen(t2)n每改对一处得6分,结果正确得10分。二、编写程序(程序文件取名为 test2-2.c)(60分)1文件打开、关闭正确 10分 2屏幕结果输出正确 5分3文件结果输出正确 5分 4数据输入方法正确 5分5函数调用和函数参数定义方法正确 10分 6下标为奇数位置的判断正确 10分7字母转换正确 10分 8命令行参数使用正确 5分void fun(char *st) char *p=st; int i=0; while(*p) if(i%2)&(*p=a & *p=s1;p+) /* 改为 p- */ *(p+len2)
6、=*p; while(*s2) *s1+=*s2+; *(q+len1+len2)=; return p; /* 改为 return q */ char str1100,str2100,*add;Input a string: gets(str1);nInput the string do you want to insert: gets(str2); add=insert(str1,str2);output is :,add);每改对一处得5分,结果正确得10分。二、编写程序(程序文件取名为 test3-2.c)(60分)1字符串输入正确 5分 2函数及函数调用正确 10分3替换位置定义正确
7、 10分 4字符串替换正确 15分5屏幕上显示结果正确 5分 6文件打开、关闭正确 5分7文件写入正确 5分 8返回结果正确 5分char *strrep(char *s1,char *s2,int n) char *p,*q; p=s1+n; q=s2; while(*q) *p+=*q+; *p= return s1; char a100,b100,*str; int n,len;test3-2.datInput string a and b: gets(a); gets(b); len=strlen(a);Input number: if(n=0)&=len) str=strrep(a,
8、b,n);Output is :,str); elsen value is error.n第二十次等级考试 二级 (C和 C+语言 )上机考试试卷 (第一套 ) 参考答案#include A*strp) /* 改为 | */ len+; /* 增加一行语句: strp+; */ if(lenmax */ len=0; strp+; return; /* 改为 return max */ char str100; int maxlen; printf(Input a sentence: gets(str); maxlen=len_max(&str); /* 改为 str */maxlen=%dn
9、,maxlen);1文件打开、关闭正确 2屏幕结果输出正确3文件结果输出正确 4函数定义、形参书写正确5正确定义实参二维数组,并能正确调用creat函数 6函数中对二维数组的处理正确void creat(int a1010,int n) int i,j;=i; aij=i*4+j*2+1; int a1010,m,i,j;Input m(110):m); creat(a,m);%5d第二十次等级考试二级 (C与 C+语言 )上机考试试卷 (第二套 ) 参考答案void fun(int m, char s) /* 改为 *s */ int k, i=10; while(m!=0) k=m/i ;
10、 /* 改为 m%i */ *s=k+0 /* 改为 */ s+ ; m=(m-k)/i ; /*增加一行内容:*s= int x, i; char s10;, &x); if(x fun(x, s); for(i=0 ; s ; i+) /* 改为 si */%c* , si) ;x value errorn1文件打开和关闭正确 2串的读入正确3串的排序正确 4文件位置指针定位正确5屏幕输出和文件输出正确 6程序结构合理 char str380,string80; int i,j,k;test2-2.txtr+3; fgets(stri,80,fp);The strings:,stri);2
11、; k=i; for(j=i+1; if( strcmp( strk , strj ) 0 ) k=j; if(k!=i) strcpy(string,strk); strcpy(strk,stri); strcpy(stri,string);Sorted result: fseek(fp,0,2);二级 (C与 C+语言 )上机考试试卷 (第三套 ) 参考答案#define M 2#define N 3#define P 2void fun(int aMN,bNP,cMP) /* 改为 int bNP,int cMP */ int i,j,k;=P;i+) /* 改为 iP */P; cij
12、=0; for(k=0;k+) /* 改为 kN */ cij=aik*bkj; /* 改为 += */ int a23=1,2,3,4,5,6; int b32=1,2,3,4,5,6; int c22, i, j; fun(*a,*b,*c); /* 改为 fun(a,b,c) */%d ,cij); 1文件打开和关闭正确 2函数定义、调用和参数使用正确3屏幕输出和文件输出正确 4递归调用方法正确5命令行参数使用正确 6程序结构合理int fun(int n) int f; if(n1) return 0; else if(n=1) f=1; else f=fun(n-1)+n; retu
13、rn f;main(int argc,char *argv) int sum,n;Error! fp=fopen(argv1,Input n: sum=fun(n);1+2+.+%d=%dn,n,sum);第二十一次等级考试二级 (C与 C+语言 )上机考试试卷 (第一套 ) 参考答案char *fun( char str) /* 改为 *str */ int i ; for(i=0 ; str; i+) /* 改为 stri */ if(=stri)|(striint prime(int a,int n) int i,j,k=0,flag=0; for(j=2;ai; if(ai%j=0) flag=0; else flag=1; if(flag) ak+=ai; return k; int n,i,a10; f