1、C语言程序设计课后习题参考答案. 高等院校计算机基础教育规划教材C+程序设计课后习题参考答案 武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关
2、的指针类型。此外,用户还可以根据需要自定义数据类型。 (3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。
3、 2.答:运行一个C语言程序,一般需要经过如下几个步骤:上机输入并编辑源程序;编译源程序;与库函数连接;生成可执行目标程序;运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。 . . (2)工业控制。由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。 (3)图形图像处理。C语言在内存管理和进程控制方面有丰富的指令,而且它能提供快速运行的代码,因而C语言适合进行图形程序设计。 (4)教学领域。C语言是理想的结构化程序设计语言,其描述能力强,应用
4、十分广泛,因此广泛应用于教学领域。许多计算机相关课程,如数据结构及算法大多是用C语言进行描述的。 习题2参考答案 一、选择题 1. A 2.A 3.C 二、填空题 1. 基本数据类型、构造数据类型、指针类型、空类型 2. 反斜线“” 3. 枚举数据类型(Enumerated Data Type) 三、简答题 1.答: 在语言中,数据类型可分为:基本数据类型、构造数据类型、指针类型、空类型四大类。 基本类型是数据类型的基础,由它可以构造出其他复杂的数据类型。基本类型的值不可以再分解为其他类型。C语言的基本类型包括整型、实型(浮点型)、字符型和枚举型。 C语言的构造类型包括数组类型、结构类型和联合
5、类型。构造类型是根据已定义的一种或多种数据类型用构造的方法定义的。也就是说,一个构造类型的值可以分解成若干个成员或元素。每个成员或元素都是一个基本数据类型,或又是一个构造类型。 指针是一种特殊而又具重要作用的数据类型,其值表示某个量在内存中的地址。虽然指针变量的取值类似于整型量,但这是两种完全不同类型的量,一个是变量的数值,一个是变量在内存中存放的地址。 在调用函数时,被调用函数通常应向调用函数返回一个函数值。返回的函数值具有一定的数据类型,应在函数定义的函数说明中给以说明。例如,在例1-1中给出的max函数定义中,函数头为int max(int a,int b,int ?,其中写在函数名ma
6、x之前的类型说明符楜瑮表示该函数的返回值为整型量。但是,也有一类函数,被调用后并不向调用函数返回函数值,这种函数可以定义为空类型(也称无值型),其类型说明符为void。 习题3参考答案 一、选择题 . . 1.C 2.B 3.B 4.D 二、填空题 1. 4字节,1字节,4字节,8字节 2. 20 3. 6 60 4. 26 25 5. 256 22 三、简答题 1. C语言的基本类型包括整型、实型(浮点型)、字符型和枚举型。 2. 定义符号常量和定义变量都要指定数据类型,系统将为其分配一定的存储空间。其不同之处在于:定义符号常量必须给出常量值,且以后不能修改本常量的值;而变量可以在定义变量的
7、同时赋初值,以后可以修改该变量。 3. 常量就是在程序的运行过程中该量是不可修改的量;变量在程序的运行过程中允许对该变量的值进行修改。 四、程序题 1程序运行结果为: 11 10 10 11 -10 -11 2程序运行结果为: 3,12,4,4 习题4参考答案 一、选择题 1C 2D 3C 4C 5B 6D 7B 8C 9B 二、填空题 1! & | 20 1 31 44 5-1 三、编程题 1给出等级成绩A、B、C、D、E,假设,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E,输入一个等级成绩,问属于哪一个分数段。 参考代码如下: main() . . int
8、 score,m,n; char grade; n=1; while(n) printf(Please enter the score:); scanf(%d,&score); if(score100)|(score0) printf( Wrong! n); else n=0; if(score=100) m=9; else m=(score-score_x0010_)/10; switch(m) case 0:case 1:case 2:case 3:case 4:case 5:grade=E;break; case 6:grade=D;break; case 7:grade=C;break
9、; case 8:grade=B;break; case 9:grade=A; printf(score=%d,grade=%cn,score,grade); 2编程序打印出以下图形: 1 121 12321 12345678987654321 参考代码如下: #include main() int i,j; for(i=1;i=9;i+) for(j=1;j0;j-) printf(%d,j); printf(); . . 3用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚? 提示:设5分、2分和1分的硬币各换x,y,z枚,依题意
10、有x+y+z=100,5x+2y+z=150,由于每一种硬币都要有,故5分硬币最多可换28枚,2分硬币最多可换73枚,1分硬币可换100-x-y枚,x,y,z只需满足第2个方程即可打印,对每一组满足条件的x,y,z值,用计数器计数即可得到兑换方案的数目。 参考代码如下: main() int x,y,z,s=0; for(x=1;x=28;x+) for(y=1;y=73;y+) for(z=1;z=148;z+) if(150=5*x+2*y+z) if(100=x+y+z) 牰湩晴尨?搥礠?搥屜屮砬礬稬? s+; printf(s=%dn,s); 4编程:从键盘输入正整数n,输出1+(1+
11、2)+(1+2+3)+(1+2+3+n)。 参考代码如下: #include main() int n,i,s=0,t=0; printf(Please enter n=); scanf(%d,&n); for(i=1;i=0;i-) scanf(%d,&ai); printf(Please enter x=n); scanf(%d,&x); p=aN; for(i=N;i0;i-) p=p*x+ai-1; printf(Pn(x)=%dn,p); 2打印以下的杨辉三角形(要求打印6行)。 1 11 121 1331 14641 15101051 参考代码如下: #include #inclu
12、de #define N 6 main() int i,j,maxNN; . . for(i=0;iN;i+) for(j=0;jN;j+) maxi0=1; maxii=1; for(i=2;iN;i+) for(j=1;ji;j+) maxij=maxi-1j-1+maxi-1j; for(i=0;iN;i+) for(j=0;j=i;j+) printf(%d,maxij); printf(); 3编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。 参考代码如下:/*假设原有5个数*/ #include main() int a6=1,2,6,10,15; int n,i,j; printf(Please enter the insert number:); scanf(%d,&n); for(i=0;iai) continue; else break; for(j=4;j=i;j-)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1