程序设计题 【含答案和解析】

1. 连续存储设计时,存储单元的地址()

A  一定连续

B  一定不连续

C  不一定连续

D  部分连续,部分不连续

2. 执行完下列语句段后,i 值为() int f(int x){ return ((x>0)?x*f(x-1):2) } int i; i=f(f(2));

A  4

B  48

C  8

D  无限递归

3. C++中关于函数不正确的是( )

A  函数调用语句必须写在函数定义的前面

B  函数可以没有返回值

C  函数声明就是原型声明

D  不允许嵌套定义

4. 对于int *pa[5]; 的描述,( )是正确的。

A  pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针;

B  pa[5]表示某个数组的第5个元素的值;

C  pa是一个指向数组的指针,所指向的数组是5个int类型的元素;

D  33.pa是一个指向某个数组中第5个元素的指针,该元素是int类型的变量;

5. 请问下面程序的输出是( ) #include < stdio.h > int main() { int i = 0; printf(“%d, “,i); printf(“%d, “,i++); printf(“%d, “,i--); printf(“%d, “,--i); printf(“%d”,++i); return 0; }

A  0,0,1,-1,0

B  0,1,0,-1,0

C  0,0,0,-1,0

D  0,1,1,0,1

6. 在一个64位的操作系统中定义如下结构体: struct st_task { uint16_t id; uint32_t value; uint64_t timestamp; }; 同时定义fool函数如下: void fool() { st_task task = {}; uint64_t a=0x00010001; memcpy(&task, &a, sizeof(uint64_t)); printf( “%11u,%11u,%11u” , task.id, task.value, task.timestamp); } 上述fool()程序的执行结果为( )

A  1, 0, 0

B  1, 1, 0

C  0, 1, 1

D  0, 0, 1

7. int fun(int a) { a ^= (1<<5)-1; return a; } Fun(21),结果是( )

A  10

B  8

C  5

D  3

8. 如下代码输出结果是什么( ) #include < stdio.h > char *myString() { char buffer[6]= {0}; char *s = “Hello World!”; for(int i = 0; i< (sizeof(buffer)-1);i++) { buffer[i] = *(s+i); } return buffer; } int main(int argc, char** argv) { printf( “%s\n” , myString()); return 0; }

A  Hello

B  Hello World!

C  Hell

D  以上全都不正确

9. struct Date { char a; int b; int64_t c; char d; }; Date data[2][10]; 如果Data的地址是x,那么data[1][5].c的地址是( )

A  X + 195

B  X + 365

C  X + 368

D  X + 245

10. 以下为一段c特性验证代码,请问最后一个输出的nInnerVal的值应该为( ) int main(int argc, char *argv[]) { int nVal = 0; switch(nVal) { int nInnerVar = 1; case 0: nInnerVar ++; printf(“nInnerVal:%d\n”,nInnerVar); case 2: nInnerVar ++; printf(“nInnerVal:%d\n”,nInnerVar); default: nInnerVar ++; printf(“nInnerVal:%d\n”,nInnerVar); } return 0; }

A  1

B  2

C  3

D  4

E  其它

获取答案和解析请阅读全文

未经允许不得转载!程序设计题 【含答案和解析】