计算机程序设计基础(C++)(景红版)课后全部习题集与参考答案解析 下载本文

习 题 第1章

1. 什么是软件?

2. 简述软件的开发过程。 3. 什么是程序设计? 4. 简述程序设计过程。 5. 数据结构的含义是什么? 6. 简述算法的表示方法。 7. 什么是结构化算法?

8. 简述结构化程序设计思想。

第2章 C++的基础知识

一、填空题

1.???C++语言中的标识符只能由 、 和 三种字符组成,且打头字符不

能是 。

2.???C++程序的目标文件的扩展名是 。

3.? 在C++程序中,使用输入输出流需要包含的头文件是 。 4.? 当执行cin时,从键盘上一次输入多个数据时,每个数据后必须输入一个 ,

然后才可以接着输入下一个数据。

5.? 转义字符序列中的首字符是 字符。

6.? 空字符串在内存中的存储空间是 个字节 。

7. 以/?开始,?/结束,在/?和?/之间的部分即为 。

8. 赋值表达式y=x++的含义是 ,y=++x的含义是 。

9.??cout输出转义字符 是使光标移到屏幕上的下一行。

10.??C++语言的基本数据类型有 、 、 、 、 五种。 二、判断题

( )1.“C”是字符常量。

( )2. 在命名标识符时,大小写字母是不加区分的。

( )3.??C++程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。 ( )4.??C++程序必须有return语句。

( )5. 执行语句const int x=10;后,可以重新对x赋值。

( )6. 语句a_char = ‘\\n’ 表示将小写字母n赋值给字符变量a_char。 ( )7.??short,int都是C++语言的关键字。

( )8.??C++编译系统对源程序编译时,可以检查出注释语句中的语法错误。

( )9. 将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存变量中去,

而是将该字符相应的ASCII代码放到存储单元中。

( )10. 语句int answer=3+2?9/(10-6);执行完毕后,变量answer的值是7.5。 三、单项选择题

1.??C++源程序文件的扩展名为( )。

(A).CPP (B).OBJ (C).C (D).EXE 2. 下列变量名中,( )是合法的。 (A)double (B)A+a (C)CHINA (D)5s 3. 下列符号能用作C++标识符的是( )

(A)xyz/2 (B) 2xsale (C)x-sale (D) x_sale 4. 下列各运算符中,( )只能用于整型数据的运算。 (A)+ (B)/ (C)? (D)% 5.( )不是C++的基本数据类型。 (A)字符类型 (B)数组类型 (C)整数类型 (D)布尔类型 6. 下列运算符中,优先级最高的是( )。 (A)% (B) ! (C)>= (D) / 7. 字符串常量“ME”的字符个数是( )。 (A)4 (B)3 (C)2 (D)1 8. 在C++语言中,080是( )。 (A)八进制数 (B)十进制数 (C)十六进制数 (D)非法数 9. 整型变量i定义后赋初值的结果是( )。 int i=2.8?6; (A)12 (B)16 (C)17 (D)18 10.如有int m=31;则表达式(m++*1/2)的值是( )。

(A)0 (B)15 (C)15.5 (D)16 11.每个C++程序都必须有且仅有一个( )。 (A)预处理命令 (B)主函数 (C)函数 (D)语句 12.在C++语言中,自定义的标志符( )。

(A)能使用关键字并且不区分大小写 (B)不能使用关键字并且不区分大小写 (C)能使用关键字并且区分大小写 (D)不能使用关键字并且区分大小写 13.下列C++标点符号中表示一条语句结束的是( )。

(A)# (B)// (C)} (D); 14.下列C++标点符号中表示一条预处理命令开始的是( )。

(A)# (B)// (C)} (D); 15. 定义如下变量:int i=2;int j=3;则i/j的结果为( )。

(A)0.7 (B)0.66667 (C)0.666666… (D)0 16. 已知int a=2,a+=a-=a*a的值是( )。

(A)-4 (B)-2 (C)0 (D)4 17. 下列关于C++关键字的说法中正确的是( )。

(A)关键字是用户为程序中各种需要命名的“元素”所起的名字。 (B)关键字是对程序中的数据进行操作的一类单词。

(C)关键字是在程序中起分割内容和界定范围作用的一类单词。

(D)关键字是C++中预先定义并实现一定功能的一类单词。

18.语句n1=2,n2=++n1,n1=n2++,执行后变量n1、n2的值分别为( ) (A)3,4 (B)3,3 (C)2,3 (D)2,4 19.字符型数据在内存中的存储形式是( )。

