北京手机网站设计公司,网站开发与制作论文开题,国外优秀vi设计网站,能用的免费proxy网页1.参加位运算的数据可以是任何类型的数据。请问这句话的说法是正确的吗#xff1f;
答案#xff1a;错误
位运算符主要用于整型数据#xff08;如int、unsigned int、long、unsigned long等#xff09;和字符型数据#xff08;如char和unsigned char#xff09;#x…1.参加位运算的数据可以是任何类型的数据。请问这句话的说法是正确的吗
答案错误
位运算符主要用于整型数据如int、unsigned int、long、unsigned long等和字符型数据如char和unsigned char因为这些类型的数据在内存中以二进制形式直接存储位运算符可以直接对它们的二进制位进行操作。
如果尝试对非整型数据如浮点数、字符串或对象等使用位运算符将会导致编译错误。他们的内部表示与整形不同。
2.一个全局变量tally,两个线程并发执行(代码段都是ThreadProc),问两个线程都结束后,tally取值范围为_______ 1 2 3 4 5 int tally0;//全局变量 void ThreadProc(){ for(int i1;i50;i) tally1; }
A[50,100]
B[100.100]
C[1275,2550]
D[2550,2550]
答案A
在两个线程并发的过程中a线程对tally加1后还没有更新tally在内存中的值线程b读取tally值执行加1更新tally为1然后a线程重新读取tally值这样交替运行最终为50 最大值的情况 a线程对tally加到50后更新tally在内存中的值为50然后线程b读取tally值再执行加50运算结果为100
如果对total1加上互斥锁才会固定为100。
3.下面函数的输出结果是 1 2 3 4 void func() { int k 1^(1 31 31); printf(%d\n, k); }
A0
B-1
C-2
D1
答案: C
首先0000 0000 0000 0000 0000 0000 0000 0001左移31位得
1000 0000 0000 0000 0000 0000 0000 0000 -2147483648
与1异或 得1111 1111 1111 1111 1111 1111 1111 1110
补码转原码-1并将除符号位的位取反 1000 0000 0000 0000 0000 0000 0000 0010-2
4.下列程序的运行结果是0.请为横线处选择合适的程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include iostream #include cmath using namespace std; class Base { public: Base(int X 0); Base(Base p); static void GetC(Base a1, Base a2) { cout a2.X - a1.X; } private: int X; }; Base::Base(int XX) { X XX; } Base::Base(Base p) { X p.X; } int main() { Base a1(5); Base a2(a1); __________ Base::GetC; (*q)(a1, a2); return 0; }
Avoid (Base::*q)(Base,Base)
Bvoid *q(Base,Base)
Cvoid *q()
Dvoid (*q)(Base,Base)
答案 D 静态成员函数不用加作用域非静态成员函数要加作用域
5. 下列关于运算符重载的叙述中正确的是
A通过运算符重载可以定义新的运算符
B有的运算符只能作为成员函数重载
C若重载运算符则相应的运算符函数名是
D重载二元运算符时必须声明两个形参
答案 B
一般情况下单目运算符最好重载为类的成员函数双目运算符最好重载为类的友元函数。
关于选项 A通过运算符重载不能创建全新的运算符符号而只能改变已有的运算符的行为。
关于选项 B有些运算符可以作为成员函数进行重载而有些则不能。具体要根据运算符的性质和所需的操作数类型来决定。
关于选项 C重载运算符时相应的运算符函数名并不一定与运算符本身的符号相同而是通过运算符函数的命名来定义。
关于选项 D如果用成员函数重载只写一个参数的话默认就是调用者为第一个参数。 作者陈让然 链接牛客网公司真题_免费模拟题库_企业面试|笔试真题 来源牛客网
6.以下说法不正确的是
A类成员的定义必须放在类定义体内部
B类的一个成员只能具有一种访问控制属性
C在类中,不作特别说明的数据成员均为私有类型
D构造函数和析构函数是特殊的成员函数,因此不允许重载
E类成员的定义必须是成员变量在前、成员函数在后
答案 ADE
A类成员的声明要放在类定义体内部而定义可以在外部
D: 构造函数可以重载析构函数不可以
E: 没有顺序要求
7 阅读C语言代码输出 1 2 3 4 5 6 7 8 int main() { int arr[]{1,2,3,4,5,6,7}; int *parr; *(p)89; printf(%d,%d\n,*p,*(p)); return 0; }
A3 3
B2 2
C2 3
D3 2
答案 A
prinf从右到左编译从左到右输出*p已经是p之后的了