1.屏幕上输入:This is a C program
#include
int main()
{
printf("This is a C program.\n");
return 0;
}
2、求两个整数之和
#include
void main()
{
int a,b,sum;
a=123;
b=456;
sum=a+b;
printf("%d\n",sum);
}
3、求两个整数中的较大者
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%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;
else
z=y;
return(z);
}
4、编写一个程序,输入a,b,c三个值,输出其中最大者#include
void main()
{int a,b,c,max;
printf("input a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(max max=c; printf("最大数是%d\n",max); } 5、求5! #include void main() {int t=1,i=2; while(i<=5) {t=t*i; i=i+1; } printf("%d\n",t); } 6、求多项式1-1/2+1/3-1/4+````+1/99-1/100的值#include void main() { int sign=1; double deno=2.0,sum=1.0,term; while(deno<=100) { sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; } printf("%f\n",sum); } 7、将华氏温度64°F转换为摄氏度 #include void main() { float f,c; f=64.0; c=(5.0/9.0)*(f-32); printf("c=%f\n",c); 8、1000元存一年:(1)活期,年利率为r1;(2)一年期顶起,年利率r2;(3)存两次半年定期,年利率为r3.分别计算3种方法本息和 #include 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=%f\np2=%f\np3=%f\n",p1,p2,p3); } 9、给定一个大写字母A,输出其小写字母 #include void main() { char c1,c2; c1='A'; c2=c1+32; printf("%c\n",c2); printf("%d\n",c2); } 10、给出三角形三边长,求面积 #include #include 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=%f\tb=%f\tc=%f\n",a,b,c); printf("area=%f\n",area); } 11、输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出此数,以便验证处理是否正确。 #include void main() double x; printf("Enter x:"); scanf("%lf",&x); printf("(1)x=%f\n",x); x=x*100+0.5; x=(int)x; x=x/100; printf("(2)x=%f\n",x); } 12、编程从键盘输入两个整数给变量x和y,然后输出x和y的值,最后交换x和y的值并输出。 #include void main() { int x,y,t; printf("Enter x,y:\n"); scanf("%d %d",&x,&y); printf("x=%d y=%d\n",x,y); t=x;x=y;y=t; printf("x=%d y=%d\n",x,y); } 13、从键盘输入两个两位的正整数给变量x和y,并将x和y合并形成一个整数放在变量z 中。合并的方式是:将数x的十位和各位依次放在z的千位和十位,将y的十位和个位放在z的个位和百位上。 #include void main() { int x,y,z; printf("Input 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=%d\n",x,y,z); } 14、输入3个整数,分别放入在变量a,b,c中,程序把输入的数据重新按由从小到大的顺序放在变量a,b,c中,最后输出a,b,c中的值 #include void main() { int a,b,c,t; printf("input a,b,c:"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",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=%d\n",a,b,c); } 15、根据输入的学生成绩,给出相应的等级,90分以上的等级为A,60以下为E,其余每10分一个等级。 #include void main() { int g; printf("Enter g:"); scanf("%d",&g); printf("g=%d:",g); if(g>=90) printf("A\n"); else if(g>=80) printf("B\n"); else if(g>=70) printf("C\n"); else if(g>=60) printf("D\n"); else printf("E\n"); } #include void main() { int g; printf("Enter g:"); scanf("%d",&g); printf("g=%d:",g); switch(g/10) { case 9: printf("A\n");break; case 8: printf("B\n");break; case 7: printf("C\n");break; case 6: printf("D\n");break; default: printf("E\n"); } } 16、平面点M(x,y),若M落在圆心在坐标原点单位圆上,key=1;圆外,key=2;圆内key=0 #include #include 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):%d\n",x,y,key); } -1,x<0 17、编写一个程序实现符号函数y={0,x=0 的功能 1,x>0 #include void main() { int x,y; printf("Enter x:"); scanf("%d",&x); if(x<0) y=-1; else if(x==0) y=0; else y=1; printf("x=%d,y=%d\n",x,y); } #include void main() { int x,y; printf("Enter x:"); scanf("%d",&x); y=-1; if(x!=0) {if(x>0)y=1;} else y=0; printf("x=%d,y=%d\n",x,y); } 18、判定某年是否闰年。 #include 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("%d is a leap year\n",year); else printf("%d is not a leap year\n",year); } #include void main() { int year,leap; printf("input the year:"); scanf("%d",&year); if(year%4==0) if(year%100!=0) leap=1; else if(year%400==0) leap=1; else leap=0; else leap=0; if(leap==1) printf("%d is a leap year\n",year); else printf("%d is not a leap year\n",year); } #include void main() { int year,leap; printf("input the year:"); scanf("%d",&year); if(year%400==0) leap=1; else if(year%4==0) if(year%100==0) leap=0; else leap=1; else leap=1; if(leap==1) printf("%d is a leap year\n",year); else printf("%d is not a leap year\n",year); } #include 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; if(leap==1) printf("%d is a leap year\n",year); else printf("%d is not a leap year\n",year); } 19、求一元二次方程ax2+bx+c=0的解。 分析:a=0,非二次方程 b*b-4*a*c=0 ,两个相等实根 >0,两个不等实根 <0,两个共轭复根 #include #include void main() { float a,b,c,disc,x1,x2,realpart,imagpart; printf("input a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if(fabs(a)<=1E-6) {printf("is not quadratic\n");} else disc=b*b-4*a*c; if(fabs(disc)<=1E-6) printf("has two equal root:%8.4f",-b/(2*a)); else if(disc>1E-6) { x1=(-b+sqrt(disc))/(2*a); x2=(-b+sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } } 20、编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后输出。 #include 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 void main() { char ch; ch=getchar(); ch=(ch>='A'&&ch<='Z')?ch+32:'x'; if(ch!='*'){putchar(ch);putchar('\n');} } 22、编写程序,输入能代表一个日期的3个整数,计算并输出该日是改年的第几天。 #include 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 11: 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(" %d\n",dd); } 23、当一个人的月收入在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=0.08*(income-2000); else tax=0.08*3000+0.15*(income-5000); printf("tax=%f\n",tax); } 24、回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。请编写一 个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和 求余运算把一个数的个位、十位、百位、千位等分别分离出来。) #include "stdio.h" main() { long x; int a,b,d,e; printf("enter x:"); scanf("%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 huiwen\n",x); else printf("%ld is not a huiwen\n",x); } 25、设计一个简单的计算器,完成两个数的加减乘除分析:输入二个数及运算符 switch表达式:运算符 常量:'+''-''*''/' #include void main() { float x,y; char op; printf("enter x,op,y:"); scanf("%f %c %f",&x,&op,&y); switch(op) { case '+': printf("%.2f%c%.2f=%.2f\n",x,op,y,x+y);break; case '-': printf("%.2f%c%.2f=%.2f\n",x,op,y,x-y);break; case '*': printf("%.2f%c%.2f=%.2f\n",x,op,y,x*y);break; case '/': if(y==0) printf("error\n"); else printf("%.2f%c%.2f=%.2f\n",x,op,y,x/y);break; } } 26、编写程序,求1+2+3+。。。+100的值 #include void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } #include void main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); } #include main() { int i,sum; for(i=1,sum=0;i<=100;i++) sum=sum+i; printf("sum=%d\n",sum); } 27、求100以内奇偶数之和 #include void main() { int n=1,odd=0,even=0; while(n<100) { odd+=n; even+=n+1; n+=2; } printf("odd和=%d,even和=%d\n",odd,even); } 28、求两个正整数m和n,求最大公约数和最小公倍数分析:1、用辗转相除法求最大公约数 2、最小公倍数=两数积/最大公约数 #include 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;} printf("最大公约数是%d\n",n1); printf("最小公倍数是%d\n",m*n/n1); } 29、求n! #include main() { int i,n; long s=1; printf("enter n:"); scanf("%d",&n); for(i=1;i<=n;i++) s=s*i; printf("%d!=%ld\n",n,s); } 30、编写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时的圆面积#include main() { float r,s; for(r=0.5;r<=5.5;r++) { s=3.14159*r*r; printf("r=%f s=%f\n",r,s); } } 31、循环嵌套的应用——输出九九乘法表 #include 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 main() { int m,n; m=1; while(m<=9) { n=1; while(n<=m) {printf("%d*%d=%d ",m,n,m*n); n++; } printf("\n");m++; } } 32、找所有三位数要求①其百位数不大于2②将个位与百位对换,得到的三位数是原三位数的2倍 多 分析:用三重循环控制变量分别表示百位数、十位数和个位数 百位数i取值1~2 十位数j取0~9 个位数k取2~9 n=100*i+10*j+k m=100*k+10*j+i 若m>=2*n并m<=3*n #include main() { int i,j,k,n,m,s=0; for(i=1;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=101~299 百位数n1=i/100 十位数n2=(i-n1*100)/10 个位数n3=i-n1*100-n2*10 m=100*n3+10*n2=n1 m>=2*i并m<=3*i #include 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 main() { int i,s; s=0; for(i=1;i<=10;i++) { s+=i; if(s>5) break; printf("s=%d\n",s); } } 34、在循环体中使用continue语句 #include main() { int i,s=0; for(i=1;i<=8;i++) { s+=i; printf("\ni=%d",i); if(i%2==0) continue; printf(" s=%d\n",s); } } 35、从键盘输入全班的学习成绩,统计出最高分、最低分和平均分#include main() { int x,max,min,n; float 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 scanf("%d",&x); } if(max>0) printf("max=%d,min=%d,aver=%f\n",max,min,sum/n); } 36、编程求输入的某个正整数是否为素数 #include 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 #include 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、求100~200之间的素数 #include #include main() { int m,i,k,n=0; for(m=101;m<200;m=m+2) { k=sqrt(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 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==100)) printf("x=%d,y=%d,z=%d\n",x,y,z); } } #include 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=%d\n",x,y,z); y++; } x++; } } 39、有一根长度为323米的钢材,要将它截取为两种规格a,b的长度分别为17米和27米的短料,每种 至少一段,问分割成a,b各多少段后,剩余的残料r最少? #include 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=r;a=na;b=nb;} } printf("a=%d,b=%d,min=%d\n",a,b,rmin); } 40、猴子吃桃问题。小猴在某天摘桃若干个,当天吃掉一半,觉得还不过瘾,又多吃了一个;第二 天吃了剩下桃子的一半又多一个;以后每天都这样吃下去,直到第8天要吃时只剩一个桃子了,问小 猴子第一天共摘下多少个桃子? 分析:递推问题X(n-1)=(Xn+1)*2 #include main() { int tao,n; tao=1; for(n=1;n<=7;n++) tao=(tao+1)*2; printf("tao(1)=%d\n",tao); } 41、斐波那契数列:1,1,2,3,5,8,13,21.。。。此数列的第一项和第二项为1,从第三项开始,每 一项为前两项之和。编程输出该数列的前15项,每行输出5个数。 #include main() { int i,f1=1,f2=1,f3; printf("%5d%5d",f1,f2);