c语言面试编程题及答案,C_C语言笔试面试题目含答案(36页)-原创力文档

语言试题

一 : 单项选择题

1.

void Example(char acHello[])

{

printf("%d", sizeof(acHello));

return;

}

void main()

{

char acHello[] = "hello";

Example(acHello);

return;

}

的输出是 ()

A 4B 5C 6D不确定

2. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转

换;如果主机是大字节序, 为了程序的一致性及可移植性, 最好也在程序中加上字节序转换的操作(空操作)。 ( )

正确 B. 错误

int *(*ptr)();

则以下叙述中正确的是 ( )

A) ptr是指向一维组数的指针变量

ptr是指向 int 型数据的指针变量

ptr是指向函数的指针 , 该函数返回一个 int 型数据

D) ptr是指向函数的指针, 该函数的返回值是指向int型数据的指针

此函数实现把 32 位 IP 地址 ( 网络序 ) 以字符串的方式打印出来:

char *IpAddr2Str(unsigned long ulIpAddr)

{

char szIpAddr[32];

unsigned long ulLocIpAddr = ntohl(ulIpAddr);d.%d.%d", ulLocIpAddr >> 24, (ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff, ulLocIpAddr &

0xff);

return szIpAddr;

}

下面描述正确的是():

A、数组 szIpAddr空间不够;

B、函数返回局部数组szIpAddr变量地址;

C、输出的IP 地址次序颠倒;

5.

#define OK

0

#define ERR1

#define ERROR

(-1)

#define BUFFER_SIZE256

char *GetMemory(unsigned long ulSize)

{

char *pcBuf = NULL;

pcBuf = (char *)malloc(ulSize);

if(NULL == pcBuf)

{

return ERROR;

}

return pcBuf;

}

void Test(void)

{

char *pszBuf = NULL;

pszBuf = GetMemory(BUFFER_SIZE);

if(NULL != pszBuf)

{

strcpy(pszBuf, "Hello World!\r\n");

printf(pszBuf);

free(pszBuf);

}

return;

}

如下描述正确的是:

A、 pszBuf 指向的内存不能超过255

B、 GetMemory 函数的异常分支返回了-1 ,是一个非法地址

C、 GetMemory 中异常分支没有释放空间;

D、 pcBuf 为局部指针,指向的内存将在GetMemory 被调用后释放

6、 #include ""

unsigned short *Sum(unsigned char a, unsigned char b)

{

unsigned short s = 0;

s = a + b;

return &s;

}

int main()

{

unsigned short *p = NULL;

unsigned char a = 1, b = 2;

p = Sum(a, b);

printf("%u+%u", a, b);

printf("=%u\n", *p);

return 0;

}

程序执行结果是()

+2=0+2=3+2=NULLD.不可预测

7、设有如下定义:

BOOL gStatusA = FALSE;

BOOL gStatusB = TRUE;

int gVarA = 100;

int gVarB = 100;

则执行 main 函数后gVarA 和 gVarB 的值分别为 ()

BOOL CheckA()

{

if(gStatusA)

{

gVarA++;

}

else

{

gVarA--;

}

return gStatusA;

}

BOOL CheckB()

{

if(gStatusB)

{

gVarB++;

}

else

{

gVarB--;

}

return gStatusB;

}

int main(int argc, char* argv[])

{

if(CheckA() && CheckB() )

{

printf( “ Status OK ” );

}

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值