C++程序设计课后练习全解
第三单元 运算符与表达式
根据题目要求,编写完整的程序。
(1)从键盘上输入一些组合键,如Ctrl+B、Ctrl+D、Ctrl+Y等,如何能知道这些键的值。 #include
(2)从键盘上输入一个整数x,将其低六位全部置1,其余各位不变。然后用十进制和十六制输出x的值。
#include
(3)从键盘上输入一个整数x,将其高六位全部置0,其余各位不变。然后用十进制和十六制输出x的值。
#include
(4)从键盘上输入一个摄氏温度C,求该温度对应的华氏温度F(F=5/9C+32)及绝对温度K(K=C+273.15)。 #include
float c,f,k;
cout<<\ temperature:\cin>>c; f=5.0/9*c+32; short x;
cout << \cin >> x;
x = x & 0x03ffffff ;//高六位全部置0 0000 0011 1111 1111 1111 1111 1111 1111 cout << \输出十进制
cout << \输出十六进制 cout<<\ \int num,num_changed; cin>>num;
num_changed = num | 0x003f;
cout<<\ \ \char Mul_Character; cin>>Mul_Character;
cout<<(int)Mul_Character< } k=c+273.15; cout<<\ cout<<\ Fahrenheit is: \//求该温度对应的华氏温度F(F=5/9C+32)及绝对温度K(K=C+273.15) (5)从键盘上输入任意两个实数,求它们的和、差、积、商,并输出结果。 #include (6)输入任意一个实数,将其整数部分与小数部分分开,分别输出在两行上。例如,输入23.45,输出: 23 0.45 #include float num;//数据存放 int a;//存放整数部分 float b;//存放小数部分 cout<<\请输入任意一个实数:\cin>>num; a=(int)num; b=num-a; cout< cout<<\请输入两个实数a,b:\cin>>a; cin>>b; cout<<\cout<<\cout<<\if (b) cout<<\else cout<<\ 第四单元 基本语句 按要求完成编程 (1)任意输入一个int整数,计算其中有多少位是1。 #include int a,count=0; cin>>a; while(a) { if(1 == a) count++; a/=10; } cout< (2)任意输入一个int整数,显示为十六进制形式,不能用hex控制符,而且要求输出8个字符。 #include (3)任意输入一个浮点数,小数点后最多有两位,作为一笔金额,显示为中文金额格式,银行里经常要用这种格式。例如,输入1234.56,输出“壹仟贰佰叁拾肆元伍角陆分”。0为零,7为柒,8为捌,9为玖,10为拾,还有万、亿。注意,2004应输出“贰仟零肆元整”,而不是“贰仟零佰零拾肆元整”。尝试你能准确处理的最大金额是多少。 //最大范围整数部分10位 cout<<\int num; cin>>num; cout<<\char out; for(int i = 7;i >= 0;i--) { } cout< out = '0'; if((num >= (1<<4*i)) && (num < (1<<(4*i+4)))) //移位运算 { } cout< for(int j = 15;j >= 0;j--) { } if(j * (1<<4*i) <= num) { } out = char(j + 48); if(out > '9') out = char(out + 39); num = num - j * (1<<4*i); break; #include float value; cout<<\请输入最大位为十亿,小数为两位的浮点数:\cin>>value; int mInteger;//整数金额 float mDecimal;//小数金额 mInteger=(int)value; mDecimal=value-mInteger; //计算金额的最高位数 int n=mInteger; int length=0; while (n) { } //处理整数部分 int m=1; int i; for (i=1;i m*=10; //整数部分显示 int x; n=(int)value; int level; int count; for (i=length,level=(i-1)/4,count=0;i>0;i--) { x=n/m;//该位上的数值; n=n%m; m/=10; if(level == (i-1)/4) { if(x==0) else { if(count>0) { } cout<<\零\count=0; count++; n=n/10; length++; } else { } } level = (i-1)/4; count=0; if(x==0) count++; switch (x) { case 1: } //显示该位的值 if (x!=0) { switch(i%4) cout<<\壹\break; cout<<\贰\break; cout<<\叁\break; cout<<\肆\break; cout<<\伍\break; cout<<\陆\break; cout<<\柒\break; cout<<\捌\break; cout<<\玖\break; break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 0: