c语言程序答案上机.docx

上传人:b****5 文档编号:7429959 上传时间:2023-05-11 格式:DOCX 页数:52 大小:60.58KB
下载 相关 举报
c语言程序答案上机.docx_第1页
第1页 / 共52页
c语言程序答案上机.docx_第2页
第2页 / 共52页
c语言程序答案上机.docx_第3页
第3页 / 共52页
c语言程序答案上机.docx_第4页
第4页 / 共52页
c语言程序答案上机.docx_第5页
第5页 / 共52页
c语言程序答案上机.docx_第6页
第6页 / 共52页
c语言程序答案上机.docx_第7页
第7页 / 共52页
c语言程序答案上机.docx_第8页
第8页 / 共52页
c语言程序答案上机.docx_第9页
第9页 / 共52页
c语言程序答案上机.docx_第10页
第10页 / 共52页
c语言程序答案上机.docx_第11页
第11页 / 共52页
c语言程序答案上机.docx_第12页
第12页 / 共52页
c语言程序答案上机.docx_第13页
第13页 / 共52页
c语言程序答案上机.docx_第14页
第14页 / 共52页
c语言程序答案上机.docx_第15页
第15页 / 共52页
c语言程序答案上机.docx_第16页
第16页 / 共52页
c语言程序答案上机.docx_第17页
第17页 / 共52页
c语言程序答案上机.docx_第18页
第18页 / 共52页
c语言程序答案上机.docx_第19页
第19页 / 共52页
c语言程序答案上机.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序答案上机.docx

《c语言程序答案上机.docx》由会员分享,可在线阅读,更多相关《c语言程序答案上机.docx(52页珍藏版)》请在冰点文库上搜索。

c语言程序答案上机.docx

c语言程序答案上机

C语言上机实验(程序题)参考答案

 

实验一

5、输入并运行自已编写的程序(教材第一章P14三编程题)。

实验二

1、编写一个程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。

#include

main()

{floatx,y,z,s,t,a;

printf(“x,y,z=”);

scanf(“%f,%f,%f”,&x,&y,&z);

s=x+y+z;

t=x*y*z;

a=s/3;

printf(“s=%f,t=%f,a=%f\n”,s,t,a);

}

2、编程。

要求用户输入两个整数a、b(分别为20、10),读取用户从键盘输入的值,然后:

1)用整数输出这两个数的和、差;

2)用长整型输出这两个数的积,用float输出商;

3)用整数输出这两个数的余数,用float输出平均值。

#include

main()

{inta,b,he,cha,yu;

longji;

floatshang,aver;

printf(“a,b=”);

scanf(“%d,%d”,&a,&b);

he=a+b;

cha=a-b;

ji=(long)a*b;

shang=1.0*a/b;

yu=a%b;

aver=(a+b)/2.0;

printf(“a+b=%d,a-b=%d,a*b=%ld\n”,he,cha,ji);

printf(“a/b=%f,a%%b=%d,aver=%f\n”,shang,yu,aver);

}

3. 再次运行程序第2题中的程序,使整数a、b的值分别为10、20,分析程序运行结果,并给出说明。

程序同上。

实验三

1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。

例如,输入整数5,程序运行后输出字符5。

#include

main()

{inta;

charc;

printf(“a=”);

scanf(“%d”,&a);

c=a+48;

putchar(c);

}

2、编程。

输入半径,计算球体表面积(

)和球体积(

)。

#include

#definePI3.1415926

main()

{floatr,s,v;

printf(“r=”);

scanf(“%f”,&r);

s=4*PI*r*r;

v=4/3.0*PI*r*r*r;

printf(“s=%f,v=%f\n”,s,v);

}

3、编写一个程序,要求通过键盘给6个变量赋值,然后将变量的值在屏幕上打印输出。

这六个变量的值分别为:

10,-10,40000,a,3.14,hello。

#include

main()

{inta,b;

longc;

chard,ch[6];

floate;

scanf(“%d%d%ld%c%f%s”,&a,&b,&c,&d,&e,ch);

printf(“%d,%d,%ld,%c,%f,%s\n”,a,b,c,d,e,ch);

}

实验四

1. 编程实现:

键盘输入三个整数,分别存放到变量a,b,c中,输出其中的最小值(要求不改变a、b、c的值)。

#include

main()

{inta,b,c,min;

printf("请输入三个整数a,b,c=");

scanf("%d,%d,%d",&a,&b,&c);

min=a>b?

(b>c?

c:

b):

(a>c?

c:

a);

printf("min=%d\n",min);

}

