C语言基础编程练习_第1页
C语言基础编程练习_第2页
C语言基础编程练习_第3页
C语言基础编程练习_第4页
C语言基础编程练习_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

1、1.屏幕上输入:This is a C program#include <stdio.h>int main()printf("This is a C program.n");return 0;2、求两个整数之和#include <stdio.h>void main()int a,b,sum;a=123;b=456;sum=a+b;printf("%dn",sum);3、求两个整数中的较大者#include <stdio.h>void main()int max(int x,int y);int a,b,c;scanf(

2、"%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);int max(int x,int y)int z;if(x>y)z=x;elsez=y;return(z);4、编写一个程序,输入a,b,c三个值,输出其中最大者#include <stdio.h>void main()int a,b,c,max; printf("input a,b,c:n"); scanf("%d,%d,%d",&a,&b,&c); max=a;

3、if(max<b) max=b; if(max<c) max=c; printf("最大数是%dn",max);5、求5!#include <stdio.h>void main()int t=1,i=2; while(i<=5) t=t*i; i=i+1; printf("%dn",t);6、求多项式1-1/2+1/3-1/4+1/99-1/100的值#include <stdio.h>void main() int sign=1; double deno=2.0,sum=1.0,term; while(deno

4、<=100) sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; printf("%fn",sum);7、将华氏温度64°F转换为摄氏度#include <stdio.h>void main() float f,c; f=64.0; c=(5.0/9.0)*(f-32); printf("c=%fn",c);8、1000元存一年:(1)活期,年利率为r1;(2)一年期顶起,年利率r2;(3)存两次半年定期,年利率为r3.分别计算3种方法本息和#include <s

5、tdio.h>void main() float p0=1000,r1=0.0036,r2=0.0225,r3=0.0193,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2); p3=p0*(1+r3/2)*(1+r3/2); printf("p1=%fnp2=%fnp3=%fn",p1,p2,p3);9、给定一个大写字母A,输出其小写字母#include <stdio.h>void main()char c1,c2;c1='A'c2=c1+32;printf("%cn",c2);printf(&

6、quot;%dn",c2);10、给出三角形三边长,求面积#include <stdio.h>#include <math.h>int main()double a,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf("a=%ftb=%ftc=%fn",a,b,c);printf("area=%fn",area);11、输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出

7、此数,以便验证处理是否正确。#include<stdio.h>void main()double x;printf("Enter x:");scanf("%lf",&x);printf("(1)x=%fn",x);x=x*100+0.5;x=(int)x;x=x/100;printf("(2)x=%fn",x);12、编程从键盘输入两个整数给变量x和y,然后输出x和y的值,最后交换x和y的值并输出。#include<stdio.h>void main()int x,y,t;print

8、f("Enter x,y:n");scanf("%d %d",&x,&y);printf("x=%d y=%dn",x,y);t=x;x=y;y=t;printf("x=%d y=%dn",x,y);13、从键盘输入两个两位的正整数给变量x和y,并将x和y合并形成一个整数放在变量z中。合并的方式是:将数x的十位和各位依次放在z的千位和十位,将y的十位和个位放在z的个位和百位上。#include<stdio.h>void main()int x,y,z;printf("Input

9、 x,y:");scanf("%d,%d",&x,&y);x=x%100;y=y%100;z=(x/10)*1000+(x%10)*10+y/10+(y%10)*100;printf("x=%d,y=%d,z=%dn",x,y,z);14、输入3个整数,分别放入在变量a,b,c中,程序把输入的数据重新按由从小到大的顺序放在变量a,b,c中,最后输出a,b,c中的值#include<stdio.h>void main()int a,b,c,t;printf("input a,b,c:");scanf

10、("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%dn",a,b,c);if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=t;if(b>c)t=b;b=c;c=t;printf("a=%d,b=%d,c=%dn",a,b,c);15、根据输入的学生成绩,给出相应的等级,90分以上的等级为A,60以下为E,其余每10分一个等级。#include<stdio.h>void main()int g;printf("Enter

11、 g:");scanf("%d",&g);printf("g=%d:",g);if(g>=90) printf("An");else if(g>=80) printf("Bn");else if(g>=70) printf("Cn");else if(g>=60) printf("Dn");else printf("En");#include<stdio.h>void main()int g;print

12、f("Enter g:");scanf("%d",&g);printf("g=%d:",g);switch(g/10)case 9: printf("An");break;case 8: printf("Bn");break;case 7: printf("Cn");break;case 6: printf("Dn");break;default: printf("En");16、平面点M(x,y),若M落在圆心在坐标原点单位圆

