C语言大题复习材料 .doc

上传人:飞****2 文档编号:60140599 上传时间:2022-11-13 格式:DOC 页数:20 大小:58KB
返回 下载 相关 举报
C语言大题复习材料 .doc_第1页
第1页 / 共20页
C语言大题复习材料 .doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《C语言大题复习材料 .doc》由会员分享,可在线阅读,更多相关《C语言大题复习材料 .doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1. 根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。(1)当x小于1时,y等于2+cos(x)(2)当x大于等于1且x小于2时,y等于x的平方加上sin(x)(3)当x大于等于2时,y等于(x-2)的平方根;要求:按格式输出x和y的值,要求小数点后保留2位。#include#includevoid main()float x,y;printf(请输入x的值n);scanf(%f,&x);if(x1)y=2+cos(x);elseif(1=x&x2)y=x*x+sin(x);elsey=sqrt(x-2);printf(y=%.2fn,y);2、从键盘读入一个实数,对其进行四

2、舍五入处理,要求精确到到小数点后两位。例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。#includevoid main()float xscanf(%f,&x);printf(%.2fn,z);3、从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。#includevoid main()char a,b;scanf(%c,&a);if (a=A)/*加入表示吧字符转换成为阿斯托码*/b=a+32;if(a=a)b=a-32;printf(%cn,b);4、从键盘输入三个整数a、b、c,输出

3、其中最大的数。#includevoid main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);if (ab)max=b;elsemax=a;if(maxc)printf(最大值是%dn,c);elseprintf(最大值是%dn,max);5输入用单个字母表示的成绩信息,转换为百分制分数。说明:输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65.#includevoid main()char a;scanf(%c,&a);switch(a)case A:printf(95n);break;case B:printf(85n)

4、;break;case C:printf(75n);break;case D:printf(65n);break;case E:printf(65n);break;6、输入一个3位的正整数,判定该正整数是否为一个回文数。(所谓回文数是指正读和反读都相同的数,例如131)。#includevoid main()int a,b,c;scanf(%d,&a);b=a/100;c=a%10;if(c=b)printf(YESn);elseprintf(NOn);7、从键盘输入国际货币表示的商品价格,请转换为人民币。要求:仅仅考虑美元($)和欧元,汇率分别6和8。例如输入$100,输出600,输入E10

5、0,输出800#includevoid main()int x;char ch;printf(输入货币单位);scanf(%c,&ch);printf(输入货币金额);scanf(%d,&x);if(ch=$)printf(转化为人民币为%dn,6*x);if(ch=E)printf(转化为人民币为%dn,8*x);8、计算1-1/2+1/3-1/4+1/n的和,在主函数输入n,计算输出结果。#includevoid main() int n,i;float a=1,sum=0;printf(n=);scanf(%d,&n);for(i=1;i=n;i+)a=1.0/(i);if(i%2=0)

6、a=(-1.0)*a;sum=sum+a;printf(sum=%fn,sum);9、从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。#includevoid main() int x,i,sum=0; printf(Please input a numbern); scanf(%d,&x); for(i=1;ix;i+) if(x%i=0) sum=sum+i; if(sum=x) printf(Yesn); else printf(Non);10、从键盘读入一个自然数,判定其是否为素数,如果是,输出

7、Yes,否则输出No#includevoid main()int x,i;printf(Please input a number:n); scanf(%d,&x);for(i=2;ix;i+)if(x%i=0) printf(Non);break;if(i=x)printf(Yesn);11、由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解#includevoid main()int i,j,a,b;for(i=1;i10;i+)for(j=1;j10;j+) a=i*10+j; b=i+j*10; if(a+b=102) printf(x=%d

8、,y=%dn,i,j);if(i=10&j=10)printf(no answern);12、计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n1)F(n2)。#includevoid main()char F10=0,1;int i,sum=F0+F1; for(i=2;i6;i+) Fi=Fi-1+Fi-2; sum=sum+Fi;printf(sum=%dn,sum);13、计算全部水仙花数的和(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#includevoid ma

