第二章课后习题
1、变量为什么先定义后使用。
变量必须强制定义:(1)保证程序中变量名使用正确;(2)确定类型编译时可以分配相应存储单元;(3)编译时,检查该变量运算是否合法。(见课本P27)
2、字符常量&字符串常量
字符常量:普通字符和转义字符常量,‘a’,单撇号。
字符串常量,“abc”,双撇号,结尾有’\0’字符串结束符。(P22)
3、分析程序运行结果
#include<iostream>
using namespace std;
int main(){
char c1='a',c2='b',c3='c',c4='\101',c5='\116';
//八进制101,为65,对应'A' ,八进制116,为64+8+6=78,对应'N'
cout<<c1<<c2<<c3<<'\n';//'\n'换行
cout<<"\t\b"<<c4<<'\t'<<c5<<'\n';//'\t'制表 '\b'退格
return 0;
}
输出:
abc
A N(有间隔)
4、分析程序运行结果
#include<iostream>
using namespace std;
int main(){
char c1='C',c2='+',c3='+';
cout<<"I say:\""<<c1<<c2<<c3<<'\"';//'\"'转义字符," ,不是输出\"
cout<<"\t\t"<<"He says:\"C++ is very intersting!\""<<'\n';//'\t'制表 '\b'退格
return 0;
}
输出:
I say:“C++” He says:“C++ is very intersting!”(间隔两个制表符)
5、写出表达式的值
(1)3.53+27-‘a’ —— -72.5(10.5+14-97)
(2)26/3+34%3+2.5 —— 11.5(8+1+2.5)
(3)45/2+(int)3.14159/2 —— 23(22+1)
(4)a=b=(c=a+=6) —— 9(a初始3)——赋值表达式的值,即从右到左结合,最终a的值
(5)a=35,a=b=32 —— 6 ——逗号表达式,先计算1,后计算2,结果为2的值
(6)(int)(a+6.5)%2+(a=b=5) —— 6(a初始3,9%2+5)
(3)x+a%3*(int)(x+y)%2/4 —— 2.5(x,y浮点型,a整型 x=2.5 y=4.7 a=7)
(4)(float)(a+b)/2+(int)x%(int)y —— 3.5(a,b整型,x,y浮点型 x=3.5 y=2.5 a=2 b=3)
6、a初始12,a,n为整型,计算各式a的值
(1)a+=a ——24
(2)a-=3 ——9
(3)a*=2+3 ——60 , a*=(2+3) 而不是 (a*=2)+3
(4)a/=a+a ——0
(4)a%=(n%=2),n ——0(n初始5,12%1)
(4)a+=a-=a*=a ——0
7、分析程序运行结果
#include<iostream>
using namespace std;
int main(){
int i,j,m,n;
i=8;
j=10;
m=++i+j++;//j下一句才变成11 m=19
n=(++i)+(++j)+m;//n=10+12+19=41
cout<<i<<'\t'<<j<<'\t'<<m<<'\t'<<n<<endl;
return 0;
}
输出:10 12 19 41
8、编写程序,"China"译成密码
#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
cin>>a;
for(int i=0;a[i]!='\0';i++){
if((a[i]>='A'&&a[i]<='V')||(a[i]>='a'&&a[i]<='v')){
a[i]=a[i]+4;
}
else if((a[i]>='W'&&a[i]<='Z')||(a[i]>='w'&&a[i]<='z')){
a[i]=a[i]-26+4;
}
}
cout<<a;
return 0;
}
本文详细解答了谭浩强C++教材第二章的课后习题,涉及变量定义、字符与字符串常量、程序运行结果分析、表达式求值以及整型变量a的运算变化。通过这些习题,读者可以深入理解C++的基础概念和运算规则。

5599

被折叠的 条评论
为什么被折叠?



