当前位置:文档之家› C++习题第02章基本数据类型、运算符与表达式

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,则条件表达式a>b?a:b>c?a:c的值为()。

A) 0 B) 2 C) 4 D) 5(5)若有a=1,b=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/2+(0xa&15)(d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少?(e) 设int a=1,b=2,c=3;,求表达式a<b!=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后变量c的值是多少?(k) 写出判断字符型变量s1的值为’0’~’9’的正确的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/3πR3(c)5/9(F-32)(d)a≤b≤c(4)#include<iostream.h>void 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){cout<<x+y+z<<endl;}(5)#include<iostream.h>viod main(){ int x,y=5;If(x=y!=0)cout<<″x=″<<x<<endl;elsecout<<″x=″<<x++<<endl;cout<<endl;}4.编程题(1)编写程序,提示用户输入三角形的三条边长,判断该三角形是否为直角三角形,若是则输出结果以及三角形面积。

(2)编写程序,求解各种数据类型的存储长度并显示出来,在其中找出存储长度最大和最小的两种数据类型并输出。

(3)编写程序输入一个华氏温度,将其转换为摄氏温度并输出。

已知华氏稳定转换为摄氏度的计算公式如下:C=(F-32)*5/9其中,F为华氏温度,C为摄氏温度。

(4)编写程序输入一个十进制表示的正整数,将其转化为二进制表示并输出结果。

习题参考答案第1章C++语言概述1.填空题(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,>>(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符<<共同完成输出的功能,应改为cout<<" Input your name:";(4)应改为#include <iostream.h>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<='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.1415926*R*R*R(c)5.0/9.0*(F-32)(d)b>=a&&b<=c(4)364143(5)x=14.编程题(略)第3章C++的控制语句1.选择题(1)B (2)A (3)A (4)C (5)A2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章函数1.填空题(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24(5)2,1,4,1,3,2,1,4.简答题(略)5.编程题(略)第5章构造数据类型1.选择题(1)C (2)D (3)A (4)B (5)C2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)65535,21(4)419(5)6904(6)43214.编程题(略)第6章类和对象1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private(5)成员函数(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(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);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include <iostream.h>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,public,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)本题的错误主要是成员函数的访问权限问题:由于派生类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的析构函数被调用(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)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类与标准模板库STL 1.填空题(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.编程题(略)。

相关主题