c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
其基本结构包括顺序结构、选择结构和循环结构三种。
2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。
#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。
图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。
x y十进制数10 8八进制数12 10十六进制数 a 8#include "stdio.h"main(){ int x, y ;scanf("%d%d" , &x, &y);printf(" x y\n");printf("%4d%4d\n", x, y );printf("%4o%4o\n", x, y );printf("%4x%4x\n", x, y );}2. 编写一个程序,输入一个大写英文字符('B'~'Y'),输出它的前导字符、该字符本身及其后续字符。
#include "stdio.h"main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 );}3. 编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。
编写程序并给出相应的程序流程图。
#include "stdio.h"main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}4. 编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。
#include "stdio.h"main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}5. 编写程序,读入3个整数给变量a、b、c,然后交换它们的值,把a原来的值给b,把b 原来的值给c,把c原来的值给a。
#include "stdio.h"main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;prin tf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 AADAD 6~10 ACB BB 11~12BA4-2填空题1. 12. (1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c3.(1)0 (2)1 (3)1 (4)0 (5)14. (max=a>b?a:b)>c?max:c5.-46.17.5,0,38. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.输入3个实型数值a、b、c,如果能用它们作为三角形的3条边形成一个三角形,则输出三角形的面积,并画出实现该算法的N-S流程图并编程实现。
#include "stdio.h"#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.输入整数x 、y ,若x 2+y 2>1000,则输出x 2+y 2百位以上的数字,否则输出两数之和。
#include "stdio.h"main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d \n”,(x*x+y*y)/100);elseprintf(“%d \n”,x+y);}3. 输入一个整数,判断它能否同时被3、5、7整除,并输出“yes ”或“no ”字样。
#include "stdio.h"main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0)printf(“yes \n”);elseprintf(“no \n”);}4.对任意输入的x ,用下式计算并输出y 的值。
2sin(),22,2≤≤22x x x x y x x x ⎧-<-⎪⎪=+-⎨>#include "stdio.h"#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f \n”,y);}5. 编写程序输入一个5位整数,判断它是不是回文数。
回文数是指一个数从右到左和从左到右的对应数码相同,如12321是回文数,个位与万位相同,十位与千位相同。
#include "stdio.h"main( ){long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}6. 编写程序用于计算某运输公司的运费。
设每公里每吨货物的基本运费为p,货物重量为w,路程为s(单位为km),折扣为d,总费用计算公式为:f=p*w*s*(1 d)运费计算标准见表4.5。
表4.5 某运输公司运费计算标准main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else if( s>=2000) d=0.1;else if(s>=1000) d=0.08;else if(s>=500) d=0.05;else if(s>=250) d=0.02;else d=0f=p*w*s*(1-d);printf(“%f”,f);} 习题55-1单选题1~5 CDABA 6~10 ABDDB 11~14 DBCB5-2填空题1.202.3333.(1) i<10 (2) j%3!=04. (1) flag*(float)k/(k+1) (2) flag=-flag 5.(1) max=x (2) x!=-1 (3) scanf("%d", &x) 5-3 编程题1.用3种循环语句编写程序实现下列算式:(1)1+2⨯2+3⨯3+…+100⨯100(2)e=1111……1!2!3!!n+++++,当最后一项的值小于10-6时为止。