《C语言学习知识上机练习进步题.doc》由会员分享,可在线阅读,更多相关《C语言学习知识上机练习进步题.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-!1. 输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。#include stdio.hmain() long n; int ww,qw,bw,sw,gw; printf(Please input:n); scanf(%ld,&n); while(n99999) printf(nThe number is too little or too large.Retry please!n); scanf(%ld,&n); if(n=10000&n=1000&n=100&n=10&n=99) sw=n/10; gw=n%10; printf(The old numbe
2、r is:%ldn,n); printf(The new number is:%d%dn,gw,sw); else printf(The old number equals the new number:%ld,n); 2. 计算1+2+3+n的值,n是从键盘输入的自然数。/* Note:Your choice is C IDE */#include stdio.hmain() int n,i; long sum=0; printf(1+2+3+.+nn); printf(Please input n:n); scanf(%d,&n); for(i=1;i=n;i+) sum+=i; prin
3、tf(sum=%ld,sum); 3. 从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。、/* Note:Your choice is C IDE */#include stdio.h#define N 20main()int aN,i,sum=0,count=0;printf(Please input numbers :n);for(i=0;i0)sum+=ai; count+;printf(count=%d,sum=%d,count,sum);4. 从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。/* Note:You
4、r choice is C IDE */#include stdio.h#define N 5main()int aN,bN,i;printf(Please input numbers:n);for(i=0;iN;i+)scanf(%d,&ai);bN-i-1=ai;printf(nThe old numbers are:n);for(i=0;iN;i+)printf(%-4d,ai);printf(nThe new numbers are:n);for(i=0;iN;i+)printf(%-4d,bi); 5. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每
5、种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。/* Note:Your choice is C IDE */#include stdio.hmain()int i,j,k,n;for(i=1;i=10;i+)for(j=1;j=25;j+)for(k=1;k=50;k+)for(n=1;n=100;n+)if(i*50+j*20+k*10+n*5=500)printf(num50=%d,num20=%d,num10=%d,num5=%dn,i,j,k,n);6. 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应
6、为:s=153.909064。/* Note:Your choice is C IDE */#include stdio.h#include math.hmain()int n,s,i;float sum=0;printf(Please input n:n); scanf(%d,&n); while(n=0) printf(nError input.Retry please:n); scanf(%d,&n); for(i=1;in;i+) if(i%3=0&i%7=0) sum+=i;printf(The number is:%4.2f,sqrt(sum);7. 一辆卡车违反交通规则,撞人后逃
7、跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。/* Note:Your choice is C IDE */#include stdio.h#include math.hmain() int i,qw,bw,sw,gw; for(i=1122;i=9988;i+) if(sqrt(i)!=(int)sqrt(i) continue; qw=i/1000; bw=i/100%10; sw=i/10%10; gw=i%10; i
8、f(qw=bw&sw=gw) printf(nThe number is:%dn,i); break; 8. 输入110之间的一个数字,输出它对应的英文单词。/* Note:Your choice is C IDE */#include stdio.hmain()int n;printf(Please input n:n);scanf(%d,&n);while(n10)printf(Error input!Retry please:n);scanf(%d,&n);switch(n)case 1:printf(One!);break;case 2:printf(Two!);break;case
9、3:printf(Three!);break;case 4:printf(Four!);break;case 5:printf(Five!);break;case 6:printf(Six!);break;case 7:printf(Seven!);break;case 8:printf(Eight!);break;case 9:printf(Nine!);break;case 10:printf(Ten!);break; 9. 个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?/* Note:Your choice is C IDE */#include stdio.h
10、main() int i,count=0; for(i=106;i596;i=i+10) if(i%3=0&i%5!=0) printf(%-4d,i); count+; printf(count=%-4d,count);10. 用自然语言描述程序逻辑如下,试写程序。设置环境;定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;i=1;如果i100,则转,否则转;令s=0,求前i个自然数之和,并放于变量s之中;sum=sum+s;i增加1,转; 输出和sum,结束。/* Note:Your choice is C IDE */#include stdio.hmain() in
11、t i,j; long s=0,sum=0; printf(1+1+2+1+2+3+1+2+3+4+.1+2+3+.+nn); i=1; while(i=3) s+=i; sum+=s; i+; printf(sum=%ld,sum);11. 用自然语言描述的程序逻辑为:设置环境;定义变量i、flag和password,并令flag=0,i=0;用户回答口令,将其赋于password变量;口令正确?如果是,则flag=1,转。否则转;回答三次口令了吗?如果没有,计数器加1后(i+),转,否则转; 根据flag之值输出相应信息。/* Note:Your choice is C IDE */#in
12、clude stdio.h#include string.h#define N 6main() int i=0,flag=0; char passwordN; printf(The password is:123456n); while(i3) gets(password); if(strlen(password)!=6) printf(The string length is wrong!Retry please!n); i+; continue; if(strcmp(123456,password)=0)flag=1;break;else printf(Wrong input!Retry
13、please!n); i+; if(flag=1) printf(Right password!n); else printf(Wrong password!n);12. 用自然语言描述的程序逻辑如下:设置环境;定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;输入原始正整数x;从x中分解出个位数字digit;合并个位digit至逆数y中;原始数x缩小10倍:x=x/10;如果x非零,则转; 输出逆数y,结束/* Note:Your choice is C IDE */#include stdio.hmain()long digit,x,y;/*个位数、原始数、逆数*/print
14、f(Please input the old number:n);scanf(%ld,&x);digit=x%10;y=digit;while(x!=0)x=x/10;digit=x%10;y=y*10+digit;printf(x=%ld,y=%ld,x,y/10); 13. 输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。/* Note:Your choice is C IDE */#include stdio.hmain() float a,b,c,flag;/*flag=0不能,flag=1等边,flag=2等腰,flag=3任意*/ printf(
15、Please input angles:n); scanf(%f,%f,%f,&a,&b,&c); if(a+b=c|a+c=b|b+c=a) flag=0; else if(a=b&b=c) flag=1; else if(a=b|b=c|c=a) flag=2; else flag=3; if(flag=0) printf(nCan not!n); if(flag=1) printf(nDeng Bian.n); if(flag=2) printf(nDeng Yao.n); if(flag=3) printf(nPu tong.n);14. 输入10个数,分别统计其中正数、负数、零的个数
16、。#include stdio.h#define N 10main()int aN;int i,count1=0,count2=0,count3=0;/*count1记录正数个数,count2记录负数个数,count3记录0的个数*/printf(Please input numbers:n);for(i=0;i0) count1+; if(ai0)count2+; if(ai=0)count3+; printf(count1=%-4d,count2=%-4d,count3=%-4d,count1,count2,count3);15. 先随机产生N个三位自然数输出,然后再输出其中同时是3、5、
17、7倍数的数。(设N为100)/* Note:Your choice is C IDE */#include stdio.h#define N 100#include #include main()int aN,i;printf(Please input numbers:n);randomize();for(i=0;iN;i+) ai=random(900)+100; printf(%-4d,ai); printf(n-n); printf(n3,5,7:n); for(i=0;iN;i+) if(ai%3=0&ai%5=0&ai%7=0) printf(%-4d,ai);16. 用for编程找
18、出100200中的完全平方数。#include stdio.h#include math.hmain() int i; for(i=100;i=200;i+) if(sqrt(i)=i%100) printf(%-4d,i);17. 从终端输入三个正实数,判断这三个数能否构成直角三角形。#include stdio.hmain() float a,b,c,flag;/*flag=0不能,flag=1能*/ printf(Please input angles:n); scanf(%f,%f,%f,&a,&b,&c); while(a=0|b=0|c=0) printf(Wrong input!
19、Retry please:n); scanf(%d,%d,%d,&a,&b,&c); if(a+b=c|b+c=a|a+cN)printf(Wrong input!Retry please!n);gets(a);strcpy(b,a);strrev(a);if(strcmp(a,b)=0)printf(nYes!n);else printf(nNo!n); 20. 随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为200)/* Note:Your choice is C IDE */#include stdio.h#include #include #define N 200m
20、ain()int cN,i,count=0;randomize(); for(i=0;iN;i+)ci=random(27)+65;printf( %c,ci);if(ci=A|ci=E|ci=I|ci=O|ci=U)count+; printf(n-n); printf(ncount=%-4d,count);找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。#include stdio.hint data(int x);main()int i,flag=0;/*1是,0否*/ for(i=101;i=999;i+) flag=data(i); if(flag=1) p
21、rintf(%-4d,i); int data(int x)int i;for(i=2;ix/2;i+)if(x%i=0)return 0;if(i=x/2)return 1;else return 0;21. 输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。#include stdio.hvoid satr(int m);main()int i,n,m;printf(Please input n&m:n);printf(n=);scanf(%d,&n);printf(m=);scanf(%d,&m); pr
22、intf(n-n); for(i=1;i=n;i+) satr(m); printf(n); void satr(int m)int i;for(i=1;i=m;i+)printf(#);22. 若ax2+bx+c=0有实根,则求之。#include stdio.h#include math.hmain() int a,b,c; float derta,x1,x2; printf(Please input a,b,c:n); printf(a=); scanf(%d,&a);printf(b=);scanf(%d,&b);printf(c=);scanf(%d,&c);derta=b*b-4*
23、a*c;if(derta0)printf(Two!n);x1=(-b+sqrt(derta)/(2*a);x2=(-b-sqrt(derta)/(2*a);printf(x1=%-4.2f,x2=%-4.2f,x1,x2);23. 从键盘输入两个字串,判断它们是否相同。#include stdio.h#include string.h#define N 20main()char c1N,c2N;printf(Please input two string below:n);gets(c1);gets(c2);printf(-n);printf(The answer is:);if(strcmp
24、(c1,c2)=0)printf(Equal!n);else printf(Not equal!n); 24. 从键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。#define N 20#include stdio.h#include string.hmain()char c1N,c2N;printf(Please input two string below:n);gets(c1);gets(c2);printf(-n);printf(The answer is:);if(strlen(c1)=strlen(c2)puts(c1);puts(c2);printf(The lengt
25、h is:%dn,strlen(c1);if(strlen(c1)strlen(c2)puts(c2);printf(The length is:%dn,strlen(c2);25. 从键盘输入长度不等的两个字串,将短串连接于长串之后输出。#include stdio.h#include string.h#define N 20main()char c1N,c2N;printf(Please input two string below:n);gets(c1);gets(c2);while(strlen(c1)=strlen(c2)printf(Wrong input!Retry please
26、:n);gets(c1);gets(c2);printf(-n);printf(The answer is:);if(strlen(c1)strlen(c2)puts(strcat(c1,c2);26. 从键盘输入长度不等的两个字串,将长串连接于短串之后输出#include stdio.h#include string.h#define N 20main()char c1N,c2N;printf(Please input two string below:n);gets(c1);gets(c2);while(strlen(c1)=strlen(c2)printf(Wrong input!Ret
27、ry please:n);gets(c1);gets(c2);printf(-n);printf(The answer is:);if(strlen(c1)strlen(c2)puts(strcat(c2,c1);27. 随机产生N个两位自然数,降序排列后输出。(设N为20)#include stdio.h#include stdlib.h#include time.h#define N 20main()int aN,i,j,temp;randomize();for(i=0;iN;i+)ai=random(900)+100;for(i=0;iN-1;i+)for(j=i+1;jai)temp=
28、ai;ai=aj;aj=temp;for(i=0;iN;i+)printf(%-4d,ai); 28. 从键盘输入两个字串,输出其中较长的那个字串,并输出它的长度。#define N 20#include stdio.h#include string.hmain()char c1N,c2N;printf(Please input two string below:n);gets(c1);gets(c2);printf(-n);printf(The answer is:);if(strlen(c1)=strlen(c2)puts(c1);puts(c2);printf(The length is
29、:%dn,strlen(c1);if(strlen(c2)strlen(c1)puts(c2);printf(The length is:%dn,strlen(c2);29. 从键盘输入10个战士的身高,输出平均身高,并找出哪些身高低于平均身高。#include stdio.h#define N 11main()float aN,sum=0;int i;printf(Please input heigths:n); for(i=0;iN-1;i+) scanf(%f,&ai); sum+=ai; aN-1=sum/(N-1); printf(The average is:%-6.2fn,aN-
30、1); printf(-n); printf(The answer are:n); for(i=0;iN-1;i+) if(aiaN-1) printf(%-8.2f,ai);30. 从键盘输入10个战士的身高,输出平均身高,并找出哪些身高高于平均身高。#include stdio.h#define N 11main()float aN,sum=0;int i;printf(Please input heigths:n); for(i=0;iN-1;i+) scanf(%f,&ai); sum+=ai; aN-1=sum/(N-1); printf(The average is:%-6.2fn
31、,aN-1); printf(-n); printf(The answer are:n); for(i=0;iaN-1) printf(%-8.2f,ai);31. 从键盘输入10个战士的身高,输出最高、最低的身高#include stdio.h#define N 10main()float aN,min=99999,max=-99999;int i;printf(Please input heigths:n); for(i=0;iN;i+) scanf(%f,&ai); printf(-n); for(i=0;imax) max=ai; if(aimin) min=ai; printf(max=%-6.2f,min=%-6.2f,max,min);。32. “百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?#include stdio.hmain()int jw,jm,jc;/*公鸡最多100/3=33只,母鸡最多1