1)变量为什么必须初始化
所谓初始化就是赋值的意思。
- 常量在C语言中是如何表示
整数:
十进制: 传统写法 例:int a = 123;
十六进制: 前面加0X(0是数字零,X可以大小写)
八进制: 前面加0(0是数字零)
浮点数:
传统写法 例:float a = 3.2;
科学计数法 例:float a = 3.2e3; 或 float a = 3.2e-2;(e表示为10)
浮点数的存储所带来的问题
Float和double都不能保证可以精确的存储一个小数。
字符:
单个字符用单引号括起来;字符串用双引号括起来
例:‘A’表示字符A.(注意:‘AB’是错误的,正确写法“AB”。)
“A”是正确的,因为“A”代表了‘A’‘\0’的组合(0是数字)
- 常量以什么样的二进制代码存储在计算机中
整数是以补码的形式转化为二进制代码存储在计算机的
实数是以IEEE754标准转化为二进制代码存储在计算机的
字符的本质实质也是与整数的存储方式相同
- 什么是字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位。(一个字节 = 8个位)
- 什么是ASCII
ASCII不是一个值,而是一种规定。ASCII规定了不同的字符是使用哪个整数值去表示。
‘A’ —— 65; ‘B’ —— 66; ‘a’—— 97; ‘b’ —— 98;
‘0’ —— 48 (0是数字)
- 运算符
算术运算符
+ — * /(除) %(取余)
除法 / 的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有 小数,则截取小数部分;被除数和除数中只要有一个或两个都是浮点型数据,则则商也是浮 点型,不截取截取小数部分。
例: 16 / 3 == 5; 16 / 5.0 ==3.20000; 16.0 / 5 == 3.20000
3 / 5 == 0; 5 / 3 == 1
取余 % 的运算对象必须是整数,结果是整除后的余数,其余数的符号和被除数相同。
例: 13 % 3 == 1; 13 % —3 = 1; —13 % 3 == —1; —13 % —3 == —1
关系运算符
> >= < <= != =
逻辑运算符
!(不等于) &&(并且) ||(或)
&& 左边的表达式为假,右边的表达式肯定不执行
| | 左边的表达式为真,右边的表达式肯定不执行
赋值运算符
= *=(a *= 3等价于a = a * 3)
优先级别
算术 > 关系 > 逻辑 > 赋值
三目运算符
A ? B :C 等价于 if (A) B; else C;
逗号表达式
(A,B,C,D) 功能:从左到右执行,最终表达式的值是最后一项的值
- 如何使用scanf编写出高质量代码
1. 使用scanf之前最好先使用printf提示用户以什么样的方式输入
如:printf("请输入两个值(中间用空格分隔):\n");
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
2. Scanf中尽量不要使用非输入控制符,尤其不要 \n
Scanf (“ %c”,ch); / / %c 前面必须加一个空格
3. 应该编写代码对用户的非法输入做适当的处理
如: char ch;
While ( ( ch = getchar( ) ) != ‘\ n’)
Continue;
例:
# include <stdio.h>
int main(void)
{
int a;
int b;
char ch;
scanf("%d", &a);
printf("a = %d\n", a);
while ( (ch = getchar()) != '\n' )
continue;
scanf("%d", &b);
printf("b = %d\n", b);
return 0;
}
- if的范围问题
1. If (表达式)
语句A;
语句B;
If默认只控制语句A的执行或不执行,if 无法控制语句B。
2. If (表达式)
{
语句A;
语句B;
}
此时if可以控制语句A和语句B
由上可知:if默认只能控制一个语句,如果想控制多个语句,就必须把这些语句用{}括起来
- if的常见问题解释
1. 空语句的问题
If ( a > b);
等价于
If ( a > b
; / / 这是一个空语句
2. If ( a > b);/ / 这里不应该加分号
A;
else
B;
这是错误的语句
3. If (表达式1)
A;
Else if (表达式2)
B;
Else if (表达式3)
C;
Else
D;
即便表达式1和2都成立,也只会执行A语句
4. If (表达式1)
A;
Else if (表达式2)
B;
Else if (表达式3)
C;
这样写法不会出错,但逻辑上有漏洞
5. If (表达式1)
A;
Else if (表达式2)
B;
Else if (表达式3)
C;
Else (表达式4)/ / 正确写法要么去掉表达式4,要么在else后面加if
D;
这样写是错误的
6. If (表达式1)
A;
Else if (表达式2)
B;
Else if (表达式3)
C;
Else (表达式4);/ / 无实际意义的语句