已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2011-2012学年C语言试题1. 有一个函数,写一段程序,输入的值,输出的值。2. 输入3个数a,b,c,按大由到小的顺序输出。3. 输入4个数,输出4个数中的最大值、最小值。4. 输入成绩,要求输出成绩等级A、B、C、D、E或error。90分以上为A,8089分为B,7079分为C,6069分为D,060分为E。若输入成绩低于0分和高于100分则输出error。5. 有一个函数:,写一段程序,输入的值,输出的值。6. 输出300400之间的全部素数,并按每行5个数输出。7. 求1100之间能被7或11整除,但不能同时被7或11整除的所有整除,并按每行5个数输出。8. 求Fibonacci数列的前20个数,并将其分5行输出。9. 求。10. 有一分数序列,求其前20项的和。11. 输出小于500的所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为。12. 给一个不多于6位的正整数,要求:求出它是几位数;分别输出每一位数字;按逆序输出各位数字,例如原数为158,应输出851。13. 求5+55+555+5555+55555的值(要求用循环实现)。14. 输出倒三角形式的9*9口诀表,要求用循环实现。15. 求一元二次方程ax2+bx+c=0的解。16. 输入一行字符,分别统计出其中的英文字符、数字和其他字符的个数。17. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?18. 输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。19. 将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。20. 在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。 21. 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开22. 有3个字符串,要求找出其中最大者。23输入两个整数,要求用一个函数求出其中的大者,并在主函数中输出此值。24. 输入两个整数,要求用一个函数求出其最大公约数和最小公倍数,并在主函数中调用该子函数。25. 输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。26. 用递归方法求5!。27. 按以下递归公式求函数的值。 例如,当给n输入5时,函数值为18,(要求用递归实现)。28. 编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。29. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。30. 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。31. 用筛选法求100之内的素数。32. 编一个程序,将两个字符串连接起来,不要用strcat函数。 33. 编写一个函数,比较两个字符串的大小,并在main函数中调用此函数,不要调用strcmp函数。34. 用指针实现输入3个整数并按从小到大的顺序输出。35. 用指针实现输入3个整数并按从大到小的顺序输出。36. 用指针实现将数组b10中的元素按逆序存放。37. 编写一程序,实现从键盘接收一个字符串,然后删除其中的空格后并输出。如:输入“I am a student!”,输出“Iamastudent!”,要求用指针实现。38. 用冒泡法实现对10个整数按从大到小的顺序排序输出(要求用指针实现)。39. 用选择法实现对10个整数按从小到大的顺序排序输出(要求用指针实现)。40. 编写一个函数实现字符串复制功能(要求用指针作为函数参数)。41. 定义一个结构体变量(包括年、月、日)。计算当天是本年中的第几天,注意闰年问题。42. 设计候选人得票统计程序,要求有4个侯选人(分别是Zhang 、Wang 、Li、 Zhao),选民每次输入一个被选人的姓名,最后统计出各人的得票结果。43. 定义一个包括学号、姓名、年龄的学生结构体,要求实现三个学生信息的输入输出,并输出平均年龄。44. 定义一个包括教师编号、姓名、工资的教师结构体,要求实现三个教师信息的输入输出,并输出平均工资。45. 定义一个包括职员号、姓名、工资的职员结构体,要求实现三个职员信息的输入输出,并输出平均工资。46. 建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩。47. 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度(要求用指针实现)。48. 有一个一维数组score,内放10个学生成绩,用一个函数求平均成绩,并将10个成绩中不及格(小于60)的成绩和该成绩在数组中的序号输出。49. 有一个一维数组内放10个数,设计函数,求出10个数中的最大值、最小值、平均值。50. 找出一个2维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。51. 输入3个学生4门课的成绩,分别用函数实现如下功能: (1) 计算每个学生平均分; (2) 计算每门课的平均分; (3) 找出12个分数中最高分所对应的学生和课程。52. 用一个函数实现将一行字符串中的最长的单词输出。此行字符串从主函数传递给该函数。53. 输出菱形图案(要求用循环实现) 54. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将她插入数组中。55. 写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。56. 有一篇文章,共有4行文章,每行有60个字符。要求分别统计出其中英文大写字符、小写字母、数字、空格以及其他字符的个数。57. 有一行电文,已按下面规律译成密码:AZ azBY byCX cx即第1个字母变成第26个字母,第i个字母变成第(26 i + 1)个字母。非字母符号不变。要求编程序将密码译回原文,并输出密码和原文。58. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下来的是原来第几号的那位(要求用指针知识实现)。59. 有3个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入3个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)(用结构体)。60. 写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。61. 编一程序,输入月份号,输出该月的英文月名。例如,输入3,则输出March,要求用指针数组处理。62. 从键盘上读入3个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。63. 在磁盘文件上存有10个学生的数据。要求将第1,3,5,7,9个学生数据输入计算机,并在屏幕上显示出来。64. 有两个磁盘文件“file1”和“file2”,各存放一行字母,要求把两个文件中的信息合并(按字母顺序排序),输出到一个新文件“file3”中去。 参考答案1、#includevoid main()float x;int y;printf(请输入一个x的值:nx=);scanf(%f,&x);if(x100)y=-1;else if(x=0)y=0;elsey=1;printf(y=%d,y);printf(n);2、#includevoid main()float a,b,c,t;printf(请输入三个数,数之间以空格连接:n输入的数分别为:);scanf(%f%f%f,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(a、b、c由大到小排列为:n%.2fn%.2fn%.2fn,a,b,c);3、#includevoid main()float a,b,c,d,max=0,min=0;printf(请输入四个数字,中间以空格分开:n);printf(四个数字分别为:);scanf(%f%f%f%f,&a,&b,&c,&d); printf(n);max=(ab)?a:b;max=(maxc)?max:c;max=(maxd)?max:d;min=(ab)?a:b;min=(minc)?min:c;min=(mind)?min:d;printf(四个数中最大的数为:%.2fn,max); printf(四个数中最小的数为:%.2fn,min);4、#includevoid main() float fen; int c; printf(请输入学生的成绩:); scanf(%f,&fen); if(fen100) c=4; else if(fen=0&fen60) c=5; else c=fen/10; switch(c) case 9:printf(学生成绩等级为:An);break; case 8:printf(学生成绩等级为:Bn);break; case 7:printf(学生成绩等级为:Cn);break; case 6:printf(学生成绩等级为:Dn);break; case 5:printf(学生成绩等级为:En);break; case 4:printf(输入数据有误n);break; 5、#includevoid main()float x,y;printf(请输入一个x值x=);scanf(%f,&x);if(x1)y=x;if(x=10)y=3*x-11;elsey=2*x-1;printf(y 的 值 为: y=%.2fn,y);6、#includevoid main()int i,j,k,n=0;printf(300-400间所有素数为:n);for(i=301;i=400;i+,i+)k=i/2;for(j=2;j=k;j+)if(i%j=0)break; if(j=k+1)printf(%d ,i);n+;if(n%5=0)printf(n);printf(n);7、#includevoid main()int i,j=0;printf(1-100间只能被7和11一个数整除的数为:nn);for(i=7;i=100;i+)if(i%7=0&i%11!=0|i%7!=0&i%11=0) j+;printf(%6d,i); if(j%5=0)printf(n); printf(n);8、#includevoid main()int f1=1,f2=1,i;printf(Fibonacci数列前二十个数为:n);for(i=1;i=10;i+)printf(%6d%6d,f1,f2);f1=f1+f2;f2=f2+f1; if(i%2=0)printf(n);9、#includevoid main() double sum=0,t=1; int n;for(n=1;n=10;n+)t=t*n;sum=sum+t+3;printf(1!+3+2!+3+3!+3+10!+3=%.0fn,sum);10、#includevoid main() int i; double a=2,b=1,s=0,t; for(i=1;i=20;i+) s=s+b/a; t=a; a=a+b; b=t; printf(1/2+2/3+3/5+=%16.10fn,s);11、#includevoid main()int i,a,b,c;printf(小于500的所有水仙花数为:nn);for(i=100;i500;i+)a=i/100; b=i/10-a*10;c=i%10;if(i=a*a*a+b*b*b+c*c*c)printf(%d ,i);printf(nn);12、#includevoid main()int m,n6,i=0,j;printf(请输入一个小于七位的整数:);scanf(%d,&m);printf(n);while(m!=0)ni=m%10;m=m/10;i+;printf(它是一个%d位数。nn,i); printf(正序输出为:nn);for(j=i-1;j=0;j-)printf(%3d,nj);printf(n); printf(逆序输出为:nn);for(j=0;ji;j+)printf(%3d,nj);printf(nn);13、#include void main() int a=5,n=5,i=1,sn=0,tn=0; for(i=1;i=5;i+) tn=tn+a; sn=sn+tn; a=a*10; printf(5+55+.+55555=%dn,sn); 14、#includevoid main()int i,j,k=0,m;printf(倒三角的9*9口诀表为:nn);for(i=9;i=1;i-)for(j=i;j=1;j-)k=i*j;printf(%d ,k);printf(n);15、#include#includevoid main()double a,b,c,x,x1,x2,disc,realpart,imagepart;printf(请输入a,b,c三个数,两数间以空格分开:n);printf(输入的a,b,c分别为:); scanf(%lf%lf%lf,&a,&b,&c); printf(方程);if(fabs(a)1e-6) x=-c/b; printf(是一元一次方程,它的根为:nx=%.4fn,x);else disc=b*b-4*a*c;if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(有两个不相等的实根:nx1=%8.4f,nx2=%8.4fn,x1,x2);else realpart=-b/(2*a); imagepart=sqrt(-disc)/(2*a); printf(有两个复根:n); printf(x1=%8.4f+%8.4fin,realpart,imagepart); printf(x2=%8.4f-%8.4fin,realpart,imagepart); 16、#includevoid main()char c;int letters=0,digit=0,other=0;printf(请输入一行字符:n);while(c=getchar()!=n)if(c=a&c=A&c=0&c=9) digit+;else other+; printf(字母数:%dn数字数:%dn其他字符数:%dn,letters,digit,other);17、#includeint main()int a=1,b=2,c=3,d=4,m=0;int i,j,k,n;printf(1、2、3、4能组成的无重复数字的三位数有:n);for(i=1;i=4;i+)for(j=1;j=4;j+)for(k=1;k=4;k+)if(i=j|i=k|k=j) continue;n=i*100+j*10+k; m+;printf(%6d,n); if(m%5=0) putchar(n);printf(n);18、#include void main() int a10; int i,j,t; printf(请输入10个数,以空格隔开:nn); for(i=0;i10;i+) scanf(%d,&ai); printf(由小到大排列为:nn); for(i=0;i10;i+) for(j=i;jaj+1) t=ai;ai=aj+1;aj+1=t; for(i=0;i10;i+) printf(%5d,ai); printf(n);19、#includevoid main()int i,j,k,a23,b32;printf(请输入数组a23,六个整数以空格分开:n);for(i=0;i2;i+)for(j=0;j3;j+)scanf(%d,&aij);printf(n);printf(a数组为:n);for(i=0;i2;i+)for(j=0;j3;j+) printf(%5d,aij); bji=aij;printf(n);printf(b数组为:n);for(i=0;i3;i+)for(j=0;j2;j+)printf(%5d,bij);printf(n);20、#include void main() int a34,i,j,max; printf(请输入数组a34,十二个数,以空格分开:n); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); max=a00; for(i=0;i3;i+) for(j=0;j4;j+) if(maxaij) max=aij; printf(最大数为:%3dn,max); for(i=0;i3;i+) for(j=0;j4;j+) if(aij=max) printf(行数为 :%3dn列数为 :%3dn,i+1,j+1);21、#include void main() int i,j=0; char str80; printf(请输入一行字符:n); putchar(n); gets(str); for(i=0;stri!=0;i+) if(stri+1= |stri+1=0) j+; printf(n); printf(单词个数为%3dnn,j); 22、#include #include void main()char str180,str280,str380,longest80;printf(输入三个字符串,之间以回车连接:n);gets(str1);printf(n);gets(str2);printf(n);gets(str3);putchar(n); strcpy(longest,str1);if(strcmp(str1,str2)0) strcpy(longest,str1);if(strcmp(str2,str3)0) strcpy(longest,str1);printf(最长的字符串是: %snn,longest);23、#includeint main()int max(int x,int y),a,b;printf(请输入两个整数a和b,以空格连接:n);scanf(%d%d,&a,&b);printf(a和b中较大的数为:%dn,max(a,b);int max(int x,int y)return xy?x:y;24、#include void main() int hcf(int,int); int lcd(int,int,int); int u,v,h,l; printf(输入两个整数,两个数之间以空格连接。n); printf(两个数分别为:); scanf(%d%d,&u,&v); h=hcf(u,v); printf(最大公约数=%4dn,h); l=lcd(u,v,h); printf(最小公倍数=%4dn,l); int hcf(int u,int v)int t,r; if (vu) t=u;u=v;v=t; while (r=u%v)!=0) u=v; v=r; return(v);int lcd(int u,int v,int h) return(u*v/h); 25、#include void main() int max_4(int a,int b,int c,int d); int a,b,c,d,max; printf(请输入四个整数,以空格连接:n); scanf(%d%d%d%d,&a,&b,&c,&d); max=max_4(a,b,c,d); printf(最大的数是%3dn,max); int max_4(int a,int b,int c,int d) int max_2(int a,int b); int m; m=max_2(a,b); m=max_2(m,c); m=max_2(m,d); return(m);int max_2(int a,int b)return(ab?a:b);26、#include void main() long fac(int n); long y; y=fac(5); printf(5!=%ldn,y);long fac(int n) long f; if(n0) printf(n0,data error!); else if(n=0,n=1) f=1; else f=fac(n-1)*n; return(f); 27、#includeint main()int n, fun(int n);printf(请输入一个n的值:);scanf(%d,&n);printf(n); printf(函数值为:%dnn,fun(n);return 0; int fun(int n) int m; if(n=1) m=10; else m=fun(n-1)+2; return m; 28、#include void main() float f(float score,int n); float score_15,score_210,aver_1,aver_2; int i; printf(请输入两个数组的元素,其中score_1五个元素,score_2十个元素,n); printf(元素和数组间分别以空格和回车隔开。n); for(i=0;i5;i+) scanf(%f,&score_1i); for(i=0;i10;i+) scanf(%f,&score_2i); aver_1=f(score_1,5); aver_2=f(score_2,10); printf(数组一的平均值为:%.2f,n数组二的平均值为:%.2f。n,aver_1,aver_2);float f(float score,int n)int i;float aver,sum=0;for(i=0;in;i+) sum=sum+scorei; aver=sum/n; return(aver);29、#include void main() int a6,b6,i; printf(请输入一个数组,五个数,空格连接:n); for(i=0;i5;i+) scanf(%d,&ai); printf(逆序排列后的数组是:n); for(i=0;i5;i+) bi=a4-i; printf(%2d ,bi); printf(n);30、#include void main() void convert(int n); int number; printf(输入一个整数: ); scanf(%d,&number); printf(output: ); if (number0) putchar(-);putchar( ); number=-number; convert(number); printf(n); void convert(int n) int i; if (i=n/10)!=0) convert(i); putchar(n%10+0); putchar(32);31、#include#includevoid main()int i,j,a101,n=0;for(i=1;i100;i+) ai=i;a1=0;for(i=2;isqrt(100);i+) for(j=i+1;j=100;j+) if(ai!=0&aj!=0) if(aj%ai=0) aj=0; printf( 100以内的所有素数为:nn); for(i=2;i100;i+) if(ai!=0)printf(%4d,ai); n+; if(n%5=0)printf(n);printf(n);32、#includevoid main() char s180,s240; int i=0,j=0; printf(请输入两个字符串,以回车连接。n); printf(输入字符串1:); scanf(%s,s1); printf(输入字符串2:); scanf(%s,s2); while(s1i!=0) i+; while(s2j!=0) s1i+=s2j+; s1i=0; printf(n新字符串为:%snn,s1);33、#includeint main()int m;char str120,str220,*p1,*p2;printf(请输入两个字符串,以回车隔开:n);scanf(%s,str1);scanf(%s,str2);p1=&str10;p2=&str20;m=strcmp(p1,p2); if(m0)printf(字符串1大于字符串2。n);else if(m=0)printf(字符串1等于字符串2。n);elseprintf(字符串1小于字符串2。n);return 0;strcmp(char *p1,char *p2)int i;i=0;while(*(p1+i)=*(p2+i)if(*(p1+i+)=0)return 0;return(*(p1+i)-*(p2+i);34、#include void main() void exchange(int * p1,int * p2,int * p3); int n1,n2,n3; int * p1,* p2,* p3; printf(输入三个整数 n1、n2、n3,以空格连接:n);printf(三个数分别为:); scanf(%d%d%d,&n1,&n2,&n3);printf(n); p1=&n1; p2=&n2;p3=&n3; exchange(p1,p2,p3); printf(从小到大排列为:%3d,%3d,%3dnn,n1,n2,n3);void exchange(int * p1,int * p2,int * p3)void swap(int * p1,int * p2);if(* p1* p2) swap( p1, p2);if(* p1* p3) swap(p1,p3);if(* p2* p3) swap(p2,p3);void swap(int * p1,int * p2)int p;p=* p1;* p1=* p2;* p2=p;35、#include void main ( ) void paixu(int * p1,int * p2); int a,b,c,* p1,* p2,* p3;printf(请输入三个数,以空格连接:); scanf(%d%d%d,&a,&b,&c);putchar(n);printf(三个数由大到小排序为:nn); p1=&a;p2=&b;p3=&c; if(ab) paixu(p1,p2); if(ac) paixu(p1,p3); if(bc) paixu(p2,p3) ; printf(%5d%5d%5dnn,a,b,c); void paixu(int * p1,int * p2) int t; t=* p1;* p1=* p2;* p2=t; 36、#include void main()void sort (char *p,int m); int i; char *p,b10; printf(请对a10赋值,以空格分开:n); for (i=0;i10;i+) scanf(%d,&bi); printf(a10按逆序存放后为:n); p=&b0; sort(p,10); printf(n); for (i=0;i10;i+) printf(%d ,bi);printf(n);void sort (char *p,int m) int i; char temp, *p1,*p2; for (i=0;im/2;i+) p1=p+i; p2=p+(m-1-i); temp=*p1; *p1=*p2; *p2=temp; 37、#include void main()int i,n=0;char str80=0,dest80=0;printf(请输入一个字符串:n);gets(str);printf(删除空格后为:n);for(i=0;stri!=0;i+)if(stri != )destn=stri;n+;printf(%s,dest);printf(n);38、#include void main() void swap(int * p1,int * p2); int a10,* p ,i,j; printf(请输入10个整数,以空格连接:n); for(i=0;i10;i+) scanf(%d,&ai); printf(10个数从大到小排列为:n); printf(n); p=a; for(i=0;i10;i+) for(j=i;j9;j+) if(aiaj+1) swap(p+i,p+j+1); for(i=0;i10;i+) printf(%5d ,ai); printf(nn); void swap(int * p1,int * p2)int t;t=* p1;* p1=* p2;* p2=t;39、#include void main() void swap(int * p1,int * p2); int a10,* p ,i,j; printf(请输入10个数,以空格隔开:n); for(i=0;i10;i+) scanf(%d,&ai); printf(从新排序(由小到大)为:n); p=a; for(i=0;i10;i+) for(j=0;jaj+1) swap(p+j,p+j+1); for(i=0;i10;i+) printf(%5d ,ai); printf(n); void swap(int * p1,int * p2)int t;t=* p1;* p1=* p2;* p2=t;40、#include void main() char a=I am a boy.,b20,*p1,*p2; p1=a;p2=b; for(;*p1!=0;p1+,p2+) *p2=*p1; *p2=0; printf(string a is :%sn,a); printf(string b is :%sn,b); 41、#include struct int year; int month; int day; date;void main() int days; printf(请输入年月日,以空格隔开:); scanf(%d%d%d,&date. year,&date.month,&date.day); printf(n); switch(date.month) case 1: days=date.day; break; case 2: days=date.day+31; break; case 3: days=date.day+59; break; case 4: days=date.day+90; break; case 5: days=date.day+120; break; case 6: days=date.day+151; break; case 7: days=date.day+181; break; case 8: days=date.da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同户头变更协议范本
- 北京保洁劳务合同范本
- 农村机井租赁合同范本
- 协议定期存款合同范本
- 厂房清拆回收合同范本
- 医生临时聘用合同范本
- 变更薪资合同变更协议
- 合同安全附加协议范本
- 农村建房农民合同范本
- 共建房处置协议书范本
- 小学数学四年级上册第二单元《公顷和平方千米》单元测试卷4份
- 产后修复课件
- 新人教版高中地理必修一第四章第一节-常见的地貌类型
- 普通话水平测试练习材料
- 我是谁?-认识自我 心理健康课件
- 平江历史街区规划与保护-陈梓元教学课件
- 外墙涂料(真石漆)施工方案
- DB33-T 1291-2023重大决策社会风险评估第三方服务规范
- 《石油石化系统治安反恐防范要求》考试卷
- 2023年版FIDIC 红皮书(中英文)
- 福建省简介PPT-福建省PPT介绍
评论
0/150
提交评论