C语言--每日五道选择题-- Day22

news2024/9/20 12:37:57

第一题(注意)

1.下列 C 代码中,不属于未定义行为的有:______。

A:int i=0; i=(i++);

B:char *p="hello"; p[1]='E';

C:char *p="hello"; char ch=*p++;

D:int i=0; printf("%d %d\n",i++,i--);

答案及解析 C

        未定义行为是指C语言标准未做规定的行为。同时,标准也从没要求编译器判断未定义行为,所以这些行为有编译器自行处理,在不同的编译器可能会产生不同的结果,可能报错,可能正常运行,可能运行结果不同。

未定义行为:
1.变量即是左边结果,又是右边的操作数,如a+=a++,a %= b ^= a ^= b ^= a
2.使用越界数组也是C的一个“未定义行为”
3.允许一个随便指的指针的读写。
4.使用未初始化的变量

5.改变字符串常量

A:经典的变量即是左边结果,又是右边操作数,属于未定义行为;

B:首先p指向的是字符串常量,修改字符串常量也是未定义行为;

C:定义了一个字符串常量,后面的ch是取的*p++,先p++,p存的是hello的首元素地址,是p的地址,p++指向e,解引用之后取到的是e,ch = e。只是赋值,没有改变字符串常量,不是未定义行为;

D:在printf语句中i++和i--无法确定谁先运行,是未定义

相关博客:C/C++未定义行为的例子汇总-CSDN博客

第二题

2.下面程序输出为()

#include <stdio.h>
int fun(int a) {
    int b = 0;
    static int c = 3;
    b++;
    c++;
    return (a+b+c);
}
 
int main( ) {
    int i=0;
    for(; i < 3; i++)
        printf("%d",fun(2));
    return 0;
}

A:777

B:789

C:7911

D:71320

答案及解析 B

本题考查的是局部的static变量(静态变量)的相关知识,我们要知道,局部静态变量只会初始化一次,然后后续变化都会累加;

第三题(有异议)

3.下列叙述中,错误的是:

A:计算机不能直接执行C语言编写的源程序。

B:C程序经编译后,生成的扩展名为.obj的文件是一个二进制文件。

C:扩展名为.obj的文件,经链接程序生成扩展名为.exe的文件是一个二进制文件。

D:扩展名为.obj和.exe的二进制文件都可以直接运行。

答案及解析 D

本题是考查大家对翻译环境的理解,关于翻译环境的博客:通过历史 --> 了解翻译环境(预处理、编译、汇编、链接)-CSDN博客

A:计算机只识别二进制指令,所以要通过预处理--> 编译 --> 汇编 --> 链接 才能传给计算机

B:这里的B选项不严谨,准确来说编译生成的是.s的文件,并不是我们的obj文件,因为我们的编译器是会先把.c 文件经过预处理先生成.i文件,之后对.i文件进行编译翻译成我们的汇编代码生成.s文件,之后才是经过汇编翻译成我们的.obj/.o这样的目标文件,但是目标文件是不能够执行的,还需要通过链接,找到对应的动态库啊或者静态库这样的,为的是找到你调用的函数的定义。

        这里的不严谨取决你的编译器是直接将C语言翻译成二进制指令,还是要先把C转换成汇编,再由汇编变成二进制,如果是前者,就是对的,后者就是错的。其实一般就是转为汇编,毕竟我们先有汇编变成二进制的编译器啊,站在巨人的肩膀上嘛!而且C语言和汇编还相似,所以我才会说这里不严谨,毕竟计算机这门学科应该是发展性,继承性的学科,而不是我发明了个新的东西,要重新开始写所有的东西。但是D是最错的,所以就是D了。

        在牛客网本题的评论就是本人发的,没有存在抄袭哦

C:这是对的,.obj的文件通过链接之后才形成.exe的可执行程序;

D:记住.obj/.o只是目标文件,还没有找到对应的函数定义,所以无法执行,需要通过链接寻找动态库或者静态库,才可以找到函数的定义,进而生成可执行的.exe文件。

第四题

4. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是( )

A:3

B:4

C:11

D:12

答案及解析 A

本题考查的是优先级的问题,这里就不做解释

相关博客:C语言操作符优先级表格(建议收藏,每次看一下)-CSDN博客

第五题

5. 在 gcc 环境下,已知数组 int arr[5]={1,2,3,4,5}; 则 *(*(&arr+1)-1) 的结果为

