【笔试常见易错选择题01】else、表达式、二维数组、%m.ns、%m.nf、常量指针和指针常量、宏定义、传参、数组越界、位段

在这里插入图片描述

1. 下列main()函数执行后的结果为()

int func(){
int i, j, k = 0;
for(i = 0, j = -1;j = 0;i++, j++){
k++;
}
return k;
}
int main(){
 cout << (func());
 return 0;
}

A. -1
B. 0
C. 1
D. 2

判断为赋值语句,j等于0
0为假不进循环
选B.

2. 下面程序输出是什么?

#include <stdio.h>
int main()
{
int a=1,b=2,c=3,d=0;
 if(a == 1 && b++==2)
 if(b!=2||c--!=3)
 printf("%d,%d,%d\n" ,a,b,c);
 else
 printf("%d,%d,%d\n" ,a,b,c);
 else
 printf("%d,%d,%d\n" ,a,b,c);
 return 0;
}

A. 1,2,3
B. 1,3,2
C. 3,2,1
D. 1,3,3

else会和离自己最近的if匹配
逻辑或,左边为真就不会执行右边的判断
选D.

3. 若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是()

A. char
B. int
C. double
D. float

不同类型的表达式进行计算的时候
表示范围小的类型会自动提升到
表示范围大的数据类型
char的表示范围为-128-127
int表示范围为-21亿到21亿
double表示范围为2.3 * 10^-308
到1.7 * 10^308
选C.

4. 在int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};中,p[1][2]的值是()

A. 1
B. 0
C. 6
D. 2

每列未初始化的地方默认为0
在这里插入图片描述
选B.

5. 以下程序的运行结果是()

#include <stdio.h>
int main(void) {
printf("%s , %5.3s\n", "computer", "computer");
return 0;
}

A. computer , puter
B. computer , com
C. computer , computer
D. computer , compu.ter

%m.ns
m:输出字符串的宽度
n:左起截取目标字符串的n个字符,右对齐,补充空格
如果字符串长度>n>m 此时m的作用失效,只有n起作用
如果n>字符串长度,遇到\n自动停止打印
如果%-m.ns代表左对齐
如图:
5表示宽度为5
3表示从左开始截取3个字符右对齐
不够补两个空格
在这里插入图片描述
宽度为10,只需要3个字符
需要补7个空格
在这里插入图片描述
选B.

6. 使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的?

A. %-30.4e
B. %4.30e
C. %-30.4f
D. %-4.30f

%e 或 %E:用于输出科学计数法表示的浮点数
格式%m.nf:默认右对齐,m表示宽度
如果需要左对齐需要在m前面加-
n表示精度
选C.

7. 请找出下面程序中有哪些错误()

int main(){
 int i = 10;
 int j = 1;
 const int *p1;//(1)
 int const *p2 = &i; //(2)
 p2 = &j;//(3)
 int *const p3 = &i;//(4)
 *p3 = 20;//(5)
 *p2 = 30;//(6)
 p3 = &j;//(7)
 return 0;
}

A. 1,2,3,4,5,6,7
B. 1,3,5,6
C. 6,7
D. 3,5

常量指针:指针所指空间的值不能发生改变,不能通过指针解引用修改指针所指空间的值,但是指针的指向可以发生改变
指针常量:指针本身是一个常量,指针的指向不能发生改变,但是指针所指空间的值是可以发生改变的,可以通过指针解引用改变指针所指空间的值
区分:const *的相对位置::
const 在 *的左边: 常量指针
const 在 *的右边: 指针常量
选C.

8. 下面叙述错误的是()

char acX[]="abc";
char acY[]={'a','b','c'};
char *szX="abc";
char *szY="abc";

A. acX与acY的内容可以修改
B. szX与szY指向同一个地址
C. acX占用的内存空间比acY占用的大
D. szX的内容修改后,szY的内容也会被更改

szX与szY都是指针,指向同一个常量字符串,所以也是指向同一个地址
字符串有一个\0,也占用一个空间,所以 szX占用空间比acY大
选D.

9. 下列关于C/C++的宏定义,不正确的是()

A. 宏定义不检查参数正确性,会有安全隐患
B. 宏定义的常量更容易理解,如果可以使用宏定义常量的话,要避免使用const常量
C. 宏的嵌套定义过多会影响程序的可读性,而且很容易出错
D. 相对于函数调用,宏定义可以提高程序的运行效率

B说反了,宏定义没有类型安全检测,在预处理进行了宏替换而无法进行调试。
所以说要尽量使用const常量,避免使用宏定义常量
选B.

10. 有以下定义:

int a[10];
char b[80];

函数声明为:

void sss(char[],int[]);

则正确的函数调用形式是()
A. sss(a,b);
B. sss(char b[],int a[]);
C. sss(b[],a[]);
D. sss(b,a);

函数调用的时候,如果参数是数组,传参时,只要传数组名即可
选D.

11. 以下 C++ 函数的功能是统计给定输入中每个大写字母的出现次数(不需要检查输入合法性,所有字母都为大写),则应在横线处填入的代码为()

void AlphabetCounting(char a[], int n) {
 int count[26] = {}, i, kind = 10;
 for (i = 0; i < n; ++i)
 _________________;
 for (i = 0; i < 26; ++i) {
 printf("%c=%d", _____, _____);
 }
}

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]

A和B减出来都是小于0的,而下标是大于等于0的
C用i作下标,而i的下标取决于n(字符串长度),字符串长度是可能大于数组的
D:‘Z’-a[i]如果a[i]是’Z’结果是0,如果是’Y’结果就是1

选D

12. 在32位cpu上选择缺省对齐的情况下,有如下结构体定义:

struct A{
unsigned a : 19;
unsigned b : 11;
 unsigned c : 4;
unsigned d : 29;
 char index;
};

则sizeof(struct A)的值为()
A. 9
B. 12
C. 16
D. 20

32位下32bit(4字节)对齐,a占19bit剩13bit,还可以放一个b,对齐占4字节
c占4bit,剩28bit放不下d,对齐占4字节
d占29bit,对齐占4字节
char占1字节,结构体总大小等于最大宽度整数倍,所以是16字节
选C.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【日常总结】宝塔中 Gitlab服务器 forbidden

一、场景 二、问题 三、原因 四、解决方案 五、实战 Stage 1&#xff1a;打开 /etc/gitlab/gitlab.rb&#xff0c;并编辑 Stage 2&#xff1a;重启gitlab服务 Stage 3&#xff1a;测试&#xff08;打开girlab网页&#xff09; 六、后续 一、场景 公司更换新电脑 服务…

引用与常引用

1.定义 下面写法定义了一个引用&#xff0c;并将它进行初始化为引用某个变量。 类型名 & 引用名 某变量名&#xff1b; int n 4; int & r n; // r引用了n&#xff0c;r的类型是int & 某个变量的引用&#xff0c;等价于这个变量&#xff0c;相当于该变量…

共用体与枚举法,链表的学习

结构体注意事项&#xff1a; 1.结构体类型可以定义在main函数里面&#xff0c;但是此时的作用域就被限定在该函数中 2.结构体的的的定义的形式&#xff1a;a.先定义类型&#xff0c;后定义变量-----struct stu s b.定义类型的同时&#xff0c;定义了变量&#xff1a;struct…

C语言系列-联合

&#x1f308;个人主页: 会编程的果子君 ​&#x1f4ab;个人格言:“成为自己未来的主人~” 目录 联合体 联合体类型的声明 联合体的特点 相同成员的结构体和联合体对比 联合体大小的计算 联合的一个练习 联合体 联合体类型的声明 像结构体一样&#xff0c;联合体也是由…

幻兽帕鲁专用服务器搭建教程分享(手把手教学)

想要快速搭建幻兽帕鲁服务器&#xff0c;我们只需要参考以下教程即可轻易完成幻兽帕鲁服务器的搭建部署&#xff0c;与其他专用服务器游戏一样&#xff0c;可以让您和朋友在一个相对独立、稳定且私密的云端跨境中进行游戏&#xff0c;以获得更好、更流畅的游戏体验。 幻兽帕鲁游…

CYUSB3065配置CMOS

目录 目标Eclipse使用流程1.首先安装开发环境2.在SDK目录下找到开发工具Eclipse&#xff0c;并打开3.编译固件4.进入烧录模式5.烧录6.如何调试&#xff1f;串口调试GDB调试 配置CMOSCMOS转接电路两个参数新建CX3工程 当前问题 目标 这是Cypress的一个支持MIPI和UVC的模块&…

SAP同步异常5:继续处理获利能力异常WW291

Short text of error message: 派生过程中系统错误: CE01000-WW291 在ABAP辞典中不存在 Long text of error message: 诊断 带 CE01000-WW291 名字段派生参考的定制设置。这个字段在 ABAP 字典中不 存在。 系统响应 因为在定制中有矛盾&#xff0c;所以系统的程序崩溃。 步骤 …

