教材习题答案-第2章.doc
- 文档编号:217082
- 上传时间:2022-10-06
- 格式:DOC
- 页数:6
- 大小:25KB
教材习题答案-第2章.doc
《教材习题答案-第2章.doc》由会员分享,可在线阅读,更多相关《教材习题答案-第2章.doc(6页珍藏版)》请在冰豆网上搜索。
1.C++中define与const定义常量有什么区别?
(1)编译器处理方式不同
define宏是在预处理阶段展开。
const常量是编译运行阶段使用。
(2)类型和安全检查不同
define宏没有类型,不做任何类型检查,仅仅是展开。
const常量有具体的类型,在编译阶段会执行类型检查。
(3)存储方式不同
define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。
const常量会在内存中分配(可以是堆中也可以是栈中)。
(4)作用域
define宏展开,没有作用域概念。
const常值变量具有作用域。
2.C++引入了I/O流运算符,与C语言的输入输出有什么区别?
(1)I/O流运算符是运算符;C语言的输入输出是函数。
(2)I/O流运算符自动识别类型(多态、重载);C语言的输入输出格式控制非常复杂。
3.简易计算器,从键盘输入两个整数和一个字符(+、-、*、/),分别对两个数进行加、减、乘和除的运算。
如输入:
23123+;输出计算结果:
23+123=146。
要求利用IO流运算符进行输入和输出。
#include
usingnamespacestd;
intmain()
{
inta,b,r;
charc;
cin>>a>>b>>c;
switch(c)
{
case'+':
r=a+b;break;
case'-':
r=a-b;break;
case'*':
r=a*b;break;
case'/':
r=a/b;break;
}
cout< } 4.解决换钱问题: 将1元人民币兑换成1、2、5分的人民币,有多少种换法? #include usingnamespacestd; intmain() { intcount=0,one,two,five; for(one=0;one<=100;one++) for(two=0;two<=100;two++) for(five=0;five<=100;five++) if(one+2*two+5*five==100) { cout<<"1分: "< "< "< count++; } cout<<"换法: "< } 5.分别用穷举法和迭代法计算两个整数的最大公约数。 #include usingnamespacestd; intmain() { inta,b,i; cin>>a>>b; cout<<"穷举法: "; for(i=a;i>=1;i--) if(a%i==0&&b%i==0) break; cout< cout<<"迭代法: "; intr; while(r=a%b) { a=b;b=r; } cout< } 6.输入一个整型数组,数组元素有正数有负数。 数组中连续的一个或多个整数构成一个子数组。 求所有子数组中元素和值最大的子数组。 例如: 3,2,-6,4,7,-3,5,-2和值最大的子数组为4,7,-3,5 #include #defineN8 usingnamespacestd; intmain() { inta[N]={3,2,-6,4,7,-3,5,-2},i,j; intsum;/*当前位置的和*/ intmax;/*目前为止最大的子数组和*/ intleft,right;/*子数组的位置*/ intt1;/*子数组的临时左位置*/ /*初始化*/ sum=max=a[0]; left=right=t1=0; for(i=1;i { sum+=a[i]; if(sum<0) { sum=0;/*如果和为负了,就应该重新计算*/ t1=i+1;/*t1也从下一个位置开始*/ continue; } if(sum>max) {/*如果当前和比原先的最大值还大*/ max=sum;/*最大值等于当前值*/ left=t1;/*左右区间也要调成相应的*/ right=i; } } for(i=left;i<=right;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教材 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)