《2022年四川省计算机二级C语言次机试试题参考答案收集 .pdf》由会员分享,可在线阅读,更多相关《2022年四川省计算机二级C语言次机试试题参考答案收集 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 1 页 共 8 页29-1 套 参考答案:一、程序调试题(文件名为test1-1.c)( 40 分 ) # include # include # define M 5 # define N 20 void fun(char (*ss)N) int i,j,k=0,n,m,len; for(i=0;iM;i+) len=strlen(ssi); if(i=0) n=len; /* 改为: i=0 */ if(lenn */ n=len; k=i; for(i=0;i=0;j-) ssim-=ss
2、ij; for(j=0;j n+len;j+) /* 改为: n-len */ ssij=*; void main() char ssMN; int i; FILE *fp; fp=fopen(test1-1.in,r); if(fp=NULL) printf(File cannot open!n); exit(0); for(i=0;iM;i+) fscanf(%s,ssi ); /* 改为: fp, %s,ssi */ printf(nThe original strings are:n); for(i=0;iM;i+) printf(%sn,ssi); printf(n); fun(ss
3、); for(i=0;iM;i+) printf(%sn,ssi); fclose(fp); 评分标准:每改对一处得8 分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 2 页 共 8 页二、编程题(程序文件取名为test1-2.c) (60 分)评分标准:1. main 函数 30 分2. fun 函数 30 分1)字符串和字符
4、输入正确10 分1)删除字符方法正确10 分2)函数调用参数传递正确10 分2)指针使用正确10 分3)输出结果正确10 分3)si=0 10 分参考程序:# include # define N 100 int fun(char s,int c) char *p=s; int i; while(*p) if(*p!=c) si+=*p; p+; si=0; main() char strN,ch; printf(nEnter string:); gets(str); printf(Entera char to be deleted:); scanf(%c ,&ch); fun(str,ch)
5、; printf(Result=%sn,str); 29-2 套 参考答案:一、程序调试题(文件名为test2-1.c)( 40 分 ) # include # include float fun(float num) int s; float n,t,pi; t=1;pi=0;n=1;s=1; while ( t=num ) /* 改为: fabs(t)=num */ pi=pi+t; n=n+2; s=-s; t=s%n; /* 改为: s/n */ pi=pi*4; return; /* 改为: return pi */ main() 名师资料总结 - - -精品资料欢迎下载 - - -
6、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 3 页 共 8 页 float n1,n2; FILE *fp; fp=fopen(test2-1.out, r); /* 改为: w */ if(fp=NULL) printf(nFile cannot open!n); exit(0); printf(Enter a float number:); scanf(%f,&n1); n
7、2=fun() ; /* 改为: n2=fun(n1) */ printf(%6.4fn,n2); fprintf(fp,Result=%6.4fn,n2); fclose(fp); 评分标准:每改对一处得8 分二、编程题(程序文件取名为test2-2.c) (60 分)评分标准:1. fun 函数编写40 分2. main 函数 20 分1)函数定义、形参书写正确10 分1)能正确字义数组,并能对字符串进2)能正确将字符数组a 复制到字符数组c 10 分行正确的输入和输出10 分3)能正确将字符数组b 复制到字符数组c 10 分2)能正确调用fun 函数10 分4)ck= 010 分参考程序
8、:# include # include void fun(char *a,char *b,char *c) int i,j,k; for(i=0;ai!=0;i+) ci=ai; for(k=i,j=strlen(b)-1;j=0;k+,j-) ck=bj; ck=0; void main() char a50,b50,c100; printf(Input string a:); gets(a); printf(Input string b:); gets(b); fun(a,b,c); printf(string c:%sn,c); 名师资料总结 - - -精品资料欢迎下载 - - - -
9、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 4 页 共 8 页29-3 套 参考答案:一、程序调试题(文件名为test3-1.c)( 40 分 ) # include void fun(int a,int n) int i,j=0,b20; for(i=0;i=0) bj=ai; /* 改为: j+ */ for(i=0;i0) /* 改为: */ bj+=ai; for(i=0;
10、in;i+) ai=bi; void main() int a10,i; char filename20; FILE *fp; printf(Input filename:); scanf(%c ,filename); /* 改为: %s */ if(fp=fopen(filename,r)=NULL) printf(Cannot open the file.n); exit(0); for(i=0;i10;i+) fscanf(fp,%d, ai); /* 改为: &ai */ fun(a,10); for(i=0;i10;i+) printf(%4d, a+i); /* 改为: ai */
11、 fclose(fp); 评分标准:每改对一处得8 分二、编程题(程序文件取名为test3-2.c) (60 分)评分标准:1fun 函数编写40 分:1) 函数定义、形参书写正确10 分2) 能正确处理n 大于 s的长度的情况10 分3) 能正确处理n 小于 s的长度的情况10 分4) tj= 010 分2main 函数 20 分:1) 能正确定义数组,并能正确进行输入输出10 分2) 能正确调用函数10 分参考程序:# include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
12、第 4 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 5 页 共 8 页# include void fun(char *s,char *t,int n) int i,j,k; k=strlen(s); if(n=k) for(i=0;si!=0;i+) ti=si; ti=0; else for(i=k-n,j=0;si!=0;i+,j+) tj=si; tj=0; void main() char s80,t80; int i,n; printf(Input string:); get
13、s(s); printf(Input n:); scanf(%d,&n); fun(s,t,n); printf(Result:); puts(t); 29-4 套 参考答案:一、程序调试题(文件名为test4-1.c)( 40 分 ) # include stdio.h # define N =3 /* 改为:3 */ int fun(int aN,n) /* 改为: int n */ int i,j; for(i=0;iN;i+) for(j=0;j=j) aij =* n; /* 改为: *= */ main() int aNN,n,i,j; FILE *fp; for(i=0;iN;i
14、+) for(j=0;jN;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 6 页 共 8 页 aij=rand()%10; printf(%4d, aji ); /* 改为: aij */ printf(n); do n=rand()%10; while(n=3) /* 改为: (n=3); */ printf(n=%4
15、dn,n); fun(a,n); fp=fopen(test4-1.out,w); if(fp=NULL) printf(nFile cannot open!n); exit(0); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); fprintf(fp,%4d,aij); printf(n); fclose(fp); 评分标准:每改对一处得8 分二、编程题(程序文件取名为test4-2.c) (60 分)评分标准:1fun 函数编写20 分:1) 函数定义、形参书写正确10 分2) for 循环书写正确10 分2main 函数 40 分:1) 字符
16、串输入和输出正确5 分2) 字符串的长度计算准确10 分3) 字符串前导 * 号个数计算准确10 分4) 字符串尾部 * 号个数计算准确10 分5) 函数调用参数传递正确5 分参考程序:# include void fun(char *a,int n,int h ,int e) int i,j=0; for(i=h;in-e;i+) aj+=ai; aj=0; void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - -
17、- 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 7 页 共 8 页 char s81,*t,*f; int m=0,tn=0,fn=0; printf(Enter a string:n); gets(s); t=f=s; while(*t) t+; m+; t-; while(*t=*) t-; tn+; while(*f=*) f+; fn+; fun(s,m,fn,tn); printf(The string after deleted:n); puts(s); 29-5 套 参考答案:一、程序调试题(文件名为test5-1.c)(
18、40 分 ) # include void fun(double a, b,*x,*y ) /* 改为: double b, double *x, double *y */ x=a*b; y=a/b; /* 改为: *x=a*b; *y=a/b; */ io() int i; double a,b,c,d; file *rf,*wf; /* 改为: FILE */ rf=fopen(test5-1.in,r); wf=fopen(test5-1.out,w); fscanf(rf,%lf%lf,&a,&b); fun(a,b,c,d); /* 改为: fun( a , b , &c , &d
19、) */ fprintf(c=%lfnn=%lfn,c,d); /* 改为: fprintf ( wf , c=%lfnn=%lfn , c , d ) ; */printf(c=%lfnn=%lfn,c,d);fclose(rf); fclose(wf); void main() double a,b,c,d; clrscr(); io(); 评分标准:每改对一处得8 分二、编程题(程序文件取名为test5-2.c) (60 分)评分标准:1convert 函数 25 分1) 函数定义(参数)正确10 分2) 转置正确15 分2main 函数 35 分1) 二维数组定义正确5 分名师资料总结
20、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 四川省第二十九次等级考试二级C 与 C+语言机试试题参考答案(2008 年 10 月 19 日)第 8 页 共 8 页2) 数据输入正确10 分3) 函数调用参数传递正确10 分4) 结果输出正确10 分参考程序:# include void convert(int a4,int b3) int i,j; for(i=0;i3;i+) for(j=0;j4;j+) bji=aij; void main() int a34,b43; int i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); convert(a,b); for(i=0;i4;i+) for(j=0;j3;j+) printf(%5d,bij); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -