ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:18.90KB ,
资源ID:23369320      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23369320.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(四川省计算机二级C语言试题和答案.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

四川省计算机二级C语言试题和答案.docx

1、四川省计算机二级C语言试题和答案32(第一套)(60分钟)一、程序调试题(文件名为test1-1.c) (40分)在main函数中分别输入两个字符串s和t,调用fun函数,并将结果输出到屏幕和文本文件test1-1.txt中。函数fun的功能是:找出字符串s中,在s 和t中都出现过的字符,并将其放入字符串p中。例如:假设字符串s 为“abcdaef”,字符串t为“catbrd”,则输出“abcda”。请改正程序中的错误,使它能得出正确结果。注意:不得增行或删行,也不得更改程序结构。一、程序调试题(文件名为 test1-1.c)( 40 分 )#include void fun(char *s,

2、char *t,char p) /* 改为:char *p */ int i,j,k=0; for(i=0;si!=0;i+) for(j=0;tj!=0;j+) if(si=ti) /* 改为:tj */ pk=si; k+; break; pk-1=0; /* 改为:pk */void main() FILE *fp; char s80,t80,p80; if(fp=fopen(test1-1.txt,r)=NULL) /* 改为:w */ printf(Cannot open the file.n); exit(0); gets(s); gets(t); fun(s,t,p); prin

3、tf(Result:n); puts(p); fputc(p,fp); /* 改为:fputs */ fclose(fp);二、编写程序(程序文件名命为test1-2.c)(60分)(1)请编写函数fun,它的功能是:求两个整数x和y的最大公约数,最大公约数作为函数值返回。(2)在main函数中输入三个整数,通过调用fun函数求出三个数的最大公约数,并输出结果。参考程序:#include int fun(int x,int y) int t; while(y!=0) t=x%y; x=y; y=t; return x;void main() int a,b,c,d; printf(Input

4、3 numbers:n); scanf(%d%d%d,&a,&b,&c); d=fun(a,fun(b,c); printf(Result=%dn,d);(第二套)(60分钟)一、程序调试题(文件名为test2-1.c) (40分)fun函数功能是在一个字符串,根据给定的插入位置i,插入一个指定的字符ch。如果i超过了字符串的长度,则将字符ch添加到字符串的末尾。在main函数中,输入一个字符串、插入位置和要插入的一个字符,调用函数fun,最后将插入后的结果输出到屏幕和文件test1-2.dat中。例如输入abcdefg字符串,给定插入位置为3,插入字符为A。则输出结果为:abcAdefg。若

5、给定的插入位置为20,则输出结果为:abcdefgA。请改正程序中的错误,使它能得出正确的结果。注意:不得增行或删行,也不得更改程序的结构。一、程序调试题(文件名为 test2-1.c)( 40 分 )#include #include #include #define N 80char insert(char str,int i,char ch) /* 改为:char *str */ int j,len; len=strlen(str); if(ilen) /* 改为:i=i;j+) /* 改为:j- */ strj+1=strj; stri=ch; strlen=0; /* 改为:len+

6、1 */ else i=len; stri=ch; strlen+1=0; void main() char str81,ch; int i; FILE *fp; fp=fopen(test1-2.dat,r); /* 改为:w */ if(fp=NULL) printf(file can not open!n); exit(0); printf(Input a string:); gets(str); printf(Input insert position and character:); scanf(%d,%c,&i,&ch); insert(str,i,ch); printf(%sn,

7、str); fprintf(fp,%sn,str); fclose(fp); 二、编写程序(程序文件名命名为test2-2.c) (60分)(1)编写函数fun,该函数的功能是:求出整型数组a中N个数的平均值,并将大于平均值的整数放入数组b中,数组b的个数作为函数值返回。(2)在main函数中,输入N个整数,调用fun函数,最后输出结果。参考程序:#include # define N 10int fun(int *a,int *b) int i,j; double sum=0,aver; for(i=0;iN;i+) sum=sum+ai; aver=sum/N; for(i=0,j=0;i

8、aver) bj+=ai; return j;void main() int aN,bN,i,k; for(i=0;i10;i+) scanf(%d,&ai); k=fun(a,b); for(i=0;ik;i+) printf(%5d,bi);(第三套)(60分钟)一、程序调试题(文件名为test3-1.c) (40分)fun函数的功能是统计M行字符串中最长的字符串,并返回最长字符串的字符个数。在main函数中,从文件test3-1.dat中输入M行字符串(每行字符串的长度不超过80个字符),调用fun函数,然后输出最长字符串的字符个数。请改正程序中的错误,使它能得出正确结果。注意:不得增行

