C语言上机练习题_第1页
C语言上机练习题_第2页
C语言上机练习题_第3页
C语言上机练习题_第4页
C语言上机练习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 number

2、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; printf

3、(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:Your

4、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.。/* 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; if(qw=bw&

8、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 3:printf

9、(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.hmain() i

10、nt 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() int i,j; l

11、ong 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 */#include st

12、dio.h#include string.h#define N 6main() int i=0,flag=0; char passwordN; printf(The password is:n); while(i3) gets(password); if(strlen(password)!=6) printf(The string length is wrong!Retry please!n); i+; continue; if(strcmp(,password)=0)flag=1;break;else printf(Wrong input!Retry please!n); i+; if(fl

13、ag=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;/*个位数、原始数、逆数*/printf(Please input the o

14、ld 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(Please input angles:

15、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个数,分别统计其中正数、负数、零的个数。#include stdio.h#de

16、fine 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、7倍数的数。(设N为100)/* Not

17、e: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编程找出100200中的完全平方数。#incl

18、ude 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!Retry please:n); sca

19、nf(%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 200main()int cN,i,count=

20、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) printf(%-4d,i); int d

21、ata(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); printf(n-n); for(i=1;i

22、=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*a*c;if(derta0)printf

23、(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(c1,c2)=0)printf(Equ

24、al!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 length is:%dn,strlen(c1);

25、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:n);gets(c1);gets(c2

26、);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!Retry please:n);gets(c1

27、);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=ai;ai=aj;aj=temp;for

28、(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:%dn,strlen(c1);if(s

29、trlen(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-1); printf(-n); prin

30、tf(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,aN-1); printf(-n);

31、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,

32、max,min);。32. “百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?#include stdio.hmain()int jw,jm,jc;/*公鸡最多100/3=33只,母鸡最多100/2=50只,小鸡最多300只*/for(jw=1;jw=33;jw+)for(jm=1;jm=50;jm+)for(jc=1;jc=300;jc+)if(jw*3+jm*2+jc/3=100&jw+jm+jc=100)printf(JW=%d,JM=%d,JC=%dn,jw,jm,jc); 33. 有三个小孩,一个比一个大2岁,已知其年龄之和为39,问这三个小孩各几岁?#include stdio.hmain()int a,b,c;for(a=1;a=20;a+)for(b=1;b=20;b+)for(c=1;c=20;c+) if(a+2=b&b+2=c&a+b+c=39) printf(The ages are:%-4d%-4d%-4d,a,b,c);34. 键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论