《 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()
}

加载中…