当前位置: 首页 > news >正文

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是对的,其他都多加了括号

第二题

2. int (*p)[5]; 定义的是

A:p是一个指针数组,该数组中的每一个元素都是一个整型指针

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

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

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

答案及解析 B

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

第三题(涉及操作系统)

3. 使用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,最接近一秒。

第四题

4. 下面各输入语句中错误的是()

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.下面程序运行的结果是()

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

http://www.lryc.cn/news/259918.html

相关文章:

  • 华为OD试题七(IPv4地址转换成整数、比赛的冠亚季军)
  • SVN优缺点详解及版本控制系统选型建议
  • 自己动手写数据库: select 查询语句对应查询树的构造和执行
  • 扬声器(喇叭)
  • 汇总大厂-校招/社招 Java面试题--持续补充更新中-大家别光收藏,要看起来,巩固基础,就是干呀!
  • 六. 函数
  • SpringBoot的Starter自动化配置,自己编写配置maven依赖且使用及短信发送案例
  • <蓝桥杯软件赛>零基础备赛20周--第9周--前缀和与差分
  • LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】
  • Redisson分布式锁原理分析
  • 【Linux】:线程(二)互斥
  • vscode报错Pylance client: couldn‘t create connection to server.
  • 智能优化算法应用:基于萤火虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • MacOS多屏状态栏位置不固定,程序坞不小心跑到副屏
  • Python:pipdeptree 语法介绍
  • 【问题处理】—— lombok 的 @Data 大小写区分不敏感
  • 跟着我学Python基础篇:08.集合和字典
  • Tomcat部署(图片和HTML等)静态资源时遇到的问题
  • 在接触新的游戏引擎的时候,如何能快速地熟悉并开发出一款新游戏?
  • 计网 - TCP四次挥手原理全曝光:深度解析与实战演示
  • 个人养老金知多少?
  • gpt3、gpt2与gpt1区别
  • PyQt6 QDateEdit日期控件
  • 【无线网络技术】——无线城域网(学习笔记)
  • RK3568平台 OTA升级原理
  • mysql迁移步骤
  • 计算机网络应用层(期末、考研)
  • Jenkins离线安装部署教程简记
  • 如果一个嵌套类需要在单个方法之外仍然是可见,或者它太长,不适合放在方法内部,就应该使用成员类。
  • Vue3 中的 Proxy--读懂ES6中的Proxy