3月6日做题总结(C/C++真题)

2024-03-07 19:28
文章标签 c++ 总结 真题 做题

本文主要是介绍3月6日做题总结(C/C++真题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        星光不负赶路人,时光不负追梦人!多一份努力,多一份成功的机会!

第一题

int a, b, x, i;
a = 3;
b = 4;
i = 3;
x = a > b ? i++ : i--;

x的值为()

A---2

B---3

C---4

D---5

正确答案:B

解析:这题并不难,要注意细节。a>b为假也就是x=i--。注意i--是先执行后减一,而--i是先减一后执行。

第二题

在说明语句int *f();中,标识符f代表的是()

A---一个用于指向整型数据的指针变量

B---一个用于指向一维数组的行指针

C---一个用于指向函数的指针变量

D---一个返回值为指针型的函数名

正确答案:D

解析:A选项中,指向整型数据的指针变量应说明为int *f。B选项中,指向一维数组的行指针应说明为int (*f)[]。C选项中,指向函数的指针变量应说明为int (*f)();所以答案是D。

第三题

运行以下C语言代码,输出的结果是()

#include <stdio.h>
int main()
{char *str[3] ={"stra", "strb", "strc"};char *p =str[0];int i = 0;while(i < 3){printf("%s ",p++);i++;}return 0;
}

A---stra strb strc

B---s t r

C---stra tra ra

D---s s s

正确答案:C

解析:char *p=str[0]相当于char *p="stra",p先指向s,p++后,指向t。printf输出遇到空字符停止。所以第一次打印stra,第二次打印tra,第三次打印ra。

第四题

下面的程序执行输出几个hello?

A---3

B---4

C---6

D---8

正确答案:D

解析:

                fork(); //2个进程

                fork(); //4个进程

                fork(); //8个进程

                printf(“hello\n”);

第五题

已知如下代码,并在两个线程中同时执行f1和f2,待两个函数都返回后,a的所有可能值是哪些?

int a = 2, b = 0, c = 0
void f1()                        
{                                 b = a * 2;                      a = b;                            
}
void f2()
{c = a + 11;a = c;
}

A---4

B---13

C---15

D---26

正确答案:ABCD

解析:考虑四行代码的执行顺序即可。

(1)b=a*2,c=a+11,a=c,a=b a=4
(2)b=a*2,c=a+11,a=b,a=c a=13
(3)b=a*2,a=b,c=a+11,a=c a=15
(4)c=a+11,a=c,b=a*2,a=b a=26

所以答案都选。

第六题

以下的变量定义语句中,合法的是()

A---byte a = 128;

B---boolean b = NULL;

C---long c = 123L;

D---float d = 0.9239;

正确答案:C

解析:A选项中,byte能表示的范围[-128,127]。B选项中,boolean的取值只能是true或false。D选项请注意:

                double a = 0.9239(√)
                double a = 0.9239d(√)
                float a = 0.9239f(√)
                float a = 0.9239(×)

第七题

请问经过表达式a=5?0:1的运算,变量a的最终值是()

A---5

B---1

C---0

D---true

正确答案:C

解析:这题考察两个知识点,分别是三元运算、条件运算符的优先级高于赋值运算符的优先级。

三目运算符的格式:表达式1?表达式2:表达式3

执行流程:如果表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。

由于5非0,所以结果为0 。a的值也为0 。

第八题

有以下函数定义:

void fun(int n, double x) {…}

 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()

A---fun(int y,double m);

B---k = fun(10,12.5);

C---fun(x,n);

D---void fun(n,x);

正确答案:C

解析:A选项中,函数调用时不需要指明实参类型。B选项中,函数定义为void,没有返回值。D选项中,函数调用不需要指明函数类型。

第九题

class A 
{int a;short b;int c;char d;
};
class B{double a;short b;int c;char d;
};

在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是()

A---12        16

B---12        12

C---16        24

D---16        20

正确答案:C

解析:

class  A:  

int  a      (4个字节)                                                          4
short b     (2个字节,起始地址4是2的倍数,不补)             4+2
int  c        (4个字节,4+2不是4的倍数,被2个 )                 6+2(补)+4
char d      (1个字节,4+2+2+4是1的倍数,不补)              12+1
最后补3个字节,让整体大小为4的倍数                             13+3(补)= 16

class  B:

double a      (8个字节)                                                   8
short b     (2个字节,起始地址8是2的倍数,不补)            8+2
int  c         (4个字节,8+2不是4的倍数,被2个 )               10+2(补)+4
char d        (1个字节,8+2+2+4是1的倍数,不补)            16 +1
最后补7个字节,让整体大小为8的倍数                              17+7(补) =24

关于结构体对齐的题,讲两点原则:

(1)按顺序看,每一个变量的首地址必须是自己大小的倍数。

(2)整个结构体的大小必须是最宽数据类型的倍数。

        只要是在路上就没有到不了的地方,该奋斗的年龄不要选择安逸。不是每个人都能成为自己想要的样子,但每个人都可以努力成为自己想要的样子。

这篇关于3月6日做题总结(C/C++真题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/784572

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