当前位置:首页 > 电大计算机科学与技术c语言各章练习题答案
各章练习题答案
第1章
1.1 简答题
C语言概述
1. 答:C语言单词分为保留字、标识符、字面常量、运算符和分隔符5类。
2. 答:首字符必须是英文字母或下划线;其余位置上的字符必须是英文字母、十进制数
字符号或下划线。
3. 答:它们的首字符不同,此外各自还有详细的格式规定。其中,数值字面常量以数
字、正负号或小数点(如.01表示0.01)开头,字符字面常量必须用单引号括起来,字符串字面常量必须用双引号括起来,标识符首字符必须是英文字母或下划线。 4. 答:分类如下。
数值常量3个:25 -8 +3.42 字符常量3个:'4''D''+'
字符串7个:\。\标识符7个:x2 n count main Hlist xy MaxA_1 保留字3个:int void if 运算符1个:+ 分隔符0个:
非法数据1个:3ab 以上共计25个。
5. 答:C语句除空语句外,按照语句功能,可分为以下8类:类型定义语句、变量定义语
句、函数原型语句、表达式语句、复合语句、选择语句、循环语句和跳转语句。在以上8类语句中,前3类属于说明性语句,后5类属于执行性语句。
6. 答:其格式为:#include <头文件>或#include “头文件\。对于每条预处理包含命令,在
预处理阶段将把该命令置换为所指定“头文件”中的全部内容,换句话说,是用该“头文件”保存的全部内容代替该预处理包含命令行。
对于上述给出的两种包含命令格式,系统处理时的查找头文件的路径有所不同。对于第一种格式(即尖括号格式),将从C语言系统层次目录中查找头文件,若查找不到则给出错误信息;对于第二种格式(即双引号格式),如果头文件名没有给出磁盘号和路径名,则首先从当前工作目录(即包含该命令的程序文件所属的目录)中查找头文件,若查找不到,再接着从C语言系统层次目录中查找头文件,若还是查找不到则给出错误信息。在第二种格式中,如果头文件名带有磁盘号和路径名,则只在该指定路径中查找头文件,若查找不到则给出错误信息。(关于第二种格式中头文件名带有磁盘号和路径名的情况,教材的叙述是错误的)
7. 答:第一步需要上机建立相应的工作区和工程并建立、输入和编辑该程序中的相应文
件,通常首先建立主文件;第二步对每个程序文件进行编译生成各自的目标代码文件,通常主文件被首先编译并生成目标文件;第三步使主目标文件与同一程序中的其他目标代码文件以及有关C语言系统库函数文件相连接,生成一个可执行文件;第四步运行最后生成的可执行文件。
1.2 选择题
1 / 37
1.B
2.C 3.A 4.D 5.A 6.B 7.D 8.C
上机实验题
1. 程序代码: #include
运行结果: x + y = 11, x * y = 30
2. 程序代码: #include
int cube(int)。 void main() { printf(\。 printf(\。 printf(\。 }
int cube(int x) { return x * x * x。 }
运行结果: cube(3) = 27 cube(5) = 125 cube(8) = 512
3. 程序代码:
A.主程序文件代码: #include
B.abc.cpp文件代码:(新建时选择“File|New|C++ Source File”。注意去掉“Add to project…:”前面的勾,以后新建其他程序文件或头文件时还要勾上)
2 / 37
double AVE(double x, double y, double z) { return (x + y + z) / 3。 }
运行结果:
averageValue: 3.000000 averageValue: 5.666667
4. 程序代码:
A.主程序文件代码: #include
int a, b, c。
printf(\请输入任意三个整数:\。 scanf(\。 printf(\求和:%d\\n\。 printf(\乘积:%d\\n\。
B.example.h头文件代码:(新建时选择“File|New|C/C++ Header File”。注意勾上“Add to project…:”前面的勾) int Sum(int, int, int)。 int Product(int, int, int)。
C.另一个程序文件的代码:(新建时选择“File|New|C++ Source File”。注意勾上“Add to project…:”前面的勾) int Sum(int a, int b, int c) {
return a + b + c。 }
int Product(int a, int b, int c) { return a * b * c。 }
运行结果随输入不同而不同,请自行记录
第2章
2.1选择题
1.D 2.A 3.B 4.B 11.B 12.C 13.A
基本数据类型与表达式
5.D 6.C 7.C 8.A 9.C 10.D
2.2把下列数学算式或不等式表示成C表达式
3 / 37
1.2.0 * x * (1 + x * x / 3.0) 2.(1 + exp(x)) / (1 - exp(x))
3.(-b + sqrt(b * b - 4.0 * a * c)) / 2 / a 4.1 / (3.0 * x * log(2.0 * x + k))
5.pow(sin(x + 3.14159 / 4), 3) / (3 + pow(cos(x - 3.14159 / 4), 3)) 6.pow(1 + exp(x + 1), n) / 7 7.0 <= x && x <= 20 8.(a * x - b * y) != c
9.(4 * x + 7 * y - 2) == 3 * a * b
10.(3.0 * x + 2) != 0 && fabs((2.0 * x * x + 1) / (3.0 * x + 2)) <= 5 /*(3.0 * x + 2)先判断避免除0*/
11.age >= 55 || pay >= 820
12.! strcmp(place, \江苏\女\/* strcmp函数详见教材第127页*/ 13.('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')
14.s[2] == '0' && (s[1] == 'x' || s[1] == 'X')/*s[1]、s[2]为数组元素,详见第4章*/
2.3求出下列逻辑表达式的相反式
1.!x 2.x != 0 3.x < 10
4.p == NULL || x == 46 5.x <= 0 || x >= 10 6.ch != 'd' && ch != 'D'
7.! p || p->data == x/*p->data是对结构成员的间接访问,详见教材第193页7.3*/ 8.i >= n && a[i] % 3 != 0/*a[i]为数组元素,详见第4章*/
2.4根据下列题目要求编写出相应程序
1.(题目中仅要求两边之和大于等于第三边是不对的。两边之和等于第三边只能连成直线(根据公式计算面积也为0),不能组成三角形。边长也不应为负数。故应要求两边之和大于第三边,且任一边长大于0。不过目前没有学习第3章的if语句,程序自身无法控制在遇到不能构成三角形的情况时如何处理,需要用户输入时自行掌握。) #include
2.(每年都是上一年的110%,即1.1倍,5年后则将是1.1的5次方。其实只有5次方,
4 / 37
共分享92篇相关文档