




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高等院校计算机基础教育规划教材 高等院校计算机基础教育规划教材 C 程序设计 程序设计 课后习题参考答案课后习题参考答案 武汉大学出版社 习题习题 1 参考答案参考答案 一 选择题 1 C 2 C 二 填空题 1 面向过程 面向对象 2 编辑 编译 链接 运行 3 机器语言 汇编语言 高级语言 4 数据 操作处理方法 5 0 三 简答题 1 简述三代计算机语言各自的特点 解答如下 机器语言是用二进制指令表示的 计算机能够直接识别和执行的语言 由于计算机可以 直接执行机器语言 执行速度快是机器语言的主要优点 在计算机发展初期 软件工程师使 用机器语言来编写程序 在计算机指令集不断增大的情况下 机器语言不易记忆 不便于学 习 软件开发难度大 周期长 易出错 软件维护工作量大等缺点更加突出 机器语言已不 能胜任编程工作 汇编语言是用一些易读的助记符表示机器指令操作码 如 ADD CALL 等 使用汇编 语言编写程序提高了编程速度 也比较容易编写出质量较高的程序 检查 维护也比较容易 但汇编语言抽象层次低 程序员编写程序工作量大 高级语言屏蔽了机器语言的细节 提高了语言抽象层次 程序中采用了具有一定含义的 数据命令和容易理解的执行语句 高级语言不受计算机种类的限制 通用性强 易于理解 学习和掌握 使用高级语言减少了大量的编程工作量 目前使用比较广泛的高级语言有 Basic Fortran Pascal 和 C 语言 C 是一种功能强大 应用更广泛的高级语言 2 简述 C 语言程序实现的过程 解答如下 用 C 语言编写好一个完整的程序后 第一步要上机运行编辑程序 输入源程序 第二 步是对源程序进行编译生成目标代码文件 目标代码文件名与源程序文件名相同 而扩展名 改为 obj 第三步运行连接程序 将目标代码文件与 C 的库文件相连接 生成可执行文件 可执行文件名与源程序文件名相同 而扩展名为 exe 第四步运行可执行文件 实现程序所 具有的功能 习题习题 2 参考答案参考答案 一 选择题 1 C 2 B 3 B 4 D 二 填空题 1 2 4 字节 1 字节 4 字节 8 字节 3 15 4 6 60 5 26 25 6 256 22 7 3 96E2 3 96E5 三 简答题 1 C 基本数据类型有哪几种 程序设计如下 C 的基本数据类型有 bool 布尔型 又称逻辑型 char 字符型 int 整型 float 浮点型 表示实数 和 double 双精度浮点型 简称双精度型 等 5 种 2 定义符号变量与定义变量有何异同 程序设计如下 定义符号常量和定义变量都要指定数据类型 系统将为其分配一定的存储空间 其不同 之处在于 定义符号常量必须给出常量值 且以后不能修改本常量的值 而变量可以在定义 变量的同时赋初值 以后可以修改该变量 3 什么叫常量 什么是变量 程序设计如下 常量就是在程序的运行过程中该量是不可修改的量 变量在程序的运行过程中允许对该 变量的值进行修改 习题习题 3 参考答案参考答案 一 选择题 1 A 2 C 3 D 4 D 5 C 二 填空题 1 true 2 true 3 11 4 j 10 和 k 3 5 k x 三 编程题 1 编写找出 a 18 b 35 c 21 d 96 中最大值的程序 程序设计如下 include void main int a 18 b 35 c 21 d 96 max max a b a b max max c max c max max d max d cout max max end1 2 输入一个整数 为 65 时 显示 A 为 66 时 显示 B 为 67 时 显示 C 其 它值显示 END 程序设计如下 include void main int x cin x switch x case65 cout A n break case66 cout B n break case67 cout C n break default cout END n 3 编写输入一个整数并且该数按小于 10 10 99 100 999 1000 以上分类并显示的 C 程序 例如 输入 335 时 显示 335 is 100 to999 程序设计如下 include void main int a cin a if a 100 if a 1000 cout a is greater than 1000 n else cout a is 100 to 999 n else if a 10 cout a is less than 10 n else cout a is 10to99 n 4 一个分数序列为 2 1 3 2 5 3 8 5 13 8 21 23 编写求该数列的前 20 项之 和的程序 程序设计如下 include void main float x 1 y 2 p k s 0 for k 1 k 20 k s y x p x y x y y p cout 2 1 3 2 5 3 8 5 s endl 5 编写程序 显示如下图形 程序设计如下 include void main int i j k for i 1 i i k cout for j 1 j 2 i 1 j cout cout 0 i for k 1 k 4 i 1 k cout for j 1 j 2 i 1 j cout cout end1 习题习题 4 参考答案参考答案 一 选择题 1 C 2 C 3 D 4 B 5 D 二 填空题 1 递增的顺序连续 2 可不 3 4 0 4 i 7 j i 7 5 Strlen str 三 编程题 1 将一个数组中的值按逆序存放 例如 原来是 1 3 5 7 9 要求改为 9 7 5 3 1 程序设计如下 include void main int a 5 t for int i 0 i 5 i cin a i for i 0 i 5 2 i t a i a i a 4 i a 4 i t for i 0 i 5 i cout a i t cout endl 2 有一个 3 3 的矩阵 分别求出两条对角线元素之和 程序设计如下 include void main int a 3 3 i j suml 0 sum2 0 cout 输入数组元素 n for i 0 i 3 i for j 0 j 3 j cin a i j for i 0 i 3 i sum1 a i i sum2 a i 2 i cout sum1 sum1 sum2 sum2 endl 3 输入一个字符 统计单词个数 单词之间用空格分离 程序设计如下 include void main char str 80 c1 c2 int i 0 num 0 cin get line str 78 while str i o c1 str i if i 0 c2 else c2 str i 1 if c1 i cout 共有 num 个单词 endl 4 用冒泡法对输入的 15 个整数按由小到大顺序排列 程序设计如下 include include void main int i j m a 15 for i 0 i 15 i cin a i for j 1 j 14 j for i 0 ia i 1 m a i a i a i 1 a i 1 m for i 0 i 15 i cout setw 4 a i cout end1 5 从键盘为 1 个 N N 的整型数组 a 输入数据 并显示每一行的最大值 程序设计如下 include include void main const N 5 int a N N b N i j cout 请为数组 a 输入数据 endl for i 0 i N i for j 0 j N j cin a i j 用双重循环为数组 a 顺序输入数据 for i 0 i N i b i a i 0 for j 1 j N j if b i a i j b i a i j 经比较将 a 数组第 i 行的最大值分别存入 b i 中 cout 输出每一行的最大值 for i 0 i N i cout setw 4 b i cout end1 经 b i 输出数组 a 每一行的最大值 程序运行结果 请为数组 a 输入数据 5015341729 1825427735 2524172311 5998322862 5419 97848 输出每一行的最大值 5077259878 习题习题 5 参考参考答案答案 一 选择题 1 B 2 D 3 B 4 A 5 D 二 填空题 1 地址 2 NULL 或 0 3 整形变量地址 一维数组元素的地址 4 1 int p 2 p 6 3 int p 4 pp 5 pp 2 or Z 5 t p p q q t 三 编程题 1 输入 3 个字符串 要求输出其中最大 最小字符串 程序设计如下 输入 3 include iostream h include string h void main const int N 3 char s N 20 max 20 min 20 for int i 0 i N i cin getline s i 20 strcpy max s 0 strcpy min s 0 for i 0 i0 strcpy max s i if strcmp min s i 0 strcpy min s i cout 最大字符串是 max endl cout 最小字符串是 min endl 2 用指针的方法将一个字符串 china 的单个字符依次输出 程序设计如下 include iostream h void main char p china for int i 0 p i 0 i cout p i endl 3 使用指针数组编写一个程序 要求当用户输入 1 12 的月份数字时 程序能够输出 该月的英文名 输入不是 1 12 时 则退出程序 程序设计如下 include iostream h void main C 语言中续行符用 表示 char monthname january february march april may june july august september october november december int i while 1 cout 请输入月份号 cin i if i12 cont 错误的月份号 end1 break cont month name i 1 end1 4 编写程序将 n 个数按逆序输出 要求使用指针 思考 可以假设两个指针变量 p 和 q 分别指向最后一个和第一个数组元素 而后互换 p 和 q 即可 程序设计如下 include iostream h void main const int N 5 int a N p a q t for int i 0 i N i cin p 输入数组元素 p 将 p 指向最后一个数组元素 for q a q p p q t p p q q t p a for i 0 i N i cout p i t cout endl 5 有 n 个人围成一个圈 顺序排号 从第一个人开始报数 从 1 到 3 报数 凡报到 3 的人退出圈子 问最后留下的是原来的第几号 程序设计如下 include iostream h void main int i k m n num 50 p cout input number of person n cin n p num for i 0 i n i p i i l 从 1 到 n 对每个人进行编号 i 0 i 为每次循环时的计数变量 k 0 k 为按 1 2 3 报数时的计数变量 m 0 m 为退出人数 while m n 1 当退出人数比 n 1 少时 即未退出人数大于 1 时 执行 if p i 0 k if k 3 对退出的人的编号置为 0 p i 0 k 0 m i if i n i 0 报数到尾后 i 恢复为 0 while p 0 p cout endl the last one is NO p 运行结果为 input number of person n 8 the last one is NO 7 习题习题 6 参考答案参考答案 一 选择题 1 A 2 C 3 A 二 填空题 1 局部 全部 2 允许 不允许 3 main 4 in line 5 可以在同名部变量的作用域中访问全局变量 三 编程题 1 编写程序 计算 1 2 3 n 的值 其中 n 是自然数 分析 n1 为 1 n2 为 100 即 可 程序设计如下 include int Get Sum int n void main int num int sum 0 cout Please enter a number cin num sum GetSum num cout sum end1 while 1 return 0 int GetSum int n int s 0 for int a 0 a n a s a return s 2 编写一个函数 该函数返回给定字符串中大写字母字符的个数 例如 字符串 Chinese Computer World 中 大写字母字符的个数为 3 个 程序设计如下 include iostream h include math h int root float float float float xl x2 void main float a b c cout 请输入 a b c 的值 cin a b c if root a b c cout x1 x1 tx2 x2 0 if m 3 return y else m y year y 2 6 求一元二次方程的实根程序 程序设计如下 include iostream h int fun int int void main int n1 n2 cout 输入两个正整数且前者要小于后者 cin n1 n2 cout 从 n1 到 n2 的累加和为 fun n1 n2 y x y void main int x y z absmax cin x y z absmax max abs x abs y absmax max abs absmax abs z cout The absolute value of maximal number is cout absmax end1 2 编写一个程序 利用宏定义一个常量 N 然后生成 输出一个 4 4 0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6 的数据阵列 程序设计如下 include define N4 int main int N N for int i 0 i N i for int j 0 j N j a i j i j for i 0 i N i for int j 0 j N j cout a i j cout end1 return 0 程序运行的结果 0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6 3 定义一个带参数的宏 MIN 用于计算在两个参数中找出较小的一个 程序设计如下 include stdio h define MIN m n m n m n 定义宏名 MIN 替换运算 m n m n void main float t 36 712 u 18 645 定义实型变量 t u float min min MIN t u 调用带参数的宏 MIN 求 t 和 u 的最小值 cout min end1 运算结果是 18 645 习题 参考答案习题 参考答案 一 选择题 1 C 2 C 3 D 4 D 5 D 二 填空题 1 可以 2 不允许 3 为 0 加 1 4 结构体变量名 成员名 结构体指针变量名 成员名 结构体指针变量名成员名 5 一个成员及一种类型 三 编程题 1 定义枚举类型 months 用枚举常量代表一年的 12 个月份 程序设计如下 enum manths JAN 1 FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC 2 利用结构体类型编制一程序 实现输入输出一个学生的学号 姓名和出生日期 程序设计如下 include struct date int year int month int day struct student int number char name 10 date birth void main struct student stu1 cin stu1 number stu1 name cin stu1 birth year stu1 birth month Stu1 birth day cout stu1 number t stu1 name t stu1 birth year cout 年 stu1 birth month 月 stu1 birth day 日 end1 3 利用结构体类型编制一程序 实现输入一个学生的数学期中和期末成绩 然后计算 并输出其平均成绩 程序设计如下 include include void main struct study int mid int end int average math cin math mid math end math average math mid math end 2 cout setprecision 2 math average end1 4 利用指向结构体的指针编制一程序 实现输入 3 个学生的学号 数学期中和期末成 绩 然后计算其平均成绩并输出成绩表 程序设计如下 include struct stu int num int mid int end int ave s 3 void main int i struct stu p for p s pnum p mid p end p ave p mid p end 2 for p s p s 3 p cout num t mid t end t ave end1 习题习题 9 参考答案参考答案 一 选择题 1 A 2 D 3 A 4 A 5 A 二 填空题 1 对象数组 2 该指针指向一个数组 3 该数组中每个元素都是一个指针对象 4 子对象 5 堆对象 三 编程题 1 编写一个函数 统计一条英文句子中字母的个数 在主程序中实现输入 输出 程序设计如下 include include int count char str int i num 0 for i 0 str i i if str i a class StudentTeacher public Student public Teacher public StudentTeacher const char n const char m const char d const char 1 Person n Student n m Teacher n d l void Print const Student Print cout Department endl endl cout Lesson lesson endl void main Student stu Mike Software Enginerring Staff sta Jason Management Teacher t Tim Computer C StudentTeacher st Sam Computer Application Computer C stu Print sta Print t Print st Print 习题习题 11 参考答案参考答案 一 选择题 1 C 2 D 3 A 4 C 5 D 二 填空题 1 用同一个运算符完成不同的 通过创建运算符函数 2 程序运行 程序编译 3 动态 静态 4 纯虚函数 基类 5 虚函数 指针式引用 三 编程题 1 运用动态联编和虚函数的方法编写派生类程序 要求能够输入简单的数据 程序设计如下 include class X public virtual void Display int x float y cout x y end1 Cla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中化学美育课件
- 高一政治课件
- 债务处理与离婚协议书结合的财产分配方案
- 离婚协议中财产分配、子女抚养及赡养费参考范本
- 创新型企业劳动合同终止与股权激励协议
- 企业违规使用假合同进行借款债务清偿协议
- 离婚协议中少数民族权益保障法律适用合同
- 汽车美容店租赁租金调整及支付方式合同
- 骶骨解剖课件
- 发展职业教育与技术创新方案
- DB21-T 3464-2021 辽西北地区食叶草栽培技术规程
- 机加工设备管理制度
- 厦门凯库勒新材有限公司导电浆料生产项目环境影响报告
- 艺术管理概论课件
- 综合性医院疼痛科建设课件
- 医养结合模式研究
- 设备材料采购合同供应商履约评价表
- WES溢流堰堰面设计
- 水产品安全控制
- 电力专项施工方案(模板)
- 江南大学食品工艺学复试题
评论
0/150
提交评论