C语言程序设计练习题目.docx
- 文档编号:23048952
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:22
- 大小:62.76KB
C语言程序设计练习题目.docx
《C语言程序设计练习题目.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题目.docx(22页珍藏版)》请在冰豆网上搜索。
C语言程序设计练习题目
C语言程序设计练习题目
1、求两数之和
#include“stdio.h”
voidmain()
{
inta,b,sum;/*定义变量*/
scanf(“%d%d”,&a,&b);/*给变量赋值*/
sum=a+b;/*求a与b的和*/
printf(“sumis%d\n”,sum);/*输出结果sumis579*/
}
2、求两数中的大数
#include“stdio.h”/*包含头文件*/
voidmain()/*主函数*/
{
inta,b,c;/*定义变量*/
scanf(“%d%d”,&a,&b);/*输入变量a,b的值*/
c=max(a,b);/*调用函数,将得到的值赋给c*/
printf(“max=%d\n”,c);/*输出c的值*/
}
intmax(intx,inty)/*子函数,定义max函数,函数值为整型,x、y为形参,整型*/
{
intz;/*函数中要用到的内部变量z,也要加以定义。
*/
if(x>y)z=x;/*比较x、y的大小,如果x大于y,则执行z=x*/
elsez=y;/*否则执行z=y;*/
return(z);/*将z的值返回,通过max带回调用处*/
}
3、输入一个小写字母,打印其大写字母及其前导字母与后续字母
分析:
小写字母的ASCII码比对应的大写字母大32(例A、a的ASCII码分别是65、97)
#include“stdio.h”
voidmain()
{
charc;
printf(“请输入任意一个小写字母:
”);
c=getchar();
printf(“%c,%c,%c\n”,c,c-1,c+1);
printf(“%c,%c,%c\n”,c-32,c-33,c-31);
}
4、求方程ax2+bx+c=0的根,设b2-4ac>0。
(其中a,b,c的值由键盘输入)
#include“stdio.h”/*头文件中包含输入输出函数printf,scanf*/
#include“math.h”
voidmain()
{
floata,b,c,x1,x2,dt,p,q;
printf(“输入a,b,c:
”);
scanf(“%f%f%f”,&a,&b,&c);
dt=sqrt(b*b–4*a*c);
p=-b/(2*a);
q=dt/(2*a);
x1=p+q;
x2=p-q;
printf(“方程%6.2fX*X+%6.2fX+%6.2f=0的根为:
\n”,a,b,c);
printf(“x1=%f\tx2=%f\n”,x1,x2);
}
5、鸡兔同笼。
已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只?
#include
voidmain()
{
intx,y,h,f;
printf(“输入h,f:
”);
scanf(“%d%d”,&h,&f);
x=2*h–f/2;
y=f/2–h;
printf(“头=%d,脚=%d\n”,h,f);
printf(“鸡=%d,兔=%d\n”,x,y);
}
6、输入一个整数a,判断它是偶数还是奇数?
#include
voidmain()
{inta
printf(“\tInputanumber:
”);
scanf(“%d”,&a);
if(a%2==0)
printf(“\n\t%diseven\n”,a);
else
printf(“\n\t%disodd\n”,a);
}
7、任给a,b,c三个数,按从大到小的顺序输出
#include
voidmain()
{inta,b,c,t;
printf(“inputa,b,c:
”);
scanf(“%d,%d,%d”,&a,&b,&c);
if(a
{
t=a;
a=b;
b=t;
}
if(a if(b printf(“%d%d%d\n”,a,b,c); } 8、评价学生的成绩 score≥90优秀 score≥80良好 score≥70中 score≥60及格 score<60不及格 #include voidmain() { intscore; printf(“inputascore: ”); scanf(“%d”,&score); if(score>=90)printf(“优秀\n”); elseif(score>=80)printf(“良好\n”); elseif(score>=70)printf(“中\n”); elseif(score>=60)printf(“及格\n”); elseprintf(“不及格\n”); } 9、设平面上一点M,其坐标为(x,y),若M落在圆心在坐标原点的单位圆上,则置key=1,落在圆外置key=2,落在圆内置key=0。 10、计算函数: #include voidmain() {floatx,y; printf(“\tinputx: ”); scanf(“%f”,&x); if(x<-3.0) y=x-1.0; else { if(x>=-3.0&&x<=3.0) y=sqrt(9.0-x*x) elsey=log10(x); } printf(“\tx=%.1f\ty=%.1f\n”,x,y); } 11、判定某年是否闰年。 闰年: 年份year能被4整除,但不能被100整除;或能被400整除 #include voidmain() {intyear,leap; printf(“Whichyear? ”); scanf(“%d”,&year); if(year%400==0)leap=1; else {if(year%4==0) {if(year%100==0) leap=0; elseleap=1; } elseleap=0; } if(leap==1) printf(“%d年是闰年\n”,year); else printf(“%d年不是闰年\n”,year); } 12、任意输入一个字符,若是大写字母将其转换成小写字母。 #include voidmain() {charch; ch=getchar(); ch=(ch>=’A’&&ch<=‘Z’)? ch+32: ‘*’; if(ch! =‘*’) {putchar(ch);putchar(‘\n’);} } 13、运输公司对用户计算运费。 收费标准随距离s变化如下: s<250km不折扣 250≤s<500km2% 500≤s<1000km5% 1000≤s<2000km8% 2000≤s<3000km10% 3000≤s15% 分析: 计费是按照运输距离s和货物重量w进行的。 设每公里每吨货物的基本运费为p,考虑折扣d时,总运费的计算公式为: f=p*w*s*(1-d) #include voidmain() { floats,f,p,w,d; printf(“输入单价、距离和货物重量: ”); scanf(“%f,%f,%f”,&p,&s,&w); switch((int)s/250)/*强制类型转换*/ { case0: d=0;break; case1: d=0.02;break; case2: case3: d=0.05;break; case4: case5: case6: case7: d=0.08;break; case8: case9: case10: case11: d=0.1;break; default: d=0.15; } f=p*s*w*(1-d); printf(“总运费%.2f\n”,f); } 14、设计一个简单的计算器,完成两个数的加减乘除 分析: ●输入二个数及运算符 ●switch表达式: 运算符 ●常量: ‘+’,‘-’,‘*’,‘/’ #include voidmain() {floatx,y; charop; printf(“enterx,opration,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.0) printf(“error\n”); else printf(“%.2f%c%.2f=%.2f\n”,x,op,y,x/y); break; } } 15、输入三角形的三边长,求三角形面积。 假设: 三个边长a,b,c能构成三角形。 #include #include voidmain() { floata,b,c,s,area; scanf(“%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); } 16、从键盘输入一个大写字母,要求改用小写字母输出。 #include<stdio.h> voidmain() { charcl,c2; cl=getchar(); printf(″%c,%d\n″,cl,cl); c2=cl+32; printf(″%c,%d\n″,c2,c2); } 17、输入两个实数,按代数值由小到大的顺序输出这两个数。 #include voidmain() { floata,b,t; scanf(″%f,%f″,&a,&b); if(a>b) {t=a; a=b; b=t;} printf(″%5.2f,%5.2f\n″,a,b); } 18、有一个函数 ,编一程序,输入一个x值,输出y值。 #include voidmain() { intx,y; scanf("%d",&x); if(x<0)y=-1; elseif(x==0)y=0; elsey=1; printf("x=%d,y=%d\n",x,y); } 19、求ax2+bx+c=0方程的解。 #include #include voidmain() {floata,b,c,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("theequation"); if(fabs(a)<=1e-6) printf("isnotaquadratic\\n"); else {disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("hastwoequalroots: %8.4f\n",-b/(2*a)); elseif(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、键盘输入半径,求圆周长。 21、键盘输入半径,求圆面积。 22、输入4个整数,要求按照由小到大的顺序输出。 23、使用中间变量实现两个变量的交换。 #include voidmain() { inta,b,t; printf("inputtwodatas: "); scanf("%d,%d",&a,&b);/*输入两个数*/ t=a;/*实现a和b的互换,用t作中间变量*/ a=b; b=t; printf("outputthetwodatas: %d,%d\n",a,b); /*输出交换后的两个数*/ } 24、输出字符的前驱和后继 #include voidmain() { charc1,c,c2; printf("pleseinputcharacter: "); c=getchar();/*getchar函数得到的字符赋给变量c*/ c1=c-1;/*前驱字符*/ c2=c+1;/*后继字符*/ printf("%c%d,%c%d,%c%d\n",c1,c1,c,c,c2,c2); } 25、摄氏度和华氏度之间的转换 #include voidmain() { floatc,f;/*定义两个浮点型变量*/ printf("pleaseinputCelsiustemperature: "); scanf("%f",&c);/*输入摄氏温度*/ f=(9.0/5.0)*c+32;/*根据公式,求出华氏温度*/ printf("Fahrenheitis%5.2f\n",f); } 26、分解三位整数的各位数字 #include voidmain() { intnum; inthundred,ten,indiv; printf("pleseinputnum(100~999): "); scanf("%d",&num);/*输入三位的整数*/ hundred=num/100;/*百位的数字*/ ten=num/10%10;/*十位的数字*/ indiv=num%10;/*个位的数字*/ printf("hundredis%d,tenis%d,indivis%d\n",hundred,ten,indiv); } 27、输入3个学生的成绩,求这三个学生的总成绩和平均成绩。 #include voidmain() { inta,b,c,sum; floatave; printf("inputthreestudent'sscore: "); scanf("%d%d%d",&a,&b,&c);/*输入三个学生成绩*/ sum=a+b+c;/*求总成绩*/ ave=sum/3.0;/*求平均成绩*/ printf("sum=%4d\tAverage=%5.2f\n",sum,ave); } 28、实现小数点后第三位的四舍五入,也就是实数后面有2个有效数字 #include"stdio.h" voidmain() { doublex;/*变量声明*/ printf("inputx(double): ");/*提示信息*/ scanf("%lf",&x); printf("\n"); x=(int)(x*100+0.5);/*实现第三位的四舍五入*/ x/=100;/*复合的赋值语句*/ printf("x=%.2f\n",x); } 29、(P28)输入一个不多于5位的正整数,要求: 1)求它是几位数;2)分别输出每一位数字;3)按逆序输出各位数字。 30~44、教材第六章P129,习题6.1~6.15 45~49、教材第六章P124,例题6.6~6.10 50~64、教材第七章P152,习题7.1~7.15 65~71、教材第七章P124,例题7.3~7.9 72~89、教材第七章P202,习题8.1~8.18 90、打印九九乘法表 #include main() { inti,j; for(i=1;i<=9;i++){/*控制输出的行数*/ for(j=1;j<=9;j++)/*控制输出的列数*/ printf("%d*%d=%-4d",i,j,i*j);/*打印每一列的数据*/ printf("\n"); } } 91、在屏幕上用“*”显示00~3600的余弦函数cos(x)曲线 #include #include voidmain(){ doubley; intx,m; for(y=1;y>=-1;y-=0.1){/*y为列方向,值从1到-1,步长为0.1*/ m=acos(y)*10;/*计算出y对应的弧度m,乘以10为图形放大倍数*/ for(x=1;x printf(""); printf("*");/*控制打印左侧的*号*/ for(;x<62-m;x++) printf(""); printf("*\n");/*控制打印同一行中对称的右侧*号*/ } } 92、求定积分 #include"stdio.h" voidmain() { inti,n=100; floata,b,h,t1,t2,s1,x; printf("inputrange");/*输入提示*/ scanf("%f,%f",&a,&b); h=(b-a)/n; for(s1=0,i=1;i<=n;i++){/*i为循环变量取值范围为1~n*/ x=a+(i-1)*h; t1=(float)(x*x+x);/*计算出上底*/ t2=(float)((x+h)*(x+h)+(x+h));/*计算出下底*/ s1=s1+(t1+t2)*h/2;/*梯形面积累加*/ } printf("jifen: %f.\n",s1); } 93、用0~9组成无重复的三位数的个数 #include"stdio.h" voidmain() {/*a,b,c代表百位、十位、个位*/ intx,a,b,c,num=0;/*num存放满足条件的数的个数,注意num要赋初值*/ for(x=100;x<=999;x++){ a=x/100;/*x的百位数字保存在a中*/ b=x/10%10;/*x的十位数字保存在b中*/ c=x%10;/*x的个位数字保存在c中*/ if(a! =b&&a! =c&&b! =c){ /*判断每一位上的数字是否各不相同*/ num++; printf("%5d",x); } } printf("\nnumber=%d",num); } 94、取红、黑、白球: 盒子里共有12个球,其中3个红球、3个白球、6个黑球,从中任取6个球,问至少有一个红球的取法有多少种,并输出每一种具体的取法。 #include"stdio.h" voidmain(){ intred,white,black; intcount=0;/*count用来存放球的取法*/ for(red=1;red<=3;red++)/*红球red的取值为1~3*/ for(white=0;white<=3;white++){ black=8-red-white;/*算出黑球black的数*/ if(black<=6){ printf("red=%d,white=%d,black=%d\n",red,white,black); count++;/*统计取球的方法数*/ } } printf("\ntheresultis%d\n",count); } 95、计算数列12+22+…+502的和 #include voidmain() { inti; longsum=0;/*定义一个长整型变量sum用来存放和*/ for(i=1;i<=50;i++)/*i为项数,取值为1~50*/ sum=sum+i*i;/*往sum上累加i的平方和*/ printf("sumis%ld\n",sum); } 96、输出10~100之间的全部素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习 题目