《高质量程序设计指南:C++/C语言》面试题整理
| 
        char s1[] = "";
        
        char s2[] = "Hello World!";
        
        char *p  = s2;
        
        char *q  = NULL;
        
        void *r   = malloc(100);
        
        请计算:
        
        sizeof (s1) = 
        
        sizeof (s2) = 
        
        sizeof ( p ) = 
        
        sizeof ( q )  =
        
       sizeof (r) = 
       | 
       char s1[10] = {'m', 'o', 'b', 'i', 'l'};
       
       char s2[20] = {'A', 'N', 'S', 'I', '\0', 'C', '+', '+'};
       
       char s3[6]   = {'I', 'S', 'O', 'C', '+', '+'};
       
       请计算:
       
       strlen(s1)  = 
       
       strlen(s2)  =
       
       strlen(s3)  = 
       
       s2[8]  = 
       | 
| 
       void Func ( char str[100]) 
       
       { 
       
           请计算:
       
           sizeof( str ) =     
       
       }
       | 
| 
        请写出BOOL flag 与“零值”比较的if 语句:
        | 
| 
        请写出float x 与“零值”比较的if 语句:
        | 
| 
        请写出char *p 与“零值”比较的if 语句:
        | 
| 
       // 第一个
       
       for (i=0; i<N; i++) 
       
       { 
       
           if (condition) 
       
               DoSomething(); 
       
           else 
       
               DoOtherthing(); 
       
       }
       | 
       // 第二个
       
       if (condition) 
       
       { 
       
           for (i=0; i<N; i++) 
       
               DoSomething(); 
       
       } 
       
       else 
       
       { 
       
           for (i=0; i<N; i++) 
       
               DoOtherthing(); 
       
       }
       | 
| 
        优点:
        
        缺点:
        | 
       优点:
       
       缺点:
       | 
| 
        void GetMemory(char *p) 
        
        { 
        
            p = (char *)malloc(100); 
        
        } 
        
        void Test(void)  
        
        { 
        
            char *str = NULL; 
        
            GetMemory(str); 
        
            strcpy(str, "hello world"); 
        
            printf(str); 
        
        } 
        
        请问运行Test函数会有什么样的结果?
        
        答:
        | 
        char *GetMemory(void) 
        
        { 
        
            char p[] = "hello world"; 
        
            return p; 
        
        } 
        
        void Test(void) 
        
        { 
        
            char *str = NULL; 
        
            str = GetMemory();  
        
            printf(str); 
        
        } 
        
        请问运行Test函数会有什么样的结果?
        
        答:
        | 
| 
        Void GetMemory2(char **p, int num) 
        
        { 
        
            *p = (char *)malloc(num); 
        
        }
        
        void Test(void) 
        
        {  
            char *str = NULL; 
        
            GetMemory(&str, 100); 
        
            strcpy(str, "hello");  
        
            printf(str); 
        
        }
        
        请问运行Test函数会有什么样的结果?
        
        答:
        | 
        void Test(void) 
        
        { 
        
            char *str = (char *) malloc(100);
        
            strcpy(str, “hello”); 
        
            free(str); 
        if(str != NULL) { strcpy(str, “world”); printf(str); } 
        } 
        
        请问运行Test函数会有什么样的结果?
        
        答:
        | 

O(∩_∩)O~
《高质量程序设计指南:C++/C语言》面试题整理的更多相关文章
- 高质量程序设计指南C/C++语言——C++/C程序设计入门
		1.在C++/C中,全局变量(extern或static)存放在程序的静态数据区中,在程序进入main()之前创建,在main()结束之后销毁,因此在我们的代码中根本没有机会初始化它们,于是语言及其实 ... 
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(4)
		*switch结构的break语句只是一个“jmp”指令,其作用就是跳到switch结构的结尾处 *标准C++/C语言提供3种循环:do/while.while和for,它们都在条件表达式为TRUE( ... 
- 指针,数组,字符串的区别(高质量程序设计指南C++/C语言第7章)
		指针: 指针是变量,和平时的那些变量没有本质的差异,不同的只是它的值和类型,.,即解释方式 二进制层面:指针的值是内存单元的地址,而变量是引用内存单元值的别名 语言层面:指针的值就是变量的地址. 对象 ... 
- 高质量程序设计指南C/C++语言——malloc/free使用要点
- 高质量程序设计指南C/C++语言——有了malloc/free为什么还要new/delete?
- 高质量程序设计指南C/C++语言——内存管理
		• free()和delete只是把指针所指的内容给释放掉,并没有把指针本身删掉.指针被free()或delete以后其地址仍然不变(不等于NULL),只是该地址对应的内存是垃圾——p成了野指针.如果 ... 
- 高质量程序设计指南C/C++语言——C++/C常量(2)
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(2)
		*标准C规定,编译器只取前31个字符作为有效的标识符,而标准C++则取前255个字符作为有效的标识符. *把具有特殊含义的字符输出到终端上,尤其是当它们出现在普通字符串或格式控制字符串中时,一般来说有 ... 
- 高质量程序设计指南C/C++语言——C++/C编译预处理
		C++/C的编译预处理器对预编译伪指令进行处理后生成中间文件作为编译器的输入,因此所有的预编译伪指令都不会进入编译阶段.预编译伪指令一般都以#打头,且其前面只能出现空白字符.预编译伪指令不是C++/C ... 
- 高质量程序设计指南C/C++语言——C++/C常量
随机推荐
- ThinkPHP第六天(正则表达式)
			1.正则表达式:原子 ①a-z,A-Z,0-9,_ ②用(abc)圆括号括起来的单元符号,表示括号里面的作为一个完整的组合,必须完成匹配,不被拆分来 ③用方括号括起来[abc][^abc]称之为原子表 ... 
- Flask中路由模块的实现
			在Flask中的路由功能主要通过修饰函数route实现,下面我们就来挖掘下route在源代码中是怎么分配视图函数的. def route(self, rule, **options): def dec ... 
- 解决gerber-Failed to Match All Shapes for PCB问题
			有效解决在Protel 99se导gerber时提示gerber-Failed to Match All Shapes for PCB出错问题如图 这种问题很好解决,打开这个窗口 操作方法如下图Emb ... 
- python测试框架--nose
			最近再浏览Python自动化测试框架,之前接触过unittest,看了篇文章,发现nose貌似更牛逼一些,于是安装试了试,分享一下心得. nose 项目是于 2005 年发布的,也就是 p ... 
- javascript实现贪吃蛇
			<html> <head> <style> body { background:#444; } .rect { border:1px solid #94F; wid ... 
- MySQL 讨厌哪种类型的查询
			㈠ 任何查询都讨厌 只要是查询.MySQL都讨厌.执行查询最快的方式就是不去执行 缓存为王.比如Redis或者memcache ㈡ 查 ... 
- ceph源码之一
			转自于:http://blog.csdn.net/changtao381/article/details/8698935 一.概述: 其结构如下:在src 里, 网络通信: msg 里面 包括了网 ... 
- PendingIntent.getBroadcast第四个参数flags
			(1) android.app.PendingIntent.FLAG_UPDATE_CURRENT 如果PendingIntent已经存在,保留它并且只替换它的extra数据. (2) android ... 
- 树莓派做web服务器(nginx、Apache)
			一想到Linux Web服务器,我们首先想到的是: Apache + MySql + Php. Apache:是世界使用排名第一的Web服务器软件. 可以运行在几乎所有广泛使用的计算机平台上,由于其跨 ... 
- java-finalize
			finalize()来自Object的protected 方法,同clone()需要用户具体实现.一.源码中的介绍1. Called by the garbage collector on an ... 
