第二次博客园作业
一.1.运算符的优先级和结合性使用不熟练
如^、|、>>等,其中^不是次方,可以用pow(a,3)表示a的三次方 A*A!=A^2
A--和A++和--A和++A的差别不清楚
2.各种类型运算量混合运算时的自动转换不熟练
int a,b,c;double d;
d=1.0*(a*b)/c;
在前面加入1.0*使后面的int数据类型变成double
- 输入的方式只会单一种
cin>>a>>b;
cin.ignore(3);
cin>>c;
输入:12 34 5678
事实:12 34 78
56(包括空格)3个被忽略了
char c1,c2,c3,c4;
cin.get(c1);
cin.get(c2);
cin.get(c3);
cin.get(c4);
输入:A B<Enter>
实际:c1为A,c2为 ,c3为B,c4为回车
char a[80];
cin.getline(a,80);
输入79个字符串,包括空格
- 调用子函数时,即使实参列表中没有参数,()都必须有
- &的使用在地址和引用的区别
引用时
void move(int &x,int &y)
{ int z;
z=x;x=y;y=z;}
int main()
{ int x=2,y=9;
move(x,y);
cout<<x<<y;
return 0;}
输出:92
- 函数形参的默认值(缺省值)
有默认值的形参的右边不能出现没指定默认值的形参,且不能指定引用参数的默认值,默认值会被实参覆盖
int move(int a,int b=8,int c=9) ——合法
int move(int a=8,int b,int c=9) ——不合法
int move(int a,int b=8,int &c=9) ——不合法
- 内联函数性质不熟练
以增加空间换减少时间
函数中不能有循环语句、switch语句和复杂嵌套的if语句
- 函数重载不熟练
同名函数的参数个数不同,或参数类型不同,或是否为常成员函数
- 局部变量的存储类别的差别
auto 无初值,初值不确定 空间在使用完后会被回收
static 无初值,数字型为0,字符型为’\0’ 有自己的空间
register 用于节省时间
10.exit();使用方法不清
exit()括号中的0和别的数字的区别
11.不理解为什么copy字符串时,最后没有赋予’\0’,会输出乱码。
二.1.打印出沙漏
输入:*个数n
输出:打出的沙漏 最后一行为多余的*的个数
- 用if语句区别,满足打出*,反之打出
- 输入n,k-->通过for语句得出打印出来的行数-->通过for语句和if语句打印出漏斗-->得出多余的*的数量
- for语句和if语句的并用
- 其实主要可能更接近数学问题,通过if语句里面的条件,主要通过坐标法和举例法来实现