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