9、in()int i,a,b,c,sum=0; for(i=100;i1000;i+) a=i%10;b=i/10%10;c=i/100; if(i=a*a*a+b*b*b+c*c*c)printf(%dn,i);sum=sum+i;printf(sum=%dn,sum);14、从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推#includevoid main()int x,a,b;printf(输入一个三位整数);scanf(%d,&x);a=(x/100)*100;b=a+99; printf(下边界是%d,上边界是%dn,a,b);15、从键盘

10、输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推#includevoid main()float x,a,b;printf(输入一个三位纯小数);scanf(%f,&x);a=(int)(1000*x)/100)*0.1;b=a+0.099; printf(下边界是%.3f,上边界是%.3fn,a,b);16.输出公元1000至今的所有闰年的数量#includevoid main()int i,count=0; for(i=1000;i=2014;i+) if(i%4=0&i%100!=0|i%400=0)printf(%dn,i);cou

11、nt=count+1; printf(公元1000至今的所有闰年的数量为%dn,count);17、*计算1/2,2/3,3/5,5/8,8/13,13/21, 的前10项和,并输出结果*/#includevoid main()double i=1,j=2,k=0,m,s=0; for(k=0;k10;k+)s+=i/j;m=j; j+=i;i=m; printf(值为:%fn,s);18、从键盘读入一个3位整数,将各个权位的数字转化为字符后输出。例如输入123,则转换为三个字符1,2,3,输出结果为1,2,3.#includevoid main()int a,b,c,d;char x,y,z

12、;scanf(%d,&a);b=a/100;c=(a%100)/10;d=a%10;x=b+48;y=c+48;z=d+48;printf(%c%c%c,x,y,z);19、求1000以内素数的和#includevoid main()int a,b,sum=0;for(a=2;a=1000;a+)for(b=2;ba;b+)if(a%b=0)break;if(b=a)sum=sum+a;printf(%dn,a);printf(%dn,sum); 20、计算分数序列:2/1,3/2,5/3,8/5,13/8,21/13,的前10项之和并输出#includemain()int i;double

13、a,b,m;double sum=0.0;a=1.0;b=2.0;for(i=0;i10;i+)sum+=b/a;m=b;b=a+b;a=m;printf(sum=%lfn,sum);21、编写程序输出S=1-1/2+1/3-1/4+1/99-1/100的结果。#includemain()int n;float s1,s2,s,a,b;s1=0;s2=0;s=0;for(n=1;n=100;n+)if(n%2=0)a=(float)-1.0/n;s1+=a;/等价于s1=s1+a/elseb=(float)1.0/n;s2+=b;s=s1+s2;printf(s=%f,s);22、编程:输入3

14、个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。三角形面积公式:area=sqrt(s(s-a)(s-b)(s-c),其中s=1/2(a+b+c)。(提示:sqrt(x)属于math.h)#include#includemain()float a,b,c;float s,area;printf(a,b,c=n);scanf(%f,%f,%f,&a,&b,&c);if(a+bc&a+cb&b+ca)s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%fn,area);elseprintf(Wrong

15、!);23、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。#includemain()int a,i;printf(请输入一个正整数:);scanf(%d,&a);printf(%d=,a);for(i=2;i=a;i+)while(a%i=0)printf(%d*,i);a=a/i;24、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123。编程找出1000以内的所有完数。#include main()int i,j,n,sum;sum=0;for(i=1;i=1000;i+)n=0;for(j=1;ji;j+)if(i%j=0)n=n+j;if(n=i

16、)sum=sum+i;printf(%dn,sum);(求和)#include main()int i,j,n,sum;sum=0;for(i=1;i=1000;i+)n=0;for(j=1;ji;j+)if(i%j=0)n=n+j;if(n=i)sum=sum+i;printf(%dn,sum);25、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#includemain()char str1000=19 0fsd9 iqkdsE ;int i,n,a=0,b=0,c=0,d=0;for(i=0;stri!=0;i+)if(stria&striA&striZ)a+=1;e

17、lse if(stri= )b+=1;else if(stri0&stri9)c+=1;elsed+=1;printf(a=%dnb=%dnc=%dnd=%dn,a,b,c,d);26、实现两个数的#法和$法运算。如输入3,4,#,输出25;输入3,4,$,输出34;提示:#法和$法运算是自己定义的一种运算,a#b=a*a+b*b,a$b=a*10+b。#includemain()int a,b,s;char c;printf(Plesase input a,b,c!);scanf(%d,%d,%c,&a,&b,&c);switch(c)case #:s=a*a+b*b;printf(%dn,

18、s);break;case $:s=a*10+b;printf(%dn,s);break;27、初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。#includemain()int a10=1,2,3,4,5,6,7,8,9,10;int i,n;printf(Please enter one number:);scanf(%d,&n);for(i=0;i10;i+)if(n=ai)break;if(i10)for(i=i;i10;i+)ai=ai+1;for(i=0;i9;i+)printf(%d,ai);e

19、lseprintf(non);28、初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。#includemain()char a=abcdefghijklmnopqrstuvwxyz;char C;int i,nC;printf(Please input a letter :);scanf(%c,&C);for(i=0;i26;i+)if(C=ai)nC=i;for(i=nC;i25;i+)ai=ai+1;a24=a25;for(i=0;i25;i+)printf(%c ,ai);printf(n);29、计算一个4*4矩阵

20、的主对角线的元素之和以及最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。#includemain()char a=abcdefghijklmnopqrstuvwxyz;char C;int i,nC;printf(Please input a letter :);scanf(%c,&C);for(i=0;i26;i+)if(C=ai)nC=i;for(i=nC;i25;i+)ai=ai+1;a24=a25;for(i=0;i25;i+)printf(%c ,ai);printf(n);30、初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。#inc

21、ludemain()char a=abcdefghijklmn;int i;for(i=2;i7;i+)printf(%c,ai);printf(n);31、编程计算一个a34数组的最小值所在位置,输出该位置以及a34矩阵。要求初始化矩阵。#includemain()int a34=1,2,3,4,4,5,6,7,7,0,8,9;int i,j,min,imin=0,jmin=0;min=a00;for(i=0;i3;i+)for(j=0;j4;j+)if(aijmin)min=aij;imin=i;jmin=j;printf(min=a%d%dn,imin,jmin);for(i=0;i3;

22、i+)for(j=0;j4;j+)if(j=0)printf(n);printf(%d ,aij);32、初始化一矩阵a44,计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。#includemain()int a44=1,3,5,7,0,4,9,10,3,5,2,7,2,5,1,9;int i,j,max;for(i=0;i4;i+)for(j=0;jmax)max=aij;printf(%dn,max);for(i=0;i4;i+)for(j=0;j4;j+)if(j=0)printf(n);printf(%d ,aij);33、编程实现:计算矩阵a34每行元素的和。要求输出原始

23、矩阵以及每行元素的和值。要求初始化矩阵。#includemain()int a34=1,2,3,4,4,5,6,7,4,5,7,9;int i,j,sum=0,s=0;for(i=0;i3;i+)for(j=0;j4;j+)if(j=0)printf(n);printf(%d ,aij);printf(n);for(i=0;i3;i+)for(j=0;j4;j+)sum+=aij;printf(sum=%dn,sum);sum=0;34、一维数组中存放任意10个整数,从第四个数据开始直到最后一个数据,依次向右移动一个位置。输出原始数据和移动后的结果。要求初始化数组。例如:原始数据为:6 10

