• C语言--每日五道选择题--Day6


    第一题

    1、声明以下变量,则表达式: ch/i + (f*d – i) 的结果类型为( )

    1. char ch;
    2. int i;
    3. float f;
    4. double d;

    A: char 

    B: int 

    C: float 

    D: double

    答案及解析 D

    基本数据类型的等级从低到高如下:char-> int-> long-> float-> double

    运算的时候是从低转到高的,表达式的类型会自动提升或者转换为参与表达式求值的最上级类型。

    第二题

    2、关于代码的说法正确的是( )

    1. #include
    2. int main()
    3. {
    4. int x = -1;
    5. unsigned int y = 2;
    6. if (x > y)
    7. {
    8. printf("x is greater");
    9. }
    10. else
    11. {
    12. printf("y is greater");
    13. }
    14. return 0;
    15. }

    A: x is greater 

    B: y is greater 

    C: 依赖实现 

    D: 随机

    答案及解析 A

    x是有符号数-1,内存中是全1,当有符号的x和无符号数进行比较时,x会隐式类型转换被当做无符号数,是一个很大的数,这时就选择A了

    第三题

    3、已知有如下各变量的类型说明,则以下不符合C语言语法的表达式是( )

    1. int k, a, b;
    2. unsigned int w = 5;
    3. double x = 1.42;

    A: x % 3 

    B: w += -20 

    C: k = (a = 200,b = 300) 

    D: a += a -= a = 9

    答案及解析  A

    取余操作符两边必须是整数

    第四题

    4、下面函数的输出结果是( )

    1. void func()
    2. {
    3. int k = 1^(1 << 31 >> 31);
    4. printf("%d\n", k);
    5. }

    A: 0 

    B: -1 

    C: -2 

    D: 1

    答案及解析 C

    (1 << 31 );左移31位,并在右侧填充0,得到0x80000000,即符号位为1,其他为0,即-2147483648

    int k = 1^(1 << 31 >> 31);注意,这里在右移的时候,符号位保持为1,右移后填充1,结果为0xFFFFFFFF,即-1

    0x00000001^0xFFFFFFFF,即0xFFFFFFFE(-2)

    第五题

    5、如下代码的输出结果是( )

    1. #include
    2. int main()
    3. {
    4. int i = 1;
    5. sizeof(i++);
    6. printf("%d\n", i);
    7. return 0;
    8. }

    A: 1 

    B: 4 

    C: 2 

    D: 8

    答案及解析 A

    一般表达式的运算是在运行时执行的,而sizeof是一个编译阶段就执行的运算符,在其内的任何运算都不执行,只推测出其中表达式结果的类型求其大小,故前后i的值不变。

    也就是说sizeof括号里的不会进行运算

  • 相关阅读:
    二分查找java
    Promise
    和拐友们操作Dockerfile 优化及本地私有仓库搭建
    软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历
    Vue3 + ElementUIPlus获取node的parent节点
    mysql主从工作原理、搭建
    ARM如何利用PMU的Cycle Counter(时钟周期)来计算出CPU的时钟频率
    【医学影像数据处理】 XML 文件格式处理汇总
    SpringCloudAlibaba:1.体系概述
    skywalking 6.4 分布式链路跟踪 使用笔记
  • 原文地址:https://blog.csdn.net/2302_76941579/article/details/134327000