文档名称 文档密级
35、 #define BUF_LEN 2048
struct AAA
{
ULONG ulLen; //指示buf中实际占用字节数 CHAR buf[BUF_LEN]; //存储缓冲区
};
函数PrintBufLen的作用是打印出结构体中的buf的实际占用长度,有下面两种实现方法: 方法一:
VOID PrintBufLen(struct AAA* pBuf) {
if(NULL == pBuf)
{
printf(\ return; }
printf(\ return; }
方法二:
VOID PrintBufLen(struct AAA Buf) {
printf(\ return;
}
以下说法只有一个正确的是:( )
A:优选方法一,原因是以指针作为入参,减少函数参数压栈的系统开销。 B:优选方法二,原因是可以不做入参合法性判断,不容易出错。 C:两种方法差不多,可以任意选择。 D:以上说法都不对。
36、 void main(void)
{
unsigned char a =200; unsigned char b =100; unsigned char c = 0;
c=a+b; printf(\}
下列程序的执行结果为(C) A 300 300 B 44 44 C 300 44
16
文档名称 文档密级
D 44 300
37、 有如下宏定义和结构定义
#define MAX_SIZE A+B
struct _Record_Struct {
unsigned char Env_Alarm_ID :4; unsigned char Para1 :2; unsigned char state; unsigned char avail:1; } * Env_Alarm_Record ;
pointer = (struct _Record_Struct *)malloc(sizeof(struct _Record_Struct) * MAX_SIZE) ;
当A=2, B=3时pointer分配( )个字节的空间。 注意:机器是按照4字节对齐 A)20 B)15 C)11 D) 9
38、 在X86,VC++6.0环境下,有下列程序 #include
int main() { }
17 char c;
unsigned char uc; unsigned short us; c = 128; uc = 128; us = c + uc; printf(%us = c + (short)uc; printf(\
us = (unsigned char)c + uc; printf(%us = c + (char)uc; printf(\return 0;
文档名称 文档密级
输出结果是( )
A) 0x0 0x0 0x100 0xff00 B) 0x0 0x100 0x100 0xff00 C) 0x0 0x100 0x100 0x0 D) 0x0 0x0 0x100 0x0
39、 #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(\printf(\return 0;
程序执行结果是( )
A.1+2=0 B.1+2=3 C.1+2=NULL D.不可预测
二、多选题
40、 void GetMemory(char **ppcChar, int iLength) {
if(NULL == ppcChar)
{
return; }
*ppcChar = (char *)malloc(iLength); return;
}
void main( ) {
char *szStr = NULL;
GetMemory(&szStr, 100); if(NULL != szStr) {
18
文档名称 文档密级
strcpy(szStr, \ printf(szStr); }
return;
}
下面描述正确的是():
A、iLength应该判断是否大于0;
B、程序中使用魔鬼数字;
C、当szStr不为空时,没有释放分配的内存; D、printf(szStr)无法输出字符串
41、 下面程序期望输出str = hello world:
char * GetStr(char *p) {
p = \ return p; }
void main() {
char *str = NULL;
if(NULL != GetStr(str)) {
printf(\ } return;
}
下面描述正确的是:
A、Str始终为NULL;
B、函数GetStr返回值始终不为空;
C、该程序无法得到预期的输出结果,因为GetStr函数无法将字符串地址带给实参;
42、 下面程序期望得到 global_variable的值,并打印出来。 unsigned char global_variable; void GetGlobalAddr(unsigned char *p) {
p = &global_variable; }
void main()
{
unsigned char *temp = NULL_PTR; GetGlobalAddr(temp);
19
文档名称 文档密级
printf(\ return;
}
下面说法正确的是(): A 对p强制类型转换错误;
B 调用函数时,局部变量p存在于栈中; C p值的改变不会影响temp;
D 调用函数后,temp的值被改变为global_variable的地址。
43、 #define MAX_LEN 2
_UC *ConvertCode(_UC *p_byte, _UC num) {
_UL i = 0;
_UC strTemp[MAX_LEN];
if (NULL == p_byte) {
return NULL; }
memcpy(strTemp, p_byte, MAX_LEN); return (_UC *)strTemp; }
void main(void) {
_UC str[MAX_LEN]; _UC *p; str[0] = 0x12;
str[1] = 0x34;
p=ConvertCode(str, MAX_LEN); printf(\ return 0;
}
下面说明中,描述正确的是(): A、输入参数p_byte为空指针
B、函数ConvertCode返回值没有判断 C、没有判断p_byte空间和MAX_LEN的大小 D、返回局部变量地址
44、 #include
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言编程基础考试试题(4)在线全文阅读。
相关推荐: