C++程序设计基础(第4版)(上)习题解答

更新时间:2023-10-09 23:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C++程序设计基础》(第4版)(上)

习题与解答

第1章基本数据与表达式

1.1 选择题

1.一个最简单的C++程序,可以只有一个(C)。 (A)库函数 (A)解释 (A)冒号

(B)自定义函数 (B)汇编 (B)分号 (B)x=x/a;

(C)main函数

(C)编辑 (C)空格

(D)空函数

(D)编译 (D)花括号

2.用C++语言编写的源程序要成为目标程序必须要经过(D)。 3.C++程序中的简单语句必须以(B)结束。

4.假设有说明 int a=0; double x=5.16;,则在以下语句中,(C)属于编译错误。 (A)x=a/x; (A)编译

(C)a=a%x;

(D)x=x?a;

5.执行C++程序时出现的―溢出‖错误属于(C)错误。

(B)连接

(C)运行

(D)逻辑

6.在下列选项中,全部都是C++关键字的选项为(C)。 (A)while IF Static (C)sizeof case extern

(B)break char go (D)switch float integer

7.按C++标识符的语法规定,合法的标识符是(A)。

(A)_abc (B)new (C)π (D)\8.在C++语句中,两个标识符之间(A)不能作为C++的分隔符。 ..(A)数字 (A)0a0 (A)0x11

(B);

(C):

(D)+ (D)0x10 (D)0x1f

9.下列正确的八进制整型常量表示是(B)。

(B)015 (B)0xaf

(C)080 (C)0xg

10.下列错误的十六进制整型常量表示是(C)。

11.在下列选项中,全部都合法的浮点型数据的选项为(B)。 (A)?1e3.5 15. 2e?4

(B)12.34 ?1e+5 0.1E?12 (D)5.0e(1+4) 0.1 8e+2

(D)'\\101'

(C)0.2e?2 ?12345. e?5

12.在下列选项中,正确的字符常量为(D)。 (A)\ (B)'name' (C)a 13.在下列选项中,(D)不能交换变量a和b的值。 ..(A)t=b; b=a; a=t; (C)t=a; a=b; b=t;

(B)a=a+b; b=a-b; a=a–b; (D)a=b; b=a;

14.关于下列语句,叙述错误的是(A)。

int i=10,?p=&i; (A)p的值为10

(B)p指向整型变量i

(C)?p表示变量i的值 (D)p的值是变量i的地址 15.有以下变量说明,下面不正确的赋值语句是(B)。 ...int a=5, b=10, c; int ?p1 = &a, ?p2 = &b; (A)?p2 = b; (C)p2 = p1;

(B)p1 = a; (D)c = ?p1 ?(?p2);

16.有以下变量说明,下面正确的语句是(B)。 int a=10, b; int &pa=a, &pb=b; (A)&pb = a; (B)pb = pa;

(C)pb = &pa;

(D)?pb = ?pa;

17.执行下面语句序列后,a和b的值分别为(B)。

int a=5, b=3, t; int &ra=a; int &rb=b; t=ra; ra=rb; rb=t; (A)3和3 (A)<=

(B)3和5

(C)5和3

(C)+

(D)5和5

(D)?

18.在下列运算符中,( D)优先级最高。

(B)?=

19.在下列运算符中,(D)优先级最低。 (A)! (A)1 (A)1

(B)&& (B)2 (B)2

(C)!= (C)3 (C)3

(D)? : (D)4 (D)4

20.已知int i=1, j=2;,则表达式 i+++j 的值为(C)。 21.已知int i=1, j=2;,则表达式 ++i+j 的值为(D)。 22.在下列表达式选项中,(C)是正确。 (A)++(a++) (A)0

(B)a++b (B)1

(C)a+++b (C)2

(D)a++++b

(D)3

23.已知 int i=0, j=1, k=2;,则逻辑表达式 ++i||? ?j&&++k 的值为(B)。 24.执行下列语句后,x的值是(D),y的值是()。

int x, y;

x=y=1; ++x || ++y; (A)不确定 (B)0 (C)1 (D)2 25.设x为整型变量,不能正确表达数学关系 1<x<5 的C++逻辑表达式是(A)。 ..(A)1< x <5

(B)x==2||x==3||x==4

(D)! (x<=1)&&! (x>=5)

(C)1

26.已知 int x=5;,执行下列语句后,x的值为(C)。 x+=x-=x?x; (A)25

(B)40

(C)–40

(D)20

27.设 int a=1, b=2, c=3, d=4;,则以下条件表达式的值为(A)。 a

(B)2

(C)3

(D)4

28.以下逗号表达式的值为(D)。 (x=4?5, x?5), x+25 (A)25

(B)20

(C)100

(D)45

1.2 根据下列数学表达式写出C++算术表达式

11?1?11x?y1.

2.x{x[x(ax+b)+c]+d}+e

10?a?b??? 4.1?cos48° 3.ln?1??a?b?2???1?x2?5.cot??1?x2??

??【解答】

6.lg(a2+ab+b2)

1. 1/(1 + 1/(1 + 1/(x + y)))

2. x * ( x * ( x * ( a * x + b ) + c ) + d ) + e 3. log( 1 + pow( fabs( ( a + b )/( a – b ) ),10) 4. sqrt( 1 + 3.14159/2 * cos( 48 * 3.14159/180 ) ) 5. 1/tan( ( 1 - x*x )/( 1 + x*x))

或者 cos( ( 1 - x*x )/( 1 + x*x ) )/sin( ( 1 - x*x )/( 1 + x*x ) ) 6. log10( a * a + a * b + b * b )

1.3 用逻辑表达式表示下列条件

1.i被j整除 3.1≤x<10

2.n是小于正整数k的偶数 4.x、y其中有一个小于z

5.y?[–100,–10],并且y?[10,100]

6.坐标点(x, y)落在以(10, 20)为圆心,以35为半径的圆内 7.三条边a,b和c构成三角形

8.年份Year能被4整除,但不能被100整除,或者能被400整除 【解答】 1. i%j == 0

2.(n

3. 1<=x && x<10 4. x=-100 && y<=-10 ) && !( y>=10 && y<=100 ) 6. sqrt(pow((x-10),2) + pow((y-20),2))< 35 7. a+b>c && b+c>a && c+a>b

8. (year%4 == 0) && (year0!=0)||(year@0==0)

1.4 阅读下列程序,写出运行结果

1.

#include using namespace std;

int main() {

int a = 1, b = 2; bool x, y;

cout << (a++)+(++b) << endl; cout << a % b << endl; x = !a>b; y = a-- && b; cout << x << endl; cout << y << endl; } 【解答】

4 2 0 1 2.

#include using namespace std; int main() {

int x,y,z,f; x = y = z = 1; f = --x || y-- && z++; cout << \ cout << \ cout << \ cout << \} 【解答】 x=0 y=0 z=2 f=1 3.

#include #include using namespace std; int main() {

int a=123; int &ra=a; int ?pa=&a;

cout<【解答】 123 173 7b

1.5 思考题

1.什么是数据类型?变量的类型定义有什么作用? 【解答】

数据―类型‖是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关的操作。定义一个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据。

2.普通数据类型变量和指针类型变量的定义、存储和使用方式有何区别?请编写一个程序验证之。 【解答】 变量类型 数据 指针 定义 类型标识符 类型 * 标识符 存储 数据值 地址值 使用方式 通过名访问即直接访问对变量内容操作 通过指针变量的地址值间址访问对象 验证程序:

#include using namespace std; int main() { int a,b,c; cout<<\ cin>>a>>b>>c;

//对普通数据类型变量赋值

//用变量地址值初始化指针变量 /名访问,输出a,b,c的值

int *pa=&a,*pb=&b,*pc=&c;

cout<<\ //间址访问,输出pa,pb,pc指向的变量的赋值

cout<<\ //输出指针变量的地址值 cout<<\

}

3.什么是数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。 【解答】

引用是为数据对象定义别名。引用与指针有以下几点区别: (1)引用名不是内存变量,而指针变量要开辟内存空间。

(2)引用名需要在变量定义与变量名绑定,并且不能重定义;指针变量可以在程序中赋给不同的地址值,改变指向。

(3)程序中用变量名和引用名访问对象的形式和效果一样;指针变量通过间址访问对象。 验证程序:

#include using namespace std; int main () { int a; cout<<\cin>>a; int ra=a; int *pa=&a;

cout<<\的值:\

本文来源:https://www.bwwdw.com/article/q5zf.html

Top