C语言基础编程练习.docx
- 文档编号:3346801
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:118
- 大小:1.08MB
C语言基础编程练习.docx
《C语言基础编程练习.docx》由会员分享,可在线阅读,更多相关《C语言基础编程练习.docx(118页珍藏版)》请在冰豆网上搜索。
C语言基础编程练习
1.屏幕上输入:
ThisisaCprogram
#include
intmain()
{
printf("ThisisaCprogram.\n");
return0;
}
2、求两个整数之和
#include
voidmain()
{
inta,b,sum;
a=123;
b=456;
sum=a+b;
printf("%d\n",sum);
}
3、求两个整数中的较大者
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
intmax(intx,inty)
{
intz;
if(x>y)
z=x;
else
z=y;
return(z);
}
4、编写一个程序,输入a,b,c三个值,输出其中最大者
#include
voidmain()
{inta,b,c,max;
printf("inputa,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 voidmain() {intt=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 voidmain() { intsign=1; doubledeno=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 voidmain() { floatf,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 voidmain() { floatp0=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 voidmain() { charc1,c2; c1='A'; c2=c1+32; printf("%c\n",c2); printf("%d\n",c2); } 10、给出三角形三边长,求面积 #include #include intmain() { doublea,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 voidmain() { doublex; printf("Enterx: "); 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 voidmain() { intx,y,t; printf("Enterx,y: \n"); scanf("%d%d",&x,&y); printf("x=%dy=%d\n",x,y); t=x;x=y;y=t; printf("x=%dy=%d\n",x,y); } 13、从键盘输入两个两位的正整数给变量x和y,并将x和y合并形成一个整数放在变量z中。 合并的方式是: 将数x的十位和各位依次放在z的千位和十位,将y的十位和个位放在z的个位和百位上。 #include voidmain() { intx,y,z; printf("Inputx,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 voidmain() { inta,b,c,t; printf("inputa,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 voidmain() { intg; printf("Enterg: "); scanf("%d",&g); printf("g=%d: ",g); if(g>=90)printf("A\n"); elseif(g>=80)printf("B\n"); elseif(g>=70)printf("C\n"); elseif(g>=60)printf("D\n"); elseprintf("E\n"); } #include voidmain() { intg; printf("Enterg: "); scanf("%d",&g); printf("g=%d: ",g); switch(g/10) { case9: printf("A\n");break; case8: printf("B\n");break; case7: printf("C\n");break; case6: printf("D\n");break; default: printf("E\n"); } } 16、平面点M(x,y),若M落在圆心在坐标原点单位圆上,key=1;圆外,key=2;圆内key=0 #include #include voidmain() { floatx,y,r; intkey; printf("inputx,y: "); scanf("%f,%f",&x,&y); r=sqrt(x*x+y*y); if(r>1)key=2; elseif(r==1)key=1; elseif(r<1)key=0; printf("(%.1f,%.1f): %d\n",x,y,key); } -1,x<0 17、编写一个程序实现符号函数y={0,x=0的功能 1,x>0 #include voidmain() { intx,y; printf("Enterx: "); 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 voidmain() { intx,y; printf("Enterx: "); 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 voidmain() { intyear,leap; printf("inputtheyear: "); scanf("%d",&year); if((year%4==0&&year%100! =0)||(year%400==0))leap=1; elseleap=0; if(leap==1) printf("%disaleapyear\n",year); else printf("%disnotaleapyear\n",year); } #include voidmain() { intyear,leap; printf("inputtheyear: "); 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("%disaleapyear\n",year); else printf("%disnotaleapyear\n",year); } #include voidmain() { intyear,leap; printf("inputtheyear: "); scanf("%d",&year); if(year%400==0)leap=1; else if(year%4==0) if(year%100==0) leap=0; elseleap=1; elseleap=1; if(leap==1) printf("%disaleapyear\n",year); else printf("%disnotaleapyear\n",year); } #include voidmain() { intyear,leap; printf("inputtheyear: "); scanf("%d",&year); if(year%4! =0)leap=0; elseif(year%100==0)leap=0; elseif(year%400==0)leap=1; elseleap=1; if(leap==1) printf("%disaleapyear\n",year); else printf("%disnotaleapyear\n",year); } 19、求一元二次方程ax2+bx+c=0的解。 分析: a=0,非二次方程 b*b-4*a*c=0,两个相等实根 >0,两个不等实根 <0,两个共轭复根 #include #include voidmain() { floata,b,c,disc,x1,x2,realpart,imagpart; printf("inputa,b,c: "); scanf("%f,%f,%f",&a,&b,&c); printf("Theequation"); if(fabs(a)<=1E-6) {printf("isnotquadratic\n");} else disc=b*b-4*a*c; if(fabs(disc)<=1E-6) printf("hastwoequalroot: %8.4f",-b/(2*a)); else if(disc>1E-6) { x1=(-b+sqrt(disc))/(2*a); x2=(-b+sqrt(disc))/(2*a); printf("hasdistinctrealroots: %8.4fand%8.4f\n",x1,x2); } else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("hascomplexroots: \n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } } 20、编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后输出。 #include voidmain() { intx,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 voidmain() { charch; ch=getchar(); ch=(ch>='A'&&ch<='Z')? ch+32: 'x'; if(ch! ='*'){putchar(ch);putchar('\n');} } 22、编写程序,输入能代表一个日期的3个整数,计算并输出该日是改年的第几天。 #include voidmain() { inty,m,d,dd=0; printf("Entery/m/d: "); scanf("%d/%d/%d",&y,&m,&d); printf("%d/%d/%d",y,m,d); switch(m-1) { case11: dd=dd+30; case10: dd=dd+31; case9: dd=dd+30; case8: dd=dd+31; case7: dd=dd+31; case6: dd=dd+30; case5: dd=dd+31; case4: dd=dd+30; case3: dd=dd+31; case2: dd=dd+28; case1: dd=dd+31; case0: 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() { intincome; floattax; printf("enterincome: "); scanf("%d",&income); if(income<=2000) tax=0; elseif(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() { longx; inta,b,d,e; printf("enterx: "); scanf("%ld",&x); a=x/10000;b=x%10000/1000; d=x%100/10;e=x%10; if(a==e&&b==d) printf("%ldisahuiwen\n",x); else printf("%ldisnotahuiwen\n",x); } 25、设计一个简单的计算器,完成两个数的加减乘除 分析: 输入二个数及运算符 switch表达式: 运算符 常量: '+''-''*''/' #include voidmain() { floatx,y; charop; printf("enterx,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 voidmain() { inti=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } #include voidmain() { inti=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); } #include main() { inti,sum; for(i=1,sum=0;i<=100;i++) sum=sum+i; printf("sum=%d\n",sum); } 27、求100以内奇偶数之和 #include voidmain() { intn=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 voidmain() { intm,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() { inti,n; longs=1; printf("entern: "); 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() { floatr,s; for(r=0.5;r<=5.5;r++) { s=3.14159*r*r; printf("r=%fs=%f\n",r,s); } } 31、循环嵌套的应用——输出九九乘法表 #include main() { inti,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() { intm,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②将个位与百位对换,得到的三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 编程 练习