(A)补码 (B)ASCII码 (C) 反码 (D)原码 20.下列程序段执行后输出结果为( ) char a=' a '; cout<<\

(A) a=A (B) a=33 (C) a=65 (D)a=A-32 四、阅读程序,写出运行结果

1.??#include void main( )

{ cout<<\ cout<<\}

2.??#include void main( )

{ const int R=10;

const double PI=3.14159; double a,b; a=2?R?PI; b=R?R?PI;

cout<<\} 五、程序改错

/*求三个整数的平均数 #include ; int mian( )

{int a,b,c,sum,avg;

cout<<\请输入三个整数:/n\ cin>>a>>b>>c>>endl; sum=a+b+c avg=sum/3;

cout>>?平均数是:?>>avg; }

第3章 基本程序设计

一、判断题

( )⒈ if 语句结构中必须有else语句。

( )⒉ 表达式7>=3+4 || 6<4 && 2<5 的求值结果为假。

( )⒊ 算术运算符的优先级高于比较运算符。

( )⒋ 表达式4>6||10>2*6&&2!=! 5求值结果为真。

( )⒌ 语句for(i=0,x=0;i<90;i++) if(i) x++;执行完后,x的值是89。 ( )⒍ 逻辑表达式10

( )⒐ 表达式a+bz&&x*y<100||x*y>0中运算符优先级由高到低的排列顺序是:

*、<和>、&&、||。

( )11. 设”int a=3,b=4,c=5;”;表达式”(a+b)>c&&b= =c”的值是0。

( )12. x,y,z为int类型的时候,下列语句执行之后,x的值为10,y的值为20,z的值为10。

x=10;y=20;z=30; if(x>y) x=y;y=z;z=x;

( )13. break和continue语句的作用都是终止本层循环的执行。

( )14. 判断变量x的数值是否在3到5之间可以用关系表达式3

#include #include “iomanip” using namespace std; void main() { if(a>b)

cout<

else

cout<< setw(4)<

( )16. 不管是当型循环还是直到型循环,其循环体都可能在某种条件下一次也不执行。 ( )17. 为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与最

近的那个if配对。

( )18. 要运行一个C++程序需要经过编辑、编译、链接和运行四个阶段。其中编译阶

段就是对源程序进行语法与语义分析,查找和排除程序错误,通常能够找出程序中的语法错误和逻辑错误。

( )19. switch语句结构中必须有default语句。

( )20. break语句只能结束包含该语句的一层循环结构。 二、单项选择题

1. for(i=0, x=0; !x&&i<=3;i++)循环的次数为( )。

(A) 4 (B) 5 (C) 1 (D)是无限循环 2. 若有如下程序段:

{ int a=2,b=-1,c=2; if(a

else c+=1; cout<<“c=\ }

执行后输出到屏幕的结果是______。

(A ) 2 (B) 1 (C) 3 (D) 0 3、若有如下程序段:

int i=10; switch(i)

{ case 9:i++; case 10:i++; case 11:i++; default:i++; }

执行后变量i的正确结果是( )。

(A) 11 (B) 12 (C) 13 (D) 14 4. 以下描述中正确的说法是( )。

(A) break语句与continue 语句完全一样,可以相互代替 (B) 用break 语句可以提前终止整个循环 (C) 用continue 语句可以提前终止整个循环

(D) 用break语句与continue 语句都不能提前终止执行循环 5. 以下for循环的执行次数是( )。 for(x=0,y=0;(y=123)&&(x<2);x++)

(A) 执行1次 (B) 执行2次 (C) 执行3次 (D) 是无限循环 6. 以下描述正确的是( )。

(A) goto语句只能用于退出多层循环 (B) switch语句中不能出现break语句 (C) 只能用continue语句来终止本次循环 (D) 在循环中break语句不能独立出现

7. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。 (A) 缩排位置相同的if (B) 在其之前未配对的if (C) 在其之前未配对的最近的if (D) 同一行上的if 8. break语句的作用是( )。

(A) 立即跳出包含该break语句的最小的各种循环语句和switch语句 (B) 立即跳出包含该break语句的最小的各种循环语句 (C) 立即跳出包含该break语句的switch语句

(D) 立即跳出包含该break语句的各种循环语句和switch语句 9. 下面程序段执行完后,x的值是( )。 x=0; for(i=0;i<90;i++) if (i) x++; (A) 0 (B) 30 (C) 89 (D) 90 10. continue语句的作用是( )。

(A) 结束包含该continue语句的最小的各种循环语句 (B) 结束包含该continue语句的各种循环语句