1、C+习题第02章 基本数据类型运算符与表达式doc资料C+习题第02章 基本数据类型、运算符与表达式第02章 基本数据类型、运算符与表达式1. 选择题(1)在32位机中,int型字宽为( )字节。A) 2 B) 4 C) 6 D) 8(2)下列十六进制的整型常数表示中,错误的是( )。A) 0xad B) 0X11 C)0xA D) 4ex(3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是( )。A) 0 B) 1 C) 2 D) 3(4)若有a=2,b=4,c=5,则条件表达式ab?a:bc?a:c的值为( )。A) 0 B) 2 C) 4 D) 5(5)若有a=1,b=2,则
2、表达式+a=b的值为( )。A) 0 B) 1 C) 2 D) 32简答题(1)指出下列数据中哪些可作为C+的合法常数?(a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) A(f) 55 (g) (h) 0XCD (i) 8E7 (j) (2)指出下列符号中那些可作为C+的合法变量名?(a) ab_c (b) (c) 3xyz (d) if (e) cin(f) a+b (g) NAME (h) x! (i) _temp (j) main(3)根据要求求解下列各表达式的值或问题。(a) (int)3.5+2.5(b) (float)(5/2)2.4 (c) 21
3、/2+(0xa&15) (d) 设int i=10,则表达式i&(i=0)&(+i)的值是多少?该表达式运算结束后变量i的值为多少? (e) 设int a=1,b=2,c=3;,求表达式ab!=c的值。(f) 设int i=1;,则i+|i+|i+的值是多少?表达式运算结束后变量i的值是多少?(g) 设int a,b;,求表达式(a=1,a+,b=1,a&b+)?a+1:a+4的值。(h) 设int x=5;,求表达式x+=x-=x*x的值。(i) 设int x=0,y=2;,则语句if(x=0)y+;执行完毕后变量y的值是多少?(j) 设int a=2,b=3;,执行表达式c=b*=a-1后
4、变量c的值是多少?(k) 写出判断字符型变量s1的值为09的正确的C+表达式。(l) 若给定条件表达式(N)?(c+):(c-),写出与N功能等价的表达式。3读程序写结果(1)设有以下程序段,请根据要求回答相应问题。Int a,b,c,x;a=2;b=3;c=7;d=19;x=d/b%a;x=d%c+b/a*5+5;(2)设有以下程序段,请根据要求回答相应问题。Int a,b,c;a=b=c=0;a=(+b)+(+c);a=b=c=0;a=(b-)+(-c);(3)写出与下列数字表达式相对应的C+表达式。(a)a2+2ab+b2(b)4/3R3(c)5/9(F-32)(d)abc(4)#inc
5、ludevoid func(int x,int y=10,int z=20);void main()func(11,12,13);func(11);func(11,12);void func(int x,int y,int z) coutx+y+zendl;(5)#includeviod main() int x,y=5;If(x=y!=0) coutx=xendl;else coutx=x+endl;cout(7)/(8)对数据的操作2判断题(1)对 (2)错 (3)错 (4)错 (5)错3改错题(1)没有函数体,应改为void main() ;(2)语句没有分号,应改为using name
6、space myspace;(3)cout和操作符共同完成输出的功能,应改为cout Input your name:;(4)应改为#include 4简答题 (略)5编程题 (略)第2章 基本数据类型、运算符与表达式1 选择题(1)B (2)D (3)B (4)D (5)B2简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)40(i)2(j)3(k)s1=0&s1=a&b成员名,(*指针变量名).成员名(9) 构造,析构,构造,析构(10) 常量数据,引用数据(
7、11) 全局,数据类型,所属的类(12) 常成员,只读(13) 成员,友元(14) 类数据成员,类成员函数(15) this(16) 浅拷贝2选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有
8、实现(4)构造函数名point()应与类名同名,为Point 没有头文件包含#include 4读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2000t=3.14(3)Sta:fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)575简答题 (略)6编程题 (略)第7章 继承和派生1填空题(1)继承(2)基类,派生类(3)private,protected,pu
9、blic,private(4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2选择题(1)B (2)A (3)B (4)C (5)B(6)A (7)D (8)B (9)B (10)B(11)D (12)B3改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2000;和y.b3=3000;语句。(2)本题的错误主要是成员函数的访问权
10、限问题:由于派生类Derived是基类Base的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。对于类的不可访问和保护成员在类外是不能访问的,故main函数中的语句obj.funl();,obj.fun2(); 和obj.fun3(); 是错误的。4读程序写结果题(1)d=110b=190d=110d=110(2)d=110b=190d=110b=90(3)基类B1的构造函数被调用基类B3的构造函数被调用基类B2的构造函数被调用派生类D的构造函数被调用派生类D的析构函数被调用基类B2的析构函数被调用基类B3的析构函数被调用基类B1的析构函
11、数被调用(4)ABCDD(5)ABDD(6)AABDD(7)ABCDD(8)5255简答题 (略)6编程题 (略)第8章 运算符重载1填空题(1) 函数重载(2) 重载为类的成员函数,重载为类的友元函数(3) Operator(4) 1,2(5) 友元2选择题(1)B (2)D (3)A (4)D (5)B(6)C (7)C (8)C3简答题 (略)4编程题 (略)第9章 模板1填空题(1)类模板,函数模板(2)类,对象(3)数据类型(4)fun(5)2选择题(1)C (2)B (3)C (4)B (5)D3简答题 (略)4编程题 (略)第10章 文件1填空题(1)FILE,stdio.h(2
12、)stdio.h,fopen,fclose(3)顺序,随机(4)cin,cout,(5)ios(6)fstream,open,close(7)文件指针的当前位置,文件开头,文件尾2选择题(1)B (2)B (3)A (4)D (5)B(6)D (7)C (8)B (9)A (10)B3简答题 (略)4编程题 (略)第11章 string类与标准模板库STL1填空题(1)字符数组,string类(2)string(3)容器,迭代器,算法(4)顺序,关联(5)指针(6)函数模板2简答题 (略)3编程题 (略)第12章 异常处理1填空题(1)throw,try,catch(2)多(3)数据类型(4)catch()(5)相反2判断题(1)错 (2)对 (3)错 (4)错 (5)错3简答题 (略)4编程题 (略)