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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

经典C语言编程41题.docx

1、经典C语言编程41题1. 编程:从键盘输入10个整数,对其进行从小到大排序,将排序后的结果输出并保存到文件“DATA.DAT”中。#include void main()FILE *fp; int i,j,t,min,a10; if(fp=fopen(E:DATA1.DAT,w)=NULL) printf(cannot openn); exit(0); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i9;i+) min=i; for(j=i+1;jaj) min=j; t=amin;amin=ai;ai=t; for(i=0;i10;i+) printf(%5d

2、,ai); fprintf(fp,%5d,ai); printf(n); fprintf(fp,n); fclose(fp);2.设有10个学生的信息,包括学号、姓名和三门功课的成绩,试编写学生信息输入函数、学生信息输出函数,最后编写主函数,并在主函数中调用这些函数。 #include struct studentint num; char name10; int Computer; int Maths; int English;stu10;void input(struct student stu)int i;for(i=0;i10;i+)printf(num=);scanf(%d,&stu

3、i.num);printf(name=);scanf(%s,&stui.name);printf(Computer=);scanf(%d,&stui.Computer);printf(Maths=);scanf(%d,&stui.Maths);printf(English=);scanf(%d,&stui.English);printf(n);void print(struct student stu)int i;printf(The information of students is:n);printf(num name Computer Math Englishn);for(i=0;i1

4、0;i+)printf(%2d %8s %8d %8d %8dn,stui.num,stui.name,stui.Computer,stui.Maths,stui.English);void main()input(stu); print(stu);3.输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数,并将统计结果输出到磁盘文件“test”中保存。#include void main()FILE *fp; char c; int l=0,s=0,n=0,o=0; if(fp=fopen(E:test3,w)=NULL) printf(cannot openn); exit(0

5、); while(c=getchar()!=n) if(c=a&c=A&c=0&c=9) n+; else o+; printf(letters=%d,space=%d,number=%d,other=%dn,l,s,n,o); fprintf(fp,letters=%d,space=%d,number=%d,other=%dn,l,s,n,o); fclose(fp); 4.有4名学生,每个学生考4门课,要求:写2个函数:(1)返回值为总平均分的函数(2)返回值为最低分的函数。在main()函数中输入每个学生4门课的成绩,调用以上2个函数,输出总平均分和最低分。#include void m

6、ain()float average(int a4); int min(int a4); int i,j,score44; for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&scoreij); average(score); min(score); printf(average=%5.2f,min=%5dn,average(score),min(score);float average(int a4)int i,j; int sum=0; for(i=0;i4;i+) for(j=0;j4;j+) sum+=aij; return(sum/16);int min(

7、int a4)int i,j; int min=a00; for(i=0;i4;i+) for(j=0;jaij) min=aij; return(min);5.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求:写3个函数:(1)输入10个数的函数,(2)交换处理的函数,(3)输出10个数的函数。在main()函数中调用以上3个函数。 #include void input(int a) int i; for(i=0;i10;i+) scanf(%d,&ai); void fun(int a)int i,j,max,min,t; for(i=0;i9;i+) ma

8、x=i; for(j=1;j10;j+) if(amaxaj) max=j; t=amax;amax=a9;a9=t; min=i; for(j=1;jaj) min=j; t=amin;amin=a0;a0=t; void output(int a)int i; for(i=0;i10;i+) printf(%d,ai); printf(n);void main()int num10; input(num); fun(num); output(num);7.有一数列,包含10个数,已按升序排好。现要求编一程序,从指定位置开始的n个数按逆序重新排列并输出新的完整数列(例:原数列:2,4,6,8

9、,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)要求在主函数中输入10个数及指定位置m的值,并输出新的数列,在被调函数中从指定位置开始的n个数按逆序重新排列。 #include void main()void change(int *p,int n); int a10=2,4,6,8,10,12,14,16,18,20; int i; change(&a3,5); for(i=0;i10;i+) printf(%3d,ai); void change(int *p,int n) int i,t

10、,*p1,*p2; for(i=0;in/2;i+) p1=p+i; p2=p+n-1-i; t=*p1; *p1=*p2; *p2=t; 8.编写函数void sort(int a,int n),其功能是对a数组中前n个元素从小到大排序。要求:在main中输入a数组的10个元素;调用函数sort实现对a数组的排序;输出排序后的各元素。#include void main()void sort(int a,int n); int i,j,n,aa10; for(i=0;i10;i+) scanf(%d,&aai); scanf(%d,&n); sort(aa,n); for(i=0;i10;i

11、+) printf(%d,aai); printf(n);void sort(int a,int n) int i,j,t,min; for(i=0;in-1;i+) min=i; for(j=i+1;jaj) min=j; t=amin;amin=ai;ai=t; 9.编写一个函数void invert(int x ,int k,int j),其功能是:按逆序重新放置x数组中下标kj的元素。在main函数中从键盘输入x数组元素,调用invert函数输出结果。#include #define N 10void main()void invert(int x,int k,int j); int

12、xN,i; for(i=0;iN;i+) scanf(%d,xi); invert(x,2,8); for(i=0;iN;i+) printf(%d,xi); void invert(int x,int k,int j) int i,t; for(i=k;i(k+j)/2;i+) t=xk; xk=xj; xj=t; k+; j-; 10.有一个3*4的矩阵,找出每行中最大的元素并与第一列交换,输出原矩阵及处理后的矩阵并保存到文件“DATA.DAT”中。#include void main()FILE *fp; int i,j,t,lie,max,a34; if(fp=fopen(f:DATA

13、10.DAT,w)=NULL) printf(connot openn); exit(0); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); for(i=0;i3;i+) max=ai0; for(j=0;j4;j+) if(maxaij) max=aij; lie=j; t=ailie;ailie=ai0;ai0=t; for(i=0;i3;i+) for(j=0;j4;j+) printf(%4d,aij); fprintf(fp,%4d,aij); printf(n); fprintf(fp,n); fclose(fp);11.函数void f

14、un(char s,char ch)的功能是:从字符串s中删除字符ch。要求:在main函数中输入字符串s及要删除的字符ch的值,调用fun函数,输出删除了字符ch后的字符串。例如:从键盘输入cabcdabcdabcxccc和c,输出的结果应该是abdabdabx。#include #include void main()void fun(char s,char ch); char str81,c; gets(str); scanf(%s,&c); fun(str,c); puts(str);void fun(char s,char ch)int i,j; for(i=j=0;si!=0;i+

15、) if(si!=ch) sj+=si; sj=0;12.编程:在N行M列的二维数组中选出最大值,输出最大值及所在的行下标和列下标并保存到文件“DATA.DAT”中。#include #define N 3#define M 4void main()FILE *fp; int i,j,max,aNM,hang,lie; if(fp=fopen(E:DATA12.DAT,w)=NULL) printf(cannot openn); exit(0); for(i=0;iN;i+) for(j=0;jM;j+) scanf(%d,&aij); max=a00; for(i=0;iN;i+) for(

16、j=0;jM;j+) if(maxaij) max=aij; hang=i;lie=j; printf(max=%dn,max); fprintf(fp,max=%dn,max); printf(hang=%d,lie=%dn,+hang,+lie); fprintf(fp,hang=%d,lie=%dn,+hang,+lie); fclose(fp); 13.函数int ispalin(char str)的功能是判断字符串str是否为回文,即顺读和逆读都一样的字符串,若是,返回1;否则返回0。要求:在main函数中从键盘输入字符串str,调用ispalin函数,输出判断结果。例如:输入adm

17、da,则输出admda:yes;输入abcdabc,则输出abcdabc:No。#include stdio.h#include string.hmain() int fun(char str); char str81; scanf(%s,str); if(fun(str) printf(%s yesn,str); else printf(%s non,str);int fun(char str)int i,j; j=strlen(str)-1; for(i=0;ij;i+,j-) if(stri!=strj) return(0); return(1);14.编写函数int prime(int

