C语言程序设计案例教程 实验项目 设计性题目参考答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; else if(c>='0'&&c<='9') digit++; else if(c==' ') blank++; else other++; c = getchar();
} printf("letter=%d, blank=%d, digit=%d, other=%d\n", letter, blank, digit, other); } }
flag=-flag; } printf("%.3f\n", sum); } ② 统计字符。输入一个正整数repeat (0<repeat<10),做repeat 次下列运算: 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 程序代码: #include <stdio.h> void main( ) { int ri, repeat; int blank, digit, letter, other; char c; scanf("%d", &repeat); getchar(); for(ri=1; ri<=repeat; ri++) { c = getchar(); /*----以下为所填语句------*/ blank=digit=letter=other=0; while(c!='\n')
}
② 用 switch 语句实现: #include <stdio.h> main() { int g; Loop: printf(" 请输入 g:");
scanf("%d",&g);
if(g<0||g>100) goto Loop;
switch(g/10)
{
case 10:
case 9: printf("A");
int m,n,flag; printf("\n The primers from 200 to 300 is: \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"); }
(2)设圆半径 r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
程序代码: #include <stdio.h> main() { float h,r,l,s,sq,vq,vz; float pi=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);
5000≤a
0.15
提示:a=奖金数 rate=税率值 tax=应缴税款 profit=实得奖金数。
计算公式: tax = a* rate , profit= a – tax
程序代码: #include <stdio.h> main() { float a,rate,tax,profit; scanf("%f ",&a); if(a<500) rate=0.0; else if (a<1000) rate=0.05; else if (a<2000) rate=0.08; else if (a<5000) rate=0.1; else rate=0.15; tax= a*rate; profit=a-tax; printf(" rate=%10.2f,tax=%10.2f, profit=%10.2f\n", rate, tax, profit); }
③ 找最大值。输入一个正整数repeat (0<repeat<10),做repeat 次下列运算: 输入 4个整数 输出 其中的最大值。
例:输入 3 (repeat=3) 12 6 1 90 10 40 30 20
-1 -3 -4 -5 输出 max is 90 (12 6 1 90 中的最大值是90) max is 40 (10 40 30 20 中的最大值是40) max is -1 (-1 -3 -4 -5 中的最大值是-1)
case 8: printf("B");
case 7: printf("C");
case 6: printf("D");
default: printf("E");
}
}Baidu Nhomakorabea
(4)编写程序,输入奖金数 a,计算并输出税率、应缴税款和实得奖金数。
奖金
税率
a<500
0.00
500≤a<1000 0.05
1000≤a<2000 0.08 2000≤a<5000 0.10
(3)分别用 getchar 函数和 scanf 函数读入 2 个字符给变量 c1、c2,然后分别用 putchar 函 数和 printf 函数输出这两个字符。 程序代码:
#include <stdio.h> main() {
char c1,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<min) min=b; else if(c<min)min=c;
(3)程序填空 ① 求1-1/2+1/3-1/4+⋯ ⋯ ,输入1 个正整数 n(n<=100),计算并输出1-1/2+
1/3-1/4+⋯⋯的前n 项和(保留3 位小数)。 程序代码: #include <stdio.h> void main( ) {
int i, n, flag; float sum; scanf("%d", &n); /*----以下为所填语句------*/ sum=0; flag=1; for(i=1;i<=n;i++) { sum+=flag*1.0/i;
C语言程序设计案例教程(含实验)
设计性实验的程序参考答案
实验项目一 C程序的编辑、编译、连接和运行 题目:编写程序,要求屏幕上显示如下信息: *********************** * This is a C program .* ***********************
程序: #include <stdio.h> void main() { printf(“***********************”); printf(“* This is a C program .*”); printf(“***********************”); }
算法提示
设 total:桃子的总数 x1 :前一天的桃子数 x2 : 后一天的桃子数 day: 天数
计算公式: x1=(x2+1)*2 程序代码:
#include <stdio.h> void main() {
int x1,x2,day,total; day=9; x2=1; while(day>0)
实验项目二 数据类型、运算符、表达式 题目 (1)程序填空:输入 1 个实数 x,计算并输出其平方根(保留 1 位小数)。
填空 1. double x,root; 2. root=sqrt(x); (2)输入一个大写英文字母,输出相应的小写字母。 填空 1. ch=ch+32; 实验项目三 顺序结构程序设计
else if(d<min)min=d;
(2)计算如下函数 Y 的值。
X
(X<1)
{Y=
2X-1 (1≤X<10)
3X-11 (X>=10)
程序代码: #include <stdio.h> main() { int x,y; printf(" 请输入 x:");
scanf("%d",&x);
if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11;
(4)编写程序:输出“九九乘法表”。 程序代码:
#include <stdio.h> void main() {
int i,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 <stdio.h> float f(float); void main() { float x,y; scanf(“%f”,&x); /*----以下为所填语句------*/ y=f(x); printf("%.2f\n",y); } /*----以下为所填语句------*/ float f(float x) { float sum=0,t=1; int i; for(i=1;i<=5;i++){ sum+=(i+1.0*i/10)*t; t*=x; } return sum; }
题目 (1)编写程序,输入三角形的三边长 a、b、c,求三角形面积 area。 程序代码:
#include <stdio.h> #include <mach.h> main() {
float a,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);
{ x1=(x2+1)*2; x2=x1; day=day-1;
} Total=x1; printf(" total=%d\n", x1); }
第 1 天的桃子数是第 2 天桃子数加 1 后的 2 倍。
(2)求200—300之间的素数。 程序代码:
#include <stdio.h> void main() {
int g; Loop: printf(" 请输入 g:");
scanf("%d",&g);
if(g<0||g>100) goto Loop; if(g>90) printf("A"); sele if(g>80) printf("B"); else if(g>70) printf("C"); else if(g>60) printf("D"); else printf("E");
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 <stdio.h> main() {
实验项目五 循环结构程序设计
题目 (1)猴子吃桃子。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一
个,第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的 一半多一个。到第10天早上想再吃时,只剩下一个桃子。问第一天共摘多少个桃子?(要求 使用While循环语句实现)。
程序代码: #include <stdio.h> void main( ) { int ri, repeat; int a, 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<b)max=b; if(max<c)max=c; if(max<d)max=d; printf("max is %d\n", max); } }
} printf("letter=%d, blank=%d, digit=%d, other=%d\n", letter, blank, digit, other); } }
flag=-flag; } printf("%.3f\n", sum); } ② 统计字符。输入一个正整数repeat (0<repeat<10),做repeat 次下列运算: 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 程序代码: #include <stdio.h> void main( ) { int ri, repeat; int blank, digit, letter, other; char c; scanf("%d", &repeat); getchar(); for(ri=1; ri<=repeat; ri++) { c = getchar(); /*----以下为所填语句------*/ blank=digit=letter=other=0; while(c!='\n')
}
② 用 switch 语句实现: #include <stdio.h> main() { int g; Loop: printf(" 请输入 g:");
scanf("%d",&g);
if(g<0||g>100) goto Loop;
switch(g/10)
{
case 10:
case 9: printf("A");
int m,n,flag; printf("\n The primers from 200 to 300 is: \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"); }
(2)设圆半径 r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
程序代码: #include <stdio.h> main() { float h,r,l,s,sq,vq,vz; float pi=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);
5000≤a
0.15
提示:a=奖金数 rate=税率值 tax=应缴税款 profit=实得奖金数。
计算公式: tax = a* rate , profit= a – tax
程序代码: #include <stdio.h> main() { float a,rate,tax,profit; scanf("%f ",&a); if(a<500) rate=0.0; else if (a<1000) rate=0.05; else if (a<2000) rate=0.08; else if (a<5000) rate=0.1; else rate=0.15; tax= a*rate; profit=a-tax; printf(" rate=%10.2f,tax=%10.2f, profit=%10.2f\n", rate, tax, profit); }
③ 找最大值。输入一个正整数repeat (0<repeat<10),做repeat 次下列运算: 输入 4个整数 输出 其中的最大值。
例:输入 3 (repeat=3) 12 6 1 90 10 40 30 20
-1 -3 -4 -5 输出 max is 90 (12 6 1 90 中的最大值是90) max is 40 (10 40 30 20 中的最大值是40) max is -1 (-1 -3 -4 -5 中的最大值是-1)
case 8: printf("B");
case 7: printf("C");
case 6: printf("D");
default: printf("E");
}
}Baidu Nhomakorabea
(4)编写程序,输入奖金数 a,计算并输出税率、应缴税款和实得奖金数。
奖金
税率
a<500
0.00
500≤a<1000 0.05
1000≤a<2000 0.08 2000≤a<5000 0.10
(3)分别用 getchar 函数和 scanf 函数读入 2 个字符给变量 c1、c2,然后分别用 putchar 函 数和 printf 函数输出这两个字符。 程序代码:
#include <stdio.h> main() {
char c1,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<min) min=b; else if(c<min)min=c;
(3)程序填空 ① 求1-1/2+1/3-1/4+⋯ ⋯ ,输入1 个正整数 n(n<=100),计算并输出1-1/2+
1/3-1/4+⋯⋯的前n 项和(保留3 位小数)。 程序代码: #include <stdio.h> void main( ) {
int i, n, flag; float sum; scanf("%d", &n); /*----以下为所填语句------*/ sum=0; flag=1; for(i=1;i<=n;i++) { sum+=flag*1.0/i;
C语言程序设计案例教程(含实验)
设计性实验的程序参考答案
实验项目一 C程序的编辑、编译、连接和运行 题目:编写程序,要求屏幕上显示如下信息: *********************** * This is a C program .* ***********************
程序: #include <stdio.h> void main() { printf(“***********************”); printf(“* This is a C program .*”); printf(“***********************”); }
算法提示
设 total:桃子的总数 x1 :前一天的桃子数 x2 : 后一天的桃子数 day: 天数
计算公式: x1=(x2+1)*2 程序代码:
#include <stdio.h> void main() {
int x1,x2,day,total; day=9; x2=1; while(day>0)
实验项目二 数据类型、运算符、表达式 题目 (1)程序填空:输入 1 个实数 x,计算并输出其平方根(保留 1 位小数)。
填空 1. double x,root; 2. root=sqrt(x); (2)输入一个大写英文字母,输出相应的小写字母。 填空 1. ch=ch+32; 实验项目三 顺序结构程序设计
else if(d<min)min=d;
(2)计算如下函数 Y 的值。
X
(X<1)
{Y=
2X-1 (1≤X<10)
3X-11 (X>=10)
程序代码: #include <stdio.h> main() { int x,y; printf(" 请输入 x:");
scanf("%d",&x);
if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11;
(4)编写程序:输出“九九乘法表”。 程序代码:
#include <stdio.h> void main() {
int i,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 <stdio.h> float f(float); void main() { float x,y; scanf(“%f”,&x); /*----以下为所填语句------*/ y=f(x); printf("%.2f\n",y); } /*----以下为所填语句------*/ float f(float x) { float sum=0,t=1; int i; for(i=1;i<=5;i++){ sum+=(i+1.0*i/10)*t; t*=x; } return sum; }
题目 (1)编写程序,输入三角形的三边长 a、b、c,求三角形面积 area。 程序代码:
#include <stdio.h> #include <mach.h> main() {
float a,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);
{ x1=(x2+1)*2; x2=x1; day=day-1;
} Total=x1; printf(" total=%d\n", x1); }
第 1 天的桃子数是第 2 天桃子数加 1 后的 2 倍。
(2)求200—300之间的素数。 程序代码:
#include <stdio.h> void main() {
int g; Loop: printf(" 请输入 g:");
scanf("%d",&g);
if(g<0||g>100) goto Loop; if(g>90) printf("A"); sele if(g>80) printf("B"); else if(g>70) printf("C"); else if(g>60) printf("D"); else printf("E");
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 <stdio.h> main() {
实验项目五 循环结构程序设计
题目 (1)猴子吃桃子。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一
个,第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的 一半多一个。到第10天早上想再吃时,只剩下一个桃子。问第一天共摘多少个桃子?(要求 使用While循环语句实现)。
程序代码: #include <stdio.h> void main( ) { int ri, repeat; int a, 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<b)max=b; if(max<c)max=c; if(max<d)max=d; printf("max is %d\n", max); } }