首页 > 编程语言 >面试笔试刷题 C++ (持续更新)

面试笔试刷题 C++ (持续更新)

时间:2023-01-01 12:00:43浏览次数:42  
标签:return int 笔试 C++ 随机数 printf 20 data1 刷题


阅读C++语言代码输出()

​​int​​         ​​main()​​       

​​{​​

​​int​​ ​​arr[]={​​ ​​1​​ ​​,​​ ​​2​​ ​​,​​ ​​3​​ ​​,​​ ​​4​​ ​​,​​ ​​5​​ ​​,​​ ​​6​​ ​​,​​ ​​7​​ ​​};​​

​​int​​ ​​*p=arr;​​

​​*(p++)+=​​ ​​89​​ ​​;​​

​​printf(​​ ​​"%d,%d\n"​​ ​​,*p,*(++p));​​

​​return​​ ​​0​​ ​​;​​

​​}​​

A.3 3    B.2 2    C.2 3    D.3 2

正确答案: A

首先在第五行中,p指针的位置往后挪了一位,指向了arr[1]。在C++中,函数的参数是从右往左进栈的,之所以会有这种情况,是因为有不定参数个数的函数存在,而printf则是典型的不定参数个数的函数,在第六行的printf中,先进栈的是*(++p),所以此时p指向arr[2],而后入栈的*p参数时,依然指向的是这个位置,所以答案为3 3.

2.阅读c++代码输出()

​​class​​         ​​base1{​​       

​​private​​ ​​: ​​ ​​int​​ ​​a,b;​​

​​public​​ ​​:​​

​​base1 ( ​​ ​​int​​ ​​i ) : b(i+​​ ​​1​​ ​​),a(b){}​​

​​base1():b(​​ ​​0​​ ​​),a(b){}​​

​​int​​ ​​get_a(){​​ ​​return​​ ​​a;}​​

​​int​​ ​​get_b(){​​ ​​return​​ ​​b;}​​

​​};​​

​​int​​ ​​main()​​

​​{​​

​​base1 obj1(​​ ​​11​​ ​​);​​

​​cout<<obj1.get_a()<<endl<<obj1.get_b()<<endl;​​

​​return​​ ​​0​​ ​​;​​

​​}​​

A.12 12    B.随机数 12    C.随机数 随机数    D.12 随机数

正确答案: B

此题跟上一题相似,因为函数的参数是从右至左进栈的,故第11行的构造函数中,先执行的a的赋值,由于此时b还未赋值,故其值为随机数,故选B。

3.以下代码在64位的机子上输出是什么:

​​#include <stdio.h>​​       

​​int​​ ​​getSize(​​ ​​int​​ ​​data[]){​​

​​return​​ ​​sizeof(data);​​

​​}​​



​​int​​ ​​main(){​​

​​int​​ ​​data1[] = {​​ ​​1​​ ​​,​​ ​​2​​ ​​,​​ ​​3​​ ​​,​​ ​​4​​ ​​,​​ ​​5​​ ​​};​​

​​int​​ ​​size1 = sizeof(data1);​​



​​int​​ ​​* data2 = data1;​​

​​int​​ ​​size2 = sizeof(data2);​​



​​int​​ ​​size3 = getSize(data1);​​



​​printf(​​ ​​"%d, %d, %d"​​ ​​, size1, size2, size3);​​

​​return​​ ​​0​​ ​​;​​

​​}​​

A.20 8 8    B.4 4 4    C.20 4 20    D.20 20 20

正确答案: A

首先第8行的size1的值为数组data1的大小,也就是5*4(int) = 20。第11行的size2求得的是指针data2的大小4。然后是第13行的size3,其值为getSize这个函数算出来的,而这个函数传过去的参数其实是一个指针,所以它的值也为4。

4.有以下程序

​​#include<iostream>​​       

​​#include<stdio.h>​​

​​using​​ ​​namespace​​ ​​std;​​

​​int​​ ​​main(){​​

​​int​​ ​​m=0123, n = 123;​​

​​printf​​ ​​(​​ ​​"%o %o\n"​​ ​​, m, n);​​

​​return​​ ​​0;​​

​​}​​

程序运行后的输出结果是()

A.0123 0173    B.0123 173    C.123 173    D.173 173

正确答案: C

第五行的初始化中,m的值为8进制的0123,故其在最后按8进制输出的时候值就为123,而n一开始为十进制的123,故最后的输出为173.


标签:return,int,笔试,C++,随机数,printf,20,data1,刷题
From: https://blog.51cto.com/RaAlGhul/5982912

相关文章

  • OpenCV+yolov3实现目标检测(C++,Python)
    OpenCV+yolov3实现目标检测(C++,Python)  目标检测算法主要分为两类:一类是基于RegionProposal(候选区域)的算法,如R-CNN系算法(R-CNN,FastR-CNN,FasterR-CNN),它们是two-st......
  • C++用finally函数实现当前函数运行结束自动执行一段代码
    我们的需求可能有这样的需求,fun(){    xx;    xx;    xx;    //希望在这里能自动执行一段设定好的代码,实现一些自动清除啥啥啥的操作}核心......
  • 按照这步骤来刷题,两个月你亦能成为王者
    公众号:bigsai回复「bigsai」领取pdf学习资源,回复「进群」一起打卡力扣成为王者前言最近很多小伙伴问我怎么入门数据结构与算法,又或者怎么刷题,很多人也说自己挺迷茫的。今......
  • C++11:引用限定符
    C++中有左值和右值的概念。其实,左值和右值的区分也同样适用于类对象,本文中将左值的类对象称为左值对象,将右值的类对象称为右值对象。1.C++11:引用限定符默认情况下,对于......
  • ISO C++ forbids taking the address of an unqualified or parenthesized non-static
    //model/util.h#pragmaonce#ifndef__util_h__#define__util_h__#include<chrono>#include<ctime>#include<fstream>#include<iomanip>#include<iostream>......
  • 计挑-国赛-C++-5题
    这跟前面做的蓝桥杯省赛-积木画一个类型,但是递推更简单些凭什么,同样是第五题,这跟Java那边都不是一个难度的#include<iostream>#include<vector>usingnamespacestd;......
  • vscode 上创建 c/c++ 工程
    以win10x64系统为例:首先下载并安装vscode和mingw,其中这个mingw的原版编译器是个在线安装包,由于网络被墙安装会非常慢,甚至经常会出现安装中途失败的情况,因此我将以往......
  • 漫谈C++内存和OpenGL各种缓冲对象(上)
    1、C++内存管理(1)常用数据类型占用内存大小:char1字节;int4字节;short2字节;long4字节;bool1字节;float4字节;double8字节;(2)堆栈的比较 [1]堆用于动态分配内存,容量大于......
  • Unified tutorial for dynamic and static compilation of Qt projects for C++
    EnvironmentinstallationRequirementsdownloadRequirementsLinksQt5.7dynamiccompilerqt-opensource-windows-x86-msvc2015-5.7.1CompiledQt5.......
  • C++通讯录管理程序[2022-12-31]
    C++通讯录管理程序[2022-12-31]问题描述:编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求:程序应提供的基......