第一章 C++基础知识习题
1.1 判断下列标识符的合法性。
sin book 5arry _name Example2.1 main
$1 class_cpp a3 x*y my name
答:合法的:sin book _name main class_cpp a3
非法的:5arry Example2.1 $1 x*y my name
1.2 假定有下列变量:
int a=3,b=5,c=0;
float x=2.5,y=8.2,z=1.4;
char ch1=’a’,ch2=’5’,ch3=’0’,ch4;
求下列表达式的值,以及运算后表达式所涉及的各变量的值。
x+(int)y%a x=z*b++,b=b*x,b++ ch4=ch3-ch2+ch1
int(y/z)+(int)y/(int)z !(a>b)&&c&&(x*=y)&&b++
ch3||(b+=a*c)||c++ z=(a<<2)/(b>>1)
答:x+(int)y%a 值为:4.5
x=z*b++,b=b*x,b++ 值为:42,x为7,b为43
ch4=ch3-ch2+ch1 值为:’\\’
int(y/z)+(int)y/(int)z 值为:13
!(a>b)&&c&&(x*=y)&&b++ 值为:0,b为5 注:只要出现一个false右边的不再做。
ch3||(b+=a*c)||c++ 值为:1,c为0 注:只要出现一个true,右边不再做。
z=(a<<2)/(b>>1) 值为:6
1.3 判断下列哪些是常量,哪些是变量。
"China" const int n=10; int m=5; 'a' char ch='a'
int array[5]={1,2,3,4,5}; char s[]="Hello";
答:"China" 文字常量
const int n=10; 常变量
int m=5; 变量
'a' 文字常量
char ch='a' 变量
int array[5]={1,2,3,4,5}; 变量
char s[]="Hello"; 变量
1.4 将下列算式或叙述用C++表达式描述。
(1)
(2) (x+y)/((x-y)*ay)
(3) 位于原点为圆心,a, b为半径的圆环中的点坐标。
(4) 。
(5) 并且字符ch不为'\0'。
答: pi/2+sqrt(asin(x)*asin(x)+c*c)
(x+y)/((x-y)*pow(a,y))
((x*x+y*y)>=a*a)&&((x*x+y*y)<=b*b)
(a!=b)&&(a!=c)&&(b!=c)
(k<=20)&&(ch!='\0')
1.6 设有语句:
int a, b;
float x,y;
char ch1,ch2,ch3;
cin>>a>>b>>x>>y>>ch1;
ch2=cin.get();
cin>>ch3;
若从键盘输入:
3 2 1.8 7 a b c
执行后各变量取值如何?注意abc三字符两两间有空格。
答:a是3,b是2,x是1.8,y是7,ch1是’a’,ch2是空格,ch3是’b’。
1.7 设有语句:
int a,b,c,d;
cin>>oct>>a>>b>>hex>>c>>dec>>d;
若从键盘输入:
23 23 23 23
执行后各变量的值用十进制表示各是多少?
答:a:19,b:19,c:35,d:23
1.8 对于习题1.7,若执行:
cout<显示结果是什么?
答:19 0x13 043
第二章 基本控制结构程序设计习题
一.基本概念与基础知识自测题
2.1 程序阅读题
2.1.1 设有说明:
int a=3, b=100;
下面的循环语句执行 (1) 次,执行后a、b的值分别为 (2) 、 (3) 。
while(b/a>5){
if(b-a>25) a++;
else b/=a;
}
解答:
本题检查学生整除的概念。跟踪:
a b b/a 循环次数 b-a
3 100 33 1 97
4 100 25 2 96
5 100 20 3 95
… … … … …
15 100 6 13 85
16 100 6 14 84
17 100 5 停
(1)14
(2)17
(3)100
2.1.2 设有说明:
int x,y,n,k;
下面程序段的功能是备选答案中的
(1) ,当n=10,x=10打印结果是 (2) 。
cin>>x>>n;
k=0;
do{
x/=2;
k++;
}while(k
k=0;
do{
y=y*y;
k++;
}while(k
A. B. C. D.
解答:
第一个循环使x成为: ;y成为: ;第二个循环使y成为: ;
(1)B
考虑整除,当x连除4次2以后即为0,所以: 为0
(2)1
2.1.3 请看如下程序段:
if(num==1) cout<<”Alpha”;
else if(num==2) cout<<”Bata”;
else if(num==3) cout<<”Gamma”;
else cout<<”Delta”;
当num的值分别为1、2、3时,上面程序段的输出分别为(1) 、(2) 、(3) 。
解答:
检查条件语句与字符串输出概念:
(1)Alpha
(2)Bata
(3)Gamma
2.1.4 执行下面程序段后,m和k的值分别为 (1) 、 (2) 。
int m,k;
for(k=1,m=0;k<=50;k++){
if(m>=10) break;
if(m%2==0){
m+=5;
continue;
}
m-=3;
}
解答:注意continue语句的使用
初值 m=0 k=1
第1次循环后 m=5 k=2
第2次循环后 m=2 k=3
第3次循环后 m=7 k=4
第4次循环后 m=4 k=5
第5次循环后 m=9 k=6
第6次循环后 m=6 k=7
第7次循环后 m=11 k=8
第8次循环 m=11结束 k=8,k++未做
(1)11
(2)8
第三章 函数习题
一.基本概念与基础知识自测题
3.1 填空题
3.1.1 被定义为形参的是在函数中起 (1) 作用的变量,形参只能用 (2) 表示。实参的作用是 (3) ,实参可以用 (4) 、 (5) 、 (6) 表示。
答案:
(1)自变量
(2)变量名
(3)将实际参数的值传递给形参
(4)具有值的变量
(5)常量
(6)表达式
3.1.2 局部域包括 (1) 、 (2) 和 (3) 。使用局部变量的意义在于 (4) 。
答案:
(1)块域
(2)函数域
(3)函数原型域
(4)局部变量具有局部作用域使得程序在不同块中可以使用同名变量
3.1.3 静态局部变量存储在 (1) 区,在 (2) 时候建立,生存期为(3) ,如定义时未显式初始化,则其初值为 (4) 。
答案:
(1)全局数据区
(2)编译
(3)全局生存期
(4)全0
3.1.4局部变量存储在 (1) 区,在 (2) 时候建立,生存期为(3) ,如定义时未显式初始化,则其初值为 (4) 。
答案:
(1)栈
(2)在函数或块开始执行时
(3)函数或块的执行期
(4)随机值
3.1.5 编译预处理的作用是 (1) ,预处理指令的标志是 (2) 。多文件系统中,程序由 (3) 来管理,用户自定义头文件中通常定义一些 (4) 。
答案:
(1)将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码
(2)#
(3)工程文件
(4)用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量
3.1.6 设有函数说