————————————————————————
1. 除号(/)的玄机——浮点数除法和整型除法的注意事项?
整型除法:除号的两端如果是除数,执行的是整数除法,得到的结果也是整数。(只会返回整数部分,丢弃小数部分
浮点数除法:两个运算数必须至少有一个浮点数
2. 前置后置自增自减究竟怎么算?
前置++:++a,先+1,再使用
后置++:a++,先使用,再+1
3. 强制类型转化是什么?
int a = (int)3.14;
//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
(万不得已才使用
📍【详解printf函数!】
4. 占位符是个啥?多个占位符怎么一起使用?
占位符就是所占的这个位置可以用其他值代入。
占位符的第一个字符一律为百分号%
输出文本里面可以使用多个占位符。
printf ( )参数与占位符是一一对应关系,如果有n个占位符,printf ( )的参数就应该有n+1个。如果参数个数少于对应的占位符,printf ( )可能会输出内存中的任意值。
5. 如何限定输出最小宽度?
利用占位符。比如%5d表示这个占位符的宽度至少为五位。如果不满五位,对应的值前面会添加空格。(输出值默认右对齐)
6. printf输出还能控制左对齐或者右对齐?
输出的值默认是右对齐,即输出内容前面会有空格。
如果要改成左对齐,即在输出内容后面添加空格,可以在占位符的%后面加入一个-号。
7. %*.*f 是个啥?
第一个*表示输出字符串的最小宽度
第二个*表示小数位数
📍【详解scanf!】
8. 什么?vs里不让用scanf?该怎么办!
在main函数前面加上
#define _CRT_SECURE_NO_WARNINGS
9. 缓冲区是啥?竟和scanf有关系?
scant处理用户输入的原理是:用户的输入先放入缓冲区,等到按下回车键后,按照占位符对缓存进行解读。
10. 浮点数怎么计算机还不能精确存储?
计算机使用二进制运算,程序中的十进制转换为二进制,在进行运算。float和double的小数部分转换为二进制时容易产生循环的情况,通常都会取无线接近于原值的近似值,所以导致部分强制转换会出现精度丢失,出现不精确的值。
11. scanf返回值表示什么?有什么含义?
scanf( )的返回值是一个整数,表示成功读取的变量个数。
12. 多组数据输入如何用scanf实现?
13. scanf里使用占位符%c,要多留个心眼——小心空白字符被吃掉
14. scanf里使用%s,遇到空白字符会停止吗?——存储到变量里后会自动存储'\0'
15. 赋值忽略符有什么用?
防止用户输入不符合规定的格式使得解析数据失败。
只要把*加在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃,。
————————————————————————————