1

C++常见面试题总结 阅读详情
 本试题仅用于考查C++/C 程序员的基本编程技能。内容限于C++/C 常用语法,不涉
及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C 的
理解程度,但不能反映考生的智力和软件开发能力。
笔试时间90 分钟。请考生认真答题,切勿轻视。
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10 分)
提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。例如 int 变量 n 与“零值”
比较的 if 语句为:
if ( n == 0 )
if ( n != 0 )
以此类推。
请写出 BOOL flag 与“零值”比较的 if 语句:
请写出 float x 与“零值”比较的 if 语句:
请写出 char *p 与“零值”比较的 if 语句:
二、以下为Windows NT 下的32 位C++程序,请计算sizeof 的值(10 分)
void Func ( char str[100])
{
请计算
sizeof( str ) =
}
char str[] = “Hello” ;
char *p = str ;
int n = 10;
请计算
sizeof (str ) =
sizeof ( p ) =
sizeof ( n ) =
void *p = malloc( 100 );
请计算
sizeof ( p ) =
高质量C++/C 编程指南,v 1.0
2001 Page 94 of 101
三、简答题(25 分)
1、头文件中的 ifndef/define/endif 干什么用?
2、#include <filename.h> 和 #include “filename.h” 有什么区别?
3、const 有什么用途?(请至少说明两种)
4、在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?
5、请简述以下两个for 循环的优缺点
// 第一个
for (i=0; i<N; i++)
{
if (condition)
DoSomething();
else
DoOtherthing();
}
// 第二个
if (condition)
{
for (i=0; i<N; i++)
DoSomething();
}
else
{
for (i=0; i<N; i++)
DoOtherthing();
}
优点:
缺点:
优点:
缺点:
高质量C++/C 编程指南,v 1.0
2001 Page 95 of 101
四、有关内存的思考题(20 分)
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:
Void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
请问运行Test 函数会有什么样的结果?
答:
高质量C++/C 编程指南,v 1.0
2001 Page 96 of 101
五、编写strcpy 函数(10 分)
已知strcpy 函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
(1)不调用C++/C 的字符串库函数,请编写函数 strcpy
(2)strcpy 能把strSrc 的内容复制到strDest,为什么还要char * 类型的返回值?
六、编写类String 的构造函数、析构函数和赋值函数(25 分)
已知类String 的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String 的上述4 个函数。
高质量C++/C 编程指南,v 1.0
2001 Page 97 of 101
VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别 VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第六节:VBA中表示单元格样式A1、R1C1和R[1]C[1]之间的区别。 阅读详情

相关推荐

M1 芯片指南:M1、M1 Pro、M1 Max 和 M1 Ultra

这是一个强大的组合。M1 Pro 上有 337 亿个晶体管(是 M1 的两倍多),M1 Max 上有 570 亿个晶体管(比 M1 Pro 多 70%,比 M1 多 3.5 倍)。在测试中,我们看到 M1 Max 16 英寸 MacBook Pro 的多核得分为 12,733,几乎是 2019 款 MacBook Pro 的 6,663 的两倍。然后在 2022 年 3 月,Apple 更进一步,推出了 M1 Ultra,它结合了两个 M1 Max 芯片,CPU、GPU 和统一内存的数量是原来的两倍。

snowpiaopiao的博客 5932

50个C/C++面试题

面试题1:变量的声明和定义有什么区别  为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。  说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。  面试题2:写出bool 、int、 float、

沙漠中的一粒沙 1万+

minGW编译openssl1.1.1b过程

minGW编译openssl1.1.1b过程 1.下载安装minGW http://www.mingw.org/download/installer 官网下载安装器mingw-get-setup.exe,下载并安装。安装过程参考https://www.cnblogs.com/lidabo/p/8990348.html。为了防止以后使用时遇到莫名其妙的问题,组件全选安装了。 装完后 C:\MinGW...

dy_seiya的博客 2026

【附答案】C/C++ 最常见50道面试题

在编程中,变量的声明指的是告知编译器变量的名称和类型,但不分配内存空间。声明可以多次,常见于头文件中,用于模块间的接口声明。使用extern关键字声明的变量,意味着其定义在别处,通常在另一个文件中。相对地,定义则是创建一个具有存储空间的变量实例。定义只能有一次,通常在源文件中,确保为变量分配内存空间。例如,全局变量和局部变量的定义就是分配内存并初始化的过程。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1万+

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

