总结没有顺序之分
想起一个算一个
逗号表达式 https://blog.csdn.net/qq_43539854/article/details/105757536(参考)
设 f是实型变量,下列表达式中不是逗号表达式的是_________
A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0)
逗号表达式 即 执行第二个结果
D选项中的不对
先看看人家蚊香一言咋说的
然后D选项虽然选取了 1.0 但是赋予了f 1.0 是赋值表达式
(== = === 区别很重要)
例如:
int i=0,k=0;
for(i=0,k=0;k=0;i++,k++){
k++;
}
这就是一个坑 判断条件k=0 是是是赋值 所以表达式为0 不会循环执行
对于一些for循环体内
for(int i=..;i...;i..){
i=....
}
如果循环体内再定义i 会出错
在数组中找数
中间折半法
int a;
printf("a = %d\n", a);
会出现一个垃圾数 不确定值
int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为______。
A. 2,3 B. 2,0 C. 3,0 D. 3,2
int b=0,x=1;
if(x++)
b=x+1;
x++即会在其他完成后执行 这里就是括号 所以在此结束
这里判断的时候 x还是1 随后变成2
所以b=2+1=3
设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是________。
A. 3 B. 0 C. 9 D. -12
这个会错呢
还是运算符的优先级结合性没背会
去背
优先 所以先计算 a=a 9
a现在就是9了 那可是赋值号
随意后面都是自右向左
a-=a 0
所以最终为0
以下用户标识符中,合法的是__________ 。
A. int B. nit C. 123 D. a+b
- 字母数字下划线组成
- 数字不能为开头
- 不能使用关键字
C 语言中的逻辑值“真”是用_____表示的,逻辑值“假”是用_________表示的
真是非0
C语言中有符号数据类型(signed)和无符号数据类型(unsigned)的本质区别为_________
signed 最高位为符号位
unsigned 全为数值位
设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为
第四个 b==a=2 b被赋值为1 1=2 错误
还有就是12<a<15
如果想要表达这个
需要if(12<a && a<15)
假如a=7
12<7 为0
0<15 为真
会执行 因此需要改变 否则会出错
这就是将for里面的提取出来 的效果不同