今日份的牛客网练习题,发现了一个优秀网站,同时发现自己真的太菜鸡了。。。
(一)
答案:4次
解析:y=123是赋值语句
答案:4
解析:char 、short 、int各占1、2、4个字节;并且字符串结尾有结尾符,所以答案为(3 + 1)
答案:
解析:如果子类的函数与父类的名称相同,但是参数不同,父类函数被隐藏(重定义)
如果子类函数与父类函数的名称相同&&参数也相同&&但是父类函数没有virtual,父类函数被隐藏
如果子类函数与父类函数的名称相同&&参数也相同&&但是父类函数有virtual,父类函数被覆盖(重写)
答案:s=3*y*y+3*y+4*y*y+3*y+y*y*y+3*y
解析:#define宏定义是在预处理时进行简单的文字替换,不进行类型检查等
答案:9
解析:对数组名取地址+1,表示加整个数组的长度
p=(int*)(&a+1):&a是按整个二维数组的
p=*a+1:这两个均是按元素的,因此是指向第一个元素的首地址
(二)
strcap是不存在的
strlen():函数返回字符串 str 的长度( 即空值结束符之前字符数目);
strcmp():比较字符串 str1 和 str2;
拷贝构造函数形参是引用数据类型
答案:ABCDEFGHIJKLMNOP
解析:s是指针数组,char (*s)[6]中的s才是指向字符数组的指针
c选项应该打印的是“%c”
答案:x数组的长度大于y数组的长度
解析:字符串赋值时会在字符串末尾自动加上‘\0’结束符,但是字符赋值不会
解析:
A 两个无关类型指针之间的转换 是不合法的
B 通过void*这个媒介 ,合法
C 直接赋值,无法进行隐式转换,不合法
D 通过继承体系中的一个 做媒介, 上行 下行 合法
(三)
前两题简单
答案:5, 1
解析:pa只指向第一个元素,所以只析构一次
改为delete[] pa,答案就是析构五次
解析:https://www.nowcoder.com/questionTerminal/d0cf7e04524749879bc1b97eeba03331
答案:4个地址都不相同(注意问的是地址。。。。)
解析:&str1!=&str2; &p1!=&p2; str1!=str2; p1==p2;
(四)
https://www.nowcoder.com/test/question/done?tid=32863901&qid=111963#summary
解析:example是结构体的变量名而不是结构类型的名称
struct xy或xy是结构类型的名称
格式:struct 类型名{成员}变量名;
答案:124
https://www.nowcoder.com/questionTerminal/25312c6f7a5b4a4ea05ce8cf269804fb
解析:p 是指向 char 的指针、
k 是指向 char数组的指针,但是所指向的每个数组的长度未知;
s 是指向 char数组的指针,类型为char (*)[3],所指向的每个数组长度为10;
3中s[0]表示s[0][0]的地址,所以可以赋值给p