OpenSSL 1.1.1q核心库文件详解:libcrypto.so.1.1与libssl.so.1.1

OpenSSL是一个广泛使用的加密库,它提供了强大的加密算法和协议实现,是构建安全通信不可或缺的组件。它不仅仅是一个加密库,还包括了用于实现安全通信的工具和库,例如SSL/TLS协议的实现、密钥和证书管理等。OpenSSL是开源的,提供了一个免费的替代方案,用于商业和非商业用途,支持多种编程语言。随着互联网安全的重要性日益增加,OpenSSL的稳定性和功能的不断演进使其成为IT行业中的一个核心组件。

weixin_36431145的博客 2188

TIM1_CH1N和TIM1_CH1的区别和控制

1:TIM1是一个完整的电机控制用定时器外设,TIM1_CH1和TIM1_CH1N,用于驱动上下两个功率管。如果Deadtime为0,则 TIM1_CH1N是TIM1_CH1的反相,如果Deadtime不为0,则在TIM1_CH1N上插入了Deadtime,防止上下功率管同时导通。 2:TIM1_CH1N是TIM1_CH1的互补输出 ,用于TIM1的同步PWM模式。 Footprint ...

君王羔羊 3万+

C++面试题集锦(非常详细)

面试题集锦,网上摘抄到一些,自己整理一部分,形成文档。看完面试基本能通过一半。

Python中[-1]、[-1]、[-1]、[n-1]、[,,0]、[…,0]、[…,-1] 的理解

在python中会出现[-1]、[:-1]、[::-1]、[n::-1]、[:,:,0]、[…,0]、[…,::-1],他们分别是什么意思呢,这里就来详尽的说一下:下面的a = [1,2,3,4,5][-1]: 列表最后一项 [:-1]: 从第一项到最后一项 原型是[n : m],前闭后开,索引从零开始,第一个索引指定可以取到,即n可以取到,后一个索引不可取到,即m不可取到。 [::-1]: 代表从全列表倒序取 原型是[n : m : k],代表的是从那一段开始取,隔几个取一次。 其中,n代表的是取值开

m0_54850825的博客 1万+

手把手教你用CV5200模块搭建无人机高清图传系统(含实测数据)

本文提供了一份基于CV5200模块搭建远距离无人机高清图传系统的完整实战指南。文章详细解析了系统架构、硬件连接、软件配置与优化,并分享了实地飞行测试数据。核心在于利用CV5200的LR-WiFi私有协议,在视距下实现数公里级的稳定高清视频传输,为DIY爱好者和行业应用提供了高性价比的解决方案。

day7的博客 718

VS配置RTKLIB(卫星定位开源代码)环境

@RTKlib代码调试教程-Visual Studio 2019 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ##RTKLIB-rtklib_2.4.3 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @RTKlib代码调试教程-Visual Studio 2019 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技

qq_42209977的博客 4486

1分钟搞懂 where 1=1 和where 1=0 的作用

一、sql 语句之 where 1=1 先说下它的目的,where 1=1 就是为了使该 sql 语句的条件永远为true。 通常用于(多)条件查询,在构造动态sql语句时可以防止sql语句结构不当而出错。 举个例子就加清晰了,比如说现在要根据几个条件查询一张表,也就是常说的多条件查询: String sql="select * from table where "; if(age>18){ sql=sql+ "age=" + age; } if(sex.equals("男")){ sql=sql

Awwwze的博客 6616

最近爆火的 Ontology 本体是什么?一文看懂基础概念 + 落地实操

1993 Tom Gruber原版定义:本体是对领域概念化模型的显式形式化规范。1998 Studer完善通用定义:本体是共享、明确、形式化的领域概念模型规范。大白话翻译:本体就是机器能看懂的行业词典+业务规则手册。数据库只管存数据,本体只管定规则,知识图谱是规则+数据结合体。区别于普通开源本体工具,这款国产商用本体平台核心优势:业务沙盘推演、可控业务数据写回、全链路字段级数据血缘审计,适配企业生产级业务落地。

驽马不舍 364

MySql为什么要用where 1=1和where 1<>1

1. where 1 <> 1 之前一直不太明白,sql语句里为什么要写where 1=1 巴拉巴拉巴拉 提升某种执行效率? 其实,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以。 这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。 如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名=‘用户输入的姓名’,如果还选择了其

赵广陆 3849

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

AI时代敏捷开发新范式——意图驱动开发IDD

具体的功能代码、单元测试、集成测试用例,以及最终可运行的、支持PlantUML的Markdown转Word工具新版本。:业务方(如技术文档团队)反馈,现有的Markdown转Word工具在处理包含PlantUML代码块的文档时,无法正确生成图表,导致技术方案、架构图等关键信息丢失,严重影响了文档交付质量和团队效率。这不仅带来了交付周期显著缩短、资源效能倍增的可观收益,更深远的意义在于,它描绘了未来软件工业化、智能化的新图景:一个由精准意图驱动、AI自主执行、人类智慧引领的敏捷、高效、高质的新世界。

LiuJunjiang的专栏 549

openssl 1.1.1L /1.1.1o/1.1.1t rpm包制作——筑梦之路

https://www.openssl.org/source/openssl-1.1.1l.tar.gzhttps://www.openssl.org/source/openssl-1.1.1l.tar.gz openssl.spec文件内容 Summary: OpenSSL 1.1.1l for CentOS Name: openssl Version: %{?version}%{!?version:1.1.1l} Release: 1%{?dist} Obsoletes: %{name} <=

筑梦之路 5724

【微服务】SpringBoot 整合 FastExcel 实现导入导出操作详解

SpringBoot 整合 FastExcel 实现导入导出操作详解

congge 4232

1X1卷积

在学习1x1卷积之前,我们先对多通道卷积进行简单的回顾,这样更方便对1x1卷积的理解多通道卷积是将各通道的卷积后对应位置累加求和,简单的说就是。

weixin_53297048的博客 2787

【AI大模型应用开发】1.0 Prompt Engineering(提示词工程)- 典型构成、原则与技巧,代码中加入Prompt

Prompt典型构成、原则与技巧,以及OpenAI API重要参数解释,助你轻松入门Prompt

同学小张的博客 2580

YOLOv12改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF

在目标检测中,处理多尺度物体是一个具有挑战性的问题。虽然特征金字塔或多级特征塔是解决多尺度问题的常用方法,但在单阶段检测器中,不同尺度特征之间的不一致性限制了其性能提升。为了解决这个问题,提出了自适应空间特征融合(ASFF)模块。

Limiiiing的博客 1169

制作OpenSSL1.1.1i rpm包

CentOS7下制作openssl1.1.1i RPM包 1、确认当前环境下系统版本及openssl版本 [root@centos ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@centos ~]# [root@centos ~]# rpm -aq openssl openssl-1.0.2k-19.el7.x86_64 [root@centos ~]# [root@centos ~]# rpm -aq |

Arhur_hzx的博客 4954

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HTTP 1.1与HTTP 1.0的比较

 HTTP 1.1与HTTP 1.0的比较一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,

李蓝箫 5万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算 1- 1/2 +1/3 -1/4....+1/n 或 计算 1+ 1/2 +1/3 +1/4....+1/n

计算 1 - 1/2 +1/3 -1/4…+1/n #include <stdio.h> int main() { int i,n; double sum,sign=1.0; scanf("%d", &n); for(i=1;i<=n;i++){ sum += sign/i; sign = -sign; } printf("f(%d)=%lf\n",n, sum)...

xjyh_gy的博客 6118

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【免费下载】 OpenSSL 1.1.1 版本下载

OpenSSL 1.1.1 版本下载 【下载地址】OpenSSL1.1.1版本下载 本仓库提供了一个包含两个版本的 OpenSSL 1.1.1 的压缩包下载。压缩包中包含了以下两个版本的 OpenSSL:- OpenSSL 1.1.1i- OpenSSL 1.1.1h ...

gitblog_09815的博客 7948
上一篇: Lua脚本语法说明
下一篇: 内存管理
SearchLife
博客等级 码龄20年 51粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值