《c语言程序设计教程课后题及模拟题参考答案.doc》由会员分享,可在线阅读,更多相关《c语言程序设计教程课后题及模拟题参考答案.doc(38页珍藏版)》请在金锄头文库上搜索。
1、习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5., 6./*, */7.顺序结构,选择结构,循环结构8.c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算
2、符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。#include stdio.hmain() float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2; printf(s=%fn , s ); 2. 编写程序显示如图1.11所示信息。图1.11 显示信息#include stdio.hmain()
3、printf(*n);printf(* hello world *n);printf(*n); 习题22-1 单选题15 DBDCA 610 DCABA 1112 CA2-2 思考题12.00000021,0.539,2465100,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=38.i=10,j=209.(1) 65 (2) 65,A (
4、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 十进制数 108 八进制数1210 十六进制数a8#include stdio.hmain() int x, y ; scanf(%d%d , &x, &y); print
5、f( x yn); printf(%4d%4dn, x, y ); printf(%4o%4on, x, y ); printf(%4x%4xn, x, y );2. 编写一个程序,输入一个大写英文字符(BY),输出它的前导字符、该字符本身及其后续字符。#include stdio.hmain() char c; scanf(“%c”, &c ); printf(“%c, %c, %cn”, c-1, c, c+1 ); 3. 编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。编写程序并给出相应的程序流程图。#include stdio.hmain() in
6、t 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%dn”, a1, a2, a3); 4. 编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。#include stdio.hmain() double a, b, c, ave; scanf(“%lf%lf%lf”, &a, &b, &c ); ave=(a+b+c)/3 ; printf(“%8.2fn”, ave); 5. 编写程序
7、,读入3个整数给变量a、b、c,然后交换它们的值,把a原来的值给b,把b原来的值给c,把c原来的值给a。#include stdio.hmain() int a, b, c, t; scanf(“%d%d%d”, &a, &b, &c ); t=a; a=c; c=b ; b=t ; printf(“a=%d, b=%d, c=%dn”, a, b, c ); 习题44-1单选题15 AADAD 610 ACB BB 1112BA4-2填空题1. 12. (1) a0 | b0 (2) x0 & x=10 (3) a=1.5 & b=1.5 & c=1.5 (4)pa | pb | pb?a:
8、b)c?max:c 5-46175,0,38. (1) (a=0) (2) (b=0)(3) (discc & a+cb & b+ca) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“%f”,area); 2输入整数x、y,若x2+y21000,则输出x2+y2百位以上的数字,否则输出两数之和。#include stdio.hmain() int x,y; scanf(“%d,%d”,&x,&y); if (x*x+y*y1000) printf(“%dn”,(x*x+y*y)/100); else printf(“%dn”,x+y);
9、3. 输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。#include stdio.hmain() int x, scanf(“%d”,&x); if(x%3=0 & x%5=0 & x%7=0) printf(“yesn”); else printf(“non”);4对任意输入的x,用下式计算并输出y的值。#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(
10、x*x+x+1); printf(“%fn”,y);5 编写程序输入一个5位整数,判断它是不是回文数。回文数是指一个数从右到左和从左到右的对应数码相同,如12321是回文数,个位与万位相同,十位与千位相同。#include stdio.hmain( )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 huiwenn);elseprintf(this
11、 number is not a huiwenn);6. 编写程序用于计算某运输公司的运费。设每公里每吨货物的基本运费为p,货物重量为w,路程为s(单位为km),折扣为d,总费用计算公式为:f=p*w*s*(1-d)运费计算标准见表4.5。表4.5 某运输公司运费计算标准s250不 打 折250=s500折扣2500=s1000折扣51000=s2000折扣82000=s3000折扣15#include stdio.hmain()float p,w,s,d,f; scanf(“%f,%,%f”,p,s,w); if (s3000) d=0.15 else if( s=2000) d=0.1;
12、else if(s=1000) d=0.08; else if(s=500) d=0.05; else if(s=250) d=0.02; else d=0 f=p*w*s*(1-d); printf(“%f”,f);习题55-1单选题15 CDABA 610 ABDDB1114 DBCB5-2填空题1202333 3(1) i10 (2) j%3!=04. (1) flag*(float)k/(k+1) (2) flag=-flag5(1) max=x (2) x!=-1 (3) scanf(%d, &x)5-3 编程题1. 用3种循环语句编写程序实现下列算式:(1)1+22+33+100100(2)e=,当最后一项的值小于10-6时为止。 (1) #include stdio.h main() int