C语言编程:习题解析与解答
需积分: 9 125 浏览量
更新于2024-07-31
收藏 96KB DOC 举报
"C语言程序设计(第二版)习题解答"
在《C语言程序设计(第二版)》中,作者谭浩强提供了丰富的习题,帮助读者深入理解和掌握C语言的基本概念和编程技巧。以下是部分习题的解析:
1.5 这道题目要求编写一个简单的C程序,输出特定的字符串。程序可以这样实现:
```c
#include <stdio.h>
int main() {
printf("******************************\n");
printf("VeryGood!\n");
printf("******************************\n");
return 0;
}
```
1.6 该题目的目的是找出三个数中的最大值。代码如下:
```c
#include <stdio.h>
int main() {
int a, b, c, max;
printf("请输入三个数:");
scanf("%d %d %d", &a, &b, &c);
max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
printf("最大值是:%d\n", max);
return 0;
}
```
3.3 这题要求将十进制数转换为八进制和十六进制补码表示。例如:
- (1) 10的八进制表示为12,十六进制表示为0xA
- (2) 32的八进制表示为40,十六进制表示为0x20
- (3) 75的八进制表示为113,十六进制表示为0x4B
- (4) -617的八进制补码表示为-177773,十六进制表示为-0x1D9
- (5) -111的八进制补码表示为-167,十六进制表示为-0x73
- (6) 2483的八进制表示为3733,十六进制表示为0x9CD
- (7) -28654的八进制补码表示为-147552,十六进制表示为-0x3A42
- (8) 21003的八进制表示为33303,十六进制表示为0x507B
3.5 字符常量是单个字符,用单引号括起,如'x';字符串常量是多个字符组成的序列,以双引号括起,如"xyz"。字符串常量会自动添加一个空字符'\0'作为结束标识。
3.6 程序运行结果:
```
a'b' c abc
\b'e'n
```
3.7 要实现这个密码加密,可以通过计算每个字符的ASCII值加上4得到新的字符。代码如下:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';
c1 = c1 + 4; c2 = c2 + 4; c3 = c3 + 4; c4 = c4 + 4; c5 = c5 + 4;
printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5); // 输出Glmre
return 0;
}
```
3.8 修改后的程序依然能正常工作,因为c1和c2被赋值为字符'a'和'b'的ASCII值,然后在printf中以字符形式输出。所以结果与原程序相同,输出:
```
a b
97 98
```
3.9 表达式求值:
(1)当x=2.5, a=7, y=4.7时,表达式计算结果为:
```
2.5 + 7 % 3 * (int)(2.5 + 4.7) % 2 / 4 = 2.5 + 1 * 2 / 4 = 2.5 + 0.5 = 3.0
```
(2)当a=2, b=3, x=3.5, y=2.5时,表达式计算结果为:
```
(float)(2 + 3) / 2 + (int)3.5 % (int)2.5 = 2.5 + 1 = 3.5
```
3.10 程序运行结果:
```
8,11,9,11
```
这涉及到自增运算符的优先级问题,i 和 j 先被自增,然后值被赋给 m 和 n。
3.12 a 的值变化:
(1)a += a 等价于 a = a + a,若 a=12,则 a 变为 24。
(2)a -= 2 等价于 a = a - 2,a 变为 22。
(3)a *= 2+3 等价于 a = a * (2+3),a 变为 44。
(4)a /= a+a 等价于 a = a / (a+a),a 变为 11。
(5)a%=(n%=2),首先 n 变为 5%,2 = 1,然后 a 变为 a % 1,a 保持不变。
(6)a += a-=a*a 等价于 a = a + (a - a*a),a 仍然等于 11。
第四章的题目涉及C语言的更多高级概念,如指针和内存管理,此处未给出具体习题,但这些概念包括指针的使用、内存分配、数组和指针的关系等,这些都是C语言中的核心内容。学习这部分需要理解指针的运算和指针在函数参数传递中的应用,以及如何动态地管理和释放内存。
2015-06-17 上传
2010-11-18 上传
2022-11-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
alashengding_333
- 粉丝: 0
- 资源: 2
最新资源
- Postman安装与功能详解:适用于API测试与HTTP请求
- Dart打造简易Web服务器教程:simple-server-dart
- FFmpeg 4.4 快速搭建与环境变量配置教程
- 牛顿井在围棋中的应用:利用牛顿多项式求根技术
- SpringBoot结合MySQL实现MQTT消息持久化教程
- C语言实现水仙花数输出方法详解
- Avatar_Utils库1.0.10版本发布,Python开发者必备工具
- Python爬虫实现漫画榜单数据处理与可视化分析
- 解压缩教材程序文件的正确方法
- 快速搭建Spring Boot Web项目实战指南
- Avatar Utils 1.8.1 工具包的安装与使用指南
- GatewayWorker扩展包压缩文件的下载与使用指南
- 实现饮食目标的开源Visual Basic编码程序
- 打造个性化O'RLY动物封面生成器
- Avatar_Utils库打包文件安装与使用指南
- Python端口扫描工具的设计与实现要点解析