9、或删行,也不得更改程序结构。一、程序调试题(文件名为 test3-1.c)( 40 分 )# include # define M 10# define N 80void main() int max,lin,i=0,aM; char strMN; int fun(char MN,int *); FILE *fp; if(fp=fopen(test3-1.dat,r)=null) /* 改为:NULL */ printf(Cannot open file.n); exit(0); while(!feof(fp) gets(stri+,N,fp); /* 改为:fgets */ fclose(f

10、p); fun(str,a); /* 改为:max=fun(str,a) */ printf(max=%dn,max);int fun(char strN,int a) int i,j=0,max; for(i=0;iM;i+) while(strij) j+; ai=i; /* 改为:ai=j */ j=0; max=a0; for(i=1;imax) max=ai; return; /* 改为:return max */二、编写程序(程序文件名命名为test3-2.c) (60分)(1)编写函数fun,其功能是从给定的N个整数中顺序查找一个指定的数,找到则返回该数的位置,否则返回-1。(2

11、)在main函数中输入N个整数和需要查找的数,调用fun函数,若返回值大于等于0则输出该数以及该数在数组中的位置,否则输出-1。参考程序:#include # define N 10int search(int *r,int k) int t; for(t=0;tN;t+) if(k=rt) return t; return -1;void main() int a30,s; int i,k; printf(Enter %d numbers: ,N); for(i=0;iN;i+) scanf(%d,&ai); printf(Find what: ); scanf(%d,&s); k=sear

12、ch(a,s); if(k=-1) printf(Searching failed!n); else printf(Position is %d.n,k+1); (第四套)(60分钟)一、程序调试题(文件名为test4-1.c ) (40分)fun函数的功能是:将字符串s中的数字字符取出,转换成一个整数,整数作为函数值返回。例如:字符串为“ab12CD34”,则取出数字字符转换成整数1234。在main函数中调用fun函数,并将转换后的结果写到文本文件test4-1.dat中。请改正程序中的错误,使它能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。一、程序调试题(文件名为 test

13、4-1.c)( 40 分 )#define N 20# include int fun(char s) /* 改为:char *s */ int i,t=0; for(i=0;si!=0;i+) if(si=0|si=9) /* 改为:& */ t=t*10+si; /* 改为:t=t*10+si- 0 */ return t;void main() char s20; int t; file *fp; /* 改为:FILE */ if(fp=fopen(test4-1.dat,w)=NULL) printf(Cannot open file!n); exit(0); gets(s); t=f

14、un(s); printf(t=%dn,t); fprintf(t=%dn,t); /* 改为:fp, t=%dn,t */ fclose(fp);二、编写程序(程序文件名命名为test4-2.c) (60分)(1)编写fun函数,其功能是对长度为N 的字符串中的N个元素进行从大到小冒泡排序。(2)在main函数中输入一个长度为N的字符串,调用 fun函数,然后输出排序后的结果。参考程序:# include # include # define N 80void sort(char *r) int a,b,t,len; len=strlen(r); for(a=1;alen;a+) for(b

15、=0;blen-a;b+) if(rbrb+1) t=rb; rb=rb+1; rb+1=t; void main() char strN; printf(Enter a string: ); scanf(%s,str); sort(str); printf(Result is: %sn,str);(第五套)(60分钟)一、程序调试题(文件名为test5-1.c )(40分)在main函数中,从文本文件test5-1.dat中读出N个数,调用fun函数,统计其中素数的个数,并在main函数中输出其素数的个数及其所有素数。请改正程序中的错误,使它能得出正确结果。注意:不得增行或删行,也不得更改程

