return 0;
}
7. 设有语句:
char c1, c2, c3;
cin>>c1>>c2>>c3;
若在执行过程中,输入:
‘a’ ‘b’ ‘c’
则 cin 执行后,c1、c2、c3 的值分别是什么?若输入:
abcdef
则 cin 执行后,c1、c2、c3 的值又分别是什么?
答案:输入‘a’ ‘b’ ‘c’后,c1 的值为 ‘ , c2 的值为 a , c3 的值为 ’
输入 abcdef 后,c1 的值为 a , c2 的值为 b , c3 的值为 c
8. 设有语句:
int a, b, c;
cin>>hex>>a>>oct>>b>>dec>>c;
cout<
<=>a=a/(a+a)=10/20=0
<=>a=a-a=0
(2)c=3.5+4.5=x=y=7.9 不是,因为 4.5 是常量不能作为左值
(3)x=(y=4.5)*45 是
(4)a=x++=++y 不是,x++不能作为左值
4,写出下面表达式运算后 a 的值,设原来的 a 都是 10.
(1)a+=a <=> a=a+a=20
(2)a%=(7%2) <=> a=a%(7%2)=10%1=0
(3)a*=3+4 <=>a=a*(3+4)=70
(4)a/=a+a
(5)a-=a
(6)a+=a-=a*=a <=>a+=a-=100 =>a+=0 =>a=0
5,设 m,n 的值分别为 10,8,指出下列表达式运算后 a,b,c,和 d 的值。
(1)a=m++ + n++=10+8=18
(2)b=m++ + ++n=10+9=19
(3)c=++m + ++n=11+9=20
(4)d=m-- + n++=10+8=18
6,设 a,b,c 的值分别为 5,8,9;指出下列表达式运算后 x ,y 和 z 的值
(1)y=(a+b,c+a)=(13,14)=14
(2)x=y=a,z=a+b
(3)y=(x=a*b , x+x , x*x)=(x=40,80,1600)=1600
(4)x=(y=a ,z=a+b)=(y=5,z=13)=13
7,设有变量:
float x, y;
int a ,b;
指出运算下列表达式后 x , y, a 和 b 的值。
(1) x=a=3.523
x=3
y 为 null
(2)
a= x =3.523
x=3.523
(3)
x=3.0 y=3.532
(4) b=x=(a=25,15/2)
x=7.0 y 为 null
8,若有 char x=15;使得 x 的第 0 位(即二进制位的最右边的那一位,或称最低位)为 0,其
余位保持不变的赋值表达式是什么?
y 为 null
x=a=y=3.523
a=3 b 为 null
a=3 b 为 null
a=25 b=7
a=3 b 为 null
x=5 y=5 z=13
x=40
y=5
z=13
x=x & ~1
(其中 1 是由 02 算出来的)
9 用 sizeof 运算符编写一段测试程序,测试本机中各基本数据类型或字符串所占的字节数,
并将其填写到下表中,然后分析其结果。
基本数据类型
所占字节数
基本数据类型或字符
所占字节数
char
short
int
long
1
2
4
4
串
float
double
long double
“\nCh\t\v\0ina”
4
8
8
10
#include
using namespace std;
int main()
{
cout <<"char 类型所占字节数为"<< sizeof(char)<<"\n";
cout <<"short 类型所占字节数为"<< sizeof(short)<<"\n";
cout <<"int 类型所占字节数为"<< sizeof(int)<<"\n";
cout <<"long 类型所占字节数为"<< sizeof(long)<<"\n";
cout <<"float 类型所占字节数为"<< sizeof(float)<<"\n";
cout <<"double 类型所占字节数为"<< sizeof(double)<<"\n";
cout <<" long double 类型所占字节数为"<< sizeof(long double)<<"\n";
cout <<"字符\nCh\t\v\0ina 所占字节数为"<< sizeof("\nCh\t\v\0ina")<<"\n";
return 0;
}
10,从键盘输入一个三位数,从左到右用 a,b,c 表示各位的数字,记为 abc.现要求依次输出从
右到左的各位数字,即输出另外三位数 cba。试设计程序。
#include
using namespace std;
int main()
{
int n ,a , b , c , m;
cout<<"请输入一个三位数:";
cin>>n;
if(n<=999 && n>=000)
{
c=n%10;
b=(n/10)%10;
a=((n/10)/10)%10;
m=c*100+b*10+a;
cout<<"数字"<c&&b==c 7>5&&4==5True && False F
(2) a||b+c&&b>c 3||9&&4>5T&&FF
(3) !a||!c||bF||F||4T
(4) a*b&&c+a15&&8T
//n 为输入的三位数,m 为需要输出的三位数
2,设 a,b,c 的值分别是 15,18,19,指出下列表达式运算后 x,y,a,b,c 的值
(1) x=a表达式运算:x=T&&b||c++=T||c++=T 此时 x=T,a=15,b=18,c=19
(2) y=a>b&&c++
表达式运算:y=F&&c++=F 此时 y=F ,a=15,b=18,c=19
(3) x=a+b>c&&c++
表达式运算:x=33>19&&c++=T 此时 x=T.a=15,b=18,c=20
(4) y=a||b++||c++
表达式运算:y=T||b++||c++=T 此时 y=T,a=15,b=18,c=19
3,输入三个整数 a,b,c 要求按照从小到大的顺序输出
#include
main()
{
int a,b,c,temp;
cout<<"请输入三个整数:"<>a>>b>>c;
if(a>b)/*如果 a>b,交换 a 与 b 的值*/
{
temp=a;
a=b;
b=temp;
}
if(a>c)/*如果 a>c,交换 a 与 c 的值*/
{
temp=a;
a=c;
c=temp;
}
if(b>c)/*如果 b>c,交换 b 与 c 的值*/
{
temp=b;
b=c;
c=temp;
}
cout<<"这三个数从小到大的排列为"<y
1(
x
x
2(1
2
x
2
3
3
x
x
10)
x
1(
x
10)
1)
写一个程序,输入 x,输出 y.
#include
main()
{
int x,y;
cout<<"请输入 x:";
cin >>x;
if(x>=10)
y=x-1;
else if(x>1)
y=2*x+2;
else
y=3*x*x+3*x-1;
cout<<"y 的值为"<
main()
{
float fScore;
cout<<"请输入一个百分制的成绩:";
cin >>fScore;
if( fScore>100||fScore<0)
cout<<"输入的分数无效"<=85)
cout<<"A"<=75)
cout<<"B"<=65)
cout<<"C"<