18、 n),功能为判断n是否为素数,若是,返回1;否则返回0。要求:在main函数中调用函数prime,将2100以内的所有素数存放到一维数组a中,输出a中的所有元素。#include#includevoid main() int prime(int n); int a50,i,k=0; for(i=2;i=100;i+) if(prime(i)=1) ak+=i; for(i=0;ik;i+) printf(%d ,ai);int prime(int n) int i,k=sqrt(n); for(i=2;ik) return 1; else return 0;15.函数int flag(int

19、 x0,int x1,int d)的功能是:找出x0至x1之间所有能被3整除的数存入d数组中,返回d数组中元素的个数。编写main函数,调用flag函数求出1550之间所有满足条件的整数。#include void main()int flag(int x0,int x1,int d); int n,i,a30; n=flag(15,50,a); printf(n=%dn,n); for(i=0;in;i+) printf(%4d,ai); printf(n); int flag(int x0,int x1,int d) int i,k=0; for(i=x0;i=x1;i+) if(i%3=

20、0) dk+=i; return(k); 16.编程:从键盘输入N个字符串,输出其中最长的字符串并保存到文件“DATA.DAT”中。#include #include #define N 10void main()FILE *fp; char aN80; int i,tN,max;if(fp=fopen(E:DATA16.DAT,w)=NULL) printf(cannot openn); exit(0); for(i=0;iN;i+) scanf(%s,&ai); for(i=0;iN;i+) ti=strlen(ai); max=t0; for(i=0;iN;i+) if(maxti) m

21、ax=ti; for(i=0;iN;i+) if(strlen(ai)=max) printf(%s,ai); fprintf(fp,%s,ai); fclose(fp);17.函数int fun(int a ,int n,int b )的功能是:求出数组a中n个元素的平均值,将大于平均值的元素存入b数组中,函数返回b数组中元素个数。编写main,通过调用fun,输出大于平均值的元素及元素个数。#include void main()int fun(int a,int n,int b); int i,aa10,bb10,x; for(i=0;i10;i+) scanf(%d,&aai); x=

22、fun(aa,10,bb); for(i=0;ix;i+) printf(%d ,bbi); printf(nx=%dn,x); int fun(int a,int n,int b) int i,j,sum=0,aver; for(i=0;in;i+) sum=sum+ai; aver=sum/n; for(i=0,j=0;iaver) bj+=ai; return(j); 18.函数void move(int a ,int n,int m )的功能是:将有n个元素的数组a中前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写main,调用move函数,输出变换后的结果。#includ

23、evoid main() void move(int a,int n,int m); int aa10=1,2,3,4,5,6,7,8,9,0,i,m; for(i=0;i10;i+) printf(%4d,aai); printf(n); printf(please input m(m=10):); scanf(%d,&m); move(aa,10,m); for(i=0;i10;i+) printf(%4d,aai); printf(n);void move(int a,int n,int m) int i,t10; for(i=0;i=m;i-) ai=ai-m; for(i=0;im;

24、i+) ai=ti;19.函数void fun(char str )的功能是:删除字符数组str中的非字母字符。编写main函数,从键盘输入一个字符串,调用fun函数,输出删除了非字母字符后的字符串。#include #include void main() void fun(char str); char c,s80; int i=0; for(;(c=getchar()!=n;) si+=c; si=0; fun(s); void fun(char str) int i,t,n; char c80; n=strlen(str); for(i=0,t=0;i=A&stri=a&stri=z)

25、 ct+=stri; ct=0; puts(c); 20.编程:找出10个整数中的最大数并与第一个数交换位置,找出最小数与最后一个数交换位置,将变换后的结果写入文件dat.txt中。#include void main()FILE *fp; int i,j,a10,t,max,min; if(fp=fopen(E:DATA1.DAT,w)=NULL) printf(cannot openn); exit(0); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i9;i+) max=i; for(j=1;j10;j+) if(amaxaj) max=j; t=amax;amax=a9;a9=t; min=i; for(j=1;jaj) min=j; t=amin;amin=a0;a0=t; for(i=0;i10;i+) printf(%d,ai); fprintf(fp,%d,ai); printf(n); fprin

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2