当前位置:首页 > 第2章 数据类型、运算符、输入输出和控制结构
第2章 数据类型、运算符、输入输出和控制结构
2.1简述标识符定义。指出下列用户自己定义的标识符中哪些是合法的?哪些是非法的?如果是非法的,为什么?
答:xy √ Book√ 3ab×(“3”) x_2 √ switch×(保留字) integer√ page-1×(“-”) _name√ MyDesk√ #NO×(“#”) y.5×(“.”) char×(保留字)
2.2. C++语言中有哪些数据类型?
2.3 什么是常量?什么是变量?
答:程序执行过程中,值不能被改变的量称为常量。 程序执行过程中,值可以改变的量称为变量
2.4下列常量的表示在C++中是否合法?若合法,指出常量的数据类型;若非法,指出原因。 答:-123 √ 0321√ .567√ 1.25e2.4 ×(指数部分有“.”) 32L√ '\\t'√ \√ 'x'√ \√ '\\85'×(85不是八进数)
2.5 字符常量与字符串常量有什么区别?
答:C++中字符常量为用单引号括起来的单个字符,而字符串常量为用双引号括起来的多个字符,且字符串最后加入结束标志'\\0'。
2.6 求出下列算术表达式的值:
(1)x+a%3*(int)(x+y)%2/4 设x=2.5,y=4.7,a=7 答:按优先级先计算强制类型转换:(int)(2.5+4.7)=7
再按左结合性计算:a%3*7%2/4=7%3*7%2/4=1 *7 % 2/ 4=7%2/4=1/4=0 最后计算x+0=2.5+0=2.5
(2)(float)(a+b)/2-(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 答:按优先级先计算强制类型转换:(float)(a+b)/2=5.0 /2=2.5 (int)x%(int)y=(int)3.5%(int)2.5=3%2=1
最后计算(float)(a+b)/2-(int)x%(int)y=2.5-1=1.5 (3)'a'+x%3+5/2-'\\24' 设x=8
答:'a'+x%3+5/2-'\\24'=97+8%3+5/2-20=97+2+2-20=81 ‘\\24'=024=2*8+4=20
2.7 写出以下程序的运行结果。 #include
m=++i;n=j++; //i=9 m=9 ,n=10 j=11 cout<
程序运行结果:
1
9 11 9 10
2.8 将下列数学表达式写成C++中的算术表达式。 (1)(a+b)/(x-y) (2)sqrt(p(p-a)(p-b)(p-c)) (3)sin x/2m (4)((a+b)/2)h 解:算术表达式 (1) (a+b)/(x-y)
(2)sqrt(p*(p-a)*(p-b)*(p-c)) (3)sin(x)/2/m (4)(a+b)/2*h
2.9 在C++语言中如何表示“真”和“假”?系统又是如何判断一个量的“真”和“假”的? C++语言中用“1”表示“真”,“0”表示“假”。
答:系统判断“真”和“假”的方法为:一个量非零为“真”,等于零为“假”
2.10设有变量说明: int a=3,b=2,c=1;
求出下列表达式的值: (1)a>b (2)a<=b
(3)a!=b (4)(a>b)==c (5)a-b==c 解:(1)1 (2) 0 (3)1 (4)1 (5) 1
2.11设有变量说明: int a=3,b=1,x=2,y=0; 求出下列表达式的值: (1)(a>b)&& (x>y) (2)a>b && x>y (3)(y||b) && (y||a) (4)y||b && y||a (5)!a || a>b 解: (1)(a>b)&& (x>y)=(3>1) && (2>0) = 1 && 1=1 (2)a>b && x>y=3>1 && 2>0 = 1 && 1=1 (3)(y||b) && (y||a)= (0||1) && (0||3)=1 && 1=1
(4)y||b && y||a = y|| (b && y) ||a =0 || (1 && 0) || 3=0 || 0 || 3= 0 || 3 =1 (5)!a || a>b =!3 || 3>1 =0 || 1 =1
2.12设有变量说明:
int w=3,x=10,z=7; char ch='D';
求出下列表达式的值。 (1)w++||z++ (2)!w>z (3)w && z (4)x>10 || z<9 (5)ch>='A' && ch<='Z' 解:
2
(1)w++|| z++ = 3 || 7 =1 (先用后加)w=4,z=8) (2)!w>z =!3 > 7 = 0 >7 = 0 (3)w && z = 3 && 7 =1
(4)x>10 || z<9 = 10>10 || 7<9 = 0 || 1 =1
(5)ch>='A' && ch<='Z' = 'D'>='A' && 'D'<='Z' =1 && 1 =1
2.13设a、b的值分别为6、7;指出分别运算下列表达式后 a、b、c、d的值。 (1)c=d=a (2)b+=b
(3)c=b/=a (4)d=(c=a/b+15) 解:
(1)c=d=a c=(d=6) =6 a=6,b=7,c=6,d=6 (2)b+=b b=b+b=14
(3)c=b/=a c=(b=b/a)=(b=7/6)=1,a=6,b=1
(4)d=(c=a/b+15) d=(c=6/7+15)=(c=0+15)=15 a=6,b=7,c=15,d=15
2.14设a、b、c的值分别为5、8、9;指出分别运算下列表达式后x、y的值。 (1)y=(a+b,b+c,c+a) (2)x=a,y=x+b 解:
(1)y=(a+b,b+c,c+a) =(5+8,8+9,9+5)=(13,17,14)=14 (2)x=a,y=x+b = (x=5,y=x+b)=(5,y=5+8)=(5,y=13)=13
x=5,y=13
2.15设计一个程序,从键盘输入一个圆的半径,求其周长和面积。 解:
# include
{ float r,L,S;
cout<<\请输入园的半径:\
cin>>r;
L=2*3.14*r; S=r*r*3.14;
cout<<\ cout<<\ cout<<\}
2.16设计一个程序,从键盘输入一个小写字母,将它转换成大写字母。 解:
# include
cout<<\请输入小写字母:\ cin>>c; C=c-0x20;
3
cout<<\}
2.17设计一个程序,输入一个华氏温度值,要求输出其对应的摄氏温度值。温度转换公式为:c=(f-32)*5/9。 解:
# include
cout<<\请输入华氏温度:\
cin>>f;
c=(f-32)*5/9;
cout<<\}
2.18从键盘输入一个三位数abc,从左到右用a、b、c表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数cba,例如:输入123,输出321,试设计程序。 解:
# include
{ int a,b,c,n,m;
cout<<\请输入三位十进制整数:\ cin>>n; a=n/100;
b=(n-a*100)/10; c=(n-a*100); m=c*100+b*10+a;
cout<<\}
2.28 写出下列程序的运行结果: #include if (b<0) c=0; else c=c+1; cout< 解:运行结果:2 4
共分享92篇相关文档