c语言程序设计基础课后习题参考答案与解析_第1页
c语言程序设计基础课后习题参考答案与解析_第2页
c语言程序设计基础课后习题参考答案与解析_第3页
c语言程序设计基础课后习题参考答案与解析_第4页
c语言程序设计基础课后习题参考答案与解析_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础习题参考答案与部分解析第1章C语言概述一、填空a) C源程序的基本单位是函数。b) 一个C程序中至少应包括一个main函数。c)在C语言中,输出操作是有库函数printf()函数完成。二、单选题1、A2、C3、B解析:第1题答案:Ao因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。且到main函数结束。第2题答案:C。因为main函数没有限制必须位于程序的最前面。C程序书写自由,一行内可写几个语句。在对一个C程序进行编译的过程中,无法检查注释当中的拼写错误。不过C语言本身弁没有输入输出语句,输入输出是由函数完成的。第3题答案:Bo因为一个C语言程序是由

2、若干个函数组成的。但至少包含一个main函数,且main函数的位置不限。三、编程题1、编写一个输出“WelcometoC!”信息的小程序。解:程序如下#includemain()printf(“WelcometoC!”);2、 已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。海伦公式为:Sa=,其中s=(a+b+s)/2;解:程序如下#include#includemain()inta,b,c/*a,b,c3个整型变量表示三角形的3条边。*/floats,s1;/*s1作为面积变量,s作为中间变量是都应该是实形*/a=3;b=4;c=5;s=(a+b+c)/2.0;s1=sqrt

3、(s*(s-a)*(s-b)*(s-c);/*sqrt函数完成开平方根功能。*/printf(“area=%fn”,s1);第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D10、A11、D12、A13、C14、C15、BA16、 B17D解析:1 .答案:Co这里考察的是用户标识符的定义。用户标识符由字母、数字、下划线组成。且必须以字母或下划线开头,区分大小写,且不能与C语言已有的32个关键字同名。由于选择不合法的用户标识符,A项的A、P_0、Do都是合法的用户标识符;B项的_A是合法的;D项的_123、temp、INT也都是合法的。只有C选项的标识符都是

4、错误的用户标识符。2 .答案:Ao这里考察的是整型常量的概念。B项当中01a不正确,C项当中的0668不是正确的八进制常量,D项当中的2e5是float型常量。3 .答案:Co这里考察的是字符常量的定义。字符常量是用单撇号括起来的单个字符或转义字符。所以答案是C。4 .答案:Ao字符变量只能包含一个字符。5 .答案:Co这里考察的是转义字符的正确表示。C项的'074'是错误的转义字符,正确表示方法是074。6 .答案:Co字符变量只能包含一个字符,而C项的c='yes'是错误的。7 .答案:Do这里考察的是输入格式的控制。输入格式要与scanf语句中字符串格式相

5、对应。8 .答案:Co这里考察的是输出格式和字符对应的ASCII码值。'A'的ASCII码值是65,'Y'字符的ASCII码值是89。9 .答案:Do这里考察输入格式和输出结果形式。由于输入格式不正确,所以输出的是不确定值。10 .答案:Ao这里考察的是标识符的特点区分大小写,变量sum和变量sUM是两个不同的变量,sum并没有参加运算,所以它的值不边仍然是7。11 答案:D。%运算符要求两边的运算数必须是整型。12 .答案:A。这里考察的是复合赋值运算。a%=b+1;等价与a=a%(b+1);由于a=10,b=4;所以运算后a的值是0。13 .答案:Co这里考

6、察的是在变量定义类型是进行赋值操作。要求a,b,c都赋值为5,且为int类型。只有C正确。14 .答案:Co这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是double(双精度)类型。15 .答案:B,Ao这里考察的是逻辑表达式的运算过程。表达式1&表达式2,若表达式1的值是0的话,结果就是0,表达式2就不参加运算。要注意:赋值表达式的值是左边赋值变量的值。所以答案为B,A。16 .答案:Bo这里考察的是逗号表达式运算过程是从第1个表达式开始运算,然后依次运行到最后一个表达式。逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。所以表达式(a

7、=2,b=5,b+,a+b)运算过程a=2>b=5>b+>a+b=8;结果是8。17 .答案:D。这里考察的是条件表达式的结合性是从右向左。所以k<a?k:c<b?c:a;等价于k<a?k:(c<b?c:a);先运算c<b?c:a;的值是1,然后计算k<a?k:1;的值是1。、填空题三、编程题1、编写程序,输入一个长方形的二边长,输出其面积。解:程序如下1、-32768327674、30,157、-26410、113、02、字母5、8、11、14、,数字,下划线3、分号(;)186、09、0y%2=1(x>2&&x&l

8、t;3)|x<-1012、 x<z|y<z15、1#includemain(inta,b,s;/*a,b作为长方形的两个边长,s为面积。*/printf(“请输入两个边长n”);scanf(“%d%d”,&a,&b);printf(“Thearea:%dn“,s);2、设置半径为r=2.9,编程求圆周长和圆面积解:程序如下#includemain()floatr,L,S;L=2*PI*r;S=PI*r*r;printf(“L=%f,S=%fn“,L,S);3、 输入一个华氏温度,输出相应的摄氏温度。二者的换算公式是:c=5/9(F-32),其中F表示华氏温度,

9、c表示摄氏温度。解:程序如下#include“”main()floatc,F;printf(“请输入一个华氏温度:n”);scanf(“%f”,&F);c=(float)5/9*(F-32);printf(“F=%f,c=%fn”,F,c);第3章程序设计初步一、单选题1 、C2、C3、B4、B5、B解析:1.答案:Co这里考察的是if-else语句和表达式中有增量和减量的执行过程。if(m+>5)printf(“%dn”,m);elseprintf(“%dn”,m+);先执行m>5的值是0,然后执行m=m+1;得到m=6;由于m>5的值是0所以执行else语句,应先

10、输出m的值是6,然后m再自增一个单位变成7。2 .答案:Co这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对来进行选择满足条件的答案。3 .答案:Bo这里也考察的是if语句的嵌套。同理:if(x<y)if(y<0)z=0;elsez+=1;等价与if(x<y)if(y<0)z=0;elsez+=1;因此答案是B。4 .答案:Bo这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对。5 .答案:Bo由于B项:if(x=y)&&(x!=0)x+=y;if后的条件表达式没有用圆括号括起来。正确的是:if(x=y)&a

11、mp;&(x!=0)x+=y;二、根据要求完成程序填空1、z>yz>xy>x2、ch>=A&&ch<=Zch=ch-323、x<0x/10y!=2三、编程题1、 编写一个程序,要求用户从终端键入两个整数数值。检测这两个数,判定第一个数是否能被第二数整除,并在终端上显示相应的信息。解:程序如下#includemain()inta,b;/*a为第一个数,b为第二个数*/printf(“Pleaseinputtwonumbers:n”);scanf(“%d%d”,&a,&b);if(a%b=0)printf(“%d能被%d整

12、除。n”,a,b);elseprintf(“%d不能被%d整除。n”,a,b);2、 有3个整数a,b,c,由键盘输入,输出其中最大的数。解:程序如下#include“”main()inta,b,c,max;printf(“Pleaseinputthreenumbers:n”);scanf(“%d%d%d”,&a,&b,&c);if(a>b)max=a;elsemax=b;if(max<c)max=c;printf(“Themaxis%dn”,max);3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分以上为A,8089分为B,7079为C

13、,6069为D,60分以下为E。解:程序如下#include“”main()floatscore;intgrade;printf(“Pleaseinputascore:n”);scanf(“%f“,&score);grade=(int)score/10;switch(grade)case10:case9:printf(“n”);break;case8:printf(“n”);break;case7:printf(“n”);break;case6:printf(“n”);break;default:printf(“gradeisEn”);4、新世纪百货进行打折促销活动,消费金额(P)越高

14、,折扣(d)越大,标准如下:折扣0消费金额P<100100<P<2005200&P<50010500<P<100015P>100020编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。要求分别用if语句和switch语句实现。解:(1)用if语句编程实现如下#include“”main()floatP,d,f;printf(“输入消费金额:n”);scanf(“%f”,&P);if(P<100)d=0;if(P>=100&&P<200)d=0.05;if(P>=200&&P&

15、lt;500)d=0.10;if(P>=500&&P<1000)d=0.15;if(P>=1000)d=0.20;,d,f);f=P*(1-d);printf("折扣是力则实付金额为%fn(2)用switch语句编程实现如下#include“”main()floatP,d,f;intc;printf(“输入消费金额:n”);scanf(“%f”,&P);c=(int)P/100;switch(c)case0:d=0;break;case 1 :d=0.05;break;case 2 :case 3 :case 4 :d=0.10;break;

16、case 5 :case 6 :case 7 :case 8 :case 9 :d=0.15;break;default:d=0.20;f=P*(1-d);printf("折扣是力则实付金额为fn",d,f);第4章循环结构程序设计一、单项选择1、A2、D3、C4、D5、B6、D7、B8、B二、按要求完成程序填空1、 c!=n'c>='0'&&c<='9'j%5=02、 i%3=2&&i%5=3&&i%7=23、 i<10j%3!=0三、编程题1、编程求n的阶乘(n由键

17、盘输入)。解:程序如下#include“”main()intn,i;longfac;fac=1;printf(“Inputanumber:”);scanf(“%d”,&n);i=1;while(i<=n)fac=fac*i;i+;printf(“%d!is%ldn”,n,fac);2、计算1!+2!+3!+-+10!的值。解:方法一#include“”main()inti=1,j;doublefac,sum=0;while(i<=10)j=1;fac=1;while(j<=i)fac=fac*j;j+;sum=sum+fac;i+;printf("1!+2!

18、+3!+-+10!=%.0fn",sum);方法二:#include“”main()inti,j;doublefac,sum=0;for(i=1;i<=10;i+)for(j=1,fac=1;j<=i;j+)fac=fac*j;sum=sum+fac;printf("1!+2!+3!+10!n”,sum);方法三:#include“”main()inti;doublefac,sum;sum=0;fac=1;for(i=1;i<10;i+)fac=fac*i;sum=sum+fac;printf("1!+2!+3!+10!n”,sum);3、求Sn

19、=a+aa+aaa+aaaa(n个a)的值,其中a是一个数字。例如:3+33+333+3333(此时n=4),n由键盘输入。解:程序如下#include“”main()inta,n,i;longSn,t;Sn=0;printf(“Pleaseinputa:n”);scanf(“%d”,&a);printf(“Pleaseinputn:n”);scanf(“%d”,&n);t=a;for(i=1;i<=n;i+)Sn=Sn+t;t=t*10+a;printf(“Sn=%ldn”,Sn);4、打印出所有的“水花仙数”,所谓“水花仙数”是指一个3位数,其各位数字立方和等于该数本

20、身。例如,153是一个水花仙数。解:程序如下#include“”main()intt,a,b,c,n;/*变量n为统计水花仙数的个数*/n=0;for(t=100;t<1000;t+)a=t/100;b=(t-a*100)/10;c=t%10;if(a*a*a+b*b*b+c*c*c=t)n+;if(n%6=0)printf(“n”);printf(“%5d”,t);6、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一个的2倍,直至购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?解:程序如下#include“”main()intday,num,sum;flo

21、atmoney,every;sum=0;num=2;for(day=1;num<100;)sum=sum+num;day+;num=num*2;money=sum*0.8;every=money/day;printf(“every=%fn”,every);7、变成完成用一元人民币换成一分、二分、五分的所有兑换方案,即输出所有满足搭配要求的1分币个数,2分币个数,5分币个数。解:程序如下:#includemain()intone,two,five;for(one=0;one<=100;one+)for(two=0;two<=50;two+)for(five=0;five<

22、=20;five+)if(one+two*2+five*5=100)printf("one=%d,two=%d,five=%dn”,one,two,five);第5章模块化程序设计一函数单选题1、 B2、B3、A4、A5、D6、 D7、B8、B9、B10、A二、编程题1、已知三角形的三边长,编一实现求三角形面积的功能函数。说明:用海伦公式来求面积,但要注意输入的三边长要符合构成三角形的条件。海伦公式为:Sa=Js.(sa).(sb).(sc)(其中:s=(a+b+c)/2)解:程序如下#include#includefloatArea(inta,intb,intc)floats,ar

23、ea;s=(float)(a+b+c)/2;if(a+b>c)&&(a-b)<c)area=sqrt(s*(s-a)*(s-b)*(s-c);elsearea=0;returnarea;main()inta,b,c;floatarea;floatArea(int,int,int);printf(“请输入三角形的三边长n”);scanf(“%d%d%d”,&a,&b,&c);area=Area(a,b,c);if(area!=0)printf(“area=%fn”,area);elesprintf(“error!n”);2、 写一个判断素数的函

24、数,在主函数输入一个整数,输出是否素数的信息。解:程序如下#include“”intprime(intn)intt,a=1;for(t=2;t<=n/2;t+)if(n%t=0)a=0;break;returna;main()intn;printf(“inputanumber:n”);scanf(“%d”,&n);if(prime(n)=1)printf(“%disprimen”,n);elesprintf(“%disnotprimen”,n);3、编写函数,求1!+2!+3!+K!的和。解:程序如下#include“”doubleSUM(intk)inti,j;doublefa

25、c,sum;sum=0;for(i=1;i<=k;i+)for(j=1,fac=1;j<=i;j+)fac=fac*j;sum=sum+fac;returnsum;main()intk;doublesum;scanf(“%d”,&k);sum=SUM(k);printf(1!+2!+3!+K!=%.0fn”,sum);4、求方程ax2+bx+c=0的根,用2个函数分别求当b2-4ac大于0和等于0的根并输出结果,从主函数中输入a、b、c的值。#include“”#include“”voidf1(floata,floatb,floatc)floatt1,t2;t1=(-b+s

26、qrt(b*b-4*a*c)/(2*a);t2=(-b-sqrt(b*b-4*a*c)/(2*a);printf(“t1=%f,t2=%fn”,t1,t2);voidf2(floata,floatb,floatc)floatt1;t2=-b/(2*a);printf(“t1=%fn”,t1);main()floata,b,c;printf(“inputa,b,cn”);scanf(“%f%f%f”,&a,&b,&c);if(b*b-4*a*c>0)f1(a,b,c);elesif(b*b-4*a*c=0)f2(a,b,c);elseprintf(nojie!n&q

27、uot;);第6章数组一、单项选择题5、C10、B14、B20、D15、1、C2、D3、D4、C6、D7、B8、C9、D11、B12、B(原题数组改为a3)13、D16、B17、D18、D19、B二、按要求完成程序的空缺1. 下面程序以每行4个数据的形式输出a数组,请填空。&aIi%4=0printf(h");2. 下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,填空。j<=2b皿=aiji<=2三、读程序段分析程序运行结果1.下面程序运行结果是600o2。下面程序运行结果是he3. 下面程序的运行结果是Theresultis:11617181921

28、21232425四、编程题1、从键盘输入若干整数(个数应少于50),其值在0到4的范围内,用-1作为输入结束的标志。统计每个整数的个数。试编程序完成。解:程序如下#include“”main()inth50,a,b,c,d,e,n,t,i;a=b=c=d=e=0;n=0;scanf(“%d”,&t);while(t!=-1)hn+=t;scanf(“%d”,&t);for(i=0;i<n;i+)switch(hi)case0:a+;break;case 1 :b+;break;case 2 :c+;break;case 3 :d+;break;case 4 :e+;pri

29、ntf(“0:%d,1:%d,2:%d,3:%d,4:%dn”,a,b,c,d,e);2、将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,2。要求改为2,4,5,6,8。解:程序如下#include“”main()inta50,i,n,temp,t;n=0;scanf(“%d”,&t);while(t!=-1)an+=t;scanf(“%d”,&t);for(i=0;i<n/2;i+)temp=ai,ai=an-1-i,an-1-i=temp;for(i=0;i<n;i+)printf(“%5d”,ai);3、 已有一个排好序的数组,有键盘输入一个数

30、,要求按原来的排序规律将其插入到数组中。解:程序如下#include“”main()inta50,n,t,i;n=0;scanf(“%d”,&t);while(t!=-1)an+=t;scanf(“%d”,&t);printf(“inputanumber:n”);scanf(“%d”,&t);for(i=n-1;ai>t;i-)ai+1=ai;ai+1=t;for(i=0;i<n+1;i+)printf(“%5d”,ai);4、 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。解:程序如下#include#include“”voidfan

31、xu(chara,intn)inti;chartemp;for(i=0;i<n/2;i+)temp=ai,ai=an-1-i,an-1-i=temp;main()chara50,n;printf(“inputstring:n”);gets(a);n=strlen(a);fanxu(a,n);printf(“outputstring:n”);puts(a);strcat函数。5、编一程序,将两个字符串连接起来,不要用解:程序如下#include“”#include“”voidlianjie(chara50,charb30)intn1,n2,i;n1=strlen(a);n2=strlen(

32、b);for(i=n1;i<=n1+n2;i+)ai=bi-n1;main()chara50,b30;printf(“inputstringa:n”);gets(a);printf(“inputstringb:n”);gets(b);lianjie(a,b);printf(“outputstring:n”);puts(a);6、写一程序,使给定的一个二维数组(3X2)转置,即行列互换解:程序如下#include“”main()inta32,b23,i,j;printf(“inputarraya:n”);for(i=0;i<3;i+)for(j=0;j<2;j+)scanf(“

33、%d”,&aij);for(i=0;i<2;i+)for(j=0;j<3;j+)bij=aji;printf(“inputarraya:n”);for(i=0;i<3;i+)for(j=0;j<2;j+)printf(“%5d”,aij);printf(“n”);printf(“outputarrayb:n”);for(i=0;i<2;i+)for(j=0;j<3;j+)printf(“%5d”,bij);printf(“n”);一、单选题6、D7、C8、C9、B10、B11、C12、B13、D14、B15、D1、B2、B3、B4、D5、B16、D二

34、、分析程序或程序段,写出运行结果1.运行结果是C51。2.运行结果是dl。3.运行结果是aabcabc。4.运行结果是*ptr1=7,*ptr2=5a=7,b=55.运行结果是hELLO!。6.运行结果是bcdABCD三、编程题7.1、 输入3个整数,按由小到大的顺序输出。(书中没该题)解:程序如下#includemain()inta,b,c,*pa,*pb,*pc,temp;pa=&a;pb=&b;pc=&c;printf(inputa、b、c:n");scanf(%d%d%d”,&a,&b,&c);if(*pa>*pb)tem

35、p=*pa,*pa=*pb,*pb=temp;if(*pa>*pc)temp=*pa,*pa=*pc,*pc=temp;if(*pb>*pc)temp=*pb,*pb=*pc,*pc=temp;printf(“从小到大的顺序是:n”);printf(“%d,%d,%dn”,a,b,c);7.2、 输入3个字符串,按由小到大的顺序输出。(书中没该题)解:程序如下#include“”#include“”main()chara50,b50,c50,*pa,*pb,*pc,*ch;pa=a;pb=b;pc=c;gets(pa);gets(pb);gets(pc);if(strcmp(pa,

36、pb)>0)ch=pa,pa=pb,pb=ch;if(strcmp(pa,pc)>0)ch=pa,pa=pc,pc=ch;if(strcmp(pb,pc)>0)ch=pb,pb=pc,pc=ch;puts(pa);puts(pb);puts(pc);2、输入10个整数,将其中最小的数与第一个对换,把最大的数与最后一个数对换。写出3个函数:输入10个整数;进行处理;输出10个数。解:程序如下#include“”voidinput(int*a)intn;for(n=0;n<10;n+)scanf(“%d”,a+n);voidprocess(int*a)intmin,temp

37、,max,n1,n2,i;min=max=*a;n1=n2=0;for(i=1;i<10;i+)if(*(a+i)<min)min=*(a+i);n1=i;if(*(a+i)>max)max=*(a+i);n2=i;temp=a0,a0=an1,an1=temp;temp=a9,a9=an2,an2=temp;voidoutput(int*a)intn;for(n=0;n<10;n+)printf(“%5d”,*(a+n);main()inta10,*pa;pa=a;input(pa);process(pa);output(pa);7.6写一函数,将一个3X3的矩阵转值

38、。(书中没该题)解:程序如下#include“”voidzhuanzhi(int*a)inti,j,temp;for(i=0;i<3;i+)for(j=0;j<=i;j+)temp=*(a+i*3+j),*(a+i*3+j)=*(a+j*3+i),*(a+j*3+i)=temp;main()inta33,*pa,i,j;pa=a;for(i=0;i<3;i+)for(j=0;j<3;j+)scanf(“%d”,pa+i*3+j);zhuanzhi(pa);printf(“outputarraya:n”);for(i=0;i<3;i+)for(j=0;j<3;

39、j+)printf(“%5d”,*(pa+i*3+j);printf(“n”);5、输入一行文字,找出其中大写字母、小写字母、空格、数字、以及其它字符各有多少?解:程序如下#include“”#include“”main()charch50,*p,n,a,b,c,d,e,i;a=b=c=d=e=0;p=ch;printf(“inputstring:n”);gets(p);n=strlen(p);for(i=0;i<n;i+)if(*(p+i)>=A&&*(p+i)<=Z)a+;elseif(*(p+i)>=a&&*(p+i)<=z)

40、b+;elseif(*(p+i)=)c+;elseif(*(p+i)>=0&&*(p+i)<=9)d+;elsee+;printf(“大写字母:d,小写字母:d,空格:d,数字:d其他字符:%dn”,a,b,c,d,e);第8章结构体与共用体一、单选题1、 A2、C3、A4、D5、D6、D7、D8、C9、C10、B二、判断分析题(对的打;错的打“X”并分析原因)1. X分析:因为结构体中是可包含多种不同数据类型的变量一种构造类型。2. V3. x分析:因为face是char类型的指针,所以语句printf(“%sn”,*cPtr->face);是错误的。改为p

41、rintf(“%cn”,*cPtr->face);4. x分析:共用体变量的各个成员共享同一块内存区域,这里所谓的共享不是指把多个成员同时装入一个共用体变量内,而是指该共用体变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。5. V三、编程题1、 定义一个结构体变量,其成员包括:职工号、职工名、性别、年龄、工资、地址。程序如下:structemployeeintcode;charname20;charsex;intage;floatmoney;charaddress30;emp;2、 针对上述定义,从键盘输入所需的具体数据,然后用printf函数打印出来。程序如下:stru

42、ctemployeeintcode;charname20;charsex;intage;floatmoney;charaddress30;emp;main()scanf(“%d,%s,%c”,emp.code,,emp.sex);scanf(“%d,%f,%s”,emp.age,emp.money,emp.address);printf(输出职员信息:n");printf(职工号是:dn”,emp.code);printf(职工名是:sn”,);printf(职工性别:cn”,emp.sex);printf(职工年龄:dn”,emp.age);prin

43、tf(职工工资:fn”,emp.money);printf(职工地址:sn”,emp.address);3、 有10个学生,每个学生的数据包括学号、姓名及3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩,平均成绩)程序如下:structstudentintnum;charname10;floatscore3;stu10;main()intI,j;floatavg10,sum,max;printf(“输入10个学生数据:n”);for(I=0;I<10;I+)scanf(“%d”,stuI.num);scanf(“%s

44、”,stuI.name);for(j=0;j<3;j+)scanf(“%f”,stuI.scorej);for(I=0;I<10;I+)sum=0;for(j=0;j<3;j+)sum=sum+stuI.scorej;avgI=sum/3;printf(“avg%d=%fn”,I,avgI);max=avg0;for(j=1;j<10;j+)if(max<avgj)max=avgj;I=j;printf(num=%d,name=%sH',stuI.num,stuI.name);printf("score0=%f,score1=%f,score2=

45、%fnstuI.score0,stuI.score1,stuI.score2);printf(avg=%fn",avgI);实验一:1、已知华氏温度,根据转换公式计算相应的摄氏温度。摄氏温度=5*(华氏温度-32)/92.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字如:输入12345输出54321#include"stdio.h"main()doublet,T;printf("已知华氏温度,根据转换公式计算相应的摄氏温度”);scanf("%lf",&t);T=(5*(t-32)/9);printf("摄

46、氏温度=%lf",T);#include"stdio.h"main()intvalue,a,b,c,d,e,m,n,h;printf("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字");scanf("%d”,&value);a=value/10000;m=value%10000;b=m/1000;n=m%1000;c=n/100;h=n%100;d=h/10;e=h%10;printf("%d%d%d%d%d”,e,d,c,b,a);实验二:1 .一个成年人的身高与其父母的身高密切相关,根据以下人体标准身

47、高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误差在3厘米范围内即视为相符)。男性身高二(父亲身高+母亲身高)X+2(厘米)女性身高二(父亲身高X0.923+母亲身高)+2(厘米)2 .从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入一起征点额度)*适用税率一速算扣除数其中,起征点额度是3500元,其他如下:应纳税所得额税率速算扣除数不超过1500元的部分3%0超过1500元至4500元的部分10%105超过4500元至9000元的部分20%555超过9000元至35003£的部分25%1005超过35

48、0007s至550007s的部分30%2755超过55003£至800035的部分35%5505超过80000的部分45%13505如:某人月收入5003E,则应纳个人所得税税额为(5000-3500)*10%-105=45元。#include<stdio.h>#include<math.h>main()floatA,a,H,h,b;printf("父亲身高(厘米)n");scanf("%f",&A);printf("母亲身高(厘米)n");scanf("%f",&

49、a);printf("孩子实际身高(厘米)n");scanf("%f",&H);printf("请选择孩子性别:女=0,男=1n");scanf("%f",&b);if(b)h=(A+a)*1.08/2;elseh=(A*0.923+a)/2;if(fabs(H-h)<=3)printf("实际身高符合该公式n");elseprintf("实际身高不符合该公式n");printf("孩子预测身高(厘米)%f,h);#include<std

50、io.h>main()floats,a,t;printf("应纳个人所得税税额=(税前收入-起征点额度)*适用税率-速算扣除数n");printf("起征点额度=35007sn");printf("税前收入s=");scanf("%f",&s);if(s<=3500)t=0;elsea=s-3500;if(a<=1500)t=a*0.03-0;elseif(a<=4500)t=a*0.1-105;elseif(a<=9000)t=a*0.2-555;elseif(a<=3

51、5000)t=a*0.25-1005;elseif(a<=55000)t=a*0.3-2755;elseif(a<=80000)t=a*0.35-5505;elset=a*0.45-13505;printf("应纳个人所得税税额=%fn",t);1 .编程解决鸡兔同笼问题(无解时给出输入错误提示)。描述如下:一个笼子里关了鸡和兔子,已知鸡和兔子的总数a以及脚的总数b,问笼子里面有多少只鸡,有多少只兔子。2 .设计并编程实现一个猜数游戏:由计算机随机产生一个1100之间的整数请人猜,如果猜对了,则在屏幕上输出猜了多少次才猜对此数,结束游戏;否则计算机给出提示,说明

52、所猜的数是太大还是太小,最多可以猜10次,如果猜10次仍未猜中的话,则给出正确答案并结束游戏。#include"stdio.h"main()inta,b,i,j;printf("一个笼子里关了鸡和兔子,已知鸡和兔子的总数a以及脚的总数b,求鸡兔各几只n");printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);for(i=0;i<=a;i+)for(j=0;j<=a;j+)if(i+j=a&

53、amp;&i*2+j*4=b)printf("鸡的只数=%dn兔子的只数=%dn",i,j);if(i+j=a&&i*2+j*4=b)break;if(i+j=a&&i*2+j*4=b)break;if(i+j!=a&&i*2+j*4!=b)printf("输入错误n");#include"stdio.h"#include"stdlib.h"#include"time.h"main()inta,b,i;srand(time(0);a=ran

54、d()%100+1;for(i=1;i<=10;i+)printf("请猜一个1-100的数字b=");scanf("%d",&b);if(b=a)printf("猜了的次数=%dn",i);break;if(b>a)printf("猜的数太大n");if(b<a)printf("猜的数太小n");printf("正确答案是dn",a);实验四:1 .从键盘输入一个班(不超过30人)学生某门课的成绩,当输入成绩为负值时,则输入结束,统计并输出不及格人数并打印不及格学生的成绩,按成绩高低排序,输出该班最高分及最低分。2 .从键盘上输入一个字符串存放在一个字符数组中,按照以下规则对其加密:其中所有的大写英文字母加3,小写英文字母减4,其它字符不变,将加密后的字符串存放到另一个字符数组中,输出原字符串和加密后的字符串。如:输入MicrosoftVisualC+输出Pe_nkokbpYeoqhF+#include"stdio.h"#defineN30main()intaN,i=0,j,k,m=0,t;doprintf("输入学生成绩a%d=",i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论