c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx

上传人:b****5 文档编号:21008036 上传时间:2023-01-26 格式:DOCX 页数:31 大小:27.62KB
下载 相关 举报
c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx_第1页
第1页 / 共31页
c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx_第2页
第2页 / 共31页
c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx_第3页
第3页 / 共31页
c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx_第4页
第4页 / 共31页
c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx

《c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。

c语言程序设计案例教程 实验项目设计性题目参考答案Word文件下载.docx

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;

圆周长为:

l=%6.2f\n"

l);

圆面积为:

s=%6.2f\n"

s);

圆球表面积为:

sq=%6.2f\n"

sq);

圆球体积为:

vq=%6.2f\n"

vq);

圆柱体积为:

vz=%6.2\n"

vz);

(3)分别用getchar函数和scanf函数读入2个字符给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

charc1,c2;

请输入两个字符c1,c2:

"

c1=getchar();

c2=getchar();

用putchar语句输出结果为:

putchar(c1);

putchar(c2);

用printf语句输出结果为:

%c%c\n"

c1,c2);

}

实验项目四分支结构程序设计

(1)程序填空。

输入四个整数,输出其中的最小值。

填空:

min=a;

if(b<

min)min=b;

elseif(c<

min)min=c;

elseif(d<

min)min=d;

(2)计算如下函数Y的值。

X(X<

1)

2X-1(1≤X<

10)

3X-11(X>

=10)

程序代码:

intx,y;

请输入x:

%d"

x);

if(x<

1)y=x;

elseif(x<

10)y=2*x-1;

elsey=3*x-11;

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语句实现:

intg;

Loop:

printf("

请输入g:

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语句实现:

switch(g/10)

{

case10:

case9:

case8:

case7:

case6:

default:

(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<

floata,rate,tax,profit;

%f"

a);

if(a<

500)rate=0.0;

elseif(a<

1000)rate=0.05;

elseif(a<

2000)rate=0.08;

5000)rate=0.1;

elserate=0.15;

tax=a*rate;

profit=a-tax;

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倍。

intx1,x2,day,total;

day=9;

x2=1;

while(day>

0)

{x1=(x2+1)*2;

x2=x1;

day=day-1;

Total=x1;

total=%d\n"

x1);

(2)求200—300之间的素数。

intm,n,flag;

\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;

%d"

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;

&

n);

/*----以下为所填语句------*/

sum=0;

flag=1;

for(i=1;

i<

=n;

i++)

{sum+=flag*1.0/i;

flag=-flag;

%.3f\n"

sum);

②统计字符。

输入一个正整数repeat(0<

repeat<

10),做repeat次下列运算:

输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

intri,repeat;

intblank,digit,letter,other;

charc;

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'

Z'

)letter++;

elseif(c>

0'

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)

inta,b,c,d,max;

%d%d%d%d"

a,&

b,&

c,&

d);

max=a;

if(max<

b)max=b;

c)max=c;

d)max=d;

maxis%d\n"

max);

(4)编写程序:

输出“九九乘法表”。

inti,j;

9;

i++);

for(j=1;

j<

=i;

j++);

{

if(i==j)printf("

%d*%d=%d"

i,j,i*j);

实验项目六函数及其应用

计算代数多项式1.1+2.2x+3.3x2+4.4x3+5.5x4的值。

输入

1.5

54.52

floatf(float);

floatx,y;

scanf(“%f”,&

/*----以下为所填语句------*/

y=f(x);

%.2f\n"

y);

floatf(floatx)

floatsum=0,t=1;

inti;

=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)均为长整型。

{longintfas(int);

inti,m;

longints=0;

for(i=1;

=10;

{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():

返回两个数中较小的值。

Intm=0;

n=100;

{inti,x,sum;

sum=0;

LOOP:

scanf(“%d”,&

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<

n)n=x;

return(n);

(4)编写程序,用递归法将一个十进制整数转换成二进制数。

voidDtoB(intn);

intn;

scanf("

%d-----)"

DtoB(n);

voidDtoB(intn)

if(n)

DtoB(n/2);

n%2);

}

实验项目七数组及其应用

①求n个数中较大值及其下标。

输入一个正整数n(1<

=10),再输入n个整数,输出最大值极其下标(设最大值唯一,下标从0开始)。

inti,index,n;

inta[10];

ri++){

for(i=0;

i<

n;

i++)

a[i]);

index=0;

if(a[index]<

a[i])index=i;

max=%d,index=%d\n"

a[index],index);

②逆序输出。

=10),再输入n个整数,按逆序输出这些数。

inti,n,temp;

n/2;

temp=a[i];

a[i]=a[n-1-i];

a[n-1-i]=temp;

a[i]);

③找鞍点(选作)。

输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标,否则,输出"

NO"

(设a最多有1个鞍点)。

#include"

stdio.h"

intri,repeat;

intflag,i,j,k,row,col,n,a[6][6];

ri<

ri++){

for(j=0;

j<

j++)

a[i][j]);

row=i;

col=0;

for(j=1;

if(a[row][col]<

a[row][j])

col=j;

flag=1;

for(k=0;

k<

k++)

if(a[row][col]>

a[k][col])

{flag=0;

break;

if(flag)

a[%d][%d]=%d\n"

row,col,a[row][col]);

if(!

flag)

NO\n"

(2)有10个数存放在一个数组中,先对该10个数从大到小排序,然后输入一个数,要求找出该数是数组中第几个元素的值,若找不到,输出未找到信息。

①用冒泡或者选择排序法对数组中的10个数进行排序;

②用折半查找的方法在数组中查找指定的数。

程序代码:

#defineN11

voidsort(inta[N])/*排序*/

{inti,j,min,temp;

=9;

{min=i;

for(j=i+1;

j++)

if(a[min]>

a[j])

min=j;

a[i]=a[min];

a[min]=temp;

{inti,j,x,a[N];

voidbadd(int,int[],int);

Enterdata:

{printf("

a[%d]="

i);

%5d"

a[i]);

sort(a);

\nThesortednumbers:

badd(x,a,N);

/*zhebanfindx*/

voidbadd(intx,inta[],intn)

{intmid,top,bot;

top=0;

bot=n-1;

while(top<

=bot)

{mid=(top+bot)/2;

if(x==a[mid])

\n%d=a[%3d]\n"

x,mid-1);

exit(0);

elseif(x>

mid)

top=mid+1;

elsebot=mid-1;

\ncan`tfind%d!

x);

(3)/**/统计6个学生各4门功课的成绩。

要求程序具有如下功能:

①每个学生的4门功课的成绩从键盘读入;

②计算每个学生的总分和平均分;

③按平均成绩进行排序,输出排序后的成绩单(四门功课的成绩和均分),给出名次。

如先输入学生4门课成绩:

1:

67,72,65,80

2:

75,82,94,95

3:

70,74,80,76

4:

......

程序代码:

#include<

inti,j,k,t,s,a[7][7];

=6;

i++)a[i][0]=i;

/*输入序号*/

t=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1