1、四川省计算机二级C与C+机试题参考答案1824次四川省普通高等学校计算机应用知识和能力第十八次等级考试二级 (C语言 )上机考试试卷 (第一套) 参考答案一、程序调试题(文件名为test1-1.c)(40分)# include # include int fun(int m); /* 去掉分号(;) */ int sum,n=0,j,yes; /* 改为 sum=0 */ while(m=2)&(n10) /* 改为 (n10) */ yes=0; /* 改为 yes=1 */ for(j=2;j=m/2;j+) if(m%j=0) yes=0; break; if(yes=1) /* 改为
2、yes=1 */ sum+=m; n+; m-; return ; /* 改为 return sum */main() int m; clrscr(); scanf(%d,m); /* 改为 &m */ printf(%dn,fun(m);评分标准:每改对一处得5分,运行结果正确得5分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1文件打开与关闭正确 10分 2文件读写正确 10分3函数及函数调用正确 20分 4屏幕上显示结果正确 10分5Test1-2.txt中结果正确 10分参考程序:# include # include # define M 10int aMM
3、=0;fm(int aM,int m) int j,k; for(j=0;jm;j+) for(k=0;km;k+) ajk=(k+1)*(j+1);main() int i,j,n; FILE *fp; fp=fopen(test1-2.txt,w); clrscr(); printf(Enter n:); scanf(%d,&n); fm(a,n); for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); fprintf(fp,%4d,aij); printf(n); fprintf(fp,n); fclose(fp);四川省普通高等学校计算机应用知识
4、和能力第十九次等级考试二级 (C和C+语言 )上机考试试卷 (第一套) 参考答案一、程序调试题(文件名为test1-1.c)(40分)# include void fun(long s,long t) /* 改为 long *t */ long s1=10; *t=s%10; while(so); /* 改为 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; printf(nPlease enter integer s:); s
5、canf(%ld,&s); if(s0) fun(s,&t); printf(The result is :%ldn,t); else printf(s value error.n);评分标准:每改对一处得6分,第二处有两个错误,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1文件打开、关闭正确 10分 2屏幕结果输出正确 5分3文件结果输出正确 5分 4数据输入方法正确 5分5排号正确 5分 6数据初始化正确 5分7数据处理正确 20分 8找出结果正确 5分参考程序:# include # define nmax 50void main() int
6、i,k,m,n,numnmax,*p; FILE *fp; printf(Please enter the n:); scanf(%d,&n); p=num; for(i=0;in;i+) *(p+i)=i+1; i=0;k=0;m=0; while(mn-1) if( *(p+i)!= 0 ) k+; if(k=5) *(p+i)=0; k=0;m+; i+; if(i=n) i=0; while(*p=0) p+; fp=fopen(test1-2.dat,w); printf(%d number is a last ont.n,*p); fprintf(fp,%d number is a
7、 last ont.n,*p); fclose(fp);四川省普通高等学校计算机应用知识和能力第十九次等级考试 二级 (C和 C+语言 )上机考试试卷 (第二套 ) 参考答案一、程序调试题(文件名为test2-1.c)(40分)# include # include void 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+; else
8、 continue; /* 改为 break */ if(*r=0) /* 改为 0 */ place=w; w+; if(place!=NULL) r=t2; while(&r) /* 改为 *r */ *place=*r,place+,r+; main() char s100,t1100,t2100,w100; printf(nPlease enter string s:); scanf(%s,s); printf(nPlease enter substring t1:); scanf(%s,t1); printf(nPlease enter substring t2:); scanf(%
9、s,t2); if(strlen(t1)=strlen(t2) fun(s,t1,t2,w); printf(nThe result is:%sn,w); else printf(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分参考程序:#
10、 include void fun(char *st) char *p=st; int i=0; while(*p) if(i%2)&(*p=a & *p=s1;p+) /* 改为 p- */ *(p+len2)=*p; while(*s2) *s1+=*s2+; *(q+len1+len2)=0; return p; /* 改为 return q */void main() char str1100,str2100,*add; printf(Input a string:n); gets(str1); printf(nInput the string do you want to inser
11、t:n); gets(str2); add=insert(str1,str2); printf(output is :%sn,add);评分标准:每改对一处得5分,结果正确得10分。二、编写程序(程序文件取名为 test3-2.c)(60分)评分标准:1字符串输入正确 5分 2函数及函数调用正确 10分3替换位置定义正确 10分 4字符串替换正确 15分5屏幕上显示结果正确 5分 6文件打开、关闭正确 5分7文件写入正确 5分 8返回结果正确 5分参考程序:# include # include char *strrep(char *s1,char *s2,int n) char *p,*q;
12、 p=s1+n; q=s2; while(*q) *p+=*q+; *p=0; return s1;main() char a100,b100,*str; int n,len; FILE *fp; fp=fopen(test3-2.dat,w); printf(Input string a and b:n); gets(a); gets(b); len=strlen(a); printf(Input number:); scanf(%d,&n); if(n=0)&(n=len) str=strrep(a,b,n); printf(Output is :%sn,str); fprintf(fp,
13、Output is :%sn,str); else printf(n value is error.n); fprintf(fp,n value is error.n); fclose(fp);四川省普通高等学校计算机应用知识和能力第二十次等级考试 二级 (C和 C+语言 )上机考试试卷 (第一套 ) 参考答案一、程序调试题(文件名为test1-1.c)(40分)#include int len_max(char *strp) int max=0,len=0; while(strp!=0) while(*strp=A&*strp=a&*strp=z) /* 改为 | */ len+; /* 增
14、加一行语句: strp+; */ if(lenmax */ len=0; strp+; return; /* 改为 return max */void main() char str100; int maxlen; printf(Input a sentence:n); gets(str); maxlen=len_max(&str); /* 改为 str */ printf(maxlen=%dn,maxlen);二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1文件打开、关闭正确 2屏幕结果输出正确3文件结果输出正确 4函数定义、形参书写正确5正确定义实参二维数组,并能正
15、确调用creat函数 6函数中对二维数组的处理正确参考程序:# include void creat(int a1010,int n) int i,j; for(i=0;in;i+) for(j=0;j=i;j+) aij=i*4+j*2+1;main() int a1010,m,i,j; FILE *fp; fp=fopen(test1-2.dat,w); printf(Input m(110):); scanf(%d,&m); creat(a,m); for(i=0;im;i+) for(j=0;j=i;j+) printf(%5d,aij); fprintf(fp,%5d,aij); p
16、rintf(n); fprintf(fp,n); fclose(fp);四川省普通高等学校计算机应用知识和能力第二十次等级考试二级 (C与 C+语言 )上机考试试卷 (第二套 ) 参考答案一、程序调试题(文件名为test2-1.c)(40分)#include void fun(int m, char s) /* 改为 *s */ int k, i=10; while(m!=0) k=m/i ; /* 改为 m%i */ *s=k+0; /* 改为 0 */ s+ ; m=(m-k)/i ; /*增加一行内容:*s=0; */void main() int x, i; char s10; sca
17、nf(%d, &x); if(x0) fun(x, s); for(i=0 ; s ; i+) /* 改为 si */ printf(%c* , si) ; else printf(x value errorn);二、编写程序(程序文件取名为 test2-2.c)(60分)评分标准:1文件打开和关闭正确 2串的读入正确3串的排序正确 4文件位置指针定位正确5屏幕输出和文件输出正确 6程序结构合理参考程序:# include # include main() char str380,string80; int i,j,k; FILE *fp; fp=fopen(test2-2.txt,r+);
18、for(i=0;i3;i+) fgets(stri,80,fp); printf(The strings:n); for(i=0;i3;i+) printf(%s,stri); for(i=0;i2;i+) k=i; for(j=i+1;j 0 ) k=j; if(k!=i) strcpy(string,strk); strcpy(strk,stri); strcpy(stri,string); printf(Sorted result:n); fseek(fp,0,2); for(i=0;i3;i+) printf(%s,stri); fprintf(fp,%s,stri); fclose(
19、fp);四川省普通高等学校计算机应用知识和能力第二十次等级考试二级 (C与 C+语言 )上机考试试卷 (第三套 ) 参考答案一、程序调试题(文件名为test3-1.c)(40分)#include #define M 2#define N 3#define P 2void fun(int aMN,bNP,cMP) /* 改为 int bNP,int cMP */ int i,j,k; for(i=0;i=P;i+) /* 改为 iP */ for(j=0;jP;j+) cij=0; for(k=0;kn;k+) /* 改为 kN */ cij=aik*bkj; /* 改为 += */ void
20、main() 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) */ for(i=0;i2;i+) for(j=0;j2;j+) printf(%d ,cij); printf(n); 二、编写程序(程序文件取名为 test3-2.c)(60分)评分标准: 1文件打开和关闭正确 2函数定义、调用和参数使用正确3屏幕输出和文件输出正确 4递归调用方法正确5命令行参数使用正确 6程序结构合理参考程序:# include int fun(int n) int f; if(n
21、1) return 0; else if(n=1) f=1; else f=fun(n-1)+n; return f;main(int argc,char *argv) int sum,n; FILE *fp; if(argc!=2) printf(Error!n); exit(0); fp=fopen(argv1,w); printf(Input n: ); scanf(%d,&n); sum=fun(n); printf(1+2+.+%d=%dn,n,sum); fprintf(fp,1+2+.+%d=%dn,n,sum); fclose(fp);四川省普通高等学校计算机应用知识和能力第二
22、十一次等级考试二级 (C与 C+语言 )上机考试试卷 (第一套 ) 参考答案一、程序调试题(文件名为test1-1.c)(40分)#include #include char *fun( char str) /* 改为 *str */ int i ; for(i=0 ; str; i+) /* 改为 stri */ if(a=stri)|(stri=z) /* 改为 & */ stri+=32; /* 改为 -= */ return *str; /* 改为 str */main() char str81; printf(n Please enter a string:); gets(str81
23、); /* 改为 str */ printf(n The result string is:n%s , fun(str);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数编写正确 20分 2文件打开、数据读入正确和定位正确 10分3函数调用正确 5分 4屏幕输出和文件输出正确 20分5程序结构合理 5分参考程序:# include # include int prime(int a,int n) int i,j,k=0,flag=0; for(i=0;in;i+) for(j=2;jai;j+) if(ai%j=0) flag=0; break; else flag=1; if(flag) ak+=ai; return k;main() int n,i,a10; FILE *fp; f
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1