A:1

B:0

C:4

D:5

答案及解析 D

本题是考查的&arr代表的是什么?

本身arr代表的是数组首元素地址,&arr是取出整个数组的地址,那他就相当于一个指针变量里存放一整个数组的地址,如何把一个数组的地址都存进去呢?就是把数组每个元素的地址,变成一个指针数组,再放在这个指针变量中,所以这个变量也就是二级指针,这样说其实很抽象,大家可以看图来理解。既然&arr是一个二级指针,加一就是跳过的一个数组,我们还需要知道地址是连续的,所以&arr+1指向的就是这里,但是实际就是5的地址后面的地址,因为是跳过一整个数组的地址,*(arr+1)就是解引用,取到的是一级指针,也就是5后面的地址,*(arr+1)- 1 就是对这个地址减1,减少的就是sizeof(int)的大小,就是5的地址,再解引用就是5了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1238594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年湖北省水利厅的安管人员水安ABC证报考指南

2024年湖北省水利厅的安管人员水安ABC证报考指南 关于水安ABC报考&#xff0c;很多企业乃至个人都不是很清楚流程&#xff0c;叙后尘来给大家科普一下报考详细细节。2023年年度仅剩一次的报考时间定于2023年11月23日至11月28日。在这个时间段才可以网上填写报考资料&#xff0…

JOSEF信号继电器 JX-18A/2 电压 220VAC辅助电源 板后接线

JX-18/2A系列信号继电器 JX-18A/2A1信号继电器&#xff1b; JX-18A/2A2信号继电器&#xff1b; JX-18B /2A1信号继电器; JX-18B/2A2信号继电器; JX-18C/2A1信号继电器; JX-18C/2A2信号继电器; JX-18E/2A1信号继电器; JX-18E/2A2信号继电器; JX-18D/2A1信号继电器; JX…

java继承和重写(代码演示)

java中的继承和重写 概念 继承 在 Java 中&#xff0c;继承是面向对象编程中的重要概念&#xff0c;它允许一个类&#xff08;称为子类&#xff09;继承另一个类&#xff08;称为父类&#xff09;的属性和方法。子类可以继承父类的非私有属性和方法&#xff0c;并且可以添加…

C++一个关于delete的幼稚错误

分析 在项目开发中&#xff0c;遇上这么一个错误&#xff1a; 0xc00000fd stack_overflow 这是一个栈溢出的错误&#xff0c;奇怪&#xff0c;我delete怎么会提示这么一个错误呢&#xff1f; 与是问题了群&#xff1a; 总结 这个错误实在是蠢啊&#xff01; 没有细想&am…

m4s格式视频文件如何转mp4?三个方法教会你!

m4s格式是一种视频分片格式&#xff0c;它将视频文件分成多个小块&#xff0c;方便网络传输和播放。这种格式常用于流媒体服务&#xff0c;如在线视频网站、直播平台等&#xff0c;比如B站哔哩哔哩下载下来的视频就是这种格式。 方法一&#xff1a;野葱视频转换器 一款音视频转…

【UE5】蓝图

在开发过程中&#xff0c;不可避免地会有一些蓝图的操作。同时&#xff0c;蓝图也是UE很有特色的一个内容。 了解蓝图是什么&#xff08;What is BP?&#xff09; 广义上&#xff1a;蓝图是UE内置的脚本语言&#xff0c;可以书写类似代码的逻辑。&#xff08;任何可以连那种块…

代码随想录算法训练营第四十三天【动态规划part05】 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路&#xff1a; 等于把石头尽量分成重量相同的两堆 动规五部曲 确定dp数组及其下标含义&#xff1a;容量为j的背包&#xff0c;最多能装…

各大电商平台双十一“狂飙”,如何选择商城系统?

今年是“双十一”的第十五年。作为各大平台和品牌的全年最重要的营销节点&#xff0c;品牌们可谓是来势汹汹&#xff0c;各种促销活动和优惠力度让人眼花缭乱。 淘天数据显示&#xff0c;天猫促销活动开售当晚&#xff0c;155个品牌开卖成交额突破1亿元&#xff1b;首小时内7.1…

前端数组方法汇总集锦

前言 数组主要使用场景有&#xff1a; 存储和处理数据&#xff1a;数组是一种有序的数据结构&#xff0c;可以用来存储和处理多个相关的数据。在前端开发中&#xff0c;我们经常使用数组来存储和处理列表、表格、选项等数据。 循环和遍历&#xff1a;数组提供了循环和遍历的功能…

