单选题
1. 可重定位内存分区分配目的为
A 解决碎片问题 B便于多作业共享内存 C回收空白区方便 D摆脱用户干预
2. 有下列代码片段
int a[]={0,1,2,3,4,5,6,7,8}; int *p, *q; p = a; q = &a[2]; 则a[q-p]的值为
A 2 B 3 C 7 D 8
3. 正确的是
A char *s; s = ”Olympic”; B char s[7]; s = ”Olympic”; C char *s; s = {”Olympic”}; D char s[7]; s = {”Olympic”};
4. 32位平台下, void f() {
char *a[2][2][3];
printf(“%d %d %d %d”,sizeof(a),sizeof(*(&a)),sizeof(a[0]),sizeof(*(a[0]))) }
A 48 24 24 12 B 48 48 24 12 C 48 48 24 24 D 12 12 6 3
5. 局部变量char* str = \请问strlen(str)和sizeof(str)分别是多少?
A 3 3 B 4 3 C 4 4 D 3 4
6. int x = 2,y = 3; x = x^y; y = x^y;
x = x^y;
printf(“%d %d\\n”,x,y);
A 3 2 B 2 2 C 2 3 D 3 3
7. 在OSI七层网络模型中,位于第2层的是
A 数据链路层 B 物理层 C 传输层 D 网络层
8. 软件复用是使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的进程。为了提高构件(Component)的复用率,通常要求构件具有较好的
A 专用性和不变性 B 专用性和可变性 C 通用性和不变性 D 通用性和可变性
9. 下面正确的是
A break语句只应用于循环体中 B continue语句只应用于循环体中 C break是无条件跳转语句,continue不是
D break和continue的跳转范围不够明确,容易产生问题
10. 有C语句(exp)?a++:b--;,则下列表达式中完全等价于(exp)的是
A ((exp)==0) B ((exp)!=0) C ((exp)==1) D ((exp)!=1)
11. 在OSI七层网络模型中,第3层是
A 数据链路层 B 物理层 C 传输层 D 网络层
12. void main() {
int i, j;
char array[7]=”a0\\0a0\\0”; i=sizeof(array); }
A 2 2 B 7 8 C 7 2 D 8 2
13. 面向对象的程序设计中的虚函数(virtual function),正确的是
A 虚函数的特征就是普通外界函数无法直接访问该函数 B 虚函数具有私有性 C 虚函数具有多态性
D 虚函数的特征就是普通外界函数可以直接访问该函数
14. 32位系统,int类型的变量的内存占几个字节
A 2 B 4 C 8 D 1
15. 下列memcpy函数的声明,哪一个最合理:
A void *memcpy(void *dest, void *src, size_t n); B void *memcpy(const void *dest, void *src, size_t n);
C void *memcpy(const void *dest,const void *src, size_t n); D void *memcpy(const void *dest, const void *src, size_t n);
16. void main() { int a[5] = {10,20,30,40,50};
int *ptr = (int*)(&a+1);
printf(“%d,%d”,*(a+1),*(ptr-1)); }
A 20 10 B 20 20 C 20 30 D 20 50
17. 已知某系统架构下,C函数用栈传递参数,参数的入栈顺序为从右到左,且栈由高地址向低地址方向增长。那么在该系统下,下面的函数f的返回值为 int f(int a, int b) {
return(&b-&a); }
A 1 B 2 C 3 D 4
18. 净室软件工程(Cleanroom)是软件开发的一种形式化方法,可开发较高质量软件。它发现和排除错误的主要机制是
A 正确性验证 B 黑白盒测试 C 集成测试 D 基本路径测试
19. 如下代码:
#define INT_PTR int * INT_PTR p1,p2; int a,b;
那么,下面哪一句代码编译时可能产生error或warning:
A p1=&a; B p2=&b; C A和B均可 D A和B均不可
20. 下列代码执行后,变量a的值为多少 int a=128*128*256+7; a=((~a)+1)&0xf;
A 15 B 7 C 8 D 9
21. 算法的主要逻辑如下:int i = 1;int j; while(i A O(2n) B O(n+log2n) C O(nlog2n) D O(n2) 22. #include printf(\ } 输出结果是: A 10 B 8 C 6 D 12 23. 设单链表中结点的结构是(data,link),已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行的操作是: A s->link = p;p->link = s; B p->link = s;s->link = p; C s->link = p->link;p = s; D s->link = p->link;p->link = s; 24. 以下能够实现“判断一个非零整数x是否是2的幂”的表达式是 A x&(~x) B x&(!x) C x&(x-1) D x&(-x) 25. 下列哪一种代码特征导致栈溢出的可能性最小: A 局部变量过大 B 函数数量过多,函数体代码过长 C函数调用层次过深 D 局部变量过多 26. char a[] = {'a','b','c','0'};strlen(a)等于多少? A 2 B 3 C 4 D 以上都不正确 27. 有关系统调用的论述,错误的是 A 系统调用实际上是一个中断(异常) B 系统调用往往是由指令触发 C 系统调用必须在用户态进程中发起 D 系统调用可能导致当前进程被切换(抢占) 28. i最后等于多少? int i = 1; int j = ++i; if((i>j++)&&(i++ == j))i+=j; A 2 B 3 C 4 D 6 29. 设有下面的程序段