您的位置:首页 > 编程语言 > C语言/C++

C/C++整理

2018-03-05 20:50 134 查看
1、执行如下代码, c 的值是:()

int a=0,c=0;
do{
--c;
a=a-1;
}while(a>0);


A 0

B 1

C -1

D 死循环

解析:使用while语句应注意以下几点:

1 、 while 语句中的表达式一般是关系表达或 逻辑表达式 ,只要表达式的值为真 ( 非 0) 即可继续循环。

2 、循环体如包括有一个以上的语句,则必须用 {} 括起来,组成复合语句。

程序最开始执行–c,现在c变成了-1,接着执行a=a-1,a也变成了-1,再执行while语句,while(a>0),判断为假,退出循环,故c= -1。

2、下列关于多态性说法不正确的是( )。

A 多态性是指同名函数对应多种不同的实现

B 重载方式仅有函数重载

C 重载方式包含函数重载和运算符重载

D 多态性表现为静态和动态两种方式

解析:多态性:

1. (编译时)静态:函数重载、运算符重载、模板实现

2. (运行时)动态:虚函数实现

3、类的私有成员可在何处访问( ) 1/1

A 通过子类的对象访问

B 本类及子类的成员函数中

C 通过该类对象访问

D 本类的成员函数中

解析:类的私有成员只对类本身的成员函数,类的友元函数,类的友元类可见,虽然在子类中也存在,但是对子类和类的对象来说都不可见

4、下列代码的运行结果是()

void main()
{
Stack S;
Char x,y;
InitStack(S);
x='n';y='g';
Push(S,x);Push(S,'i');Push(S,y);
Pop(S,x);Push(S,'r');Push(S,'t');Push(S,x);
Pop(S,x);Push(S,' s');
while(!StackEmpty(S)){Pop(S,y);printf(y);};
Printf(x);
}


A gstrin

B string

C srting

D stirng

解析:B

根据栈操作

POP(s,x)是出栈 ,把栈S中出栈一个元素给到x。

Push(s,r)是进栈,让r进入s栈。

栈服从先进后出原则。

所以这道题最后里面是从栈顶到栈尾是string,最后一个while循环把元素输出出来,所以选B

5、以下程序输出结果是 ?

#include <iostream>

using namespace std;

int main()

{

int x = 2, y, z;

x *= (y=z=5);

z = 3;

x += (y & z);

x += (y && z);

cout << x << endl;

return 0;

}


2*5+1+1=12

6、以下程序输出值是?

#include <stdio.h>
#define f(a,b) a+b
#define g(a,b) a*b
int main(int argc, char **argv)
{
int m;
m=2*f(3,g(4,5));
printf("\n m is %d\n",m);
}


46

7、请问在main函数中用户自定义类的默认构造函数总共被调用了几次?

#include <iostream>
using namespace std;
class Animal {
public:
Animal() { }
virtual void eat()
{
cout << "Animal" << "eat" << endl;
}
};
class Mammal : public virtual Animal {
public:
Mammal() {}
virtual void breathe()
{}
virtual void eat()
{
cout << "Mammal" << "eat" << endl;
}
};
class WingedAnimal : public virtual  Animal {
public:
WingedAnimal() { }
virtual void flap()
{}
virtual void eat()
{
cout << "WingedAnimal" << "eat" << endl;
}
}
class Bat : public Mammal, public WingedAnimal
{
public:
Bat() { }
virtual void eat()
{
cout<<"Bat"<<" eat"<<endl;
}
};
int main()
{
Bat b;
WingedAnimal bb;
Animal &a = b;
Animal &aa = bb;
aa.eat();
return 0;
}


6

8、题目描述

请写出函数strncpy的声明和实现。 (注: 不可以调用C/C++的字符串库函数)

strcpy char *strcpy(char *strDest, const char *strSrc);

{

assert((strDest!=NULL) && (strSrc !=NULL)); // 2分

char *address = strDest; // 2分

while( (*strDest++ = * strSrc++) != ‘\0’ ) // 2分

NULL ;

return address ; // 2分

}


strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

答:为了实现链式表达式。

9、题目描述

写出伪代码,实现进程调度,使所有进程(P)可以顺利执行完毕。

程序中参数如下:

P - 进程的集合;

Mp - 进程p的最大的请求资源;

Cp - 进程p当前被分配的资源;

A - 当前可用的资源。

10、

下面哪项是数组优于链表的特点?

方便删除

方便插入

