《 C++ 》课后题参考答案(详细版 第1 2章)
(2011-01-04 17:58:42)| 标签: 校园 | 分类: ❀.学习の栈 | 
第一章 习题
一、 
1. 
A.BASIC; 
2. 
A.Algol 60; 
3. 
A. 
数据抽象; 
4. 
A. 
重载; 
5. 
A. C语言是C++的一个子集; 
C. C++对C语言进行了一些改进; 
6. 
A.对象就是C语言中的结构变量; 
C. 
对象是一个状态和操作(或方法)的封装体; 
7. 
A.类是抽象数据类型的实现; B.类是具有共同行为的若干对象的统一描述体;
C.类是创建对象的样板; 
8. 
A.增加了一些新的运算符; 
C.规定函数说明必须用原型; 
9. 
A.连接符; 
10. 
A.,; 
二、判断下列描述的正确性,对者划√,错者划×。
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 在C++编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。√
11. 预处理过程是一般编译过程之后连接过程之前进行的。×
12. 源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息。×
三、分析下列程序的输出结果
1.#include<iostream.h>
void main()
{
cout<<"BeiJing"<<" ";
cout<<"ShangHai"<<"\n ";
cout<<"TianJing"<<endl;
}
1. 
TianJing
2. #include<iostream.h>
void main()
{
int a,b;
cout<<"input a,b:";
cin>>a>>b;
cout<<"a="<<a<<","<<"b="<<b<<endl;
cout<<"a-b="<<a-b<<"\n";
}
假定,输入如下两个数据:8 5
2. 
A=8,b=5
A-b=3
3.#include <iostream.h>
void main()
{
char c=’m’;
int d=5;
cout<<"d="<<d<<":";
cout<<"c="<<c<<"\n";
}
D=5,c=m
四、编译下列程序,改正所出现的各种错误信息,并分析输出结果:
1、 
{
cout<<"This is a string!";
}
1.#include<iostream.h>
 
{
cout<<”This is a string!”;
}
输出结果:This is a string!
2、 
void main( )
{
cin>>x;
int p=x*x;
cout<<"p=<<p<<\n";
}
#include<iostream.h>
void main( )
{
int x;
cin>>x;
int p=x*x;
cout<<”p=”<<p<<”\n”;
}
输出结果:3
 
3、 
void main ( )
{ int i,j;
i=5;
int k=i+j;
cout<<"i+j="<<k<<"\n";
}
#include <iostream.h>
void main ( )
{int i,j;
i=5;
j=3;
int k=i+j;
cout<<”i+j=”<<k<<”\n”;
}
输出结果:I+j=8
五、通过对第四题中三个程序的所出现问题的修改,回答下列问题:
1. 
2. 
3. 
4. 
5. 
 
第二章 习题
 
一、 
1、 
A.2;
B。
4;C。
6;
D 
2、 
A.
char; 
3、 
A.0xaf;
B. 0X1b; 
4 、下列double型常量表示中,( )是错误的。
 
5、下列字符常量表示中,( )是错误的。
A. ‘\105’ ; 
6、下列字符串常量表示中, ( )是错误的。
A."\"yes\"or\"No\""; B."\’OK!\’"; C.
"abcd\n"; 
7、下列变量名中,( )是合法的。
A.CHINA; B. byte-size; 
8、在int a[5]={1,3,5};中,数组元素a[1]的值是( )。
 
9、在int b[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是( )。
 
10、下列给字符数组进行初始化中,( )是正确的。
 
C. char s3[][3]={‘a’,’x’,’y’}; 
11、在int a=3,*p=&a; 中,*p的值是( )。
A. 变量a的地址值; B.无意义; C. 变量p的地址值;D.3
12、对于int *pa[5];的描述,()是正确的。
A. 
B. 
C. 
D. 
13、下列关于指针的运算中,()是非法的。
A. 两个指针在一定条件下,可以进行相等或不等的运算;
B. 可以用一个空指针赋值给某个指针;
C. 一个指针可以加上两个整数之差;
D.两个指针在一定条件下,可以相加。
14、指针可以用来表示数组元素,下列表示中()是错误的。
已知:int a[3][7];
A.
*(a+1)[5]; 
15、下列表示引用的方法中,() 是正确的。
已知:int m=10;
 
16、下列各运算符中,( )可以作用于浮点数。
A.++; 
17、下列各运算符中,()不能作用于浮点数。
A./; 
18、下列各运算符中,()优先级最高。
A. +(双目);B. *(单目);
C.  
19、下列各运算符中,()优先级最低。
 
20、下列各运算符中,()结合性从左到右。
A. 三目;B. 赋值; C.比较; D.单目
21、下列表达式中,()是非法的。
已知:int a=5; float b=5.5;
A. a%3+b; B. b*b&&++a; C.(a>b)+(int(b)%2); D. -- -a+b
22、下列表达式中,()是合法的。
已知:double m=3.2; int n=3;
A. m<<2; B. (m+n)|n C. !m*=n; D. m=5,n=3.1,m+n
23、下列关于类型转换的描述中,()是错误的。
A. 
B. 
C. 
D. 
24、下列各表达式中,()有二义性。
已知:int a(5); b(6);
A. a+b>>3; B. ++a+b++; C.b+(a=3); D. ( a=3)-a++
二、 
1、 
2、 
3、 
4、 
5、 
6、 
7、 
8、 
9、 
10、 
11、 
12、 
13、 
14、 
15、 
16、 
三、 
(下列各表达式是相互独立的,不考虑前面对后面的影响。)
1、 
A.x|y; 
| A | B | C | D | E | F | 
| 47 | 38 | 9 | 4294967238 | 104 | 2 | 
 
2、 
A.++i-j--; 
 
| A | B | C | D | E | F | 
| 6 | 50 | 1 | -16 | 1 | 20 | 
 
3、 
A.!a&&b++; 
E.a+=b%=a+b; F.a!=b>2<=a+1.
| A | B | C | D | E | F | 
| 0,5,3 | 1,5,3 | 3,1,3 | 15,10,4 | 8,8,3 | 1,5,3 | 
 
4、 
A.d+-rd; 
 
| A | B | C | D | 
| 0 | 25 | 0 | 0 | 
 
5、 
A.3+2<<1+1; 
E.!(‘3’>’5’)||2<6; F.6>=3+2-(‘0’-7).
| A | B | C | D | E | F | 
| 20 | 22 | -3 | 0 | 1 | 1 | 
 
四、 
1. 
2. 
3. 
其中,F表示华氏温度,C表示摄氏温度。
#include <iostream.h>
void main()
 
 
 
 
 
 
4. 
 
#include <iostream.h>
 
void main()
{
 
 
 
 
 
}
 
5. 
 
#include <iostream.h>
void main()
 
 
 
 
 
 
}

 加载中…
加载中…