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


    第一题

    1. 在如下结构定义中,不正确的是( )。

    A:

    1. struct student
    2. {  
    3. int no;  
    4. char name[10];  
    5. float score;
    6. };

    B:

    1. struct stud[20]
    2. {  
    3. int no;  
    4. char name[10];  
    5. float score;
    6. };

    C:

    1. struct student
    2. {  
    3. int no;  
    4. char name[10];  
    5. float score;
    6. }stud[20];

    D:

    1. struct
    2. {  
    3. int no;  
    4. char name[10];  
    5. float score;
    6. }stud[20];

    答案及解析 B

    本题考查的是结构体的定义可以在哪里定义。

    A:正确,A是声明,没有定义,我们可以在别的地方定义

    B:错误,不可以把数组作为结构体名

    C:正确,在结构体右括号末尾定义结构体对象,只不过是定义的结构体数组

    D:正确,这种没有声明结构体的名的结构体是匿名结构体

    第二题

    2. 在 32 位平台上,这个联合的大小是()字节

    1. union test {
    2. int x;
    3. char y;
    4. float z;
    5. };

    A:7

    B:2

    C:1

    D:4

    答案及解析 

    union联合体是共用一个存储空间的,但是至少是最大的成员所需要的空间,int 是 4字节,char 是 1字节,float 是 4字节,所以最大成员就是4字节,这个联合体就是4字节。

    第三题

    3. 下面程序执行的结果为()

    1. int main( ) {
    2. char ch1,ch2;
    3. ch1 ='D'+'8'-'3';
    4. ch2 ='9'-'1';
    5. printf("%c %d\n",ch1,ch2);
    6. return 0;
    7. }

    A:I '8'

    B:I 8

    C:G '8'

    D:其他几项都不对

    答案及解析 B

    本题是考查大家对ASCII值的了解,但这里其实用不到ASCII,我们可以推断'8' - '3'的转换成ASCII值的变化量是相同的,所以'8' - '3' = 8 - 3 = 5,‘D’ + 5 = ‘I’。同理ch2 = 8;答案就是B

    第四题

    4. DIV (x+5,y-5)引用,替换展开后是( )

    #define DIV(a, b) a / b

    A:x+5/y-5

    B:(x+5/y-5)

    C:(x+5)/(y-5)

    D:(x+5)/(y-5);

    答案及解析 A

    这里考查的是宏替换的问题,记住是替换,不要添加多余的括号,所以平行替换就是A

    第五题

    5. 有下面一段代码,执行会出现什么问题?

    1. #define NUM 5
    2. char str[NUM-1];
    3. str[sizeof(str)]='\0';

    A:没有问题

    B:数组越界

    C:赋值错误

    D:忘记加地址运算符&

    答案及解析 B

    str[NUM-1] 替换成 str[4],是一个字符串,有4个元素,sizeof(str)计算的是整个数组的大小,因为sizeof+数组名是代表整个数组,所以总大小为4,

    原式=str[4] ,但是下标访问数组的范围是0~3,没有下标为4的元素,是越界访问。

  • 相关阅读:
    从尾到头打印链表 ,合并两个排序的链表、反转链表 :迭代法
    教育领域数据可视化:点亮知识之路
    【Arduino32】PWM控制直流电机速度
    基于安卓的校园信息助手系统设计(Eclipse开发)
    9.3 Ret2Libc 实战之利用VirtualProtect
    原生小程序 自定义组件
    论文:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks
    Android实现ViewPager适配器kotlin简单实现
    C++入门 —— 命名空间
    计算机专业毕业设计项目推荐09-个人医疗系统(Spring+Js+Mysql)
  • 原文地址:https://blog.csdn.net/2302_76941579/article/details/134512974