华南理工大学C++程序设计基础(第3版)

更新时间:2024-06-01 03:10:01 阅读量: 综合文库 文档下载

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

习题1及其解答

1.1选择题

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

(b) 自定义函数 (b) 汇编 (b) 分号

(c) main函数

(d) 空函数

2.用C++语言编制的源程序要变为目标程序必须要经过( d )。

(c) 编辑 (c) 空格

(d) 编译 (d)花括号

3. C++程序中的简单语句必须以( b )结束。

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

(b) x=x/a;

(c) a=a%x;

(d) x=x*a; (d) 逻辑

5. 执行C++程序时出现的“溢出”错误属于( c )错误。 (a) 编译 (b) 连接 (a) while IF Static

(c) 运行

6.下列选项中,全部都是C++关键字的选项为( c )。

(b) break char go (d) switch float integer

(d) “age“ (d) + (d) 0x10 (d) 0x1f

(c) sizeof case extern

7. 按C++标识符的语法规定,合法的标识符是( a )。 (a) _abc (b) new (c) π 8.C++语句中,两个标识符之间( a )不能作为C++的分隔符。 ..(a) 数字 (a) 0a0 (a) 0x11

(b) ;

(c) :

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) “a” (b) ?name? (c) a 13.下列选项中,( d )不能交换变量a和b的值。 ..(a) t=b; b=a; a=t; (c) t=a; a=b; b=t; 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 ;

(b) p1 = a ;

(d) a=b; b=a;

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

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

1

(c) p2 = p1 ; (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

(d) 5和5

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

(b) *=

(c) +

(d) *

(d) ? :

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

(b) &&

(c) !=

20.设 int i=1, j=2; 则表达式 i+++j 的值为( c )。

(b) 2 (b) 2

(c) 3 (c) 3

(d) 4 (d) 4

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的值是( c )。 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

(b) 40

(c) –40

(d) 20

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

a < b ? a : c < d ? c : d (a) 1

(b) 2

(c) 3

(d) 4

28. 以下逗号表达式的值为( d )。

( x = 4 * 5, x * 5 ), x + 25 (a) 25

(b) 20

(c) 100

(d) 45

26. 已知 int x=5; 执行下列语句后,x的值为( c )。

2

1.2把下列数学表达式写成c++算术表达式

1.

1?1?111x?y 2. x{x[x(ax+b)+c]+d}+e

3. ln(1+|

a?ba?b|10) 4.

1??2?cos48

25. cot(1?x) 6. lg(a2+ab+b2)

21?x【解答】

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;

3

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< 4

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;

5

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

Top