【C++笔试强训】第一天_野指针是指向未分配或者已经释放的内存地址

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

🎇C++笔试强训


  • 博客主页:一起去看日落吗
  • 分享博主的C++刷题日常,大家一起学习
  • 博主的能力有限,出现错误希望大家不吝赐教
  • 分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。

在这里插入图片描述

💦🔥


目录

选择题

💦第一题

以下for循环的执行次数是()

for(int x = 0, y = 0; (y = 123) && (x < 4); x++);

A. 无限循环
B. 循环次数不定
C. 4次
D. 3次

  • for循环的组成

for(初始化部分 ;条件判断 ; 调整部分){
//循环语句部分
}

根据条件判断,当x为0 1 2 3 的时候会进行循环,所以这道题的正确答案是4次,选C


💦第二题

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

#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

这道题是打印字符串,%s打印字符串遇到\0就会停止,第一个%s会把computer全部打印出来,而%5.3是什么意思呢?

这里来讲解一下:

%m.ns:
m:输出字符串的宽度
n:左起截取目标字符串n个字符,并且是右对齐,补空格

当字符串长度 > n > m :此时m就失效了,只受n控制。
当n > 字符串长度 时:此时和%s作用一样

所以这道题的答案是computer , com ,所以选B


💦第三题

下列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

这道题是用main函数调用func函数,然后返回一个k值,k在for循环中会变化,这道题的本质就是看for循环循环了多少次!

初始化部分j初始化为-1,条件判断部分是j赋值为0,所以这个条件判断是恒为假的,所以不会进入到for循环中,所以k的值为0。

这道题的答案是 0 ,选B


💦第四题

下面程序输出是什么()?

#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

这道题目就和有些人刚开始写代码的时候,喜欢吧if语句的括号省略掉,这就导致代码的可读性变差,这时候就需要我们来仔细寻找if和else

#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;
}

经过调整之后代码的可读性变高了,然后就可以做题了

看第一个if,当两个都为真的时候才会进下面,a初始化是等于1的,为真,b++是先用b比较再进行++,所以也是为真的,所以就会进入到第二个if语句,然后我们再进行判断

第二个if的语句是用逻辑或连接起来的,所以某一边为真即为真,前面已经b++了,所以b现在为3,所以b!=2,所以为真,逻辑或 当第一个表达式为真是不会执行第二个表达式的所以会直接打印abc的值

所以这道题只有b在初始化以后有改变,所以这道题的答案为1 3 3 ,所以选D


💦第五题

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

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

这道题不同类型的表达式进行计算的时候会有类型的提升,表示范围小会自动提升到范围大的类型,char占一个字节,int占四个字节,double占八个字节,所以char类型和int类型会自动提升到double类型。

所以这道题选C


💦第六题

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

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

这个题是定义了一个数组并且进行初始化,这里是个四行四列的数组,而且数组并没有完全初始化,所以没有初始化的地方默认是0,所以我们可以把数组写出来

1 0 0 0

3 2 0 0

4 5 6 0

0 0 0 0

所以p[1][2]表示第二行第三列的元素

所以这道题的答案是0 选B


💦第七题

选择表达式 11|10 的结果(本题数值均为十进制)()

A 11
B 10
C 8
D 2

这道题是计算表达式,将11 按位或 10 ,我们先要将十进制转换为二进制

11: 0000 1011
10: 0000 1010

按位或的计算方式为 有1则1,无1则0
所以

11|10 : 0000 1011

转换为十进制的话是 11

所以这道题的答案是 11 ,选A


💦第八题

int fun(int a){
	a^=(1<<5)-1;
	return a;
}


![img](https://img-blog.csdnimg.cn/img_convert/2368894090fb315403f9742979ae9185.png)
![img](https://img-blog.csdnimg.cn/img_convert/264b35e56a692158ee9a81876f98168a.png)
![img](https://img-blog.csdnimg.cn/img_convert/67f9e9d52994a529a336e92b5d6911db.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**




---


### 💦第八题



int fun(int a){
a^=(1<<5)-1;
return a;
}

[外链图片转存中…(img-4LqOPgaY-1715695190482)]
[外链图片转存中…(img-jey1gVRM-1715695190483)]
[外链图片转存中…(img-ea3YepcP-1715695190483)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值