24、2 9 8 7 17 18 23 45,输出结果为: 6 10 2 9 9 8 7 17 18 23 45。#includemain()int a11=1,2,3,4,5,6,7,8,9,10;int i,b;b=a10;for(i=10;i3;i-)ai=ai-1;a11=b;for(i=0;i11;i+)printf(%d ,ai);35、编程实现:在任意字符串a中将与字符c相同的所有元素的下标值分别存放在数组b中,输出字符串a和数组b。要求初始化数组a。#includemain()char a=absdfhefhg;char c=abcdefghij;int i,j,k=0,b10;pr

25、intf(b=);for(i=0;ai!=0;i+)for(j=0;cj!=0;j+)if(ai=cj)bk=i;printf(%d ,bk);k+;printf(na=);for(i=0;ai!=0;i+)printf(%c ,ai);36、已知4X4矩阵,求行下标和列下标均为偶数的元素之和, 要求输出原始矩阵以及和值。提示:例如A00、A02的行下标和列下标均为偶数。要求初始化矩阵。#includemain()int a44=1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7;int i,j,sum=0;for(i=0;i4;i+)for(j=0;j4;j+)if(j=0)pr

26、intf(n);printf(%d ,aij);for(i=0;i4;i+)if(i%2=0)for(j=0;j4;j+)if(j%2=0)sum+=aij;printf(sum=%dn,sum);37、编写一个函数stringcat,其功能是完成两个字符串连接,要求:在主函数中初始化两个字符串,调用stringcat进行连接,并在主函数中输出连接后字符串(注意不允许使用库函数)。#includevoid stringcat(char a,char b)int i,j,n=0;for(i=0;ai!=0;i+)n+=1;for(j=0;bj!=0;j+)an=bj;n+=1;an=0;main

27、()char a=hello;char b=you;stringcat(a,b);printf(%sn,a);38、计算S=1-1/12+1/22-1/32+1/42+1/102的值,并输出 #includeint main() float s=1; int i=1; for(i=1;i=10;i+) if(i%2)=1) s=s-1.0/(i*10+2); else s=s+1.0/(i*10+2); printf(%f,s);39、计算1/1+1/(1+2)+1/(1+2+3)+1/(1+2+n)的,要求小数点后保留6位 #includeint main() double s=0,x=1,

28、p; int i=2,k=1; for(;x=0.;i+) p=s; s=s+1.0/k; k=k+i; x=s-p; printf(%.6f,s);40、编写函数fun(char *p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includeint fun(char c,int i) int x=0; for(;x=i) return 1; else return 0;int main() char ch,c1000; int x=0,i=0; w

29、hile(ch=getchar()!=n) cx=ch; x+; i+; i=i-1; if(fun(c,i)=1) for(i=0;i=x-1;i+) printf(%c,ci); else printf(no);41、编写函数mstrcpy(char *t,char *s,int m) 字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#includevoid mstrcpy(char t,char s,int m) int i=0,k; k=m-1; for(;sk!=0;i+,k+) ti=sk; t

30、i=0;int main() char t1000,s1000; int m; scanf(%s,s); scanf(%d,&m); mstrcpy(t,s,m); printf(%sn%s,s,t); return 0;42、编写函数itoa(int n,char *p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#include#includevoid itoa(int Number,char Str) int Num=Number,i=0,j=0; if(Num = 0) strcpy(Str,0); return; else i

31、f(Num 0) int i=0; int k=0; for(;Num 0;i+) if(Num10) Stri=0+Num; Str+i=0; break; else k=Num%10; Stri=0+k; Num/=10; for(i=0,j=strlen(Str)-1;i 0;i+) if(Num10) Stri=0+Num; Str+i=/0; break; else k=Num%10; Stri=0+k; Num/=10; char Temp20; strcpy(Temp,-); strcat(Temp,Str); strcpy(Str,Temp); int main() int n; char s1000; scanf(%d,&n); itoa(n,s); printf(%s,s); return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