c语言程序设计案例教程 实验项目设计性题目参考答案.docx
- 文档编号:7875447
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:31
- 大小:27.62KB
c语言程序设计案例教程 实验项目设计性题目参考答案.docx
《c语言程序设计案例教程 实验项目设计性题目参考答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计案例教程 实验项目设计性题目参考答案.docx(31页珍藏版)》请在冰豆网上搜索。
c语言程序设计案例教程实验项目设计性题目参考答案
C语言程序设计案例教程(含实验)
设计性实验的程序参考答案
实验项目一C程序的编辑、编译、连接和运行
题目:
编写程序,要求屏幕上显示如下信息:
***********************
*ThisisaCprogram.*
***********************
程序:
#include
voidmain()
{
printf(“***********************”);
printf(“*ThisisaCprogram.*”);
printf(“***********************”);
}
实验项目二数据类型、运算符、表达式
题目
(1)程序填空:
输入1个实数x,计算并输出其平方根(保留1位小数)。
填空
1.doublex,root;
2.root=sqrt(x);
(2)输入一个大写英文字母,输出相应的小写字母。
填空
1.ch=ch+32;
实验项目三顺序结构程序设计
题目
(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。
程序代码:
#include
#include
main()
{
floata,b,c,s,arer;
printf("请输入三角形的三个边a,b,c:
\n");
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=57.2f,c=%7.2f\n",a,b,c);
printf("三角形的面积area=%7.2\n",area);
(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
程序代码:
#include
main()
{
floath,r,l,s,sq,vq,vz;
floatpi=3.1415926;
printf("请输入圆半径r,圆柱高h:
");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r?
*r;
vz=pi*r*r*h;
printf("圆周长为:
l=%6.2f\n",l);
printf("圆面积为:
s=%6.2f\n",s);
printf("圆球表面积为:
sq=%6.2f\n",sq);
printf("圆球体积为:
vq=%6.2f\n",vq);
printf("圆柱体积为:
vz=%6.2\n",vz);
(3)分别用getchar函数和scanf函数读入2个字符给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
程序代码:
#include
main()
{
charc1,c2;
printf("请输入两个字符c1,c2:
");
c1=getchar();
c2=getchar();
printf("用putchar语句输出结果为:
");
putchar(c1);
putchar(c2);
printf("用printf语句输出结果为:
");
printf("%c%c\n",c1,c2);
}
实验项目四分支结构程序设计
题目
(1)程序填空。
输入四个整数,输出其中的最小值。
填空:
min=a;
if(b elseif(c elseif(d (2)计算如下函数Y的值。 X(X<1) 2X-1(1≤X<10) 3X-11(X>=10) 程序代码: #include main() { intx,y; printf("请输入x: "); scanf("%d",&x); if(x<1)y=x; elseif(x<10)y=2*x-1; elsey=3*x-11; printf("x=%d,y=%d",x,y); } (3)给出一个百分制成绩,输出对应的等级分。 共分A、B、C、D、E五个等级。 90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。 要求分别用if语句和switch语句实现。 程序代码: ①用if-else语句实现: #include main() { intg; Loop: printf("请输入g: "); scanf("%d",&g); if(g<0||g>100)gotoLoop; if(g>90)printf("A"); seleif(g>80)printf("B"); elseif(g>70)printf("C"); elseif(g>60)printf("D"); elseprintf("E"); } ②用switch语句实现: #include main() { intg; Loop: printf("请输入g: "); scanf("%d",&g); if(g<0||g>100)gotoLoop; switch(g/10) { case10: case9: printf("A"); case8: printf("B"); case7: printf("C"); case6: printf("D"); default: printf("E"); } } (4)编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。 奖金税率 a<5000.00 500≤a<10000.05 1000≤a<20000.08 2000≤a<50000.10 5000≤a0.15 提示: a=奖金数rate=税率值tax=应缴税款profit=实得奖金数。 计算公式: tax=a*rate,profit=a–tax 程序代码: #include main() { floata,rate,tax,profit; scanf("%f",&a); if(a<500)rate=0.0; elseif(a<1000)rate=0.05; elseif(a<2000)rate=0.08; elseif(a<5000)rate=0.1; elserate=0.15; tax=a*rate; profit=a-tax; printf("rate=%10.2f,tax=%10.2f,profit=%10.2f\n",rate,tax,profit); } 实验项目五循环结构程序设计 题目 (1)猴子吃桃子。 猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第2天早上将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半多一个。 到第10天早上想再吃时,只剩下一个桃子。 问第一天共摘多少个桃子? (要求使用While循环语句实现)。 算法提示 设total: 桃子的总数 x1 : 前一天的桃子数 x2: 后一天的桃子数 day: 天数 计算公式: x1=(x2+1)*2 第1天的桃子数是第2天桃子数加1后的2倍。 程序代码: #include voidmain() { intx1,x2,day,total; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day=day-1; } Total=x1; printf("total=%d\n",x1); } (2)求200—300之间的素数。 程序代码: #include voidmain() { intm,n,flag; printf("\nTheprimersfrom200to300is: \n"); for(n=201;n<300;n+=2) {flag=1; for(m=2;m<=n/2;m++) if(n/m==0) {flag=0; break; } if(flag==0) continue; printf("%d",n); } printf("\n"); } (3)程序填空 ①求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。 程序代码: #include voidmain() { inti,n,flag; floatsum; scanf("%d",&n); /*----以下为所填语句------*/ sum=0; flag=1; for(i=1;i<=n;i++) {sum+=flag*1.0/i; flag=-flag; } printf("%.3f\n",sum); } ②统计字符。 输入一个正整数repeat(0 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 程序代码: #include voidmain() { intri,repeat; intblank,digit,letter,other; charc; scanf("%d",&repeat); getchar(); for(ri=1;ri<=repeat;ri++) { c=getchar(); /*----以下为所填语句------*/ blank=digit=letter=other=0; while(c! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z')letter++; elseif(c>='0'&&c<='9')digit++; elseif(c=='')blank++; elseother++; c=getchar(); } printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other); } } ③找最大值。 输入一个正整数repeat(0 输入4个整数 输出其中的最大值。 例: 输入 3(repeat=3) 126190 10403020 -1-3-4-5 输出 maxis90(126190中的最大值是90) maxis40(10403020中的最大值是40) maxis-1(-1-3-4-5中的最大值是-1) 程序代码: #include voidmain() { intri,repeat; inta,b,c,d,max; scanf("%d",&repeat); /*----以下为所填语句------*/ for(ri=1;ri<=repeat;ri++) { scanf("%d%d%d%d",&a,&b,&c,&d); /*----以下为所填语句------*/ max=a; if(max if(max if(max printf("maxis%d\n",max); } } (4)编写程序: 输出“九九乘法表”。 程序代码: #include voidmain() { inti,j; for(i=1;i<9;i++); for(j=1;j<=i;j++); { if(i==j)printf("\n"); printf("%d*%d=%d",i,j,i*j); } } 实验项目六函数及其应用 题目 (1)程序填空。 计算代数多项式1.1+2.2x+3.3x2+4.4x3+5.5x4的值。 例: 输入 1.5 输出 54.52 程序代码: #include floatf(float); voidmain() { floatx,y; scanf(“%f”,&x); /*----以下为所填语句------*/ y=f(x); printf("%.2f\n",y); } /*----以下为所填语句------*/ floatf(floatx) { floatsum=0,t=1; inti; for(i=1;i<=5;i++){ sum+=(i+1.0*i/10)*t; t*=x; } returnsum; } (2)编写程序,求s=1! +2! +3! +....+10! 之和。 要求定义递归函数fact(n)求n! ,程序的输出形式为: 1! +2! +3! +4+5! +6! +7! +8! +9! +10! =s,其中,s为求和值。 实验提示 求n! 的递归公式为: 1(n=0、n=1) fact(n)= fact(n)=n*fact(n-1)(n>1) 注意: s和fas(n)均为长整型。 ! 程序代码: #include voidmain() {longintfas(int); inti,m; longints=0; for(i=1;i<=10;i++) {m=fas(i); s=s+m; print(“%d! +”,i); }print(“\b=%d\n”,s); } longintfas(intx) { if(x==0||x==1) return (1); else return(x*fas(x-1)); } (3)编写程序,N名裁判给某歌手打分(假定分数都为整数)。 评分原则是去掉一个最高分,去掉一个最低分,剩下的分数取平均值为歌手的最终得分。 裁判给分的范围是: 60<=分数〈=100,裁判人数N=10。 要求: 每个裁判的分数由键盘输入。 实验提示 定义两个函数: ●max(): 返回两个数中较大的值; ●min(): 返回两个数中较小的值。 程序代码: #include Intm=0;n=100; voidmain() {inti,x,sum; sum=0; for(i=1;i<=10;i++) { LOOP: scanf(“%d”,&x); if(x<60||x>100) gotoLOOP; m=max(x,m); n=min(x,n); sum=sum+x; } print(“%d”,(sum-m-n)/8); } intmax(intx) { if(x>m)m=x; return(m); } intmin(intx) { if(x return(n); } (4)编写程序,用递归法将一个十进制整数转换成二进制数。 程序代码: #include voidDtoB(intn); voidmain() { intn; scanf("%d",&n); printf("%d-----)",n); DtoB(n); printf("\n"); } voidDtoB(intn) { if(n) { DtoB(n/2); printf("%d",n%2); } } 实验项目七数组及其应用 题目 (1)程序填空。 ①求n个数中较大值及其下标。 输入一个正整数n(1 程序代码: #include voidmain() { intri,repeat; inti,index,n; inta[10]; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); /*----以下为所填语句------*/ index=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计案例教程 实验项目设计性题目参考答案 语言程序设计 案例 教程 实验 项目 设计 题目 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)