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