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

《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;

(C)a=a%x;

(D)x=x?a; (D)逻辑

5.执行C++程序时出现的“溢出”错误属于( C )错误。 (A)编译

(B)连接

(C)运行

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 )。

word 可自由复制编辑

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

word 可自由复制编辑

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

11?1?11x?y1.

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

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

5.cot??1?x2?? 6.lg(a+ab+b)

??【解答】

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;

word 可自由复制编辑