13、上,key=1;圆外,key=2;圆内key=0#include<stdio.h>#include<math.h>void main()float x,y,r;int key;printf("input x,y:"); scanf("%f,%f",&x,&y);r=sqrt(x*x+y*y);if(r>1) key=2;else if(r=1) key=1;else if(r<1) key=0; printf("(%.1f,%.1f):%dn",x,y,key); -1,x<0

14、 17、编写一个程序实现符号函数y=0,x=0 的功能 1,x>0#include<stdio.h>void main()int x,y;printf("Enter x:"); scanf("%d",&x);if(x<0) y=-1;elseif(x=0) y=0; elsey=1; printf("x=%d,y=%dn",x,y);#include<stdio.h>void main()int x,y;printf("Enter x:"); scanf("%d

15、",&x); y=-1; if(x!=0) if(x>0)y=1;elsey=0; printf("x=%d,y=%dn",x,y);18、判定某年是否闰年。#include<stdio.h>void main()int year,leap;printf("input the year:");scanf("%d",&year);if(year%4=0&&year%100!=0)|(year%400=0) leap=1;else leap=0;if(leap=1)printf(

16、"%d is a leap yearn",year);elseprintf("%d is not a leap yearn",year);#include<stdio.h>void main()int year,leap;printf("input the year:");scanf("%d",&year);if(year%4=0)if(year%100!=0)leap=1;elseif(year%400=0)leap=1;elseleap=0;elseleap=0;if(leap=1)prin

17、tf("%d is a leap yearn",year);elseprintf("%d is not a leap yearn",year); #include<stdio.h>void main()int year,leap;printf("input the year:");scanf("%d",&year);if(year%400=0) leap=1;elseif(year%4=0)if(year%100=0)leap=0;else leap=1;else leap=1;if(leap=

18、1)printf("%d is a leap yearn",year);elseprintf("%d is not a leap yearn",year);#include<stdio.h>void main()int year,leap;printf("input the year:");scanf("%d",&year);if(year%4!=0) leap=0;else if(year%100=0) leap=0;else if(year%400=0) leap=1;else leap=1

19、;if(leap=1)printf("%d is a leap yearn",year);elseprintf("%d is not a leap yearn",year);19、求一元二次方程ax2+bx+c=0的解。分析:a=0,非二次方程 b*b-4*a*c=0 ,两个相等实根 >0,两个不等实根 <0,两个共轭复根#include<stdio.h>#include<math.h>void main()float a,b,c,disc,x1,x2,realpart,imagpart;printf("in

20、put a,b,c:");scanf("%f,%f,%f",&a,&b,&c);printf("The equation"); if(fabs(a)<=1E-6)printf("is not quadraticn");else disc=b*b-4*a*c;if(fabs(disc)<=1E-6) printf("has two equal root:%8.4f",-b/(2*a);elseif(disc>1E-6)x1=(-b+sqrt(disc)/(2*a);

21、x2=(-b+sqrt(disc)/(2*a);printf("has distinct real roots:%8.4f and %8.4fn",x1,x2); elserealpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("has complex roots:n");printf("%8.4f+%8.4fin",realpart,imagpart);printf("%8.4f-%8.4fin",realpart,imagpart);20、编写程序,从键盘输入一个

22、以秒为单位的时间数,将其换算成几小时几分几秒,然后输出。#include<stdio.h>void main() int x,h,m,s;scanf("%d",&x);h=x/3600;m=x%3600/60;s=x%60;printf("%ds=%d:%d:%d!n",x,h,m,s);21、任意输入一个字符,若是大写字母将其转换成小写字母#include<stdio.h>void main()char ch;ch=getchar();ch=(ch>='A'&&ch<='

23、;Z')?ch+32:'x'if(ch!='*')putchar(ch);putchar('n');22、编写程序,输入能代表一个日期的3个整数,计算并输出该日是改年的第几天。#include<stdio.h>void main()int y,m,d,dd=0;printf("Enter y/m/d:"); scanf("%d/%d/%d",&y,&m,&d);printf("%d/%d/%d",y,m,d);switch(m-1)case 1

24、1: dd=dd+30;case 10: dd=dd+31;case 9: dd=dd+30;case 8: dd=dd+31;case 7: dd=dd+31;case 6: dd=dd+30;case 5: dd=dd+31;case 4: dd=dd+30;case 3: dd=dd+31;case 2: dd=dd+28;case 1: dd=dd+31;case 0: dd=dd+d;if(m>2)&&(y%4=0&&y%100!=0|y%400=0)dd=dd+1;printf(" %dn",dd);23、当一个人的月收入在

25、2000元以下时免税;月收入在2000元到5000元之间时,超过2000的部分纳税8%;月收入在5000元以上时,2000至5000之间的部分纳税8%,超过5000的部分纳税15%。编写程序从键盘输入月收入income,计算并输出应交税款tax。#include "stdio.h"main()int income;float tax; printf("enter income:");scanf("%d",&income);if(income<=2000)tax=0;else if(income<=5000)tax=

26、0.08*(income-2000);elsetax=0.08*3000+0.15*(income-5000);printf("tax=%fn",tax);24、回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。请编写一个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和求余运算把一个数的个位、十位、百位、千位等分别分离出来。)#include "stdio.h"main()long x;int a,b,d,e;printf("enter x:");scanf(

27、"%ld",&x);a=x/10000;b=x%10000/1000;d=x%100/10;e=x%10;if(a=e&&b=d)printf("%ld is a huiwenn",x);elseprintf("%ld is not a huiwenn",x);25、设计一个简单的计算器,完成两个数的加减乘除分析:输入二个数及运算符 switch表达式:运算符 常量:'+''-''*''/'#include<stdio.h>void m

28、ain()float x,y;char op;printf("enter x,op,y:");scanf("%f %c %f",&x,&op,&y);switch(op)case '+':printf("%.2f%c%.2f=%.2fn",x,op,y,x+y);break;case '-':printf("%.2f%c%.2f=%.2fn",x,op,y,x-y);break;case '*':printf("%.2f%c%.2f=

29、%.2fn",x,op,y,x*y);break;case '/':if(y=0)printf("errorn");elseprintf("%.2f%c%.2f=%.2fn",x,op,y,x/y);break;26、编写程序,求1+2+3+。+100的值#include<stdio.h>void main() int i=1,sum=0; while(i<=100) sum=sum+i; i+; printf("sum=%dn",sum);#include<stdio.h>vo

30、id main() int i=1,sum=0; do sum=sum+i; i+; while(i<=100); printf("sum=%dn",sum);#include<stdio.h>main() int i,sum; for(i=1,sum=0;i<=100;i+) sum=sum+i; printf("sum=%dn",sum);27、求100以内奇偶数之和#include<stdio.h>void main() int n=1,odd=0,even=0; while(n<100) odd+=n;

31、even+=n+1; n+=2; printf("odd和=%d,even和=%dn",odd,even);28、求两个正整数m和n,求最大公约数和最小公倍数分析:1、用辗转相除法求最大公约数2、最小公倍数=两数积/最大公约数#include<stdio.h>void main() int m,n,m1,n1,a; printf("输入两个正整数:n"); scanf("%d,%d",&m,&n); m1=m;n1=n; a=m1%n1; while(a!=0) m1=n1;n1=a;a=m1%n1; pr

32、intf("最大公约数是%dn",n1); printf("最小公倍数是%dn",m*n/n1);29、求n!#include<stdio.h>main() int i,n; long s=1; printf("enter n:"); scanf("%d",&n); for(i=1;i<=n;i+) s=s*i; printf("%d!=%ldn",n,s);30、编写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时的圆面积#include<

33、;stdio.h>main()float r,s;for(r=0.5;r<=5.5;r+)s=3.14159*r*r;printf("r=%f s=%fn",r,s);31、循环嵌套的应用输出九九乘法表#include<stdio.h>main()int i,j;for(i=1;i<=9;i+)for(j=1;j<=i;j+)printf("%d*%d=%d ",i,j,i*j);printf("n");#include<stdio.h>main()int m,n;m=1;while(m

34、<=9) n=1; while(n<=m) printf("%d*%d=%d ",m,n,m*n); n+; printf("n");m+;32、找所有三位数 要求其百位数不大于2将个位与百位对换,得到的三位数是原三位数的2倍多分析:用三重循环控制变量分别表示百位数、十位数和个位数 百位数i取值12 十位数j取09 个位数k取29 n=100*i+10*j+k m=100*k+10*j+i 若m>=2*n并m<=3*n#include<stdio.h>main() int i,j,k,n,m,s=0; for(i=1;

35、i<=2;i+) for(j=0;j<=9;j+) for(k=2;k<=9;k+) n=100*i+10*j+k; m=100*k+10*j+i; if(m>+2*n&&m<3*n) +s; printf("%d ",n); if(s%10=0) printf("n"); 分析:用一重循环的循环控制变量i=101299百位数n1=i/100十位数n2=(i-n1*100)/10个位数n3=i-n1*100-n2*10m=100*n3+10*n2=n1m>=2*i并m<=3*i#include&l

