C开发最新笔试题 2013-11-20

2019-08-02 01:13

一、不定项选择:

1、 以下描述正确的是( )

A 1个字节(byte)由8个比特(bit)组成。 B sizeof(θx AABBCCDD)的结果是8。

C signed char类型的取值范围是-128~128。 D unsigned char类型的取值范围是θ~256。

2、 以下代码的结果是( )

#define ADD(x,y) x+y /*加*/ #define SUB(x,y) x-y /*减*/ #define MUL (x,y) x*y /*乘*/

unsigned int uiA;

uiA = MUL(ADD(9,2),SUB(6,3));

A uiA=15 C uiA=33 B uiA=18 D uiA=63

3、 以下代码运行的结果是( ) 代码Ⅰ

unsigned int uiA;

uiA = (θxAA & 0xBB) ^(θxCC | θxDD); 代码Ⅱ

unsigned int uiB;

uiB =(θxAA <<24)| (θxBB <<16) | (θxCC <<8) θxDD;

A 代码Ⅰ,uiA=θx77 C 代码Ⅱ,uiB=θxFFFFFFFF B代码Ⅰ,uiA=θx88 D代码Ⅱ,uiB=θxAABBCCDD

4、 以下语句中能够判断uiNum(unsigned int)可以被16整除的有( ) A if(((uiNum / 16 * 16)== uiNum) B if((uiNum % 16)==θ) C if((uiNum & 0x0F)==θ) D if(((uiNum >> 4)<< 4)==uiNum)

5、关于以下代码,描述正确的是( )

代码Ⅰ: 代码Ⅲ:

const char *pcStr = “abcdefg” typedef unsigned int*pui_t1; #define pui_t2 unsigned int * 代码Ⅱ: pui_t1 pui A,pui B; void string_sizeof(char szStr1[10]) pui_t2 pui C,pui D; {

char szStr2[10] = “12345”; 代码Ⅳ: printf(”%u,”, sizeof(szStr1)); unsigned int uiA =100

printf(”%u\\r\\n”, sizeof(szStr2)); pintf(“%s\\r\\n”. uiA); return;

}

A 代码Ⅰ const修饰符表明pcStr指向的内容不能修改; B 代码Ⅱ 程序的运行结果是”4,10”

C 代码Ⅲ puiA、puiB、puiC和puiD都是unsigned int*类型的变量;

D 代码Ⅳ 打印unsigned int时不应该使用”%s”,会导致程序访问非法地址

6关于结构的大小,以下描述正确的有( )

struct A_S struct C_U { {

unsigned short us1; unsigned short us1;

unsigned short us2; unsigned short us2; unsigned short us3; unsigned short uc3; }; };

union B_S union D_U { {

unsigned char uc1 unsigned char unsigned int ui2; unsigned int unsigned short us3; unsigned short}; };

A. 结构struct A_S的大小是6 B. 结构struct B_S的大小是12 C. 联合union C_U的大小是6 D. 联合union D_U的大小是4

7关于链表操作,以下描述正确的有( ) 单链表: pstNext A pstNext pstNext pstNext B C pstA pstB struct SLL {

struct SLL *pstNest;/*下一节点*/ };

uc1;

ui2; us3; 双链表:

pstNext pstNext pstNext pstPre pstPre pstPre A B C pstA pstB

struct DLL {

struct DLL*pstNext;/* 下一结点*/ struct DLL*pstPrev;/* 前一结点*/ };

A.单链表以下代码可以删除节点B

pstA-> pstNext= pstA->pstNext ->pstNext; free(pstA->pstNext);

B. 单链表以下代码可以删除节点B pstA-> pstNext= pstB->pstNext free(pstB);

C.双链表以下代码可以删除节点B

pstB-> pstpre->pstNext= pstB->pstNext; pstB-> pstNext -> pstpre = pstB-> pstpre; free(pstB);

D. 双链表以下代码可以删除节点B

pstA->pstNext=pstA->pstNext->pstNext; pstA->pstNext->pstNext-> pstpre= pstA; free(pstB);

