上一页 1 ··· 11 12 13 14 15
摘要: 附录B:C++/C试题本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。笔试时间90分钟。请考生认真答题,切勿轻视。附录C:C++/C试题的答案与评分标准一、请填写BOOL ,float,指针变量与“零值”比较的if语句。(10分)请写出BOOLflag与“零值”比较的if语句。(3分)标准答案:if ( flag )if ( !flag )如下写法均属不良风格,不得分。if (flag == TRUE)if (flag == 1 )if 阅读全文
posted @ 2011-03-15 12:49 jinmengzhe 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 2010-12-13 16:15free和delete把指针怎么啦?别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。用调试器跟踪示例7-5,发现指针p被free以后其地址仍然不变(非NULL),只是该地址对应的内存是垃圾,p成了“野指针”。如果此时不把p设置为NULL,会让人误以为p是个合法的指针。如果程序比较长,我们有时记不住p所指的内存是否已经被释放,在继续使用p之前,通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。 cha 阅读全文
posted @ 2011-03-15 12:48 jinmengzhe 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 欢迎进入内存这片雷区。伟大的Bill Gates曾经失言:640K ought to beenough for everybody—Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 阅读全文
posted @ 2011-03-15 12:46 jinmengzhe 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 函数是C++/C程序的基本功能单元,其重要性不言而喻。函数设计的细微缺点很容易导致该函数被错用,所以光使函数的功能正确是不够的。本章重点论述函数的接口设计和内部实现的一些规则。函数接口的两个要素是参数和返回值。C语言中,函数的参数和返回值的传递方式有两种:值传递(pass by value)和指针传递(pass by pointer)。C++语言中多了引用传递(pass by reference)。由于引用传递的性质象指针传递,而使用方式却象值传递,初学者常常迷惑不解,容易引起混乱,请先阅读6.6节“引用与指针的比较”。6.1参数的规则l【规则6-1-1】参数的书写要完整,不要贪图省事只写参数 阅读全文
posted @ 2011-03-15 12:45 jinmengzhe 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m;int &n = m;n相当于m的别名(绰号),对n的任何操作就是对m的操作。例如有人名叫王小毛,他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。引用的一些规则如下:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。(3)一旦引用被初始化,就不能改变引用的关 阅读全文
posted @ 2011-03-15 12:45 jinmengzhe 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不 同。不能在类声明中初始化const数据成员。以下用法是错误的,因为类的对象未被创建时,编译器不知道SIZE的值是什么。 class A {… const int SIZE = 100; //错误,企图在类声明中初始化const数据成员 intarray[SIZ 阅读全文
posted @ 2011-03-15 12:43 jinmengzhe 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 《高质量C++/C程序设计指南》林锐编电子工业出版社看完书后从网上找到了电子版 略有不同 节选一些章节电子版地址 http://man.chinaunix.net/develop/c&c++/c/c.htmif语句 if语句是C++/C语言中最简单、最常用的语句,然而很多程序员用隐含错误的方式写if语句。本节以“与零值比较”为例,展开讨论。4.3.1布尔变量与零值比较l【规则4-3-1】不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visu 阅读全文
posted @ 2011-03-15 12:42 jinmengzhe 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 一,指针的运算1,&和*运算符的优先级相同,且是自右向左结合的单目运算符也是自右向左结合的,故*p++和(*p)++是不一样的。而且*,++是具有相同的运算优先级的,故如*s++,++是作用于s的,而不是*s。2,两个指针有时候可以做减法运算,例如,若p,q指向同一数组中的元素,那么p-q表示的是p,q之间的元素的个数。(并不是两个地址值相减)3,指针与整数的加减运算,表示指针相对当前位置的位移。如*(p+1)4,指针在一定条件下可以比较(指向同一共用对象时),例如p,q指向同一数组,可以写p>q;二,指针变量作函数参数函数执行后指针本身的值没有改变,指针所指的内容改变了如:vo 阅读全文
posted @ 2011-03-15 12:41 jinmengzhe 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 问题描述:假设有N个小孩按照序号1,2,,,N围坐成一圈,从第一个小孩开始报数,每次报到n的人退出,接着从下一个人重新开始从1开始报数,下一次再报到n的人退出,求最后一个留下的人;小孩的个数N,和报数的n由键盘输入;输出留下人的序号一个循环链表都写得除出了很多问题,改了半天才出来;#include <stdio.h>#include <stdlib.h>//包含malloc()void main(){ int N,n; int count = 0; struct c_list { int num; struct c_list *next; }; struct c_lis 阅读全文
posted @ 2011-03-15 12:40 jinmengzhe 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 一,结构体的概念和定义1,结构体的定义struct 结构体名{数据类型 成员名1;数据类型 成员名1;...};这里数据类型可以是复合类型,例如又是一个结构体类型,即嵌套;2,结构体变量的定义struct 结构体名 变量名1,变量名2,,,变量名n;或:struct 结构体名{数据类型 成员名1;数据类型 成员名1;...}结构体变量1,结构体变量2;或:struct{数据类型 成员名1;数据类型 成员名1;...}结构体变量1,结构体变量2;三种方式,第三种方式的话,每次要定义这个类型的结构体变量都要重复的写这一段代码;其实定义了结构体后,struct 结构体名就是一种新的类型,上述语句就像 阅读全文
posted @ 2011-03-15 12:35 jinmengzhe 阅读(2986) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15