C语言答案删减版.doc

上传人:h**** 文档编号:154197 上传时间:2018-07-11 格式:DOC 页数:50 大小:151KB
下载 相关 举报
C语言答案删减版.doc_第1页
第1页 / 共50页
C语言答案删减版.doc_第2页
第2页 / 共50页
C语言答案删减版.doc_第3页
第3页 / 共50页
C语言答案删减版.doc_第4页
第4页 / 共50页
C语言答案删减版.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、 第 1 页 共 50 页 C 语言答案() 第一章 C 语言程序设计基础 习题参考答案 1-1 冯诺依曼体系结构的基本原理: 五大构成部分:输入、输出、 CPU、控制器、存储器;程序存储、自动执行、逻辑判断 功能;二进制的信息表示。 1-6 编辑、编译、链接、执行。 1-7 必须有一个主函数,它是程序执行的起点;一个 C 语言程序由函数构成;每一条可 执行语句都必须由分号结束;函数的代码段必须由花括号对括住。一个函数中的语句组由声 明区和可执行语句区两部分构成。 1-8 三个一缩;每遇到一个结构时均缩格,每结束一个结构时 回退;缩格格式必须对齐。 1-9 试给出以下问题的程序设计过程描述:

2、1) 求两个数中之最大者。 #include int main(void) float fA,fB; clrscr(); printf(“Please input two values(fA,fB):“); /*输入要比较的两个数 fA,fB*/ scanf(“%f,%f“, /*格式化输入 fA,fB*/ if(fA=fB) printf(“the max is %f“,fA); if(fA int main(void) float fA,fB,fC,fMax; printf(“Please input three values(fA,fB,fC):“); /*fA,fB,fC 是输入的 3

