1、假设A为抽象类,下列声明( )是正确的
A.int fun(A);
B.A Obj;
C.A fun(int);
D.A *p;
参考答案:D
2、以下程序的输出结果是
#include
int main()
{
int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
return 0;
}
A.258
B.741
C.852
D.369
参考答案:C
3、现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问怎么判断循环队列满了?
A.front==(rear+1)%n
B.front==rear+1
C.front==rear%n
D.front==rear
参考答案:A
4、以下不能正确定义二维数组的选项是______。
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
参考答案:D
5、class foo {
foo(){};
};
class boo : public foo {
boo() : foo() {};
};
以上代码编译时需要什么标准?
A.c++03
B.c++0x
C.c++11
D.c++98
参考答案:C
6、在一个以 h 为头指针的单循环链中,p 指针指向链尾结点的条件是( )。
A.p->next==NULL
B.p->next==h
C.p->next->next==h
D.p->data==-1
参考答案:B
7、#include
using namespace std;
int f(int n){
if (n==1)
return 1;
else
return (f(n-1)+n*n*n);
}
int main(){
int s=f(3);
cout< <
return 0;
}
运行结果是?
A.8
B.9
C.27
D.36
参考答案:D
8、下面是折半查找的实现,data是按升序排列的数据,x是查找下标,y是查找的上标,v是查找的数值,返回v在data的索引,若没找到返回-1。代码不正确是
public int bsearch(int[] data, int x, int y, int v) {
int m;
while(x
m = x + (y-x)/2; //2
if(data[m] == v) return m; //3
else if(data[m] > v) y = m; //4
else x = m; //5
}
return -1; //6
}
A.1
B.2
C.3
D.4
E.5
参考答案:E
二、简答题
1、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg” 函数头是这样的:
//pStr是指向以'\0'结尾的字符串的指针
//steps是要求移动的n
void LoopMove ( char * pStr, int steps )
{
//请填充...
}
参考答案
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
2、Java集合类框架的基本接口有哪些?
参考答案
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面基本的接口有:
Collection:代表一组对象,每一个对象都是它的子元素;
Set:不包含重复元素的Collection;
List:有顺序的collection,并且可以包含重复元素;
Map:可以把键(key)映射到值(value)的对象,键不能重复。