36、t;stdio.h>main() int i,n1,n2,n3,m,s=0; for(i=101;i<=299;+i) n1=i/100; n2=(i-n1*100)/10; n3=i-n1*100-n2*10; m=100*n3+10*n2+n1; if(m>=2*i&&m<3*i) printf("%d ",i); s+; if(s%10=0) printf("n"); 33、在循环体中使用break语句#include<stdio.h>main()int i,s;s=0;for(i=1;i<

37、=10;i+)s+=i;if(s>5)break;printf("s=%dn",s);34、在循环体中使用continue语句#include<stdio.h>main() int i,s=0; for(i=1;i<=8;i+) s+=i; printf("ni=%d",i); if(i%2=0) continue; printf(" s=%dn",s); 35、从键盘输入全班的学习成绩,统计出最高分、最低分和平均分#include<stdio.h>main() int x,max,min,n; f

38、loat sum=0; max=0; min=100; n=0; printf("enter x(-1 to end):"); scanf("%d",&x); while(x>=0) sum=sum+x; n=n+1; if(x>max) max=x; if(x<min) min=x; scanf("%d",&x); if(max>0) printf("max=%d,min=%d,aver=%fn",max,min,sum/n);36、编程求输入的某个正整数是否为素数#inc

39、lude<stdio.h>main() int m,i,t; printf("enter a integer:"); scanf("%d",&m); for(i=2;i<=m-1;i+) if(m%i=0) t=0; break; else t=1; printf("%d:",m); if(t=1) printf("is a prime number!n"); else printf("is not a prime number!n");#include<stdi

40、o.h>#include<math.h>main()int m,i, k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i+)if(m%i=0) break;if(i>k)printf("%d是素数",m);else printf("%d是合数",m);37、求100200之间的素数#include<stdio.h>#include<math.h>main()int m,i,k,n=0;for(m=101;m<200;m=m+2)k=sq

41、rt(m);for(i=2;i<=k;i+)if(m%i=0) break;if(i>k)printf("%6d",m);n+; if(n%10=0)printf("n");38、公鸡5块一个,母鸡3块一个,小鸡3个一块,百元买百只,问分别多少只?分析:设公鸡x,母鸡y,小鸡z,x<=19#include<stdio.h>main()int x,y,z;for(x=0;x<=19;x+)for(z=0;z<=99;z=z+3)y=100-x-z;if(y>=0)&&(x*5+y*3+z/3=

42、100)printf("x=%d,y=%d,z=%dn",x,y,z);#include<stdio.h>main() int x=0,y,z; while(x<=19) y=0; while(y<=33) z=100-x-y; if(5*x+3*y+z/3=100) printf("x=%d y=%d z=%dn",x,y,z); y+; x+; 39、有一根长度为323米的钢材,要将它截取为两种规格a,b的长度分别为17米和27米的短料,每种至少一段,问分割成a,b各多少段后,剩余的残料r最少?#include<stdi

43、o.h>main()int na,nb,a,b,r,rmin;na=1;nb=1;rmin=323-17-27;for(na=1;na<=(323-27)/17;na+)nb=(323-na*17)/27;r=323-na*17-nb*27;if(r<rmin)rmin=r;a=na;b=nb;printf("a=%d,b=%d,min=%dn",a,b,rmin);40、猴子吃桃问题。小猴在某天摘桃若干个,当天吃掉一半,觉得还不过瘾,又多吃了一个;第二天吃了剩下桃子的一半又多一个;以后每天都这样吃下去,直到第8天要吃时只剩一个桃子了,问小猴子第一天共摘下

44、多少个桃子?分析:递推问题X(n-1)=(Xn+1)*2#include<stdio.h>main()int tao,n;tao=1;for(n=1;n<=7;n+)tao=(tao+1)*2;printf("tao(1)=%dn",tao);41、斐波那契数列:1,1,2,3,5,8,13,21.。此数列的第一项和第二项为1,从第三项开始,每一项为前两项之和。编程输出该数列的前15项,每行输出5个数。#include<stdio.h>main()int i,f1=1,f2=1,f3;printf("%5d%5d",f1,f