8. 以下代码的运行结果是( )

代码Ⅰ unsigned int uiCount=θ unsigned int uiCount=while(uiCount<=5) switch{ {

if(uiCount<=5) case continue; uiCount=5 ++Uicount; default} uiCount=1printf(’’uiCount=%u\\r\\n’’,uiCount); }

printfuiCount);

代码Ⅲ

θ (uiCount) θ:

; :

; (’’uiCount=%u\\r\\n’’,代码Ⅱ

unsigned int uiCount=θ 代码Ⅳ

do unsigned int uiCount=θ

{ for(;uiCount<=10;++uiCount)

++uiCount; if(uiCount==5) while (uiCount>=5); break; printf(’’uiCount=%u\\r\\n’’,uiCount); printf(’’uiCount=%u\\r\\n’’,uiCount);

A.代码Ⅰ, uiCount=5 B.代码Ⅱ, uiCount=5 C.代码Ⅲ, uiCount=1 D.代码Ⅳ, uiCount=5

9. 以下代码的运行结果是( )

unsigned char aucData[ ] = {θxθθ,θx11,θx22,θx33,θx44,θx55,θx66,θx77 };unsigned char *pucA = aucData;

unsigned int *puiB = (unsigned int *)aucData;

printf(’’%u\\r\\n’’,sizeof(aucData)); /*代码Ⅰ */ printf(’’0x%x\\r\\n’’, *(pucA+1)); /*代码Ⅱ */ printf(’’0x%x\\r\\n’’, *(puiB+1)) ; /*代码Ⅲ */ printf(’’0x%x\\r\\n’’, *(unsigned char *)(puiB+1)) ; /*代码Ⅳ */

A.代码Ⅰ, 运行结果是7

B.代码Ⅱ, 运行结果是θx22

C.代码Ⅲ, 运行结果不确定,视CPU字节序而定 D.代码Ⅳ, 运行结果是θx44

10. 实现一个swap函数,可以帮助调用者交换两个变量的值,以下描述正确的有(例如:

int iA=100; int iB=200;

printf(’’%d,%d\\r\\n’’,iA,iB); /*使用swap函数进行交换*/ printf(’’%d,%d\\r\\n’’,iA,iB); 转换前后的结果应该是: 100,200 200,100

A. 函数和调用处应该是如下形式 B. 函数和调用处应该是如下形式 void swap(int iA,int iB) void swap(int iA,int iB) { {

int iC; int *piA=&iA; iC = iA; int *piB=&iB;

) iA = iB; int iC;

iB = iC; iC = *piA; return; *piA =* piB; } * piB =iC; return; int iA=100; }

int iB=200; int iA=100; swap(iA,iB); int iB=200; swap(iA,iB);

C.函数和调用处应该是如下形式 D. 函数和调用处应该是如下形式 void swap(int *piA,int *piB) void swap(int *piA,int *piB) { {

int iC; int iC; iC = * piA; iC = * piA; *piA =*p iB; *piA =*p iB; *piB = iC; *piB = iC; return; return; } }

int iA=100; int *piA=NULL; int iB=200; int *P iB=NULL; swap(&iA,&iB); *piA=100; *piB=200; swap(piA,piB);

11. 关于代码缺陷预防,以下描述正确的有( )

A.动态申请的内存资源释放后,建议将之前记录内存地址的指针清空,预防野指针。 B.字符串一定要确保有结束符,否则有访问越界的风险。

C.局部变量的空间来自堆栈,建议初始化在使用,否则有访问随机值的风险。 D.对于动态申请的内存资源,使用完毕后建议主动释放。

12. Ⅰ、Ⅱ、Ⅲ、Ⅳ分别代表四个图形,已知它们的某些组合形式,则以下描述正确的是

( )

Ⅰ和Ⅱ组合: Ⅲ和Ⅳ组合: Ⅱ和Ⅳ组合:

A.Ⅰ是 B.Ⅱ是 C. Ⅲ是 D. Ⅳ是


C开发最新笔试题 2013-11-20.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:GCP试题+答案要点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: