请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

C语言--每日选择题--Day29

2023-12-01

第一题

1. while(1) {x++;}, 当x的取合适的初值时,可以避免死循环。

A:正确

B:错误

答案及解析 B

循环条件为1,在条件判断中,0为假,非0为真,1位真,所以无论x取什么,都是死循环

第二题

2. 运行下面程序的输出结果是()

int main() 
{
    int y=3,x=3,z=1;
    printf("%d%d\n",(++x, y++), z+2);
    return 0;
}

A:34

B:42

C:43

D:33

答案及解析 D

本题考查,前置++,后置++和逗号表达式

前置++,返回的是++之后的值;

后置++,返回的是++之前的值;

逗号表达式:会挨个计算括号里的表达式,但是只会输出最后一个表达式的结果;

所以选D

具体知识总结:C语言操作符优先级表格(建议收藏,每次看一下)-CSDN博客

第三题

3. 声明语句为int a[3][4];,下列表达式中与数组元素a[1][2]等价的是()

A:*(&a[0][0]+7)

B:*(a[1]+2)

C:*(a[0]+6)

D:a[7]

答案及解析  BC

A:先取到了a[0][0]的地址,这个地址z里面存的是int类型的,所以对地址的加法,+7,是往后移动7个int类型(4字节)的空间,到达的是a[1][3]的位置,再解引用*(&a[0][0]+7),取到的是a[1][3],所以不对;

B:a[1]是表示这个二维数组的第二行的地址,也是第二行这个一维数组的数组名,代表首元素地址,所以a[1] + 2是表示第二行第三个元素的地址,再解引用就是a[1][2];

C:a[0]表示这个二维数组的第一行的地址,也是第一行的一维数组的数组名,+6为什么是a[1][2]的地址,因为二维数组的地址是连续的,所以就是a[1][2];

D:a[7]是表示这个二维数组的第八行的地址,越界了

第四题

4. 若执行fopen函数时发生错误,则函数的返回值是()

A:地址值

B:0

C:1

D;EOF

答案及解析 B

fopen是打开文件的函数

打开失败返回NULL,也就是0;

打开成功返回文件结构体的指针;

第五题

5. #include<file.h> 与 #include "file.h"的区别?

A:前者首先从当前工作路径搜寻并引用file.h,而后者首先从Standard Library的路径寻找和引用file.h

B:前者首先从Standard Library的路径寻找和引用file.h,而后者首先从当前工作路径搜寻并引用file.h

C:两者都是首先从Standard Library的路径寻找和引用file.h

D:两者都是首先从当前工作路径搜寻并引用file.h

答案及解析 B

#include <>:会先从标准库找,标准库找不到,再去当前的目录找;

#include "":先从当前目录找,当前目录找不到,再去标准库找;

相关阅读

手机版|MSIPO技术圈 皖ICP备19022944号-2

Copyright © 2024, msipo.com

返回顶部