牛客网-题库-专项练习-计算机专业技能-编程语言-C语言-随机10道

牛客网-题库-专项练习-计算机专业技能-编程语言-C语言-随机10道

  1. 运行以下程序片段的输出结果是?(B)
    #include “stdio.h”
    int main()
    {
    int x, y = 6, z = 5;
    x= y == z;
    printf("%d",x);
    return 0;
    A:
    B:0
    C:1
    D:5
    E:编译错误
    编译错误,单结果=0

  2. int function(int a, int b, intc) {
    c = a * b;
    }
    int main(void) {
    int c = 0;
    function(10,20, c);
    printf("%d", c);
    }
    打印输出(D)
    A:200
    B:100
    C:20
    D:0
    函数无返回值是,所以c=0

  3. i最后等于多少?B
    int i = 1;
    int j = i++;
    if((i>j++) && (i++ == j)) i+=j;
    A:3
    B:5
    C:6
    D:7
    j=1;i=2
    i>j++
    i=2;j=2
    i++==j
    j=2;i=3
    所以i=i+j=5

  4. 以下叙述中错误的是?C
    A:数值型常量有正值和负值的区分
    B:常量可以用一个符号名来代表
    C:定义符号常量必须用类型名来设定常量的类型
    D:常量是在程序运行过程中值不能被改变的量
    在C语言的预编译处理中,可以用符号名代表一个常量,定义时不必指定常量类型

  5. 在C中,下列哪一个按位运算符用于屏蔽数字中的某一特定位?B
    A:&&
    B:&
    C:||
    D:!
    XML有5个转义符: < >& &quot 双引号; &apos 单引号;
    按位 与 运算可以用来屏蔽特定的位。这里的与运算符会在html标准转义成 &

  6. #include命令的功能是(C)。
    在命令处插入一个头文件
    在文件首部插入一个头文件
    在命令处插入一个文本文件
    在文件首部插入一个程序文件

  7. 对于以下结构定义,(*p)->str++中的++加在(D)。
    struct { int len; char *str; } *p;
    指针 str 上
    指针 p 上
    str 指向的内容上
    语法错误
    p是指针,可以写p->str,但是(*p)只能写(*p).str;

  8. 下列代码的输出结果是D

    int i = -1;
    unsigned j = 1;
    if (j > i)
    printf(" (j>i)成立\n");
    else
    printf(" (j>i)不成立\n");

    if (i < j)
    printf(" (i<j)成立\n");
    else
    printf(" (i<j)不成立\n");

    (j>i)成立,(i<j)成立
    (j>i)不成立,(i<j)成立
    (j>i)成立,(i<j)不成立
    (j>i)不成立,(i<j)不成立

  9. 有变量
    struct
    {
    char type;
    int num;
    char name[10];
    } rec;
    char是1字节,int是4字节,若按4字节对齐,那么sizeof(rec)等于( )
    正确答案: D 你的答案: A (错误)
    15
    16
    18
    20
    1+4+10=15,然后sizeof(rec)必须是最长一个成员的大小的整数倍,所以是20

  10. 【单选】下面函数的输出结果是什么:
    void func() {
    int k = 1^(1 << 31 >> 31);
    printf("%d\n", k);
    }
    正确答案: C 你的答案: 空 (错误)
    0
    -1
    -2
    1
    1为整数,补码=原码=0000 0000 0000 0000 0000 0000 0000 0001
    1算术左移31位(算术左移右边补0) = 1000 0000 0000 0000 0000 0000 0000 0000
    然后算术右移31位(算术右移左边补位与最高位相同)= 1111 1111 1111 1111 1111 1111 1111 1111
    则1<<31>>31 = 1111 1111 1111 1111 1111 1111 1111 1111
    最高位为1 是负数,故原码 = 1000 0000 0000 0000 0000 0000 0000 0001 = -1
    最后表达式即为1^-1 = 0000 0000 0000 0000 0000 0000 0000 0001
    ^ 1111 1111 1111 1111 1111 1111 1111 1111
    =1111 1111 1111 1111 1111 1111 1111 1110
    最终结果为 1111 1111 1111 1111 1111 1111 1111 1110 为负数
    其原码为1000 0000 0000 0000 0000 0000 0000 0010 = -2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值