【浙江大学C小程week6知识点整理】

本周主要知识点

数据类型(深入)

原码、反码、补码

  • 正数的原码、补码、反码相同,即符号位是0,其余各位表示数值。

  • 负数的原码、补码、反码则不同。

    • 原码:符号位是1,其余各位表示数值的绝对值。
    • 反码:符号位是1,其余各位对原码取反。
    • 补码:反码加1。

数据特殊的表达形式

  • 进制
数据类型输入输出形式
centered 文本居中right-aligned 文本居右

一些陌生的运算符

  • 1.位运算符
    在C语言中,位运算符主要有如下五种:

    • 与运算符(&):对两个数的每一位进行与运算。如果两个位都是 1,则结果为 1,否则为 0。
    • 或运算符(|):对两个数的每一位进行或运算。如果两个位中有一个是 1,则结果为 1,否则为 0。
    • 异或运算符(^):对两个数的每一位进行异或运算。如果两个位中有一个是 1,另一个是 0,则结果为 1,否则为 0。
    • 左移运算符(<<):将一个数的二进制位向左移动一定的位数。左移运算符的优先级比加法低,比判断运算符高。
    • 右移运算符(>>):将一个数的二进制位向右移动一定的位数。右移运算符的优先级比加法低,比判断运算符高。

    注意:位运算符只能用于整型变量

  • 条件运算符(?;)

    condition ? expression1 : expression2
    

    其中,condition 是一个条件表达式,如果为真(即非 0),则运算结果为 expression1;如果为假(即 0),则运算结果为 expression2。

  • 逗号运算符
    C 语言中的逗号运算符是一种常见的运算符,它用于将两个或多个表达式连接在一起。逗号运算符的基本形式如下:

    expression1, expression2, ...,expressionN
    

    逗号运算符的运算顺序是从左至右的,每个表达式都会被计算一次,但最后的运算结果只保留最后一个表达式的值。

好题错题整理

判断题

  • 1.08是正确的整型常量。(× 08作为八进制整数含有非法数字8)
  • 2.若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为 2 31 − 1 2^{31} −1 2311。 (√ int 类型数据通常占用 32 个二进制位,其中第一位用于表示正负号,剩余的 31 位用于表示数值。如果全部设置为 1,则表示的数值为 2 31 − 1 2^{31}-1 2311。加上第一位的正号,则 int 类型数据可以表示的最大整数为 2 32 − 1 2^{32}-1 2321
  • 3.表达式 (z=0, (x=2)||(z=1),z) 的值是1。(× 是0)

选择题

  • 1.下面合法的C语言字符常量是()。
    A.‘\t’ B.“A” C.‘xx’ D.A

    答案:选A
    在 C 语言中,‘\t’ 是一个字符常量,表示一个制表符(Tab)字符。制表符字符是一种特殊的字符,用于在文本中插入空格,使得文本的对齐更加整齐。

    转义字符是一种特殊的字符,前面带有反斜杠(\),用于表示一些特殊的字符,如制表符、换行符、回车符等。除了 ‘\t’,C 语言中还有许多其他的转义字符,如:

    • ‘\n’ 表示换行符
    • ‘\r’ 表示回车符
    • ‘’ 表示反斜杠
    • ‘’’ 表示单引号
    • ‘"’ 表示双引号
  • 2.下面的程序段输出是( )。

    short int a;
    int b = 65536;
    a = b;
    printf("%d\n", a);
    

    A.65536 B.0 C.-1 D.1

    答案:选B
    在上述代码中,short int 类型的变量 a 的范围为 -32768 到 32767。int 类型的变量 b 的值为 65536,超出了 short int 类型的范围。

    当将 int 类型的 b 赋值给 short int 类型的 a 时,会发生数据截断,即将 b 的高位截断。因此,a 的值为 0。

    需要注意的是,在 C 语言中,数据截断是合法的,但是可能会导致数据丢失或错误。因此,在使用较小的数据类型存储较大的数据时,应该谨慎处理。

  • 3.执行下面程序中的输出语句后,输出结果是( )。

    int a;
    printf("%d\n",(a=3*5,a*4,a+5));
    

    A.65 B.20 C.15 D.10

    答案:选B

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值