相关考题
-
单项选择题
以下关于这些宏定义描述,错误的是:()
A.在预处理器看来,这些浮点数都是一串毫无意义的东西
B.预处理器可以发现这些宏定义中可能存在的语法错误
C.宏定义中出现的3.14、2.00、30.00、10.00不能当浮点数理解
D.预处理器不会去判断这些宏定义是变量、常量、表达式还是什么有意义的东西,它只负责替换 -
单项选择题
C语言标准库中提供的动态分配内存函数包括:以下关于这些函数描述中,错误的是()。
A.程序结束后,从堆区申请的内存空间不会被系统自动释放,导致该内存不能再被使用(称为内存泄露)。用free函数可以释放_Memory所指向的内存空间
B.free只是释放指针指向的内容,该指针还指向原地方(此时的指针称为野指针)。操作野指针可能导致不可预料的错误。所以,使用free释放指针指向的空间后,应将指针的值置为NULL
C.realloc函数可以重新_NewSize字节的内存空间,该空间为用malloc等函数已经申请的空间,_Memory指向该空间的首地址。如果_NewSize小于或等于_Memory之前所指向的空间大小,保持原有状态不变。如果_NewSize大于原来_Memory之前所指向的空间大小,系统会出错
D.malloc函数可以从堆区申请_Size字节的内存空间。如果申请成功,返回所分配内存空间的首地址;如果申请失败,返回值为NULL -
单项选择题
对于通用搜索函数void*search(void*a,void*k,int n ,int m),假如有char*os[]={"dos","win","centos","ubuntu","mac"};char*k ="linux";正确的调用语句是()。
A.int *r=NULL;for(int j=0;j< 5;j++){r=search(os[j],k,5,sizeof(char));if(r!=NULL)break;}
B.int *r=NULL;for(int j=0;j< 5;j++){r=search(os[j],k,6,sizeof(char *));if(r!=NULL)break;}
C.search(os,k,5,sizeof(char ));
D.search(os,k,5,sizeof(char *));