类和对象-下篇

文章目录 一、再谈构造函数1. 构造函数体赋值2. 初始化列表3. explicit关键字 二、static成员1. 概念2. 特性 三、友元1. 友元函数2. 友元类 四、 内部类1. 概念2. 特性 五、再次理解封装 一、再谈构造函数 1. 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数…

BFS的基本应用——flood fill 最短路

bfs的核心就是一层一层往外扩展&#xff0c;在bfs中会用到一个队列&#xff0c;又由于是一层一层往外扩展的&#xff0c;故而可以用来求连通的问题&#xff0c;同时相当于每次往外扩展的边权都是1&#xff0c;所以这个队列是有序的&#xff0c;相当于dijkstra算法中的优先队列&…

vue3学习——初始化项目及配置

初始化项目 环境 node 16pnpm 8.0.0 命令 pnpm create vite进行以下选择 &#x1f447; – 项目名 – VUe – Ts – cd/目录 – pnpm run dev 浏览器自动打开 package.json 配置eslint 安装依赖包 pnpm i eslint -D npx eslint --init // 生成配置文件进行以下选择 &a…

SpringBoot 使用WebSocket功能

实现步骤&#xff1a; 1.导入WebSocket坐标。 在pom.xml中增加依赖项&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>2.编写WebSocket配…

Redis学习——高级篇⑨

Redis学习——高级篇⑨ Redis7高级之Redlock算法和Redisson的使用&#xff08;十&#xff09; 10.1 Redlock 红锁算法1.解决手写分布式锁的单点故障问题2.设计理念3. 解决方案 10.2 Redisson进行代码改造10.3 多机案例&#xff08;解决单点故障&#xff09;10.4 R…

vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.

vue3使用is动态切换组件&#xff0c;activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…

代码随想录算法训练营29期|day36任务以及具体安排

第八章 贪心算法 part05 435. 无重叠区间 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals, (a,b)-> {return Integer.compare(a[0],b[0]);});if(intervals.length 1) return 0;int result 0;for(int i 1 ; i < interva…

结构体与共用体——共用体——C语言——day16

昨天介绍了下结构体&#xff0c;今天主要介绍共用体&#xff0c;枚举 共用体 概念&#xff1a;有时需要使几种不同类型的变量存放到同一段内存单元中。 例如&#xff0c;可把一个整型变量、一个字符型变量、一个浮点型变量放在同一个地址开始的内存单元中 。以上三个变量在内…

Python系列-字典

&#x1f308;个人主页: 会编程的果子君 ​&#x1f4ab;个人格言:“成为自己未来的主人~” ​ 目录 ​ 字典是什么 创建字典 查找key 新增/修改元素 删除元素 遍历字典元素 取出所有的key和value 合成的key类型 ​编辑 小结 字典是什么 字典是一种存储键值对的结…

云打印怎么收费?云打印需要付费吗?

随着云打印概念的火热发展&#xff0c;很多有打印需求的App或者个人用户都想使用易绘创云打印服务。那么易绘创云打印怎么收费&#xff1f;云打印需要付费吗&#xff1f;今天就带大家来了解一下。 云打印怎么收费&#xff1f;云打印需要付费吗&#xff1f; 很多有打印需求的小…

Linux网络状态查看与防火墙管理

网络状态查看 netstat [选项] Netstat是一款命令行工具&#xff0c;用于显示Linux系统中网络的状态信息&#xff0c;可以显示网络连接、路由表、连接的数据统计等信息。 使用 选项 -a&#xff1a;显示所有选项&#xff0c;包括监听和未监听的端口。 -t&#xff1a;仅显示tc…

IS-IS的LSP分片扩展

原理 IS-IS通过泛洪LSP来宣告链路状态信息,由于一个LSP能够承载的信息量有限,IS-IS将对LSP进行分片。每个LSP分片由产生该LSP的结点或伪结点的SystemID、PseudnodeID(普通LSP中该值为0,Pseudonode LSP中该值为非0)、LSPNumber(LSP分片号)组合起来唯一标识,由于LSPNumb…

微信小程序(二十四)简易的双向绑定

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.双向绑定实例 2.双向绑定的局限性 源码&#xff1a; index.wxml <!-- 1.placeholder:输入框为空时的占位提示语2.model:value 双向绑定&#xff08;其实就是在原先基础上加上了model:&#xff09; 3.目前双…
最新文章