长度可变

存储空间小

D

11、

若两台主机在同一个子网中,则两台主机的IP地址分别与它们的子网掩码相“与”的结果是?

全0

全1

相同

不同

IP地址与子网掩码与运算的结果为该网络的网络号,因为他们在同一个子网,因此网络号也必然相同

12、

在浏览器里打开网址http://www.trendmicro.com,以下哪个协议一定不会被用到?

SMTP

TCP

UDP

DNS

ARP

TCP,UDP是肯定会用到其中之一的,都有可能被用到

DNS 域名解析,将域名转化为ip地址,因此是必然要用到的

ARP 地址解析,将ip地址转化为相应的物理地址,因此也是必须要用到的

13、

当一台PC从一个网络移到另一个网络时,以下说法正确的是?

它的IP地址和MAC地址都会改变

它的IP地址会改变,MAC地址不会改变

它的MAC地址会改变,IP地址不会改变

它的MAC地址、IP地址都不会改变

当一主机移动到另一个网络时,因为各个网络的网络地址不同,因此IP地址会发生改变;而MAC地址固化在网卡中,全球惟一,不会发生变化。

14、

在Linux中查看ARP缓存记录的命令是?

“arp –a”

“arp –d”

“arp -L”

“arp –D”

15、

在一个请求页式存储管理中,一个程序的页面走向为4, 3, 2, 1, 3, 5, 4, 3, 2, 1, 5,并采用LRU算法。假设分配给该程序的存储块M分别为3和4,则该访问中发生的缺页次数F分别是?

(1) M=3, F=8 (2) M=4, F=5

(1) M=3, F=10 (2) M=4, F=8

(1) M=3, F=9 (2) M=4, F=9

(1) M=3, F=7 (2) M=4, F=6

16、

以下四句中正确的叙述为?

操作系统的一个重要概念是进程,不同的进程所执行的代码一定也不同

为了避免发生进程死锁,各进程应逐个申请资源

操作系统用PCB(进程控制块)管理进程,用户进程可能从PCB中读出与本身运行状态相关的信息

进程同步是指某些进程之间在逻辑上相互制约的关系

17、

在某企业中,有关系W(工号,姓名,工种,工资),其中工资由工种唯一决定。将其规范化到第三范式,正确的答案是?

W1(工号,姓名) W2(工种,工资)

W1(工号,工种,工资) W2(工号,姓名)

W1(工号,姓名,工种) W2(工种,工资)

以上都不对

18、

计算机网络系统中广泛使用的3DES算法属于?

不对称加密

不可逆加密

对称加密

公开密钥加密

19、

下面哪个语句无法通过编译?

if (x>y);

if (x=y) && (x!=0) x+= y;

if (x!=y) scanf(“%d”,&x); else scanf(“%d”,&y);

if (x

x+=y;
y=x-y;
x-=y;


的功能是?

把x和y按从大到小排列

把x和y按从小到大排列

无确定结果

交换x和y中的值

21、

在使用标准C库时, 下面哪个选项使用只读模式打开文件?

fopen(“foo.txt”, “r”)

fopen(“foo.txt”, “r+”)

fopen(“foo.txt”, “w”)

fopen(“foo.txt”, “w+”)

fopen(“foo.txt”, “a”)

22、

声明语句为int a[3][4]; 下列表达式中与数组元素a[2][1]等价的是?

*(a[2]+1)

a[9]

*(a[1]+2)

((a+2))+1

23、以下程序的输出结果是?

#include <stdio.h>
main()
{
char a[10]={ ‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,0},*p;
int i;
i=8;
p=a+i;
printf("%s\n",p-3);
}


6

6789

‘6’

789

24、

假如整型指针p已经指向某个整型变量x,则(*p)++和下面哪一个等价?

p++

x++

*(p++)

&x++

25、

下列对字符数组进行初始化的语句正确的是?

char a[] =“Hello”;

char a[][]={‘H’,‘e’,‘l’,‘l’,‘o’};

char a[5]= “Hello”;

char a[2][5]={ “Hello”,“World”};

26、

若有以下C函数调用语句:

f(m+n,x+y,f(m+n,z,(x,y)));

在此函数定义中, f有多少个参数?

6

5

4

3

27、

下列运算符中优先级最高的是?

<

+

&&

!=

28、以下代码中, 类A的构造函数和析构函数分别执行了几次?()

A *pa = new A[5];
delete pa;


1, 1

5, 5

1, 5

5, 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: