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

    xiaoxiao2024-05-10  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种变量,箭头表示指针关系。请回答下列问题:

    (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的程序重新改写。在用指针所指访问变量的地方,改为用别名访问变量,其他需要改变的地方作相应改变,最终达到同样的效果。写出改变后的程序。

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

    相关资源:七夕情人节表白HTML源码(两款)
    最新回复(0)