《好学的C++程序设计》——2.5 习题

简介:

本节书摘来自异步社区出版社《好学的C++程序设计》一书中的第2章,第2.5节,作者: 张祖浩 , 沈天晴,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 习题

好学的C++程序设计
1.请回答下列问题:

(1)什么是变量存储空间、存储空间大小、存储空间地址、存储空间类型、存储空间内容?

(2)基本数据类型有哪几种?

(3)各基本数据类型的存储空间各占多少个字节?长度是几位?

2.请回答下列问题:

(1)设一个unsigned short型变量的二进制值为1011011011010111。试将它化为十六进制数和十进制数。此数在存储空间中是怎样安置的?作图表示之。

(2)试问一个int型数据长度多长?存储空间多大?能化成几位十六进制数?

3.试问下列各小题中的小段程序执行后,能否输出正确结果?为什么?

(1)short a=23456,b=12345,sum=a+b;

cout<<sum<<'\n';

(2)short c=-13579,d=-24680,sum=c+d;

cout<<sum<<'\n';

(3)unsigned short e=34567,f=45678,s=e+f;

cout<<s<<'\n';

4.请回答下列问题:

(1)试用标准科学记数法表示实数值123.4。

(2)试用一般形式表示实数值0.6789E+3。

(3)后缀F或f的实数是什么类型,无后缀的实数默认是什么类型?

5.请回答下列问题:

(1)字符‘0’、‘A’和‘a’的ASCII码的十进制值是多大?

(2)设有一个字符型变量的值为‘h’,试写出该变量存储空间中的二进制数。

6.试问下列三者在内存中各占多少个字节?如何用存储空间字节数运算符sizeof检测?

(1)‘w’ (2)“I am a boy.” (3)“为振兴中华而努力学习!”

7.对数据变量的访问是什么意思?

8.请回答:(1)别名有没有配给的存储空间?为何访问别名就是访问实名?(2)能用别名对某变量进行访问的关键何在?

9.已对a、b、c、d诸变量分别作出了如下声明:

(1)int a; (2)double b; (3)char c; (4)int *d;

试分别作出它们的别名声明(设它们的别名分别表示为e、f、g、h)。

10.程序如下,试写出程序运行结果。

#include<iostream>
using namespace std;
int main()
{
  int a=2,b=3,c,&u=a;
  int &v=b;
  a=a+b;
  v=u+v;
  c=u+v;
  cout<<"a="<<a<<'\t'<<"b="<<b<<'\t'
    <<"c="<<c<<'\t'<<"u="<<u<<'\t'
    <<"v="<<v<<'\n';
  return 0;
}

11.怎样能由变量名获得变量地址?

12.请回答下列问题:

(1)在图2.6(B)中,指针变量p的存储空间中存储着什么?

(2)用什么语句,能使图2.7(A)中的指针变量q不指向变量b,而指向变量a?

13.试作图表明下列语句全部执行以后,指针变量p1、p2、p3、p4的指向。

char a,b,c,d, *p1, *p2, *p3, *p4;
p1=&a;       p2=&b;
p3=p2=&c;     p4=p1=&d;

14.已作如下声明和赋值,试问要最终使p2指向c,p3指向a,p4指向c,p1指向b还需要添加哪些语句?

int a,b,c, *p1, *p2, *p3, *p4;
p2=p1=&b;

15.作图表示short型指针和double型指针所指的存储空间各有多大?

16.请回答下列问题:

(1)指针所指是什么意思?

(2)所指变量是什么意思?

(3)能用指针对某变量进行访问的关键何在?

(4)在什么情况下,访问指针所指就是访问所指变量?

17.程序如下,试写出其输出结果。

#include<iostream>
using namespace std;
int main()
{
  int a=18,b=6, *u=&a, *v=&b;
  *u=25;
  a=a-b;
  *v=10;
  cout<<"a="<<a<<'\n';
  cout<<"b="<<b<<'\n';
  return 0;
}

18.看图2.12,x、u、a分别表示3种变量,箭头表示指针关系。请回答下列问题:
image

(1)x的一级所指变量是哪个变量?x的二级所指变量是哪个变量?

(2)访问x的一级所指 x 就是访问哪个变量?访问x的二级所指 *x 就是访问哪个变量?

(3)u的一级所指是哪个变量?访问u的一级所指 *u 就是访问哪个变量?

(4)哪个变量的值是u的地址?哪个变量的值是a的地址?

19.在例2-4程序中,若将E行改为:

t=*x; *x=*y; *y=t;

并且,t的类型也作相应改变。试问:(1)程序中t的类型该作怎样改变?(2)改后程序运行结果会是怎样的?(3)图2.11中会有些什么变化?(4)写出改后整个程序。

20.声明一个指针p,而未进行初始化或赋值,此时可否对其所指*p进行赋值?为什么?

21.下列语句中的“&”和“*”各表示什么意思?

(1)&x;   (2)char x=&u;   (3)x=&a;  (4)t=x; x=y; **y=t;

(5)int x;  (6)char x=&a;    (7)x=a;  (8)double a, u=&a, **x=&u;

(9)int *x;   (10)char &x=a;   (11)c=u;  (12)double a=3,b=4,&x=a;

22.设只作了如下声明语句:

char *p1; int *p2; double x, *p3=&x;

然后分别执行如下各小题中的语句。试问有没有错误?错在何处?

(1)*p2=24680; (2)p2=p3; (3)p3=p1; (4)p1=&x;

23.程序如下,试将变量a、b、u、v之间的初期关系用简图表示之,程序运行完毕时关系有何变化?输出结果如何?

#include<iostream>
using namespace std;
int main()
{
  char a='A',b='B';
  char *u=&a, *v=&b,c;
  c=*u; *u=*v; *v=c;
  cout<<"a="<<a<<'\t';
  cout<<"b="<<b<<'\n';
  return 0;
}

24.怎样声明常值变量、常值指针变量、只读指针变量和只读别名变量?

25.试设计一个程序,声明3个double型变量a、b和c。对a输入一个实数,对b输入一个实数,将二者之和赋给c。请输出c之值。

26.对题10的程序重新改写。在用别名访问变量的地方,改为用指针所指访问变量,其他需要改变的地方作相应改变,最终达到同样的效果。写出改变后的程序。

27.对题23的程序重新改写。在用指针所指访问变量的地方,改为用别名访问变量,其他需要改变的地方作相应改变,最终达到同样的效果。写出改变后的程序。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
4天前
|
存储 人工智能 算法
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
97 0
|
4天前
|
存储 C++ 开发者
C++程序设计基础:构建稳固的编程基石
C++程序设计基础:构建稳固的编程基石
25 1
|
4天前
|
存储 安全 编译器
【C++初阶】10 .习题①
【C++初阶】10 .习题①
39 2
|
4天前
|
消息中间件 监控 安全
【C/C++ 程序设计】Linux 进程管理 设计 获取进程信息 策略权衡
【C/C++ 程序设计】Linux 进程管理 设计 获取进程信息 策略权衡
81 0
|
4天前
|
设计模式 算法 C语言
【C/C++ 程序设计】 C++如何适配他人的接口(How to Adapt to Others‘ Interfaces in C++)
【C/C++ 程序设计】 C++如何适配他人的接口(How to Adapt to Others‘ Interfaces in C++)
76 1
|
4天前
|
C++
C++程序设计:探索函数与模块化的魅力
C++程序设计:探索函数与模块化的魅力
19 0
|
4天前
|
存储 数据安全/隐私保护 C++
基于C++的面向对象程序设计:类与对象的深入剖析
基于C++的面向对象程序设计:类与对象的深入剖析
43 1
|
5月前
|
C++
C++程序设计—类与对象
C++程序设计—类与对象
41 0
|
5月前
|
程序员 C++
C++程序设计函数部分(定义+实例)
C++程序设计函数部分(定义+实例)
41 0
|
6月前
|
存储 C++
C++面向对象语言程序设计期末实验
C++面向对象语言程序设计期末实验
38 0