c错题集--运算符与表达式

c易错题详解

一运算符与表达式

1.下列表达式,正确的C赋值表达式C

A a = 7 + b + c = a + 7;
B a = 7 + b++ = a + 7; 
C a = (7 + b,b++,a + 7);
D a = 7 + b,c = a + 7;
//A、B连续赋值语句连等时不能给计算式赋值
//D是逗号表达式

2.设f是实型变量,下列表达式中不是逗号表达式的是D

A f = 3.2,1.0;
B f > 0,f < 10;
C f = 2.0,f > 0;
D f = (3.2,1.0);//赋值表达式

优先级:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。

@@@单目运算符、sizeof、条件运算符?:、赋值运算符结合性从右到左

单目运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符 > 逗号运算符

3.逻辑“真”是用 非0 表示的,逻辑“假”是用0表示的。

4.符号常量的定义方法**#define**

ps:#define p 3.14

5.c语言中signed与unsigned的本质区别最高bit位为符号位还是数据位

6.设float x = 2.5,y = 4.7;int a = 7;表达式的值为2.5

x + a%3*(int)(x+y)%2/4
    //2/4为0

7.在c语言中,如下程序输出结果为

char c = 250;
unsigned char d;
char f;
d = c + 249;
f = c + 249;
printf("d = %d\n",d);243//c+249短变长,d=长变短且有符号数变成无符号数,%d输出再短变长,补0
printf("d = %u\n",d);243
printf("f = %d\n",f);//f=有符号数长变短,取反+1,%d输出再短变长,补符号位
printf("f = %u\n",f);
//溢出省去
//短变长,无符号数据补0
//有符号数据补符号位

8.不用第三变量交换两个变量的值

a = a ^ b;

b = a ^ b;==> b=a ^ b ^ b=a ^ 0=a

a = a ^ b;==> a=a ^ b ^ a=b ^ 0=b

按位异或
    //
    &(按位与),与00,与1不变
    |(按位或),或11,或0不变
    ^(按位异或),异或1 取反,异或0不变

9.数学表达式a/(b*c)的c语言表达式

1.*a /1.0*(b*c)

10.若程序运行时从键盘输入48<回车>,则输出09

#include <stdio.h>
int main()
{
    char c1, c2;
    scanf("%d", &c1);
    c2 = c1 + 9;
    printf("%c%c\n", c1, c2);
}//字符0的ASCLL码值为48

持续更新中

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值