3、 个数, fMax 存放最大值 */ scanf(“%f,%f,%f“, fMax=fA;/*假定 fA最大 */ if(fMax int main(void) int i,nSum;/*声明变量 i,循环的总和 */ for(i=1,nSum=0;i int main(void) float a,b; printf(“Please input two real values(a,b):“); scanf(“%f,%f“, printf(“n%f+|%f|=%fn“,a,b,b0?a+b:a-b); /*利用三元条件运算,详见 P52*/ return 0; 1-13 试编写一个在五个整数中找

4、出最大数的程序。 #include int main(void) float val_1,val_2,val_3,val_4,val_5,fMax;/*声明要比较的 5 个变量 */ 第 3 页 共 50 页 printf(“Please input 3 values(val_1,val_2,val_3,val_4,val_5):“); scanf(“%f,%f,%f,%f,%f“, fMax=val_1;/*假设最大值为 val_1*/ if(fMax #include/*包含数学函数文件,详见 P391*/ int main(void) double val; printf(“Please

5、 input the value:“); scanf(“%f“, printf(“the result is %lf“,cos(val); /*调用数学函数中的 double cos(double x)函数 */ return 0; (2) log 90 #include #include int main(void) double val; printf(“Please input the val:“); scanf(“%lf“, printf(“the result is %lfn“,log(val); return 0; (3) #include 第 4 页 共 50 页 #includ

6、e int main(void) double val; printf(“Please input the value(val):“); scanf(“%lf“, printf(“the result is %lfn“,sqrt(val);/*调用 double sqrt(double x)函数 */ return 0; (4) #include #include int main(void) double val; printf(“Please input the value(val):“); scanf(“%lf“, printf(“the result is %lf“,exp(val);

7、/*调用 double exp(double x)函数 */ return 0; 1-16 见名知义;变量名和函数名小写,符号常量一般大写;多个单词构成标识符名时, 一般单词的第一个字母大写,或者用下划线连接;在不影响阅读的情况下,可以使用简单的 符号变量名,如 a,b,c,d,x,y,z 等;注意一些容易混淆的字母的使用;匈牙利前缀数据类型表 示法的运用及 i,j,k,l,m,n 的整型约定规则。 第二章 C 语言中的数据类型及其基本操作 习题参考答案 2-1 为什么 C 的每个数据都必须属于某种特定的数据类型? 解:变量存储空间中的值必须属于某种特定的数据类型才有 意义,同时,数据的类型不

8、 同,其取值范围、所占存储空间大小、能够参加的运算类型等才有意义。例如:一个 char 型数据占用一个字节空间,一个 float 型数据占用 4 个字节空间。另外,作为 C 语言中的数 据类型,大部分都可以用 signed, unsigned, long, short 进行修饰,以表示数据的取值范 围和数据所占存储空间的字节数变化。 2-2 浮点数和定点数的区别在哪里 ? 解:在于小数点位置是否固定不变。 2-3 计算机中的数是精确的表示吗? 解:不完全是。对整型数据,在不超出表示值范围 时一般是精确表示的。对浮点数,则 一般是不能精确表示。原因在于计算机内表示浮点数的存储空间大小是固定的,因

9、此,它所 能表示出来的精度是有限的。例如,无限循环小数 3.33333333333333333333333在计算 机内部只能近似表示。 2-4 为测试数据类型所占存储空间的大小, C 提供了专门的运算符 sizeof(),它用于返第 5 页 共 50 页 回 或计算给定数据变量或数据类型所占存储空间的大小。请编写程序能够测试 C 的基本数据类 型所占存储空间的大小。 解:这里以 int 型为例。其它数据类型所占存储空间大小的测试方法 相似。 #include void main() int nSize=sizeof(int); printf(“%d“,nSize); getch(); 2-9

10、为什么要强调“先声明、后定义、再使用”的原则?请阐述其理由。 解: 因为变量使用前必须要有存储空间分配给它用来保存其值,对变量存储空间的分 配就是通过变量的声明完成的。变量在被引用之前,其中的值应当是确定的某一个值,但变 量的声明并不能保证变量存储空间中有一 个合适的初始状态值,而是一个随机值。当以错误 的初始值开始变量的引用时,会导致程序的执行逻辑错误。为此,一般需要在变量被引用之 前赋予其一个合理的初始值。因此,在变量的使用上,一般应当遵循先声明、后定义、在引 用的基本原则。 2-12 解: (1)ABC DE FGH (2)12+20=32 (3)ch1(S)+ch2(x)=203 (4

11、)nX=2 nY=5 nZ=12 nX=1830 nY=28 nZ=38 nX=3 nY=6 nZ=2 2-13 解: ( 1) 1; ( 2) 0; ( 3) 0; ( 4) 0; ( 5) 2, 2, 5; ( 6) 10; ( 7) 3; ( 8) 12, 8, 30, 20, 0, 0; ( 9) 15, 5, 324; 2-14 解: m=0 n=0 k=-1 m=1 n=1 k=-1 m=0 n=0 k=0 m=0 n=0 k=1 m=1 n=0 k=1 2-15 解: 第 6 页 共 50 页 (1)mn float fX; double dY,dZ; printf(“i =%d

12、n“,i); printf(“i =%5dn“,-i); printf(“i =%5on“,i); printf(“i =%5xn,i“); printf(“i =%ldn“,i); fX=dY=333.12345678901234567890; dZ=-555.1234567890123456789e-9; printf(“%fn“,fX); printf(“%fn“,dZ); printf(“%en“,dZ); printf(“%.4fn“,fX); printf(“%.8fn“,dY); printf(“%.3en“,dZ); printf(“%.18fn” ,dY); printf(“

13、%10.3en“,dY); printf(“%2.5fn“,dY); printf(“%2en“,dZ); rerturn 0; /*main()函数结束 */ (分析略 )。 3-15 编写一个程序显示如下的方框,椭圆,箭头,或者菱形图 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * int main(void) printf(“*n“); printf(“* *n“); printf(“* *n“); 第 9 页

14、 共 50 页 printf(“* *n“); printf(“* *n“); printf(“* *n“); printf(“*n“); return 0; /*其余的照例或者用 for 循环来做 */ 3-17 int main() int num; int square11; int cube11; for(num=0; num=10; num+) squarenum = num * num; cubenum = num * num * num; printf(“number square cuben“); printf(“-n“); for(num=0; num=10; num+) p

15、rintf(“%-10d %-10d %-10dn“, num, squarenum, cubenum); return 0; 第四章 程序设计的算法基础 习题参考答案 4-1 试分析给出人们日常生活中对问题求解的一般过程和步骤。 解:首先:(必须)知道一些已知条件或约束条件; 第二,确定或寻找针对该问题的求解方法; 第三,根据选择的求解方法确定具体的问题求解步骤; 第四,进行问题求解的实际演算和推理活动; 最后,得到并整理求解结论。 4-2 解:( 1) 1)睁开 双眼; 2)穿好衣服、裤子及鞋子等; 3)下床; 4)洗漱(包括洗脸、刷牙等); 5)吃早餐(包括饭后洗碗等工作); 6)上课学

16、习; 7)吃午餐; 8)午休; 9)上课学习; 10)吃晚餐; 11)课外活动(包括看电视、写作业等等); 12)洗漱; 13)上床; 14)脱衣服、裤子及鞋子等; 15)睡觉。 ( 2) 1)整理好课本; 2)从座位上站起来; 3)走出教室; 4)走进食堂; 第 10 页 共 50 页 5)排队; 6)判断是否已经轮排到 自己,若否,则转 5),否则转 7); 7)刷卡; 8)点菜、买饭。 ( 3) 1)寻找座位; 2)坐下; 3)用筷子夹起饭菜; 4)将饭菜送到嘴里; 5)细嚼慢咽; 6)判断是否已经吃饱或者饭菜已经吃完,若否,则转 7),否则转 8); 7)重复 3) 5)过程; 8)整

17、理餐具,从座位上站起; 9)端起餐具离开座位; 10)寻找水龙头,洗碗; 11)带着餐具回寝室; 12)到达寝室,放下餐具; 13)做个人卫生; 14)午 睡; 4-4 怎么理解 Wirth 提出的程序 =算法 +数据结构的深刻含义? 解:程序是在数据的某种特定表示方法和结构基础上对抽象算法的具体描述,它揭示了 面向过程程序设计的本质。将程序设计问题分为算法和数据结构,充分显示了算法在程序设 计过程中的重要性。 算法注重问题求解的过程和步骤描述,主要考虑问题求解的方法;程序是对算法具体实 现的描述,它需要考虑与程序语言及编程环境有关的实现细节,如语言环境、操作系统环境 等。 4-5 解:参见课

18、本第 79 页。 4-6 解:算法的实质是对问题求解方法和过程的 描述,它由解决问题的基本操作及控制操作过程次序的控制结构组成。其中基本操作包括算术、关系、逻辑等基本运算和输入输出以及函数、位操作、文件操作等;控制结构主要是顺序、选择和循环三种基本的控制结构。 算法的三组成要素: 1)操作; 2)控制结构; 3)数据结构; 算法的基本性质: 1)(有穷)动作序列; 2)动作序列只有一个起点(即初始动作); 3)每一动作 只有一个后继动作; 4)动作序列的终止表示问题得解或无解(不保证一定能得解)。 4-7 解:算法描述方法有: 1) 传统流程图和标准流程图符号体系的表示方法; 2) 传统流程图

19、符号表示的结构化表示方法; 3) 无流程线流程图符号的结构化表示方法; 4) 问题分析图的结构化表示方法; 5) 伪代码的结构化程序表示方法。 传统流程图符号是一些专门设计的图形符号,用于表示程序或算法中的各类操作,用线 条表示这些操作之间的执行顺序。标准流程图符号是 针对传统流程图符号体系的改进。在算 法描述中使用他们来描述算法过程,能很好地表达程序设计的结构与梗概,方便同人的交流。 传统流程图运用起来灵活、自由、形象、直观,流程线指向的任意转向使得绘制过程比 较随意、自由,易被接受和运用。但是流程线的不加限制带来了算法流程绘制的随意性和不 规则性容易导致绘制出来的流程图零乱,阅读不变,修改和维护也比较困难。 无流程线流程图显得更紧凑和清晰,其结构化绘制具有强迫性,绘制结构化流程图的过 程也更加容易和方便,克服了传统流程图的缺陷,同时保留了流程图的直观和简单特点 。但 是该表示法的图形嵌套层次不能太多,尤其是对多层次条件选择的嵌套清形,并且对图形的 修改和维护,也不如传统流程图方便。 问题分析图 PAD 采用 PAD 图形符号描述算法,比较方便,当问题过程复杂时 PAD 描

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。