C/C++基础错题归纳

文章目录

第1天

1.下面程序段的运行结果是:

M 复制代码
	char C[5]={'a','b','\0','c','\0'};
	printf("%s",C);
选项 答案
A 'a''b'
B ab
C ab_c
D ab_c_(其中_表示空格)
答案
我的答案 正确答案
D B
忘记格式匹配符 %s格式符意为输出字符串,输出字符串时,遇到 "\0"表示结束,所以结果是ab;
知识补充
格式符 作用
%d 整型输出,
%ld 长整型输出,
%o 以八进制数形式输出整数,
%x 以十六进制数形式输出整数,
%u 以十进制数输出unsigned型数据(无符号数)。
%c 用来输出一个字符,
%s 用来输出一个字符串,
%f 用来输出实数,以小数形式输出,
%e 以指数形式输出实数,
%g 根据大小自动选f格式或e格式,且不输出无意义的零。

2.当一个类A 中没有声明任何成员变量与成员函数,这时sizeof(A)的值是多少?

选项 答案
A 1
B 0
C 4
D 运行错误
答案
我的答案 正确答案
C A
对类所占字节大小不了解 深度探索c++对象模型中是这样说的: 那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。 也就是说这个char是用来标识类的不同对象的。
知识补充

内存对齐机制
c++类的大小讲解

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

M 复制代码
		int main()
		{
		    bool first=true;
		    int sum=0;
		    int value;
		    unsigned short i=0xFFFF;
		    for (;i>=0;--i)
		    {
		        if (first)
		        {
		            value=65536;
		            sum+=value%3;
		            first=false;
		        }
		     else{
		            sum+=--value%3;
		            if (value<=0)
		            {
		                cout<<sum<<","<<i;
		                break;
		            }
		        }
		    }
		    return 0;
		}
答案
选项 答案
A 1,65535
B 65535,65535
C 65535,65536
D 65535,1
E 65536,65535

True只经历1次, i=65535,value=65536,value%3=1;

False第1次循环,i=65534,value=65535,value%3=0;

False第2次循环,i=65533,value=65534,value %3=2;

...

之后value%3的结果一直是1,0,2循环,即每3次循环sum+3;

...

False第65535次循环,i=0,value=1,value%3=1;

False第65536次循环,i=65535,value=0,value%3=0;//变量i是unsigned short类型,0再减去1等于65535

故最后sum=2+0+1...(每3次循环余数和为3,所以前65535(3的倍数)次循环余数和为65535,再加最后1次循环的余数1,最后sum=65536,而i=65535)

其他讲解

牛客题库

相关推荐
A7bert777几秒前
【SAM3部署至AGX Orin】环境配置→模型部署→问题记录
c++·人工智能·深度学习·ubuntu
longlongzihan3 分钟前
LeetCode 56合并区间:排序与贪心
c++·算法·leetcode
程序员老陆4 分钟前
C++ 继承方式:公有、保护、私有,到底在控制什么
开发语言·c++
坤坤子吖9 分钟前
C++11——Lambda、function、bind 与可调用对象
c++·笔记·学习
白杨尚青33 分钟前
C++入门篇(十一):string(中)——容量与增删改查:一篇吃透所有常用接口(万字详解)
java·开发语言·c++
朔北之忘 Clancy1 小时前
2024 CSP-J 第二轮真题解析
c++·算法·青少年编程·noip·csp·信奥赛·noi
Lazionr1 小时前
set和map的使用——从基础接口到实际应用
c++
重生之小比特1 小时前
【C++进阶】哈希表实现
开发语言·c++·哈希
m0_380743871 小时前
VisualStudio中OpenCV的创建与配置使用小结
开发语言·c++
凉茶钱1 小时前
【C++】动态内存管理完整解析:从内存划分到 new delete 底层原理
c语言·开发语言·c++·内存管理·动态内存