2月26日做题总结(C/C++真题)

news/2024/4/19 16:17:58/

        今天是2024年2月16日,新学期开学第一天。在大三这个重要阶段,我决定参加24年秋招。在准备项目的同时,也先做一些入门的笔试题吧,慢慢积累。如果你也是处于这个阶段,欢迎来找我交流讨论!

        今天是做题第一天,就先从C/C++真题入手吧!(不做不知道,一做吓一跳,一做题发现自己的漏洞还是很多的。)慢慢来吧,只要坚持+努力,终会长风破浪会有时,直挂云帆济沧海!

第一题

下列定义不正确的是()

A---#define PI 3.1415926

B---#define S345

C---int max(x,y);int x,y;{}

D---static char c;

正确答案:C

解析:先讲一下C为什么错,int max(x,y);声明函数,但是形参未标示类型,所以C选项的定义是不正确的。这题的易错点是选B,其实#define S345是一个空宏定义,其作用是对函数进行标识、说明。

第二题

以下哪一句会出错?

char    *s="AAA";    //1
printf("%s",s);      //2
s[0]='B';            //3
pritf("%s",s);       //4

A---第一句

B---第二句

C---第三句

D---第四句

正确答案:C

解析:初始化指针时所创建的字符串常量被定义为只读。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。s[0]只可读,不可写,也可以理解为指针只具有指向/寻址权限,没有修改数值权限。

第三题

设有如下定义:

struct Jan
{int   a;float b;
}c2,*p;

若有p=&c2;则对c2中的成员a的正确引用:()

A---(*p).c2.a

B---(*p).a

C---p->c2.a

D---p.c2.a

正确选项:B

解析:p是指向结构体对象c2的指针,指针引用对象用->符号。常见的有3种表达方式,如下:

第一种c2.a

第二种(*p).a

第三种p->a

第四题

下列描述,正确的一共有几个?

(1)const char *p,这是一个常量指针,p的值不可修改

(2)在64位机上,char *p=“abcdefghijk”;sizeof(p)大小为12

(3)inline会检查函数参数,所以调用开销显著大于宏

(4)重载是编译时确定的,虚函数是运行时绑定的

A---1个

B---2个

C---3个

D---4个

正确答案:A

(1)错误,const char *p中,应该是p这个字符指针所指向的值才不会发生改变。

        看到const记住一句话,左定值、右定向。举个例子,const int *p是常量指针,比如说是指向一个字符常量“abc”的指针,const在*左边,左定值,也就是说这个“abc”的内容不能被换掉,但是这个指针可以指向别的地址上。int *const p是指针常量,比如说这个p的地址是0X80000,const在*右边,右定向,也就是说这个指针是死死的指着0X80000不会改变,但这个地址上对应的内容是可以换成别的。

(2)错误,sizeof(p)的返回值是8 。这个8指的是char *这个指针类型在64位机器上的大小,而不是12 。

(3)错误,对于inline和宏的比较:内联函数比宏更安全,前者会有类型检查,后者只是代码的简单替换;inline在编译时,是把函数代码直接插入到目标代码中,通过空间换取时间来提高执行效率,不存在普遍函数的调用开销。

(4)正确,重载是编译时确定的,虚函数是运行时绑定的

第五题

若有如下说明:

int *p,m=5,n;

则下面程序段正确的是()

A---p=&n;scanf("%d",&p);

B---p=&n;scanf("%d",*p);

C---scanf("%d",&n);*p=n;

D---p=&n;*p=m;

正确答案:D

解析:因为p是指针变量,在scanf中不能再使用&p或者*p来接收键盘的输入值,应直接用p即可,所以A和B错误。而C中,*p=n是“野指针”赋值,因为p未指向某一内存单元,所以C错误。而D中,先将变量n的地址给指针变量p,然后再把m的值赋值给p所指向的内存单元,也就是赋值给n,所以D正确。

第六题

以下程序统计给定输入中每个大写字母的出现次数

void AlphabetCounting(char a[],int n)
{int count[26] = {}, i, kind = 10;for(i = 0;i < n;++i) (1);for(i = 0;i < 26;++i){if(++kind > 1) putchar(';');printf("%c=%d", (2));}
}

A---++count[a[i]-'Z'];'Z-i',count['Z'-i]

B---++count[A-a[i]];'A+i',count[i]

C---++count[i];i,count[i]

D---++count['Z'-a[i]];'Z-i',count[i]

正确答案:D

解析:在ASCII表中,大写字母对应的是65-90,小写字母对应的是97-122;本题输入设定全部都是大写,所以有两种情况。

        第一种,count[0;25]存储A-Z的个数,即count[0]存储A的个数,于是(1)++count[a[i]-'A'];(2)'A'+i,count[i];

        第二种,count[0;25]存储A-Z的个数,即count[0]存储Z的个数,于是(1)++count['Z'-a[i]];

(2)'Z'-i,count[i];

所以本题答案为D。

第七题

若有以下的定义:

int t[3][2];

t[2]能正确表示t数组某元素的地址。表述是否正确?

A---正确

B---错误

正确答案:A

解析:这道题谈一下我的理解,t[2]与&t[2][0]的值相等,但是意义却不一样。前者表示一整个一维数组的地址,而编译器一般将数组的首元素的地址默认为整个一维数组的地址,所以t[2]与&t[2][0]的值才会相等。

第八题

执行以下语句,输出结果为()

#include<stdio.h>
int main( ) 
{char *p1 = "hello";char *p2 = "world";char *p3 = "a piece of cake";char *str[] = {p1, p2, p3};printf("%c", *(str[0] + 1));
}

A---world

B---hello

C---编译时错误

D---其他选项都不正确

正确答案:D

解析:这题很有误导性,一不小心就会掉到出题人的坑里,让我们一起来看看吧!char *str[]={},str是一个数组名,数组每个元素都是char *,str[0]取得数组首元素,也就是p1指针,p1指向的是“hello”,p1指针+1前进一位指向字符e,最后输出e。注意,%c是只输出一个字符。而这题如果改为*(str+1),那输出结果就变成world了,大家要注意区分。

第九题

enum string
{    x1,    x2,    x3 = 10,    x4,    x5,    
} x;

函数外部访问x等于什么?

A---5

B---12

C---0

D---随机值

正确答案:C

解析:如果是在函数外定义,则为0(全局变量,初始化为0)。如果是函数内定义,则是随机值(局部变量,需要人初始化,否则编译时会显示变量未初始化)。

第十题

若所用变量都已正确定义,以下选项中,非法的表达式是()

A---a!=4||b==1

B---'a'%3

C---'a'=1/3

D---'A'+32

正确答案:C

解析:A选项正确,考察运算符的优先级:关系运算符>逻辑运算符;BD选项,当字符型与整型运算时会自动转换成整型,所以BD正确;C选项,‘a’是char类型,1/3是int类型。将int赋值给char属于从高向低赋值,所以错误。

        全力以赴,奔向远方!向前看吧,别烂在过去和梦里,总有一天你也会是别人翘首以盼的惊喜!

                                                                        ---送给每一位拼搏努力的追梦人


http://www.ppmy.cn/news/1364182.html

相关文章

SQL注入漏洞解析-less-8(布尔盲注)

我们来看一下第八关 当我们进行尝试时&#xff0c;他只有You are in...........或者没有显示。 他只有对和错显示&#xff0c;那我们只能用对或者错误来猜他这个数据库 ?id1%27%20and%20ascii(substr(database(),1,1))>114-- ?id1%27%20and%20ascii(substr(database(),1,…

SQL注入漏洞解析--less-46

我们先看一下46关 他说让我们先输入一个数字作为sort,那我们就先输入数字看一下 当我们分别输入1&#xff0c;2&#xff0c;3可以看到按照字母顺序进行了排序&#xff0c;所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式 当输入时出现报错提示&#xff0c;说…

css transform 会影响position 定位

比如通过以下代码.实现导航条上的每个li栏目,以不同的时间间隔,从上向下移动进来并显示 .my-navbar ul li {position: relative;opacity: 0;transform: translateY(-30px);transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .6s cubic-bezier(.165,.84,.44,1);…

JWT学习笔记

了解 JWT Token 释义及使用 | Authing 文档 JSON Web Token Introduction - jwt.io JSON Web Token (JWT&#xff0c;RFC 7519 (opens new window))&#xff0c;是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准&#xff08;(RFC 7519)。该 token 被设计为紧凑…

python爬虫实战:获取电子邮件和联系人信息

引言 在数字时代&#xff0c;电子邮件和联系人信息成为了许多企业和个人重要的资源&#xff0c;在本文中&#xff0c;我们将探讨如何使用Python爬虫从网页中提取电子邮件和联系人信息&#xff0c;并附上示例代码。 目录 引言 二、准备工作 你可以使用以下命令来安装这些库&a…

批量获取图片(上)

1.文件的路径 在Windows系统的路径中&#xff0c;我们使用反斜线 ( \ ) 分隔各个文件夹和文件名。 而在macOS系统中&#xff0c;文件夹和文件名使用正斜线 ( / ) 进行分隔。 2.打开文件 在Python语言中&#xff0c;open()函数表示要打开一个文件&#xff0c;对文件进行处理的…

【pytorch】常用代码

文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…

移动端rem适配

如果需要使用 rem 单位&#xff0c;推荐使用以下两个工具&#xff1a; postcss-pxtorem 是一款 postcss 插件&#xff0c;用于将单位转化为 rem lib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配置到项目中完成 REM 适配。 一、使用 lib-flexible 动态设置 RE…

YOLOv9尝鲜测试五分钟极简配置

pip安装python包&#xff1a; pip install yolov9pip在https://github.com/WongKinYiu/yolov9/tree/main中下载好权重文件yolov9-c.pt。 运行下面代码&#xff1a; import yolov9model yolov9.load("yolov9-c.pt", device"cpu") # load pretrained or c…

Linux 学习笔记(4)

四、 文件权限 1 、文件类型 Linux 广泛的被很多用户所接受&#xff0c;它强大的功能受到很多人喜欢&#xff0c; Linux 文件一般是用一些相关的应 用程序创建&#xff0c;比如图像工具、文档工具、归档工具 ... .... 或 cp 工具等。 Linux 文件的删除方式是用 rm 命…

【Android】坐标系

Android 系统中有两种坐标系&#xff0c;分别为 Android 坐标系和 View 坐标系。了解这两种坐标系能够帮助我们实现 View 的各种操作&#xff0c;比如我们要实现 View 的滑动&#xff0c;你连这个 View 的位置都不知道&#xff0c;那如何去操作呢&#xff1f; 一、Android 坐标…

LeetCode第七题: 整数反转

题目描述 给你一个 32 位的有符号整数 x​ &#xff0c;返回将 x​ 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1]​ &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 …

自动驾驶---行业发展及就业环境杂谈

进入21世纪以来&#xff0c;自动驾驶行业有着飞速的发展&#xff0c;自动驾驶技术&#xff08;L2---L3&#xff09;也逐渐落地量产到寻常百姓家。虽然最早期量产FSD的特斯拉有着深厚的技术积累&#xff0c;但是进入2010年以后&#xff0c;国内的公司也逐渐发展起来自己的自动驾…

unity-unity2d基础操作笔记(二)0.5.101

unity2d基础操作笔记 五十一、canvas中的必须熟悉的属性五十二、如何调整canvas与游戏人物大小近似大小五十三、canvas中的canvas scaler介绍【概念】五十四、ui scale mode介绍【概念】五十五、为什么创建image后,canvas的范围要要远远大于游戏世界?五十六、图片常用操作【技…

将SU模型导入ARCGIS,并获取高度信息,多面体转SHP文件(ARCMAP)

问题:将Sketchup中导出的su模型,导入arcgis并得到面shp文件,进而获取各建筑的高度、面积等信息。 思路: (1)导入arcgis得到多面体 (2)转为面shp文件 (3)计算高度/面积等 1、【3D Analyst工具】【转换】【由文件转出】【导入3D文件】(在此步骤之间,建议先建立一个…

安全生产:AI视频智能分析网关V4如何应用在企业安全生产场景中?

随着科技的不断进步&#xff0c;视频智能分析技术在安全生产领域中的应用越来越广泛。这种技术通过计算机视觉和人工智能算法&#xff0c;可以对监控视频进行自动分析和处理&#xff0c;以实现多种功能&#xff0c;如目标检测、行为识别、异常预警等。今天我们以TSINGSEE青犀AI…

LASSO算法

LASSO (Least Absolute Shrinkage and Selection Operator) 是一种回归分析的方法&#xff0c;它能够同时进行变量选择和正则化&#xff0c;以增强预测准确性和模型的解释性。LASSO通过在损失函数中加入一个L1惩罚项来实现这一点。该惩罚项对系数的绝对值进行约束。 基本概念 …

019 Spring Boot+Vue 电影院会员管理系统(源代码+数据库+文档)

部分代码地址&#xff1a; https://github.com/XinChennn/xc019-cinema 一、系统介绍 cinema项目是一套电影院会员管理系统&#xff0c;使用前后端分离架构开发包含管理员、会员管理、会员卡管理、电影票、消费记录、数据统计等模块 二、所用技术 后端技术栈&#xff1a; …

STL常用容器(vector容器)---C++

STL常用容器目录 2.vector容器2.1 vector基本概念2.2 vector构造函数2.3 vector赋值操作2.4 vector容量和大小2.5 vector插入和删除2.6 vector数据存取2.7 vector互换容器2.7.1 vector互换容器收缩内存空间 2.8 vector预留空间 2.vector容器 2.1 vector基本概念 功能&#xf…

Linux之安装jdk,tomcat,mysql,部署项目

目录 一、操作流程 1.1安装jdk 1.2安装tomcat&#xff08;加创建自启动脚本&#xff09; 1.3 安装mysql 1.4部署项目 一、操作流程 首先把需要用的包放进opt文件下 1.1安装jdk 把jdk解压到/usr/local/java里 在刚刚放解压包的文件夹打开vim /etc/profile编辑器&#xff0c…