{
for(j=0; j
pMyMem[j]=0; } } }
下面说法正确的有;( )
A、因为pMyMem未初始化,main函数中的GetMem可能会返回-1;
B、因为i未初始化,main函数中GetMem可能会返回比MAX_MEM_SIZE大的值; C、因为pMyMem未初始化,for循环内的赋值操作可能会导致写内存异常; D、无论pMyMem, i, j为何值时,main函数内都不会出现写内存异常; 37、#define MAX_MEM_SIZE 100 int GetMem(int iLen, void **ppMem) {
if(iLen<0) {
return -1; }
else if(0==iLen) {
return 0; }
else if(iLen *ppMem=malloc(iLen); return iLen; } else { *ppMem=malloc(MAX_MEM_SIZE); return MAX_MEM_SIZE; } } void main() { char *pMyMem; int i,k; unsigned int j; j=GetMem(i, &pMyMem); if(j>0) { for(k=0; k pMyMem[k]=0; } } } 下面说法正确的有: A、只要将pMyMem初始化为NULL,可以避免main函数内的for循环出现写内存异常; B、虽然i和pMyMem均未初始化,只要将if(j>0)改为if((0 C、虽然i和pMyMem均未初始化,只要将main函数内的for循环比较由k 二:多项选择题 1. 定义结构体时有下面几种说法,请指出正确的(多选):___ A、结构体中的每个部分,最好进行四字节对齐; B、结构体的总长度最好是四字节对齐; C、结构中成员的存放不用考虑字节对齐情况; 2. 0x12345678 在采用BigEndian中内存的排列顺序是______,在采用LittleEndian内存中的排列顺序是______. (答案从左到右内存地址依次增加) A.12 34 56 78 B.34 12 78 56 C.78 56 34 12 D.56 78 12 34 3.下面程序期望输出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函数无法将字符串地址带给实参; 4、下面程序期望得到 g_Variable的值,并打印出来。 unsigned char g_Variable; void GetGlobalAddr(unsigned char *p) { p = &g_Variable; } void main() { unsigned char *temp = NULL_PTR; GetGlobalAddr(temp); printf(\ return; } 下面说法正确的是(): A 对p强制类型转换错误; B 调用函数时,局部变量p存在于栈中; C p值的改变不会影响temp; D 调用函数后,temp的值被改变为g_Variable的地址。 5、 #define MAX_LEN 2 UC *ConvertCode(UC *pByte, UC num) { UL i = 0; UC strTemp[MAX_LEN]; if (NULL == pByte) { return NULL; } memcpy(strTemp, pByte, MAX_LEN); return (UC *)strTemp; } void main(void) { UC str[MAX_LEN]; UC *p; str[0] = 0x12; str[1] = 0x34; p = ConvertCode(str, sizeof(str)); printf(\ return; } 下面查错的说明中,描述正确的是(): A、输入参数p_byte为空指针 B、函数ConvertCode返回值没有判断 C、没有判断p_byte指向空间和MAX_LEN的大小 D、返回局部变量地址 6.下列定义正确的有(多选):( ) A: char *pcPtr = \ B: char pc[4]= \ C: char pc[] = \ D: char pc[] = 'abcd'; E: char pc[] = {'a','b','c','d','\\0'}; F: char pc[] = 'a' 'b' 'c' 'd'; 7. void GetMemory(char **ppcChar, int iLength) { if(NULL == ppcChar) { return; } *ppcChar = (char *)malloc(iLength); return; } void main(int argc, char* argv[]) { char *szStr = NULL; int iLen = 100; GetMemory(&szStr, iLen); if(NULL != szStr) { strcpy(szStr, \ printf(szStr); } return; } 下面描述正确的是(): A、iLength应该判断是否大于0; B、程序中使用魔鬼数字; C、当szStr不为空时,没有释放分配的内存; D、printf(szStr)无法输出字符串 8.请指出下面程序问题 #define MAX_LEN 254 unsigned char Array[MAX_LEN]; int Test(void) { int i; for ( i = 0; i <= MAX_LEN; i++ ) { Array[i] = i; } return; } 下面说法正确的是(): A、i = MAX_LEN时,数组越界 B、argv参数形式错误 C、i = MAX_LEN时,赋值溢出 D、return无返回值 9、#include char *ptr=NULL; int len =msg_len; ptr=(char *)malloc(len); if(NULL == ptr ) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C_C++语言笔试面试题目含答案(4)在线全文阅读。
相关推荐: