《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 8. (year%4 == 0) && (year0!=0)||(year@0==0) 1.4 阅读下列程序,写出运行结果 1. #include word 可自由复制编辑