three.js学习总结超详细附带素材及源码

three.js学习总结超详细附带素材及源码 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景&#xff0c;camera相机&#xff0c;renderer渲染器 创建一个场景 this.scene new THREE.Scene(…

Redis 性能管理 主从复制与哨兵模式

目录 redis性能管理 内存碎片率 如何清理内存 面试题 Redis雪崩 Redis集群大面积故障 面试&#xff1a;Redis的缓存击穿 Redis的缓存穿透 Redis的集群高可用方案 redis的主从复制 哨兵模式 redis性能管理 redis的数据缓存在内存当中 info memory #在redis数据库中查…

金蝶云星空部署包导出文件

文章目录 金蝶云星空部署包导出文件 金蝶云星空部署包导出文件 打开补丁包后&#xff0c;贴入导出文件的文件夹&#xff0c;然后按F2即可导出到目标文件夹。

软件测试工具常用的都有哪些

软件测试工具是用于辅助软件测试的软件工具&#xff0c;可以帮助测试人员执行测试用例、记录测试结果、跟踪缺陷状态等&#xff0c;提高测试效率和质量。以下是一些常见的软件测试工具&#xff1a; 一、AutoRunner自动化测试工具 AutoRunner(简称AR&#xff09;是国内自主研发…

如何防止网络被入侵?

随着互联网的普及&#xff0c;网络安全问题越来越受到人们的关注。其中&#xff0c;如何防止网络被入侵是一个重要的问题。本文将介绍一些防止网络被入侵的方法&#xff0c;帮助大家保护自己的网络安全。 一、使用强密码 强密码是防止网络被入侵的第一道防线。一个好的密码应该…

d3dcompiler_47.dll缺失怎么修复,d3dcompiler_47.dll的作用有哪些

d3dcompiler_47.dll丢失是一种常见的电脑问题。如果你遇到了这个问题&#xff0c;不要惊慌&#xff0c;下面的方法可以帮助你解决。本文将详细介绍解决d3dcompiler_47.dll丢失问题的步骤&#xff0c;让你手把手地学会。 一.解决d3dcompiler_47.dll丢失问题的步骤 解决方法一&a…

2.4G无线收发芯片 XL2400P使用手册

XL2400P 系列芯片是工作在 2.400~2.483GHz 世界通用 ISM 频段的单片无线收发芯片。该芯片集成射 频收发机、频率收生器、晶体振荡器、调制解调器等功能模块&#xff0c;并且支持一对多组网和带 ACK 的通信模 式。发射输出功率、工作频道以及通信数据率均可配置。芯片已将多颗外…

驶入产业发展快车道,汉鑫科技人工智能研发中心正式启用!

11月18日&#xff0c;汉鑫科技人工智能研发中心正式启用。中心立足烟台&#xff0c;服务全国&#xff0c;聚焦工业智能、智能网联、智慧城市三大业务板块&#xff0c;以人工智能技术赋能政企实现“数智化”转型升级。该中心的启用标志着汉鑫科技在人工智能研发应用领域迈上了新…

JavaFx学习问题3---Jar包路径问题 (疑难杂症)

文章目录 前置提要:解决方法:调试JAR包后续补充&#xff1a; 前置提要: 我做了的JavaFx程序中&#xff0c;需要通过一个文件夹的相对路径&#xff0c;获取文件夹下所有音频文件的路径&#xff0c;把这些路径字符串放到一个List集合里&#xff0c;然后用Media让它播放声音。问题…

UVA11584划分成回文串 Partitioning by Palindromes

划分成回文串 Partitioning by Palindromes 题面翻译 回文子串(palind) 问题描述&#xff1a; 当一个字符串正序和反序是完全相同时&#xff0c;我们称之为“回文串”。例如“racecar”就是一个回文串&#xff0c;而“fastcar”就不是。现在给一个字符串s&#xff0c;把它分…

【擎标】CCID信息系统服务商交付能力等级认证标准

为顺应信息技术服务业发展趋势及市场需求&#xff0c;维护市场秩序&#xff0c;加强行业自律&#xff0c;促进信息系统服务商交付能力的不断提高&#xff0c;增强信息系统服务商创新能力和国际竞争力&#xff0c;支撑信息系统服务商转型提升&#xff0c;中国软件行业协会、企业…