《C语言程序设计:问题与求解方法》——1.4节本章习题

简介:

本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的第1章,第1.4节本章习题,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看

本章习题
一、判断题

  1. C语言中,函数体必须用一对大括号括住,大括号不能省略。
  2. C语言中,函数首部不能以分号结束。
  3. C语言程序中一条语句或定义结束时的分号常常可以省略不写。
  4. 源程序中的注释在翻译成目标程序时会被编译程序忽略掉,所以写注释的意义不大,纯属浪费时间。
    二、连线题。不看术语对照表,请将两边的术语连线

冰箱格子的编号 内存的基本存储单元
冰箱的一个格子 数据
编写普通菜谱的人 状态寄存器
特殊菜谱 输出设备
加工步骤 用机器语言编程的程序员
理想厨房 信息
厨师及炒菜设备 输入设备
厨房管理员 指令地址寄存器
指令存放碟IR 指令寄存器
普通菜谱 CPU
专用加工容器 专用寄存器
编写特殊菜谱的人 基本运算
指令地址存放碟PC 内存地址
原材料 高级语言程序
采购员及配菜员 算术逻辑单元
传菜生 控制单元
炒好的菜 算术逻辑单元可进行的各种运算
厨师可做的各种炒菜的 用高级程序设计语言编程的程序员
基本动作 计算机系统
理想厨房 机器语言程序
状态存放碟 指令
三、问答题(带*号 的题目为选做题)
1.指令地址(PC)寄存器起了什么作用?它位于哪里?取完一条指令后,它的值一定加1吗? 指令(IR)寄存器是用来干什么的?它位于哪里?
2.控制单元的主要功能是什么?它位于哪里?
3.算术逻辑单元的主要功能是什么?它位于哪里?
4.总线在计算机中起何作用?
5.数据总线在传输数据时是双方向的还是单方向的?在传送指令时呢?
6.现代绝大部分计算机是以字作为基本存储单元还是以字节作为基本存储单元?
7.即将要运行的程序的指令序列存放在哪里?程序要加工的数据存放在哪里?
*8.指令序列是否可以直接从硬盘等外存中取到CPU中加以执行?
9.请你用计算机的术语,详细叙述控制单元通过三条总线到内存取指令的步骤。
10.将十进制整数134转化成二进制整数。
11.将二进制整数11010110011010分别转化成八进制和十六进制整数。
12.将十六进制整数(D34A)16转化成二进制整数。
13.将八进制整数623转化成二进制整数。(注意:一个八进制数字转化成多位二进制数字时,不足3位要补成3位,八进制2对应着二进制010而不是对应着二进制10。)
14.能否将内存中的任意一段数据当成指令来执行?(提示:非法指令问题、乱序指令问题。)
15.内存单元的地址是二进制位串,内存单元中存放的数据也是二进制位串,请尽量列出两者之间的不同点。
16.请将十进制数123.45转化成二进制数。(提示:将整数部分和小数部分分别进行转化。)
17.现代计算机的可执行程序在程序运行期间是不可修改的,但在计算机发明的早期却没有这种限制,请考虑一下这种限制的有利和不利之处。
18.一个机器语言程序中的任意一条指令的操作码发生一位错误,会出现什么问题(可能是一条非法指令,或者变成另一种指令)?一个机器语言程序中的任意一条指令的操作数发生一位错误,会出现什么问题(特别考虑跳转指令)?如果是表示一个文字的码发生一位错误,会出现什么问题?
19.请你模仿0.3节归纳出计算机工作的一些重要特点。
20.数据总线在传送指令时是单向的还是双向的?在传送数据时是单向的还是双向的?
21.请你列出理想厨房系统与计算机系统之间的重要不同点。
22.假设有一种采用固定长度操作码的CPU,指令集中共有43条指令,请问操作码的长度最少应当是多少位?其中有多少个是无效码?

相关文章
|
8月前
|
存储 C语言
【C语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
358 16
|
8月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
200 18
|
8月前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
196 3
|
8月前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
167 2
|
8月前
|
存储 编译器 C语言
【C语言程序设计——函数】回文数判定(头歌实践教学平台习题)【合集】
算术运算于 C 语言仿若精密 “齿轮组”,驱动着数值处理流程。编写函数求区间[100,500]中所有的回文数,要求每行打印10个数。根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。如果操作数是浮点数,在 C 语言中是不允许直接进行。的结果是 -1,因为 -7 除以 3 商为 -2,余数为 -1;注意:每一个数据输出格式为 printf("%4d", i);的结果是 1,因为 7 除以 -3 商为 -2,余数为 1。取余运算要求两个操作数必须是整数类型,包括。开始你的任务吧,祝你成功!
141 1
|
2月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
232 15
|
8月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
366 23
|
7月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的函数
本文介绍C语言函数:函数是程序模块化的工具,由函数头和函数体组成,涵盖定义、调用、参数传递及声明等内容。值传递确保实参不受影响,函数声明增强代码可读性。君志所向,一往无前!
171 1
一文彻底搞清楚C语言的函数
|
8月前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
301 15
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
|
8月前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
142 24