16、序结构。一、程序调试题(文件名为 test5-1.c)( 40 分 )# include # define N 10int fun(int *a,int c) int i,j,k=0; for(i=0;iN;i+) for(j=2;j=*(a+i)/2;j+) if(*(a+i)/j=0) break; /* 改为:*(a+i)%j */ if(j*(a+i)/2 */ ck=a+i; /* 改为:*(a+i) */ k+; return k;void main() int aN,cN,cnt,i; FILE *fp; fp=fopen(test5-1.dat,r); /* 改为:test5-

17、1.dat */ if(fp=NULL) printf(Can not open file!n); exit(0); for(i=0;iN;i+) fscanf(%d,a+i,fp); /* 改为:fp,%d,a+i */ cnt=fun(a,c); printf(amount: %4dn,cnt); printf(prime number: ); for(i=0;icnt;i+) printf(%4d,ci);二、编写程序(程序文件名命名为test5-2.c) (60分)(1)编写函数fun,其功能是:将一个NN的二维数组进行转置,转置以后的结果仍然存放在原来的二维数组中。(2)在main函

18、数中按如下数据对一个二维数组a进行初始化,输出原始数组,调用 fun函数,输出转置后的数组。原始数据 1 2 3 4 转置后的数据 1 3 5 7 3 4 5 6 2 4 6 8 5 6 6 7 3 5 6 9 7 8 9 0 4 6 7 0参考程序:# include # define N 4void convert(int aN) int i,j,t; for(j=0;jN;j+) for(i=j+1;iN;i+) t=aij; aij=aji; aji=t; void main() int i,j; int aNN=1,2,3,4,3,4,5,6,5,6,6,7,7,8,9,0; pri

19、ntf(Before convert:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); convert(a); printf(After convert:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); (第六套)(60分钟)一、程序调试题(文件名为test6-1.c )(40分)fun函数的功能是:将一个字符串中连续的数字串转换成一个整数,依次存放在数组a中,并统计该字符串中共有多少个整数。在main函数中从test6-1.dat中读入一个字符串

20、,调用fun函数,然后输出字符串中的所有整数。例如,如读入的字符串为“wd123er34gdfk”,则输出的整数为123和34。请改正程序中的错误,使它能得出正确结果。注意:不得增行或删行,也不得更改程序结构。一、程序调试题(文件名为 test6-1.c)( 40 分 )# define N 80# include int fun(char p,int a) /* 改为:char *p */ int i=0,j=0,flag=0,val=0,d; while(p+i)!=0) /* 改为:*(p+i) */ if(*(p+i)9) /* 改为:| */ if(flag) aj+=val; fl

21、ag=val=0; else d=*(p+i)-48; val=val+10+d; /* 改为:*10 */ flag=1; i+; if(*(p+i)=0&flag) aj+=val; return j;void main() char strN; int aN,n,i; FILE *fp; if(fp=fopen(test6-1.dat,r)=NULL) printf(Cannot open the file!n); exit(0); fgets(fp,str,N-1); /* 改为:str,N-1,fp */ fclose(fp); n=fun(str,a); for(i=0;in;i+

22、) printf(%dn,ai); printf(nsum to %d data.n,n);二、编写程序(程序文件名命名为test6-2.c) (60分)(1)编写fun函数,其功能是将N个数按如下规律输出。例如输入:1,2,3,4,fun函数输出:4 1 2 33 4 1 22 3 4 11 2 3 4(2)在main函数中输入N个数,调用函数fun。参考程序:# include # define N 4void fun(int a) int i,j,k,m; for(i=N;i0;i-) k=aN-1; for(j=N-1;j0;j-) aj=aj-1; a0=k; for(m=0;mN;m+) printf(%3d,am); printf(n); void main() int i,aN; printf(Enter %d number: ,N); for(i=0;iN;i+) scanf(%d,&ai); fun(a);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1