没有合适的资源?快使用搜索试试~ 我知道了~
首页新标准C++程序设计教程习题解答.pdf
资源详情
资源评论
资源推荐
《新标准 C++程序设计》习题解答
第 1 章-第 10 章
郭炜
第一章
1. 将下列十进制数表示成 16 位二进制形式和 4 位十六进制形式:255,-254,-1,10,20,-12。
解答:题目的意思是,如果在计算机内部用 16 位二进制形式和 4 位 16 进制形式表示上面的数,会
是什么样子。要求最高位是符号位,负数的符号位是 1。因此答案为:
255: 0000 0000 1111 1111, 00FF
-254: 1111 1111 0000 0010, FF02
-1: 1111 1111 1111 1111, FFFF
10: 0000 0000 0000 1010, 000A
20: 0000 0000 0001 0100, 0014
-12: 1111 1111 1111 0100, FFF4
2. 将下列 16 位的有符号二进制数转换成十进制形式:
1000 1111 0000 1111, 0000 1011 0000 1111, 1111 1111 0000 1111
1111 1111 1111 1110, 1000 0000 0000 0000, 0000 0000 1100 1110
解答: -28913,2831,-241,-2,-32768,206
3. 将下列有符号 4 位 16 进制数转换为十进制数:
FC34, 7000, 00a5, 1004, 7F45, 7700, C0C0, 0FFF,FFFF
解答:-972,28672,165,4100,32581,30464,-16192,4095,-1,
第二章
1. 以下哪些是合法的 C++标识符,哪些不是?
2Peter
__day
_num_of
sch-name;
解答:第一个和第四个不是,因为标识符不能以数字开头,中间不能有除了“_”和“-”以外的
标点符号。其他的是合法的。
2. 编写一个程序,输入 3 个整数,输出他们的平均数。
解答:
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin >> a >> b >>c;
cout << (a+b+b)/3.0;
return 0;
}
3. 说出下面各个类型的变量所占的字节数和表示范围:
short , int, unsigned int, long long, unsigned char, char
解答:参见本章正文
4. 已知字母'a'的 ASCII 码是 97,请写出下面程序的输出结果:
#include <iostream>
using namespace std;
int main()
{
int n1 = 'a';
unsigned short n2 = 0xffff;
int n3 = n2;
short n4 = n2;
cout << n1 << "," << n2 << "," << n3 << "," << n4 << endl;
double f = 6/5;
n3 = 5/(double) 2;
char c = 102;
int n5 = 0xffffffff + 2;
cout << c << "," << f << "," << n3 << "," << n5 << endl;
return 0;
}
解答:
97,65535,65535,-1
f,1,2,1
解释:n4 是有符号的,会表示负数,n4=n2 执行后,n4 的内容是 n2 的拷贝,即 n4 最高位为 1,表示
负数,因此输出 n4,得-1
5. 计算下列表达式的值(答案可写十六进制)
(1) 5 * 4 / 3 + (7 % 2)
(2) 0xfff4 >> 2
(3) 0xea8 << 3
(4) 12 ^ 23
(5) ~24
(6) 0x7fff0000 >> 3
解答:
(1)7
(2)3ffd
(3)7540
(4)1b
(5)ffffffe7
(6)fffe000
6. 已知有 int a = -10, b = 20, c = 30; 请写出以下每个表达式计算结束后 a 的值。
(1) a = b = ++c
(2) a = b | c
(3) a = ( b > c)
(4) b ++ && (a += 10)
(5) a ^= b
(6) a <<= 5
(7) a >> 4
(8) a >>= 4
(9) a = sizeof(int)
(10) a = sizeof(char)
(11) a = sizeof(double)
(12) a+=a-=a*a
解答:
(1)31
(2)30 10100 | 11110 = 11110 即是 30
(3)0 (4)0
(5)-30 a=-10,其十六进制形式是:FFFF FFF6
(6)-320, 因左移 5 位后十六进制形式为 FFFF FEC0
(7)-10 不会改变 a
(8)-1 左移动 4 位后,高位补符号位 1,因此结果的为 FFFF FFFF
(9)4 (10)1 (11)8 (12) -220
7. a 是 int 型变量,请写一个表达式,表达式的值和 a 的第 i 位相等( i = 0 ... 31)。
解答:(a >> i) & 1
8. a 是 int 型变量,请写一个表达式,表达式的值等于 a 的第 i 位取反( i= 0 ... 31)。
解答:((a >> i) & 1)^1
9. 已知有 int 类型变量 a,b,请写一条语句,使得 a 的第 3 位到第 7 位和 b 相同,其余位都是 0。
解答:a = b & 0xf8;
10. 已知有 int 类型变量 a,b,c, 请写一条语句,使得 a 的第 3 位到第 7 位和 b 相同,其余位都和 c
相同。
解答:a = (b & 0xf8) | ( c & 0xff07);
11. 已知有 int 类型变量 a,b,请写一条语句,使得 a 的第 3 位到第 7 位和 b 的第 27 到 31 位相同,
其余位都是 0。
解答:a = ( b & 0xF8000000 ) >> 24;
12. 写出下面程序片断的输出结果:
(1)
int a = 0, b = 30;
bool c = a ++ || b ++;
cout << a << "," << b << "," << c << endl;
解答:1,31,1
(2)
int a = 0, b = 30;
bool c = a ++ && b ++;
cout << a << "," << b << "," << c << endl;
解答: 1,30,0
逻辑表达式是短路计算的,a++的值 0,即为假,则整个表达式 a ++ && b ++ 就可判断为假,后面
的 b++不会被执行,因此 b 的值还是 30
(3)
char c = 'a' + 4;
cout << c << "," << (int) c + 3 << endl;
解答:e,104
(4)
int a = 0,b = 10, c;
c = a++;
c = ++ b;
cout << a << "," << b << "," << c << endl;
解答:1,11,11
(5) int a = 0,b = 10;
bool c = ( a == b);
cout << c << endl;
解答:0
第三章
1. 编写程序,每读入 3 个整数,就将他们从大到小排序输出。读到连续的 3 个 0,则程序结束。
输入样例:
3 4 5
7 2 9
剩余103页未读,继续阅读
tianlaoshu
- 粉丝: 4
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2