(4) b=x=(a=25,15/2)
x=7.5 y为null a=25 b=7
8. 若有char x=15;使得x的第0位(即二进制位的最右边的那一位,或称最低位)为0,其余位保持不变的赋值表达式是什么? x=x & ~1 (其中1是由20即pow(2,0)算出来的)
9. 用sizeof 运算符编写一段测试程序,测试本机中各基本数据类型或字符串所占的字节数,并将其填写到下表中,然后分析其结果。 基本数据类型 所占字节数 基本数据类型或字符所占字节数 串 char 1 float 4 short 2 double 8 int 4 long double 8 long 4 “\\nCh\\t\\v\\0ina” 10 #include
cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\
cout <<\类型所占字节数为\cout<<\字符\\nCh\\t\\v\\0ina所占字节数为\return 0; }
10. 从键盘输入一个三位数,从左到右用a,b,c表示各位的数字,记为abc.现要求依次输出从右到左的各位数字,即输出另外三位数cba。试设计程序。 #include
int n ,a , b , c , m; //n为输入的三位数,m为需要输出的三位数 cout<<\请输入一个三位数:\cin>>n;
if(n<=999 && n>=000) {
c=n;
b=(n/10);
a=((n/10)/10); m=c*100+b*10+a;
cout<<\数字\的逆序为\
6
} else
cout<<\输入不正确\ return 0; }
第四章 基本语句和基本程序结构
1. 设有变量int a=3,b=4,c=5;求下列表达式的值:
(1) a+b>c&&b==c ? 7>5&&4==5?True && False ?F
(2) a||b+c&&b>c ? 3||9&&4>5?3||9&&F ?3||F ?T||F ? T (3) !a||!c||b?F||F||4?T
(4) a*b&&c+a?15&&8?T
2. 设a,b,c的值分别是15,18,19,指出下列表达式运算后x,y,a,b,c的值 (1) x=a
表达式运算:x= 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
int a,b,c,temp;
cout<<\请输入三个整数:\
cin >>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;
7
}
cout<<\这三个数从小到大的排列为\ cout<<\ cout<<\ cout<<\
return 0; }
方法二:
#include
4. 有一个数学函数
?x?1(x??10)?y??2x?2(1?x?10) ?2?3x?3x?1(x??1)
写一个程序,输入x,输出y. #include
8
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<<\的值为\ return 0; }
5. 给出一个百分制的成绩,要求输出成绩为A,B,C,D.其中,85分以上为A,75~84分为B,65~74分为C,65分以下为D。 #include
if( fScore>100||fScore<0) cout<<\输入的分数无效\ else if(fScore>=85) cout<<\ else if(fScore>=75) cout<<\ else if(fScore>=65) cout<<\ else
cout<<\ return 0; }
6. 选(D)
7. 求下列循环次数
(1) for(int i=0,x=0;!x&&i<=5;i++) 循环了6次 (2) while(int i=0)i--; 循环了0次 (3) int i=5;
do{
cout< } While(i!=0); 循环了无数次 8. 编程求100以内被7或5 整除的最大自然数 9 #include for(int i=1;i<=100;i++) { if(i%5==0||i%7==0) max=i; } cout<<\这个最大的自然数是\ return 0; } 9. 分析下列程序的输出结果 (1) x=5,y=4,z=1 (2) k=4 (3) <><><># 10. Fibonacci数列中的前两个数是1和1,从第三个数开始,每个数等于前两个数之和。编程计算并输出次数列中的前30个数 。 #include int sum=0 ,a=1,b=1; for(int i=1;i<=6;i++) { for(int j=1;j<=5;j++) { if(i==1&&j<=2) cout< cout< } return 0; } 11. 编程求n!,即n!?1?2?3?...?n 10