2. 编程实现:

键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则输出相应大写字母;其它字符原样输出。

#include

main()

{charc;

printf("请输入一个字符:

");

scanf("%c",&c);

if(c>='a'&&c<='z')c=c-32;

elseif(c>='A'&&c<='Z')c=c+32;

printf("%c\n",c);

}

3、计算以下分段函数值

#include

main()

{doublex,y;

printf("请输入一个实数:

");

scanf("%lf",&x);

if(x<0&&x!

=-3)y=x*x+x-6;

elseif(x>=0&&x<10&&x!

=2&&x!

=3)y=x*x-5*x+6;

elsey=x*x-x-1;

printf("x=%f,f(x)=%f\n",x,y);

}

4. 编写程序,键盘接收一个字符串(只含大、小写英文字母),将该字符串加密后输出。

加密规则为:

若为小写字母则不变,若为大写字母则将其转换为小写后再后移一个字母,例如“A”应转换为“b”,“B”应转换为“c”,“Y”应转换为“z”,而“Z”应转换为“a”。

#include

main()

{charc[20];

inti;

printf("请输入一个字符串(只含英文字母):

");

gets(c);

for(i=0;c[i]!

=’\0’;i++)

if(c[i]>=‘A’&&c[i]<=‘Y’)c[i]=c[i]+33;

elseif(c[i]==’Z’)c[i]=‘a’;

puts(c);

putchar(‘\n’);

}

5. 编写程序,用scanf输入任意两个数给变量a、b,若a大于等于b,则直接输出a、b,否则将a、b的值交换(即a的原值放入b中,b的原值放入a中)后再输出。

#include

main()

{floata,b,t;

printf("请输入两个数:

");

scanf("%f,%f",&a,&b);

if(a

printf("a=%f,b=%f",a,b);

}

6. 编写程序:

由系统生成一个10以内的随机整数,用户从键盘上输入一个10以内的整数,如果两者相等输出“OK”,否则输出“ERROR”。

#include

#include

#include

main()

{inta,b;

srand((unsigned)time(NULL));

b=rand()%10+1;

printf("请输入一个10以内的整数:

");

scanf("%d",&a);

printf("a=%d,随机数b=%d\n",a,b);

if(a==b)printf("OK!

\n");

elseprintf("ERROR!

\n");

}

7. 编写程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

(此题为选做)

#include

main()

{inta,b,t;

printf("请输入两个整数a,b=");

scanf("%d,%d",&a,&b);

t=a*a+b*b;

if(t<=100)

printf("a+b=%d",a+b);

else

{t=t/100;

printf("a*a+b*b百位以上的数字是%d\n",t);

}

}

实验五

1.编程,计算函数y的值,已知函数y与自变量x的关系为:

 

#include

main()

{floatx,y;

printf(“请输入一个非负数x=”);

scanf(“%f”,&x);

if(x>=0&&x<100)y=3*x+10;

elseif(x>=100)y=x*x*x-20;

if(x>=0)printf(“y=%f\n”,y);

elseprintf(“输入错误!

\n”);

}

2.编写一个简单的计算器程序,输入格式为:

data1opdata2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

#include

main()

{charop;

floatd1,d2;

printf("请输入算式(如3+5):

");

scanf("%f%c%f",&d1,&op,&d2);

switch(op)

{case'+':

printf("%g+%g=%g\n",d1,d2,d1+d2);break;

case'-':

printf("%g-%g=%g\n",d1,d2,d1-d2);break;

case'*':

printf("%g×%g=%g\n",d1,d2,d1*d2);break;

case'/':

printf("%g÷%g=%g\n",d1,d2,d1/d2);break;

}

}

2.编程实现:

输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:

①能同时被3,5,7整除

②能被其中两数(要指出是哪两个数)整除

③能被其中一个数(要指出是哪一个数)整除

④不能被3,5,7任一个数整除

#include

main()

{intn;

printf("请输入一个整数n=");

scanf("%d",&n);

if(n%3==0&&n%5==0&&n%7==0)

printf("%d能被3,5,7整除\n",n);

elseif(n%3==0&&n%5==0)printf("%d能被3,5整除\n",n);

elseif(n%3==0&&n%7==0)printf("%d能被3,7整除\n",n);

elseif(n%5==0&&n%7==0)printf("%d能被5,7整除\n",n);

elseif(n%3==0)printf("%d能被3整除\n",n);

elseif(n%5==0)printf("%d能被5整除\n",n);

elseif(n%7==0)printf("%d能被7整除\n",n);

elseprintf("%d不能被3,5,7任一个整除\n",n);

}

4.已知从2008年12月开始,银行整存整取存款不同期限的年利率分别为:

三个月1.71%,半年1.98%,一年2.25%,两年2.79%,三年3.33%,五年3.60%。

编写程序,要求输入存钱的本金和期限,求出到期时能从银行得到的利息与本金的合计数。

#include

main()

{charc;

floatx,y;

printf("请输入存款本金x=");

scanf("%f",&x);

do

{getchar();/*接受回车符*/

clrscr();/*清屏*/

printf("\n存款期限:

\n");

printf("a------三个月(年利率1.71%%)\n");

printf("b------半年(年利率1.98%%)\n");

printf("c------一年(年利率2.52%%)\n");

printf("d------两年(年利率2.79%%)\n");

printf("e------三年(年利率3.33%%)\n");

printf("f------五年(年利率3.60%%)\n");

printf("请输入存款期限(a,b,c,d,e,f):

");

scanf("%c",&c);

}

while(!

(c>='a'&&c<='f'));

printf("%g元存期",x);

x=x/100;

switch(c)

{case'a':

y=x*(100+1.71/4);printf("三个月");break;

case'b':

y=x*(100+1.98/2);printf("半年");break;

case'c':

y=x*(100+2.25);printf("一年");break;

case'd':

y=x*(100+2.79*2);printf("两年");break;

case'e':

y=x*(100+3.33*3);printf("三年");break;

case'f':

y=x*(100+3.6*5);printf("五年");break;

}

printf("到期的本息合计为%f元\n",y);

}

5.设函数  

(1)用条件表达式求函数值y。

(2)用if语句编程,输入x,输出y,并给出你所使用的测试用例。

(1)用条件表达式求函数值y。

#include

main()

{floatx;

inty;

printf("请输入x=");

scanf("%f",&x);

y=(x>=0)?

(x>0?

1:

0):

-1;

printf("y=%d\n",y);

}

(2)用if语句编程,输入x,输出y。

#include

main()

{floatx;

inty;

printf("请输入x=");

scanf("%f",&x);

if(x>=0)

if(x>0)y=1;

elsey=0;

elsey=-1;

printf("y=%d\n",y);

}

6.编写程序:

键盘上输入一个不多于5位的正整数,要求:

①求它是几位数②逆序打印出各位数字。

如原数为123,应输出321。

(此题为选做)

#include

#include

main()

{longn,m,p,w1=0,w2=0,w3=0,w4=0,w5=0,t=0;

printf("请输入一个非负整数(n<100000)n=");

scanf("%ld",&n);

if((n/10000)!

=0)m=5;

elseif(n/1000!

=0)m=4;

elseif(n/100!

=0)m=3;

elseif(n/10!

=0)m=2;

elsem=1;

switch(m)

{case5:

p=n/10000;w1=p;n-=p*10000;t+=w1*pow(10,m-5);

case4:

p=n/1000;w2=p;n-=p*1000;t+=w2*pow(10,m-4);

case3:

p=n/100;w3=p;n-=p*100;t+=w3*pow(10,m-3);

case2:

p=n/10;w4=p;n-=p*10;t+=w4*pow(10,m-2);

case1:

p=n;w5=p;t+=w5*pow(10,m-1);

}

printf("输入的是%ld位数,逆序数为%ld\n",m,t);

}

实验六

1、编程:

输出200以内所有能被7整除的数。

#include

main()

{inti;

for(i=0;i<=200;i+=7)

printf(“%4d”,i);

}

2、从键盘输入n个数(n<10),找出其中最小值,请编写相应程序。

#include

main()

{intn,i,a,min;

printf(“n=”);

scanf(“%d”,&n);

for(i=1;i<=n;i++)

{scanf(“%d”,&a);

if(i==1)min=a;

if(min>a)min=a;

}

printf(“min=%d”,min);

}

3、键盘输入正整数m和n(m

#include

main()

{intm,n,i,x1=0,x2=0;

printf(“inputm,n(m

”);

scanf(“%d,%d”,&m,&n);

for(i=m;i<=n;i++)

if(i%2==1)x1+=i;

elsex2+=i;

printf(“x1(奇数之和)=%d,x2(偶数之和)=%d\n”,x1,x2);

}

4.编程,计算函数y的值。

要求键盘接收自变量x的值,若x的值不为零,则计算函数y的值并输出,再从键盘接收下一个x的值,……,直到x的值为零,则显示“ThankYou,Bye!

”,尔后结束程序,已知函数y与自变量x的关系为:

          

    

#include

main()

{floatx=1,y;

do

{if(x<0)printf("输入错误(x<0)!

请重新输入\n");

printf("请输入x=");

scanf("%f",&x);

if(x>0&&x<100)y=3*x+10;

if(x>=100)y=x*x*x-20;

if(x>0)printf("y(%g)=%g\n",x,y);

}

while(x!

=0);

printf("ThankYou,Bye!

\n");

}

5.编写程序:

有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

#include

main()

{inti;

floatf1=1,f2=2,f,s=0;

for(i=1;i<=20;i++)

{f=f2/f1;s+=f;

f=f1;f1=f2;f2=f+f2;

}

printf("s(20)=%g\n",s);

}

6.我国现有人口13亿,设年增长率为1%,编写程序,计算多少年后增加到20亿。

#include

main()

{floatp=13;

intn=0;

do

{p=p*1.01;

n++;

}

while(p<20.);

printf("%d年后人口增加到20亿!

\n",n);

}

7.求解爱因斯坦数学题。

有一条长阶梯,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7阶,最后才正好一阶不剩。

请问,这条阶梯共有多少阶?

#include

main()

{intn=7;

do

{if(n%2!

=1){n++;continue;}

if(n%3!

=2){n++;continue;}

if(n%5!

=4){n++;continue;}

if(n%6!

=5){n++;continue;}

if(n%7!

=0){n++;continue;}

break;

}

while

(1);

printf("这条阶梯共有%d阶!

\n",n);

}

(说明:

该题应有多解:

119,329,……)

8.每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。

编写程序求每天平均花多少钱?

(此题为选做)

#include

main()

{floats=0;

intn=1,p=0,d=0;

do

{d++;/*第d天*/

n=n*2;/*买n个苹果*/

p=p+n;/*共p个苹果*/

}

while(p+n*2<=100);

s=p*0.8/d;

printf("每天平均花%g元钱!

\n",s);

}

9.编写程序,求一个整数任意次方的最后三位数。

即求xy的最后三位数,要求x,y从键盘输入。

(注意xy的结果是否会溢出)。

(此题为选做)

#include

#include

main()

{doublex,y,m;

intm3;

printf("请输入x,y=");

scanf("%lf,%lf",&x,&y);

m=pow(x,y);

m3=(int)m%1000;

printf("x的y次方为%g,其最后三位数是%0.3d\n",m,m3);

}

实验七

1. 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。

#include

main()

{inta,b,s;

floatv;

for(a=1;a<=6;a++)

{v=0;

for(b=1;b<=5;b++)

{printf("请输入第%d名学生的第%d门成绩:

",a,b);

scanf("%d",&s);

v=v+s;

}

printf("第%d名学生的平均成绩为:

%g\n",a,v/5.);

}

}

2、打印出所有的"水仙花数",所谓的"水仙花数"是指一个3位数,其各位数字的立方和等于该数本身。

例如,153是一个"水仙花数",因为有153=1*1*1+5*5*5+3*3*3。

(1)

#include

main()

{inta,b,c,n;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

{n=100*a+10*b+c;

if(n==a*a*a+b*b*b+c*c*c)

printf(“%d\n”,n);

}

}

(2)

#include

main()

{inta,b,c,n;

for(n=100;n<=999;n++)

{a=n/100;

b=n%100/10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

printf(“%d\n”,n);

}

}

3、请分别用三种循环结构编程计算:

1!

+2!

+3!

+...+n!

,n的值由键盘输入。

(1)

#include

main()

{intn,i;

longp=1,sum=0;

printf(“n=”);

scanf(“%d”,&n);

for(i=1;i<=n;i++)

{p*=i;

sum+=p;

}

printf(“1!

+2!

+…+%d!

=%ld\n”,n,sum);

}

(2)

#include

main()

{intn,i=1;

longp=1,sum=0;

printf(“n=”);

scanf(“%d”,&n);

while(i<=n)

{p*=i;

sum+=p;

i++;

}

printf(“1!

+2!

+…+%d!

=%ld\n”,n,sum);

}

解(3)

#include

main()

{intn,i=1;

longp=1,sum=0;

printf(“n=”);

scanf(“%d”,&n);

do

{p*=i;

sum+=p;

i++;

}

while(i<=n);

printf(“1!

+2!

+…+%d!

=%ld\n”,n,sum);

}

4. 用循环语句编写程序,其功能是计算:

        s=1+12+123+1234+12345+123456+1234567

#include

main()

{longi,t=0,s=0;

for(i=1

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2