![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客网C++
小小葱!
只要路是对的,就不怕路远。
展开
-
牛客网C++刷题十五
参考答案:将WAV文件格式定义为结构体WAVEFORMAT:typedef struct tagWaveFormat{ char cRiffFlag[4]; UIN32 nFileLen; char cWaveFlag[4]; char cFmtFlag[4]; char cTransition[4]; UIN16 nFormatTag ; UIN16 nCha...原创 2020-03-02 11:43:13 · 133 阅读 · 0 评论 -
牛客网C++刷题十四
编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg” 函数头是这样的://pStr是指向以’\0’结尾的字符串的指针//steps是要求移动的nvoid LoopMove ( char * pStr, int steps ){ //请填充...}参考答案:答案不够严谨,n可能为负数。#incl...原创 2020-03-02 11:28:58 · 106 阅读 · 0 评论 -
牛客网C++刷题十三
为什么标准头文件都有类似以下的结构?#ifndef __INCvxWorksh#define __INCvxWorksh #ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}#endif #endif /* __INCvxWorksh */参考答案:头文件中的编译宏#ifndef __INCvx...原创 2020-03-02 10:44:22 · 131 阅读 · 0 评论 -
牛客网C++刷题十二
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = MIN(*p++, b);解答: #define MIN(A,B) ((A) <= (B) ? (A) : (B)) MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函...原创 2020-02-29 15:31:03 · 121 阅读 · 0 评论 -
牛客网C++刷题十一
以下为Windows NT下的32位C++程序,请计算sizeof的值void Func ( char str[100] ){ sizeof( str ) = ?}void *p = malloc( 100 );sizeof ( p ) = ?参考答案:sizeof( str ) = 4sizeof ( p ) = 4【剖析】Func ( char str[100] )函数...原创 2020-02-29 15:15:16 · 313 阅读 · 0 评论 -
牛客网C++刷题十
分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)参考答案【解答】 BOOL型变量:if(!var) int型变量: if(var==0) float型变量: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSI...原创 2020-02-29 15:03:50 · 140 阅读 · 0 评论 -
牛客网C++刷题九
看看下面的一段程序有什么错误?swap( int* p1,int* p2 ){ int *p; *p = *p1; *p1 = *p2; *p2 = *p;}参考答案1.需要一个返回值void2在swap函数中,p是一个“野”指针,有可能指向系统区,导致程序运行的崩溃。在VC++中DEBUG运行时提示错误“Access Violation”。在swap里面,如果int *...原创 2020-02-29 14:55:23 · 189 阅读 · 0 评论 -
牛客网C++刷题八
下面代码会出现什么问题?void Test( void ){ char *str = (char *) malloc( 100 ); strcpy( str, "hello" ); free( str ); ... //省略的其它语句}参考答案:在执行 char *str = (char *) malloc(100);1.后未进行内存是否申请成功的判断;2.在free(...原创 2020-02-29 14:45:11 · 477 阅读 · 0 评论 -
牛客网C++刷题七
下面代码会出现什么问题?void GetMemory( char **p, int num ){ *p = (char *) malloc( num );}void Test( void ){ char *str = NULL; GetMemory( &str, 100 ); strcpy( str, "hello" ); printf( str ); }参考答...原创 2020-02-29 13:01:54 · 232 阅读 · 0 评论 -
牛客网C++刷题六
下面代码会出现什么问题?char *GetMemory( void ){ char p[] = "hello world"; return p; }void Test( void ){ char *str = NULL; str = GetMemory(); printf( str ); }参考答案:char p[] = “hello world”;retu...原创 2020-02-29 12:28:32 · 495 阅读 · 0 评论 -
牛客网C++刷题五
检查下面代码有什么问题?void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( void ) { char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf( str );}参考答案传入中GetMemory(...原创 2020-02-28 15:47:36 · 144 阅读 · 0 评论 -
牛客网C++刷题三
指出下面代码有什么问题?void test3(char* str1){ if(str1 == NULL){ return ; } char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); }}解:if(strlen(str1) <= 10)应改为if(strlen...原创 2020-02-17 18:47:34 · 187 阅读 · 0 评论 -
牛客网C++刷题二
分析下面代码有什么问题?void test2(){ char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1 = 'a'; }strcpy( string, str1 );}解:知识点:strcpy从源地址开始拷贝,直到遇到\0才结束。如果一直没有遇到\0,就会导致越界访问非法内存。数组名为指向第...原创 2020-02-17 18:39:07 · 287 阅读 · 0 评论 -
牛客网C++刷题一
1.分析下面代码有什么问题?void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );}解:字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界;代码本身没有错误,如果将str1拷贝到string中,str...原创 2020-02-17 14:24:07 · 259 阅读 · 0 评论