游洪跃的C语言程序设计第7章 习题解答
更新时间:2023-12-09 10:15:01 阅读量: 教育文库 文档下载
- 四川大学游洪跃推荐度:
- 相关推荐
第7章 习题解答
一、选择题
1.有以下程序:
/* 文件路径名:ex7_1_1\\main.c */ #include
/* 标准输入/输出头文件 */ /* 带参宏 */
/* 主函数main() */
/* 定义变量 */
/* 调用带参宏HDY */ /* 输出k */
/* 返回值0, 返回操作系统 */
下面针对该程序的叙述正确的是 。 A)编译有错 B)运行出错 C)运行结果为y=0 D)运行结果为y=6
解析:宏替换后,表达式\即变为k=a+c/b+d=6。 答案:D
2.有以下程序:
/* 文件路径名:ex7_1_2\\main.c */ #include
/* 标准输入/输出头文件 */ /* 无参宏 */ /* 无参宏 */ /* 带参宏 */
/* 主函数main() */
/* 定义变量 */ /* 调用带参宏 */ /* 输出i1,i2 */
/* 返回值0, 返回操作系统 */
程序的运行结果是 。 A)12 12 B)11 7 C)11 11 D)12 7 解析:根据宏定义可得f(2)=2*5+1=11,f(1+1)=1+1*5+1=7。 答案:B
3.以下叙述中正确的是 。
A)预处理命令行必须位于C源程序的起始位置 B)在C语言中,预处理命令行都以#开头
C)每个C程序必须在开头包括预处理命令行:#include D)C语言的预处理不能实现宏定义和条件编译的功能
解析:以#开头的行都称为“编译预处理”行;预处理功能主要包括宏定义、文件包含和条件编译等。预处理命令行可放在C源程序的任何位置,“#include”实现文件包含的功能,不是每个C程序都必须包含#include命令。
答案:B
4.有以下程序:
/* 文件路径名:ex7_1_4\\main.c */ #include
程序运行后的输出结果是 。 A)64,28 B)4,4 C)4,3 D)64,64
解析: il=f(8)/f(4)进行宏替换后il=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)= (4+4*4+4)/(2+2*2+2) = 24/8 = 3。所以输出结果为4, 3。
答案:C
5.以下叙述中正确的是 。
A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示
D)宏替换不占用程序的运行时间
解析:预处理命令行可以出现在源程序的任何位置上,所以选项A是错误的。源程序的一行上只能出现一条预处理命令,因此选项B也是错误的。宏名只要是符合要求的标识符都可以,没有规定一定要大写,因此选项C也是错误的。宏替换在程序编译时,就由编译程序对出现的宏名进行了相应的宏替换,因此宏替换不占用程序的运行时间。选项D是正确的。
答案:D
*6.下列描述中正确的是 。
A)软件工程只是解决软件项目的管理问题 B)软件工程要解决软件产品的生产率问题
C)软件工:程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题
解析:软件工程是计算机软件开发和维护的工程学科,采用工程的概念原理、技术和方法来开发和维护软件,它把经过时间考验而证明正确的原理技术和当前能够得到的最好技术结合起来。
答案:C
*7.下列描述中正确的是 。 A)程序就是软件 B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 解析:计算机软件包括程序、数据及相关文档的完整集合。软件具有以下特点:(1)软件是一种逻辑实体,而不是物理实体;(2)软件的生产过程与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
答案: 二、填空题
1.下面程序编译运行的结果是 。
/* 文件路径名:ex7_2_1\\main.c */ #include
/* 标准输入/输出头文件 */ /* 无参宏 */ /* 带参宏 */
/* 主函数main() */
/* 定义变量 */ /* 调用带参宏 */ /* 输出i */
/* 返回值0, 返回操作系统 */
解析:宏替换后可得i=(1+1*10)=11。 答案:11
2.执行以下程序的输出结果是 。
/* 文件路径名:ex7_2_2\\main.c */ #include
/* 标准输入/输出头文件 */
/* 无参宏 */ /* 无参宏 */
/* 主函数main() */
/* 定义变量 */ /* 调用无参宏 */ /* 输出k */
/* 返回值0, 返回操作系统 */
}
解析:宏替换成k= M+M*M+M*5=5+5*5+5*5=55。 答案:55 三、编程题
1.请编写一个宏定义MOD(a,b),用来求a除以b的余数,并编写测试程序。 参考程序:
/* 文件路径名:ex7_3_1\\main.c */ #include
#define MOD(a, b) ((a) % (b)) /* 带参宏定义 */
int main(void) /* 主函数main() */ { int a, b; /* 定义变量 */ printf(\输入两个整数:\ /* 输入提示 */ scanf(\ /* 输入a,b */ printf(\输出结果 */ system(\ /* 调用库函数system( ),输出系统提示信息 */ return 0; /* 返回值0, 返回操作系统 */ }
2.请编写一个宏定义SWAP(type,a,b),用以交换type类型的两个参数,并编写测试程序。
提示:用复合语句实现。 参考程序:
/* 文件路径名:ex7_3_2\\main.c */ #include
#define SWAP(type, a, b) { type tem = (a); (a) = (b); (b) = tem; } /* 带参宏定义 */
int main(void) /* 主函数main() */ { int a, b; /* 定义变量 */ printf(\输入两个整数:\ /* 输入提示 */ scanf(\ /* 输入a,b */ SWAP(int, a, b); /* 交换a,b */ printf(\ %d\\n\ /* 输出a,b */
}
system(\return 0;
/* 调用库函数system( ),输出系统提示信息 */ /* 返回值0, 返回操作系统 */
3.请编写一个宏定义IS_DIGIT(c),用以判断c是否为数字字符,如果是,得1,否则得0,并编写测试程序。
参考程序:
/* 文件路径名:ex7_3_3\\main.c */ #include
#define IS_DIGIT(c) ((((c) >= '0') && ((c) <='9')) ? 1 : 0) /* 带参宏定义 */
int main(void) /* 主函数main() */ { char c; /* 定义变量 */ printf(\输入一个字符:\ /* 输入提示 */ c = getchar(); /* 输入一个字符 */ if (IS_DIGIT(c)) printf(\是数字字符\\n\ else printf(\不是数字字符\\n\ system(\ /* 调用库函数system( ),输出系统提示信息 */ return 0; /* 返回值0, 返回操作系统 */ }
4.请编写一个宏定义LEAP_YEAR(year),用以判断年份year是否为闰年,如果是,得1,否则得0,并编写测试程序。
参考程序:
/* 文件路径名:ex7_3_4\\main.c */ #include
#define LEAP_YEAR(year) (((year) % 4 == 0 && (year) % 100 != 0 || (year) % 400 == 0) ? 1 : 0) /* 带参宏定义 */
int main(void) /* 主函数main() */ { int year; /* 定义变量 */ printf(\输入年份:\ /* 输入提示 */ scanf(\ /* 输入年份 */ if (LEAP_YEAR(year)) printf(\是闰年\\n\ else printf(\不是闰年\\n\ system(\ /* 调用库函数system( ),输出系统提示信息 */ return 0; /* 返回值0, 返回操作系统 */ }
*5.三角形的面积为s?p(p?a)(p?b)(p?c),其中p?1(a?b?c),定义两个2宏,一个宏P(a, b, c)用来求p,一个宏S(a, b, c)用来求面积s,并编写测试程序。
参考程序:
/* 文件路径名:ex7_3_5\\main.c */ #include
#define P(a, b, c) (((a) + (b) + (c)) / 2) /* 定义带参宏 */
#define S(a, b, c) sqrt(P(a, b, c) * (P(a, b, c) - a) * (P(a, b, c) - b) * (P(a, b, c) - c)) /* 定义带参宏 */
int main(void) /* 主函数main() */ { float a, b, c; /* 定义变量 */ printf(\输入三角形的三边:\ /* 输入提示 */ scanf(\ /* 输入三边 */ printf(\三角形的面积为%f\\n\/* 输出结果 */ system(\ /* 调用库函数system( ),输出系统提示信息 */ return 0; /* 返回值0, 返回操作系统 */ }
正在阅读:
游洪跃的C语言程序设计第7章 习题解答12-09
《歌曲串烧》报幕词,串词02-08
三角函数的诱导公式 教案206-09
高教版《马克思主义哲学》笔记和课后习题详解(第1~7章)【圣才出04-11
2018年秋初中政治公开课活动方案03-01
质量经理面试09-08
新型污水处理工艺曝气的生物滤池07-24
2016银行面试真题 - 客户经理10-26
主汽门控制油泄漏的原因与处理06-08
科技公司员工手册制度格式05-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 程序设计
- 解答
- 语言
- 游洪跃
- 高三(10)班先进班集体申报材料
- 亭湖区家庭过期药品回收活动现场发言稿
- 必修五古诗文理解记忆句子默写题
- 古文《大学语文》练习题
- 山师2013外国教育史整理
- 以人为本 推动学校管理
- 化工仪表及自动化 课后 答案 第5版 厉玉鸣(史上最全版本)
- 在调研市委、市政府督查工作时的讲话
- SAP SRM配置手册
- 软件系统测试报告(通用模板)
- 2017-2023年中国微生态制剂市场深度调研分析及投资前景趋势研究报告(目录)
- access试题
- 药学专业论证报告
- 外国文学史复习资料
- 中国人民解放军空军历任副司令员(一)
- 2017年安徽省高职高专教育专业情况分析报告 - 图文
- 四年级数学下册《运算定律与简便计算》综合练习题
- 开关弹簧操作机构 - 图文
- 我因生活在江南而自豪
- 带目录的FICO面试问题