【计算机二级】C语言程序设计2022年3月计算机等级考试二级通关课程

%m.nf
3.2 数据输出 P13 - 14:30
- %m.nf的含义是对输出值进行位数取舍,具体取舍方式为小数点前面的位数为m-n-1(位数不足时在最高位加上相应数量空格),小数点后面保留n位(不会四舍五入).
- 需要注意的是,%m.nf中的m必须大于n
3.2 数据输出 P13 - 18:18
scanf函数注意事项
- scanf函数中的所有非转义字符必须原样输入
- 例如:对于scanf("input:%d",&a),如果要输入一个值10给a,在输入时就必须加上非转义字符input:,即input:10
四舍五入
- 要想做到四舍五入,需要用到强制类型转化(int),例如:小数位第3位的取整 (int)(x*1000+0.5)/(double)1000
复合运算符
- 复合运算符是对符号右边的自变量进行的运算
- x%=a ==> x=x%a
- x+=a ==> x=x+a
- x-=a ==> x=x-a
- x*=a ==> x=x*a
- x/=a ==> x=x/a
3.4 程序举例 P15 - 20:33
- 关于输出格式,允许出现混用的情况即double型数值可以输出为float型,输入则不允许出现混用
3.4 程序举例 P15 - 22:52
- 注释语句不能嵌套
操作:顺序结构选择题讲解(1) P16 - 05:40

此题易错项为D,因为操作者会误以为x++,y++,++y会先后影响z的取值。实际上,因为赋值运算符的优先级高于逗号运算符,因此将x++赋值给z后z=x++就看成一个整体,y++,++y对z的值不会再产生影响。如果要达到D选项的结果,就需要将程序的第4行改为z=(x++,y++,z++).
操作:顺序结构选择题讲解(1) P16 - 08:21
存储
整型数存放在实型变量中时,会自动将整型数转化为实型数。例如
float a;
a=10;
中的10在储存单元中以实型的形式10.000000存储在实型变量a中
优先级
- 逗号运算符的优先级最低
- 赋值运算符仅仅比逗号运算符高一点(需要注意的是复合赋值运算符的优先级和赋值运算符一样)
case是关键字,不能拿来定义
操作:顺序结构选择题讲解(1) P16 - 22:38
这道题的答案选D,关于选项中的空格,老师的解释是在C语言中输入时对空格的管控不是很严格,可以自己再好好看一下相关视频,再加深一下印象

操作:顺序结构选择题讲解(1) P16 - 23:48
操作:顺序结构选择题讲解(1) P16 - 23:49
这个题可以和上面的例题联系在一起看,在上一个例题中老师给出的解释是c语言中输入时对空格的管控不严格,但在下面这道题中老师却说空格影响了最后a,b的值。看似相互矛盾,当我对比这两道题后发现上面的题中scanf函数的双引号中含有逗号,下面的题中的scanf函数中双引号中不含有逗号。以此我推断逗号时分隔数据的关键,当scanf函数中用逗号来分隔时,输入数据时数据的分隔以逗号为准,此时空格不会影响数据的存储;当输入数据时没有逗号等明显的分隔符号时,空格会充当分隔数据的作用

操作:顺序结构选择题讲解(1) P16 - 25:18
%nd的含义是取n位数
scanf的输入问题(以输入数字6和7为例)
- scanf("%d,%d",&a,&b) ==> 在输入时应该为 6,7
- scanf("%d;%d",&a,&b) ==> 在输入时应该为 6;7
- scanf("%d%d",&a,&b) ==> 在输入时应该为 6 7
应该注意的是,对于1和2中的scanf函数中空格不会影响存储的a,b的值,即" 6 , 7 与6,7的效果是一样的".