45、2);for(i=3;i<=15;i+)f3=f1+f2;printf("%5d",f3);if(i%5=0)printf("n");f1=f2;f2=f3;42、用公式pi/4=1-1/3+1/5-1/7.求pi的近似值,直到最后一项的绝对值小于10-4为止#include<stdio.h>#include<math.h>main()int n;float t,s,pi;pi=0; n=1;s=1.0;t=s/n;while(fabs(t)>=0.0001)pi=pi+t;n=n+2;s=-1*s;t=s/n;pri

46、ntf("pi=%fn",pi*4);#include<stdio.h>#include<math.h>main()float n,t1,t2,pi;pi=1; n=1;t2=1;while(fabs(t2)>=0.0001)n=n+4;t1=1/(n-2);t2=1/n;pi=pi-t1+t2;printf("pi=%fn",pi*4);43、高次方程求根。求方程3X3-4X2-5X+13=0的根#include<stdio.h>#include<math.h>main()float a,b,c,f

47、a,fb,fc;do printf("enter a,b:"); scanf("%f,%f",&a,&b); fa=3*a*a*a-4*a*a-5*a+13; fb=3*b*b*b-4*b*b-5*b+13;while(fa*fb>0);doc=(a+b)/2;fc=3*c*c*c-4*c*c-5*c+13;if(fa*fc>0) a=c;else b=c;while(fabs(fc)>0.0001);printf("3*x*x*x-4*x*x-5*x+13=0 nx=%f,f=%fn",c,fc);

48、44、编写程序,打印出所有的“水仙花数”(一个三位数各位数字立方和等于该数本身)#include<stdio.h>main()int a,b,c,x;for(x=100;x<=999;x+)a=x/100;b=x/10%10;c=x%10;if(x=a*a*a+b*b*b+c*c*c)printf("%d ",x); printf("n");打印出最大或最小的“水仙花数”#include<stdio.h>main()int a,b,c,x;for(x=999;x>=100;x-)a=x/100;b=x/10%10;c=

49、x%10;if(x=a*a*a+b*b*b+c*c*c)printf("%d ",x);break; printf("n");45、编写程序,输出从公元1980年至2880年所有的闰年年号。每输出5个年号换一行#include<stdio.h>main()int x,flag,s=0; for(x=1980;x<=2880;x+)flag=(x%4=0&&x%100!=0)|(x%400=0);if(flag)printf("%5d",x);s+;if(s%5=0)printf("n&quo

50、t;);45、数组的初始化#include<stdio.h>main()int a5=1,2,3,4,5;int b5=1,2,3;int c=1,2,3,4,5;static int d5;int e5;int i;for (i=0;i<5;i+)printf("%d",ai);printf("n"); for (i=0;i<5;i+)printf("%d",bi);printf("n"); for (i=0;i<5;i+)printf("%d",ci);prin

51、tf("n"); for (i=0;i<5;i+)printf("%d",di);printf("n"); for (i=0;i<5;i+)printf("%d",ei);printf("n");46、用数组来求fibonacci数列问题分析:fi=fi-2+fi-1 i=220#include<stdio.h>main()int i;static int f20=1,1;for (i=2;i<20;i+)fi=fi-2+fi-1;for (i=0;i<20;

52、i+)if(i%4=0) printf("n");printf("%6d",fi);47、统计全班某门功课期末考试的平均分和最高分(人数30)用简单变量:#include<stdio.h>#define N 30main() int i,sum=0,high=0,score; float average; printf("input everyone's score:n"); for(i=0;i<N;i+) scanf("%d",&score); sum+=score; if(sc

53、ore>high)high=score; average=(float)sum/N; printf("average=%fn",average); printf("highest=%dn",high);分析:*定义一个整形数组score30,存放全班同学分数 *用for循环读入分数,并求出总分和平均分 *定义变量high存放当前得到的“最高分”,每得到一个分数都要与high的值比较,若比high大,则放入high中。#include<stdio.h>#define N 30main()int i,sum=0,high,scoreN;fl

54、oat average;printf("input everyone's score:n");for(i=0;i<N;i+) for(high=0,i=0;i<N;i+)scanf("%d",&scorei); scanf("%d",&scorei);for(high=score0,i=0;i<N;i+) sum+=scorei;sum+=scorei; if(scorei>high)high=scorei;if(scorei>high)high=scorei;average=(f

55、loat)sum/N;printf("average=%fn",average);printf("highest=%dn",high);48、统计选票,设候选人有8人,编号为18,约定0为统计结束标志#include<stdio.h>main()static int x,n9;printf("input No.:");scanf("%d",&x);while(x)nx+=1;printf("input No.:");scanf("%d",&x);for(x

温馨提示

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

评论

0/150

提交评论