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的大小;

相关推荐
饮长安千年月2 小时前
Linksys WRT54G路由器溢出漏洞分析–运行环境修复
网络·物联网·学习·安全·机器学习
红花与香菇2____2 小时前
【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上)
笔记·嵌入式硬件·学习·pcb设计·cadence·pcb工艺
尼尔森系4 小时前
排序与算法:希尔排序
c语言·算法·排序算法
一天八小时5 小时前
Docker学习进阶
学习·docker·容器
前端没钱5 小时前
前端需要学习 Docker 吗?
前端·学习·docker
拥有一颗学徒的心5 小时前
鸿蒙第三方库MMKV源码学习笔记
笔记·学习·性能优化·harmonyos
车端域控测试工程师5 小时前
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑰】
经验分享·学习·汽车·测试用例·capl
GEEK.攻城狮5 小时前
使用VSCODE开发C语言程序
c语言·ide·vscode
车端域控测试工程师5 小时前
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑪】
经验分享·学习·汽车·测试用例·capl
Victoria.a6 小时前
数组和指针常见笔试题(深度剖析)
c语言·开发语言