晋城网站制作,简述基于构件的软件开发流程,如何选择网站建设,合肥最新通告今天选择题 解析#xff1a;引用#xff1a;引用是对象的别名#xff0c;并没有开辟属于自己的空间#xff0c;两者同用一块内存#xff0c;引用值改变也会引起引用对象值的改变#xff1b; 引用在声明的时候必须要初始化#xff0c;而指针不用#xff0c;指针可以为空指针…选择题 解析引用引用是对象的别名并没有开辟属于自己的空间两者同用一块内存引用值改变也会引起引用对象值的改变 引用在声明的时候必须要初始化而指针不用指针可以为空指针 引用之后就不能引用别的对象此时再引用只是将值传递给了引用。 解析析构函数可以在类体内定义也可以先在类内声明在类外定义 一个类只有一个析构函数析构函数不能重载 析构函数的函数名和类名相同只不过是加了一个~ 析构函数无显示参数只有一个隐藏的this指针。 解析运算符重载要使用operator关键字加上运算符同时要有参数参数是类有两个操作数在类中定义的所以有一个隐藏的this指针所以显示参数只有一个。不能重载的运算符有. sizeof :: .* ?:。 同时还要有返回值对于加法运算符的重载它要返回加的结果所以返回值也是一个类。 解析只有创建对象才会调用构造函数。 c1是个类会调用构造函数c2是个指针并不会调用构造函数c3也是一个指针但是用new的时候会自动调用构造函数c4是c1的别名并没有调用构造函数。 解析类和c语言中的结构体还是不同的c语言中的结构体里面只能声明变量不能声明函数而类里面就是可以 类是用来描述对象的描述对象有哪些属性有哪些方法对象是类的具体的体现类和对象的关系就是抽象和具体的关系。 解析只有单例模式中一个类只能创建一个对象别的都可以创建多个 一个类可以实例化出很多对象类是对某一类对象的抽象类和对象的关系是一直数据类型与变量的关系。 解析该段代码中有好几处错误 1.delete释放的空间应该为动态开辟的但是该对象并不是动态开辟的所以错误 2.在析构函数中使用delete会造成无穷递归因为delete会自动调用析构函数析构函数中又有delete……可以通过编译但是运行时会崩溃 3.this NULL会编译失败因为this类型是const修饰的类类型* const this 即this指针的指向不能被修改。 解析类可以有多个构造函数但是每个类只会有一个析构函数 而对于拷贝构造并不是每个类都必须的当我们没有自己实现的时候编译器会生成默认的拷贝构造函数完成浅拷贝 对于每个类都有一个什么类型的构造函数是我们所不能确定的 解析静态的成员函数没有this指针友元函数也没有this指针不是类的成员函数也没有this指针。 f1不是成员函数没有f2是静态也没有f3是友元函数友元函数不是类的成员函数所以友元函数也没有this指针也不会受访问限定符的限制f4是非静态成员函数。 解析堆的开辟需要向操作系统递交请求所以受操作系统的限制一般来说栈的大小都是很小的。 堆必须要动态的申请栈既可以动态的申请也可以静态的分配。 编程题
1.二进制插入 解析通过下图我们可以看出将n向左移动j位再与m按位或就可以得到结果。 class BinInsert {
public:int binInsert(int n, int m, int j, int i) {// write code herereturn (m j) | n;}
};2.查找组成一个偶数最接近的两个素数 解析我们可以通过将这个偶数从1开始拆分拆分之后判断这两个数是否是素数判断是否是素数要用本身%2~本身-1才能准确判断是素数直接跳出本次循环不是素数的计算差值找到最小差值的两个数保存起来。这个思路是自己想到的 #include iostream
#include algorithm
using namespace std;int main() {int n 0;cin n;int i 1;int count1 0;int count2 0;while (i n / 2) {int min_num 0;int num1 i;int num2 n - i;if (i 1)min_num num2 - num1;for (int j 2; j max(num1, num2); j) {if ((num1 % j 0 num1 ! j) || (num2 % j 0 num2 ! j)) {break;}if (j max (num1, num2)) {if (min_num num2 - num1 num2 - num1 0)min_num num2 - num1;count1 num2;count2 num1;}}i;}if(count1 count2 n){cout count2 endl;cout count1 endl;}return 0;
}
// 64 位输出请用 printf(%lld)答案解析本题首先需要判断素数素数表示除过1和本身不能被其它数整除(sqrt函数是用来开平方的求一个数是不是素数只用%到其一半即可)。通过循环遍历来判断一个数是否为素数。最近的两个素数应该从最中间的位置开始向两边查找。 #include iostream
#include cmath
using namespace std;
bool IsPrime(int x)
{for(int i 2; i sqrt(x); i){if(x % i 0)return false;}return true;
}
int main() {int n 0;while(cin n){for(int i n / 2; i 0; i--){if(IsPrime(i) IsPrime(n - i)){cout i endl;cout n - i endl;break;}}}return 0;
}
// 64 位输出请用 printf(%lld)