C语言—每日选择题—Day48

第一题

  1. 已知宏定义: #define M y*y+3*y , 则表达式 s=3*M+4*M+y*M 预处理阶段后的结果是
    A:s=3*(y*y+3*y)+4*(y*y+3*y)+y*(y*y+3*y)

B:s=3*(y*y)+3*y+4*(y*y)+3*y+y*(y*y)+3*y

C:s=3*y*y+3*y+4*y*y+3*y+y*y*y+3*y

D:s=3*(y*y)+(3*y)+4*(y*y)+(3*y)+y*(y*y)+(3*y)

答案及解析 C

你要记住,一个.c文件在运行之前,是要经过预处理--编译--汇编--链接这几个阶段的;

通过历史 --> 了解翻译环境(预处理、编译、汇编、链接)-CSDN博客

预处理阶段对于宏就是直接替换,替换就是原封不动地换,只要无中生有就是错,所以只有C是对的,其他都多加了括号

第二题

  1. int (*p)[5]; 定义的是
    A:p是一个指针数组,该数组中的每一个元素都是一个整型指针

B:p是一个数组的指针,该指针指向一个长度为5的整型数组

C:p是一个函数指针,该指针指向一个参数为5的函数

D:p是一个指针函数,该函数的返回值为一个整型指针

答案及解析 B

因为这里是用括号将*p括起来了,所以p先和*结合,形成指针,指针指向的是int [5],数组类型。所以这个p是一个数组指针,指向的是一个长度为5的整型数组。

第三题(涉及操作系统)

  1. 使用C语言将一个1G字节的字符数组从头到尾全部设置为字'A',在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()
    A:0.001秒

B:1秒

C:100秒

D:2小时

答案及解析 B

本题涉及里操作系统的知识,但是我写到C语言的原因就是,等大家学到操作系统之后,就会发现大多数的操作系统都是用C语言写的,里面的指令也是用C语言写的程序,这个时候你会感觉到C生万物!

执行1条语句约 1ns 即10的-9次方秒

1G = 1024M = 1024 * 1024kb = 1024 * 1024 * 1024 byte

每次赋值1byte都要执行一次语句

所以至少花1024 * 1024 * 1024 * 10 ^(-9)= 1.073741824s,最接近一秒。

第四题

  1. 下面各输入语句中错误的是()
cpp 复制代码
struct ss
{
    char name[10];
    int age;
    char sex;
} std[3], *p = std;

A:scanf("%d", &(*p).age);

B:scanf("%s", &std.name);

C:scanf("%c", &std[0].sex);

D:scanf("%c", &(p->sex));

答案及解析 B

本题考查的是如何对拿出结构体的成员,如果大家对操作符优先级不熟悉,先看这个博客:

C语言操作符优先级表格(建议收藏,每次看一下)-CSDN博客
首先看*p = std;

这是定义的一个结构体指针,C语言允许在声明之后定义;相当于struct ss *p ;

结构体指针访问成员变量需要用 ->

A:正确:这里是先把p解引用了,*p也就是一个结构体变量,结构体变量访问成员就用 '.'

之后拿到age,是一个整型,输入的时候需要取地址;

D:正确:这里就是直接用结构体指针访问成员,取到的是sex字符类型的变量,输入的时候依旧是要取地址。
而在后面定义的std[3],这是一个结构体的数组,数组元素都是一个一个的结构体;

B:错误:std是数组名,数组名是首元素地址,也就是第一个结构体的地址,是结构体指针,结构体指针访问成员是需要->,这里用 '.'错误;

C:正确:std[0]是一个结构体,访问的是sex这个成员,输入的时候取地址;

第五题

5.下面程序运行的结果是()

cpp 复制代码
#include<stdio.h>
void add(int *p)
{
    (*p)++;
    printf("%d", *p);
    if (*p > 5)
    {
        return;
    }
    add(p);
}
int main()
{
    int i = 0;
    add(&i);
    return 0;
}

A:12345

B:123456

C:111111

D:未知

答案及解析 B

本题考查的是递归,只要你能弄明白递归,这个题就没问题;还有一点就是p是地址,一直都是传地址,所以对*p修改一直影响i的大小;

相关推荐
丁满与彭彭10 分钟前
嵌入式学习笔记-MCU阶段-DAY01
笔记·单片机·学习
呼啦啦--隔壁老王42 分钟前
dexopt学习待整理
学习
无限远的弧光灯1 小时前
c语言学习_函数递归
c语言·开发语言·学习
海海不掉头发1 小时前
【计算机组成原理】-CPU章节学习篇—笔记随笔
笔记·单片机·学习·考研·计算机组成原理
胖大和尚1 小时前
C++项目学习计划
开发语言·c++·学习
小林C语言2 小时前
C语言 | 指针小结
c语言
amazinging2 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十四天
python·学习·appium
黎明smaly3 小时前
【排序】插入排序
c语言·开发语言·数据结构·c++·算法·排序算法
运营黑客4 小时前
Grok 4,来了。
人工智能·学习·ai·aigc
LIN-JUN-WEI5 小时前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器