今日份的牛客网练习题,发现了一个优秀网站,同时发现自己真的太菜鸡了。。。

(一)

牛客网: 计算机-C/C++专项练习(1)

答案:4次

解析:y=123是赋值语句

牛客网: 计算机-C/C++专项练习(1)

答案:4

解析:char 、short 、int各占1、2、4个字节;并且字符串结尾有结尾符,所以答案为(3 + 1) 

牛客网: 计算机-C/C++专项练习(1)

答案:

解析:如果子类的函数与父类的名称相同,但是参数不同,父类函数被隐藏(重定义)

如果子类函数与父类函数的名称相同&&参数也相同&&但是父类函数没有virtual,父类函数被隐藏

如果子类函数与父类函数的名称相同&&参数也相同&&但是父类函数有virtual,父类函数被覆盖(重写)

牛客网: 计算机-C/C++专项练习(1)

答案:s=3*y*y+3*y+4*y*y+3*y+y*y*y+3*y

解析:#define宏定义是在预处理时进行简单的文字替换,不进行类型检查等

牛客网: 计算机-C/C++专项练习(1)

牛客网: 计算机-C/C++专项练习(1)

答案:9

解析:对数组名取地址+1,表示加整个数组的长度

p=(int*)(&a+1):&a是按整个二维数组的

p=*a+1:这两个均是按元素的,因此是指向第一个元素的首地址

(二)

牛客网: 计算机-C/C++专项练习(1)

strcap是不存在的

strlen():函数返回字符串 str 的长度( 即空值结束符之前字符数目);

strcmp():比较字符串 str1 和 str2;

牛客网: 计算机-C/C++专项练习(1)

 

拷贝构造函数形参是引用数据类型

牛客网: 计算机-C/C++专项练习(1)

答案:ABCDEFGHIJKLMNOP

解析:s是指针数组,char (*s)[6]中的s才是指向字符数组的指针

c选项应该打印的是“%c”

牛客网: 计算机-C/C++专项练习(1)

答案:x数组的长度大于y数组的长度

解析:字符串赋值时会在字符串末尾自动加上‘\0’结束符,但是字符赋值不会

牛客网: 计算机-C/C++专项练习(1)

牛客网: 计算机-C/C++专项练习(1)

解析:

A   两个无关类型指针之间的转换 是不合法的

B  通过void*这个媒介 ,合法

C  直接赋值,无法进行隐式转换,不合法

D  通过继承体系中的一个 做媒介, 上行 下行 合法

 

(三)

前两题简单

牛客网: 计算机-C/C++专项练习(1)

答案:5, 1

解析:pa只指向第一个元素,所以只析构一次

改为delete[] pa,答案就是析构五次

牛客网: 计算机-C/C++专项练习(1)

解析:https://www.nowcoder.com/questionTerminal/d0cf7e04524749879bc1b97eeba03331

牛客网: 计算机-C/C++专项练习(1)

              牛客网: 计算机-C/C++专项练习(1)

答案:4个地址都不相同(注意问的是地址。。。。)

解析:&str1!=&str2; &p1!=&p2;   str1!=str2; p1==p2;

 

(四)

牛客网: 计算机-C/C++专项练习(1)

牛客网: 计算机-C/C++专项练习(1)

https://www.nowcoder.com/test/question/done?tid=32863901&qid=111963#summary

牛客网: 计算机-C/C++专项练习(1)

解析:example是结构体的变量名而不是结构类型的名称

struct xy或xy是结构类型的名称

格式:struct 类型名{成员}变量名;

牛客网: 计算机-C/C++专项练习(1)

答案:124

https://www.nowcoder.com/questionTerminal/25312c6f7a5b4a4ea05ce8cf269804fb

解析:p 是指向 char 的指针、

k 是指向 char数组的指针,但是所指向的每个数组的长度未知;

s 是指向 char数组的指针,类型为char (*)[3],所指向的每个数组长度为10;

3中s[0]表示s[0][0]的地址,所以可以赋值给p

 

相关文章: