以下关于这些宏定义描述,错误的是:()
A.在预处理器看来,这些浮点数都是一串毫无意义的东西B.预处理器可以发现这些宏定义中可能存在的语法错误C.宏定义中出现的3.14、2.00、30.00、10.00不能当浮点数理解D.预处理器不会去判断这些宏定义是变量、常量、表达式还是什么有意义的东西,它只负责替换
单项选择题C语言标准库中提供的动态分配内存函数包括:以下关于这些函数描述中,错误的是()。
A.程序结束后,从堆区申请的内存空间不会被系统自动释放,导致该内存不能再被使用(称为内存泄露)。用free函数可以释放_Memory所指向的内存空间B.free只是释放指针指向的内容,该指针还指向原地方(此时的指针称为野指针)。操作野指针可能导致不可预料的错误。所以,使用free释放指针指向的空间后,应将指针的值置为NULLC.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 *));
单项选择题对于通用搜索函数void*search(void*a,void*k,int n ,int m),参数n表示元素个数,m表示的是什么?()
A.要查找的数据B.要查找的数据的数据元素的下标C.要查找的数据的数据类型D.要查找的数据的数据类型所占字节数
单项选择题要调用void swap(void *a ,void *b ,int size )函数交换两个字符串char *s1=strdup( hello );char *s2=strdup( world );调用语句为()。
A.swap(&s1,&s2,sizeof(void *));B.swap(s1,s2,sizeof(void *));C.swap(&s1,&s2,sizeof(char *));D.swap(s1,s2,sizeof(char *));
单项选择题对于通用搜索函数void*search(void*a,void*k,int n ,int m,int (*compare)(void *,void *)),假如有char*os[]={ dos , win , centos , ubuntu , mac };char*k = linux ;cmp是一个比较函数,则正确的调用语句是()。
A.search(os,k,5,sizeof(char ),cmp);B.search(os,k,5,sizeof(char ),cmp());C.search(os,&k,5,sizeof(char *),cmp);D.search(os,&k,5,sizeof(char *),cmp());