《c++语言程序设计教程》习题及解答

2019-08-31 12:42

《c++语言程序设计教程》习题及解答

第1章 C++语言概述

练习题1

1.1 判断题

×1.C++语言和C语言都是面向对象的程序设计语言。 √2.面向对象方法具有封装性、继承性和多态性。

√3.C语言是C++语言的一个子集。C++语言继承了C语言。 ×4.C++语言程序与C语言程序一样都是函数串。 ×5.C++语言支持封装性和继承性,不支持多态性。 √6.C++语言比C语言对数据类型要求更加严格了。

√7.C++语言对C语言进行了一次改进,使得编程更加方便了。

×8.C++源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。 √9.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。 √10.C++语言程序的实现也要经过编辑、编译连接和运行3个步骤。 1.2 单选题

1.下列关于面向对象概念的描述中,错误的是( C )。 A.面向对象方法比面向过程方法更加先进

B.面向对象方法中使用了一些面向过程方法中没有的概念 C.面向对象方法替代了结构化程序设计方法

D.面向对象程序设计方法要使用面向对象的程序设计语言

2.下列各种高级语言中,不是面向对象的程序设计语言是( D )。 A.C++ B.Java C.VB D.C 3.下列关于类的描述中,错误的是( A )。 A.类就是C语言中的结构类型 B.类是创建对象的模板 C.类是抽象数据类型的实现

D.类是具有共同行为的若干对象的统一描述体 4.下列关于对象的描述中,错误的是( C )。 A.对象是类的一个实例

B.对象是属性和行为的封装体 C.对象就是C语言中的结构变量

D.对象是现实世界中客观存在的某种实体

5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是( C )。 A.提取符是对右移运算符(>>)重载得到的 B.插入符是对左移运算符(<<)重载得到的

C.提取符和插入符都是双目运算符,它们要求有两个操作数 D.提取符和插入符在输入/输出语句中不可以连用 1.3 填空题

1.C++语言具有面向对象方法中要求的三大特性: 封装性 、 继承性 和 多态性 。 2.C++程序中,有且仅有一个 主 函数。

第 1 页 共 77 页

3.C++程序是由 类 和 函数 组成的。 4.C++源程序的扩展名是 cpp 。

5.使用插入符进行标准输出文件输出时,使用的输出流对象名是 cout 。 1.4 上机调试下列程序,并分析输出结果 1.

#include void main() {

int i,j;

cout<<\ cin>>i>>j;

cout<<\

cout<<\ }

假定,输入数据如下:

Enter x y:5?9? 答: i=5,j=9

i+j=14,i *j=45

2.

#include int max(int,int); void main() {

int a,b,c; a=5; b=8;

c=max(a,b);

cout<<\ }

int max(int x,int y) {

return x>y?x:y; }

答: max(5,8)=8

3.文件e1.4.3.cpp内容如下:

#include void f1(),f2(); void main() {

cout<<\在北京.\\n\ f1(); f2();

cout<<\再见.\\n\ }

文件1.4.3-1.cpp内容如下:

#include void f1() {

cout<<\在上海.\\n\ }

文件1.4.3-2.cpp内容如下:

#include void f2() {

cout<<\在广州.\\n\ }

第 2 页 共 77 页

答: 在北京。 在上海。 在广卅。 再见。

1.5 编译下列程序,修改所出现的错误,获得正确结果 1.

main() {

cout<<\ }

答:修改后如下:

#include void main() {

cout<<\ }

2.

#include void MAIN() {

cin>>a; int b=a+a;

cout<<\ }

答:修改后如下:

#include void main() {

int a;

cin>>a; int b=a+a;

cout<<\”<

3.

#include void main() {

int i,j; i=5;

int k=i+j;

COUT<<\ }

答:

#include void main() {

int i,j; j=10; i=5;

int k=i+j;

cout<<\ }

1.6 通过对1.5题中3个程序的修改,回答下列问题

1. 从1.5题中第1题程序的修改中,总结出编程应该注意哪些问题。

第 3 页 共 77 页

答:C++程序要包含iostraem.h,main()函数前应加类型说明符void。

2. C++程序中所出现的变量是否必须先说明后使用?在函数体内说明变量时是否都要放在

函数体的开头?

答:C++程序中所出现的变量必须先说明后使用。在函数体内说明变量时不一定要放在函数体的开头。

3. 使用cout和插入符(<<)输出字符串常量时应注意什么?

答:可输出一个字符串常量,也可输出多个字符串常量。每输出一个字符串常量要使用一次插入符(<<)。

4. 程序中定义过的变量,但没有赋值,也没有默认值,这时能否使用? 答:不能使用。因为它的值不确定。

5.一个程序编译通过并已生成执行文件,运行后并获得输出结果,这一结果是否一定正确? 答:不一定正确。可能还有算法错。

第2章 变量和表达式及数组

练习题2

2.1 判断题

√ 1.C++语言的合法字符集与C语言的完全相同。 × 2.标识符规定大小写字母没有区别。

× 3.C++程序中,不得使用没有定义或说明的变量。 √ 4.变量的存储类指出了变量的作用域和寿命。

√ 5.变量的数据类型指出了变量在内存中存放的字节数。 × 6.定义变量时,变量的存储类说明符不得省略。

× 7.自动类变量与内部静态类变量的作用域和寿命都是相同的。 × 8.自动类变量可以定义在函数体外,这时应加说明符auto。 × 9.外部类变量与外部静态类变量的作用域是相同的。

× 10.变量被定义后是否有默认值与存储类无关,与数据类型有关。

√ 11.C++程序中,通常使用const来定义符号常量,定义时必须指出类型。 × 12.变量被定义或说明后,它一定具有有意义的值。

× 13.字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用单撇号。

× 14.所有变量的可见性和存在性都是一致的。

√ 15.变量在它的作用域内一定是可见的,又是存在的。

√ 16.C++语言中除了包含C语言的所有运算符外,还规定自身的若干个运算符。 √ 17.增1和减1运算符以及赋值运算符都具有副作用。

× 18.增1和减1运算符不仅可以作用在变量上,也可以作用在表达式上。

× 19.关系运算符可以用来比较两个字符的大小,也可以比较两个字符串的大小。 × 20.移位运算符在移位操作中,无论左移还是右移,对移出的空位一律补0。 × 21.变量的类型高低是指它被存放在内存的地址值大小。

× 22.使用sizeof运算符可以求得某种类型和某个变量在内存中占的字节数,不能求得某个表达式的类型在内存中所占的字节数。

√ 23.在C++语言中,非保值转换应用强制类型转换。

第 4 页 共 77 页

√ 24.表达式中各操作数计算顺序取决于运算符的优先级和结合性。

√ 25.在C++程序中,变量值是可以改变的,变量的地址值是不能改变的。 √ 26.数组中所有元素的类型都是相同的。 × 27.定义数组时必须对数组进行初始化。

√ 28.数组某维的大小可以用常量表达式,不可用变量名。

× 29.定义一个数组没有对它进行初始化,则该数组的元素值都是无意义的。

√ 30.用来给数组进行初始化的初始值表内的数据项的个数必须小于等于数组元素个数。 × 31.在定义一个数组时,对其部分元素进行了初始化,没有初始化的元素的值都是无意义的。 √ 32.数组被初始化时是判越界的。 × 33.字符数组就是字符串。

√ 34.使用printf( )函数输出显示字符串时使用格式符%s,输出显示字符时使用%c或%d。 × 35.给数组元素赋值时只可用常量表达式。 2.2 单选题

1.下列变量名中,非法的是( C )。 A.A25 B.My_car C.My-str D.abc 2.下列常量中,十六进制int型常量是( A )。 A.0x5f B.x2a C.046 D.7a 3.下列常量中,不是字符常量的是( B )。 A.'\\n' B.\C.'x' D.'\\7'

4.在函数体内定义了下述变量a,a的存储类为( D )。 int a;

A.寄存器类 B.外部类 C.静态类 D.自动类 5.下列关于变量存储类的描述中,错误的是( C )。 A.任何变量定义后都具有一个确定的存储类 B.变量的存储类确定了变量的作用域和寿命 C.定义变量时没有存储类说明符者一律为自动类

D.内部静态类变量和外部静态类变量的存储类说明符都是static 6.下列关于变量数据类型的描述中,错误的是( A )。 A.定义变量时int型数据类型可以省略

B.变量的数据类型可以决定该变量占内存的字节数 C.变量的数据类型是可以被强制的 D.变量的数据类型是有高低之分的 7.长双精度浮点型常量的后缀是( C )。 A.U B.F C.L D.无

8.下列运算符中,不能用于浮点数操作的是( D )。 A.++ B.+ C.*= D.&(双目) 9.下列运算符中,优先级最高的是( A )。 A.*(双目) B.|| C.>> D.%= 10.下列运算符中,优先级最低的是( B )。

A.== B.?:

第 5 页 共 77 页


《c++语言程序设计教程》习题及解答.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三相短路电流计算

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: