1第1章习题一、选择题1、A2、D3、C4、D5、B6、C7、C8、B9、B10、A二、填空题1、一,函数体2、main(主),main(主)3、编译,目标4、.c,.obj,.exe5、缩进,无影响,/**/三、程序分析题1、*****************Verygood!*****************2、a=12,b=5a=17,b=223、r=5.50,s=95.033098四、编程题1.用printf()函数在屏幕上输出自己的班级、学号、姓名。#includestdio.hvoidmain(){printf(班级:BX1109\n);printf(学号:111003530901\n);printf(姓名:王孟荣\n);}22.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。#includestdio.hvoidmain(){intx,y,a,b,c;floatd;printf(PleaseInputTwoIntegers:\n);scanf(%d%d,&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf(a=%d\nb=%d\nc=%d\nd=%f\n,a,b,c,d);}3第2章习题一、选择题1~5BCDCD6~10DBBCA二、填空题1.单精度浮点型、双精度浮点型、字符型2.03.x%10*10+x/104.5.55.5.7206.sin(sqrt(x*x))/(a*b)7.,8.11110111737B9.3310.3三、程序分析题1.7,8,102.1,33.5F4.(int)i=12,12.505.461579112四、编程题1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。#includestdio.hvoidmain(){inta,b;floatc;printf(Pleaseinputdataa,b:);scanf(%d%d,&a,&b);c=21%9-(float)a+4/b*b;printf(c=%5.2f\n,c);}42.编写程序,从键盘输入两个整数存入变量a和b中,求a2-b2的值并输出。#includestdio.hvoidmain(){inta,b,c;printf(Pleaseinputdataa,b:);scanf(%d%d,&a,&b);c=a*a-b*b;printf(c=%d\n,c);}5第3章习题一、选择题12345678910DCA、BABBB、CBDD二、填空题1.有穷性确定性可行性2.#3.从终端(键盘)输入一个字符4.md5.97,g6.123.456000,123.46,1237.格式控制符不正确(输入数据时不能控制列宽和小数位数)8.63,63,77,3f9.%f%f&x,&y10.stdio.hchch三、程序分析题1.c=112.a=123f=4573.x=345y=3.4600004.a=1,b=3a=3,b=15.(题目需修改为:从键盘输入一个除a和z以外的小写字母)程序的功能:从键盘输入一个除a和z以外的小写字母,求出该字母对应的大写字母的前趋和后继字母,然后顺序输出此三个大写字母,每个字母所占列宽为3。运行结果:假如输入:f输出:EFG四、编程题1.编写程序,计算)(322babax的值并输出(保留3位小数),其中a、b的值由键盘输入。#includestdio.h#includemath.hvoidmain(){floata,b,x;6scanf(%f%f,&a,&b);x=(a*a+b*b)/sqrt(3*(a+b));printf(x=%.3f\n,x);}2.编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。#includestdio.h#includemath.hvoidmain(){floata,b,h,s;scanf(%f,%f,%f,&a,&b,&h);s=(a+b)*h/2;printf(梯形面积s=%.2f\n,s);}3.编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息:Hello!Thisisacprogram.Mynameis[第一个字母]#includestdio.hvoidmain(){charname;name=getchar();putchar(name);printf(\nHello!\n);printf(Thisisacprogram.\n);printf(Mynameis%c\n,name);}7第4章习题一、选择题12345678910BBCBCACBACC二、填空题1.!&&||2.13.ab4.15.06.x%4==0&&x%100!=0G:\7.568.A9.x0||x10&&x5010.-1三、程序分析题1.No2.-23.5324.#&5.(1)2(2)3CCa=2,b=2,c=4四、编程题1.有一个函数如下:x2-2(x5)y=3x+5(5≤x50)x-14x(x≥50)编写程序,输入x的值,计算相应的y值输出(保留3位小数)。#includestdio.h#includemath.hvoidmain(){floatx,y;8scanf(%f,&x);if(x5)y=x*x-2;elseif(x50)y=3*x+5;elsey=x-sqrt(4*x-1);printf(x=%f,y=%.3f\n,x,y);}2.编写一个程序,根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角、一般三角形)。#includestdio.h#includemath.hvoidmain(){floata,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);if(a+bc&&b+ca&&a+cb){s=(a+b+c)/2;area=sqrt(s*(s*(s-a)*(s-b)*(s-c)));printf(area=%f\n,area);if(a==b&&b==c)printf(等边三角形\n);elseif(a==b||a==c||b==c)printf(等腰三角形\n);elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))printf(直角三角形\n);elseprintf(一般三角形\n);}elseprintf(不能组成三角形\n);}3.设奖金税率r有如下的要求(n代表奖金):0n10005%1000≤n2000r=8%2000≤n300010%3000≤n600015%6000≤n用switch多分支选择语句编写程序,输入奖金值,计算并输出相应的税率和实际应得奖金值。#includestdio.hvoidmain(){floatn,r,s;intm;printf(请输入奖金值:);scanf(%f,&n);if(n=6000)m=6;9elsem=n/1000;switch(m){case0:r=0;break;case1:r=0.05;break;case2:r=0.08;break;case3:case4:case5:r=0.1;break;case6:r=0.15;break;}s=n-r*n;printf(税率r=%.0f%%,奖金值n=%.2f,实际应得奖金值s=%.2f\n,r*100,n,s);}4.从键盘输入任意4个数a、b、c、d,按照从大到小的顺序排列后重新输出。#includestdio.hvoidmain(){inta,b,c,d,t;scanf(%d,%d,%d,%d,&a,&b,&c,&d);if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}if(ad){t=a;a=d;d=t;}if(bc){t=b;b=c;c=t;}if(bd){t=b;b=d;d=t;}if(cd){t=c;c=d;d=t;}printf(%d%d%d%d\n,a,b,c,d);}5.给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。例1234,输出为4321。#includestdio.hvoidmain(){intnum,i,j,k,m;printf(输入一个少于4位的正整数:);scanf(%d,&num);if(num=0&&num=9999){if(num1000&&num=9999){printf(是一个4位数\n);m=num%10;/*求个位上的数字*/k=num/10%10;/*求十位上的数字*/j=num/100%10;/*求百位上的数字*/i=num/1000;/*求千位上的数字*/10printf(逆序数为:%d%d%d%d\n,m,k,j,i);}elseif(num=100){printf(是一个3位数\n);m=num%10;/*求个位上的数字*/k=num/10%10;/*求十位上的数字*/j=num/100;/*求百位上的数字*/printf(逆序数为:%d%d%d\n,m,k,j);}elseif(num=10){printf(是一个2位数\n);m=num%10;/*求个位上的数字*/k=num/10;/*求十位上的数字*/printf(逆序数为:%d%d\n,m,k);}else{printf(是一个1位数\n);printf(逆序数为:%d\n,num);}}elseprintf(是一个无效的数\n);}11第5章习题12345678910BCBCABDBAB二填空题1.循环switch2.4,73.64.##5.026.187.18.sum=809.c=getchar()n:m10.i%13==0break三程序分析题1.output1:216output2:56output3:5772.n=73.Max=18Min=34.1*1=12*1=22*2=43*1=33*2=63*3=95.012312123023013012四、编程题1.从键盘上输入若干字符,以按Enter键结束,统计其中字符A或a的个数。#includestdio.hmain(){charch;intk=0;while((ch=getchar())!='\n'){if(ch=='A'||ch=='a')k=k+1;}printf(%d\n,k);}2.利用2=...7656543432122×…的前100项之积计算的值。#includestdio.hmain(){doubleterm,result=1;/*累乘项初值应为1*/intn;for(n=2;n=100;n=n+2){term=(double)(n*n)/((n-1)*(n+1));/*计算累乘项*/result=result*term;}printf(result=%f\n,2*result);}3.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚?#includestdio.hmain(){intx,y,z,count=0;for(x=1;x=29;x++)for(y=1;y=72;y++){z=100-x-y;if(5*x+2*y+z==150){count++;printf(%d,%d,%d\n,x,y,z);}13}printf(count=%d\n,count);}4.鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。#includestdio.hmain(){intx,y;for(x=1;x=97;x++){y=98-x;if(2*x+4*y==386)printf(鸡=%d,兔=%d,x,y);}}5.将一个正整数分解质因数。例如:输入90,打印出90=2*3