c考点总结

1、sizeof()和strlen()的使用?

答:

1.从功能定义上,strlen()函数,用来求字符串的长度,sizeof()函数是用来求指定变量或变量类型等所占用内存的大小;

2.sizeof是运算符,而strlen是C库函数strlen只能用char*做参数,且以'\0'结尾的; 对于静态数组处理:

char str[20]="0123456789";

strlen(str)=10; //表示数组中字符串的长度

sizeof(str)=20; //表示数组变量分配的长度

对于指针处理:

char *str="0123456789";

strlen(str)=10; //表示字符串的长度

sizeof(str)=4; //表示指针变量的所占内存大小

sizeof(*str)=1; //表示'0'这个字符变量的所占内存大小

2、 struct 和 class的区别?

答:

(1)类中的成员默认是private的,但是可以声明为public,private 和protected,结构体中定义的成员默认的都是public.

(2)结构中不允许定义成员函数,当是类中可以定义成员函数.

(3)结构不可以存在继承关系,当是类可以存在继承关系.

3、 strcpy(), strcat(), strcmp,strlen(), strchr(), memcpy(), memcmp(), memset()的编写? 答: strcpy()

char *strcpy(char *strDestination, const char *strSource) {

assert(strDestination && strSource);

char *strD=strDestination;

while ((*strDestination++=*strSource++)!='\0');

NULL;

return strD;

}

错误的做法:

[1] (A)不检查指针的有效性,说明答题者不注重代码的健壮性。

(B)检查指针的有效性时使用((!strDest)||(!strSrc))或

(!(strDest&&strSrc)),说明答题者对C语言中类型的隐式转换没有深刻认识。在本例中char *转换为bool即是类型隐式转换,这种功能虽然灵活,但更多的是导致出错概率增大和维护成本升高。所以C++专门增加了bool、true、false三个关键字以提供更安全的条件表达式。

(C)检查指针的有效性时使用((strDest==0)||(strSrc==0)),说明答题者不知道使用常量的好处。直接使用字面常量(如本例中的0)会减少程

序的可维护性。0虽然简单,但程序中可能出现很多处对指针的检查,万一出现笔误,编译器不能发现,生成的程序内含逻辑错误,很难排除。而使用NULL代替0,如果出现拼写错误,编译器就会检查出来。

[2] (A)return new string("Invalid argument(s)");,说明答题者根本不知道返回值的用途,并且他对内存泄漏也没有警惕心。从函数中返回函数体内分配的内存是十分危险的做法,他把释放内存的义务抛给不知情的调用者,绝大多数情况下,调用者不会释放内存,这导致内存泄漏。

(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回正确值和异常值的双重功能,其结果往往是两种功能都失效。应该以抛出异常来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可维护性。

[3] (A)忘记保存原始的strDest值,说明答题者逻辑思维不严密。

[4] (A)循环写成while (*strDest++=*strSrc++);,同[1](B)。

(B)循环写成while (*strSrc!='\0') *strDest++=*strSrc++;,说明答题者对边界条件的检查不力。循环体结束后,strDest字符串的末尾没有正确地加上'\0'。

返回strDest的原始值使函数能够支持链式表达式,增加了函数的“附加值”。同样功能的函数,如果能合理地提高的可用性,自然就更加理想。

链式表达式的形式如: int iLength=strlen(strcpy(strA,strB));

Strcat():

char *strcat(char *strDest, const char *strScr)

{

char *address = strDest; //该语句若放在assert之后,编译出错

assert((strDest != NULL) && (strScr != NULL));

while(*strDest)

{

strDest++;

}

while(*strDest++ = *strScr++)

{

NULL;

}

return address; //为了实现链式操作,将目的地址返回

}

4、 内存的分配方式的分配方式有几种?

答:

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运

行期间都存在。

例如 :全局变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

5,、解释堆和栈的区别?

答:

(1)栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

(2)堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表.(主要

有:malloc/free,new/delete)

6,、枚举的用法,以及它与宏的区别?

答:

枚举(enum)作用:定义一组常量,而且这些常量组成了一个集合。当我们将emun参数传递给函数时,如果传递了一个不属于这个集合的参数,编译器报错。

区别:

枚举是类型,而宏没有类型。

枚举将检查其语法,而宏是简单的文本替换。

7、 const的用法,以及声明const变量与宏的区别?

答:

const的用法有四种:

a): const对象和const类型的对象;

b): const指针 和 指向const的指针 及两者结合;

c): const 参数修饰 和 参数返回类型的const修饰;

d): const类成员 和 const 成员函数;

区别:

const常量有数据类型, 而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只能进行字符替换,没有类型安全检查。而且字符替换可能会带来料想不到的边界效应。

有些集成化工具可以对const常量进行调试, 但不能对宏量进行调试。

8、函数assert的用法?

答:

断言assert是仅在debug版本起作用的宏,用于检查“不应该“发生的情况。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。

9、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)? 答:

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

10、 写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个?

答:

#define MIN(A,B) ((A) <= (B) ? (A) : (B))

11、嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

答:

这个问题用几个解决方案。我首选的方案是:

while(1)

{

}

一些程序员更喜欢如下方案:

for(;;)

{

}

12、用变量a给出下面的定义

a) 一个整型数(An integer)

答:a) int a; // An integer

b)一个指向整型数的指针( A pointer to an integer)

答:b) int *a; // A pointer to an integer

c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)

答:c) int **a; // A pointer to a pointer to an integer

d)一个有10个整型数的数组( An array of 10 integers)

答:d) int a[10]; // An array of 10 integers

e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)

答:e) int *a[10]; // An array of 10 pointers to integers

f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers) 答: f) int (*a)[10]; // A pointer to an array of 10 integers

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)

答:g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

答:h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

13、关于内存对齐的问题以及sizof()的输出?

答:

编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。

14、 static有什么用途?(请至少说明两种)

答:

(1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

(2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

(3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

15、引用与指针有什么区别?

答:

(1) 引用必须被初始化,指针不必。

(2) 引用初始化以后不能被改变,指针可以改变所指的对象。

(3) 不存在指向空值的引用,但是存在指向空值的指针。

16、什么是平衡二叉树?

答:

左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。

17、堆栈溢出一般是由什么原因导致的?

答:

没有回收垃圾资源。

18、什么是预编译?何时需要预编译?

答:

(1)总是使用不经常改动的大型代码体。

(2)程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

19、队列和栈有什么区别?

答:

队列先进先出;栈后进先出。

20、数组和链表的区别?

答:

数组:数据顺序存储,固定大小;链表:数据可以随机存储,大小可动态改变;

21、为什么数组名作为参数,会改变数组的内容,而其它类型如int却不会改变变量的值? 答:

当数组名作为参数时,传递的实际上是地址。而其他类型如int作为参数时,由于函数参数值实质上是实参的一 份拷贝,被调函数内部对形参的改变并不影响实参的值。

22、数据结构和算法:

A:查找:

(1)二分法查找;

(2)

(3)

(4)

B:写出下列算法的时间复杂度和实现排序:

(1)冒泡排序;

(2)选择排序;

(3)插入排序;

(4)快速排序;

(5)堆排序;

(6)归并排序;

23、编写gbk_strlen函数,计算含有汉字的字符串的长度,汉字作为一个字符处理;已知:汉字编码为双字节,其中首字节<0,尾字节在0~63以外;(如果一个字节是-128~127)?

 

第二篇:考点总结

大学生活的特点

学习要求 生活环境 社会活动 的变化

当代大学的历史使命

在新的起点上继往开来 在现实的基础上迎接挑战

大学生成才目标

德—人才素质的灵魂 智—基本内容 体—基础 美—综合体现

社会主义核心价值体系的科学内涵

1、 巩固马克思主义的地位,用马克思主义中国化最新成果武装全党、教育人民

2、 用中国特色社会主义共同理想凝聚力量

3、 用以爱国主义为核心的民族精神和以改革创新为核心的时代精神鼓舞斗志

4、 用社会主义荣辱观引领风尚,巩固全党全国各族人民团结奋斗的共同思想基础

第一章

理想的含义

是在实践中形成的、有可能实现的、对未来社会和自身发展的向往和追求,是人们的世界观、人生观、价值观的集中体现。

理想的特征

是一定社会关系的产物 源于现实又超越现实 多方面多类型 现实性预见性

信念的含义

信念是认知、情感和意志的有机统一体,是人们在一定的认识基础上确立的对某种事物或思想坚定不移并身体力行的心理态度和精神追求。是对理想的支持,是人们追求理想目标的强大动力。

信仰的含义

是信念最集中、最高的表现形式

分两种类型:1、对虚幻世界、不切实际的观念、荒谬理论的盲目相信

2、在实践中,对以事物发展规律正确认识为基础的见解、主张的坚信不疑。

理想信念的作用

指引人生奋斗目标 提供人生前进动力 提高人生精神境界

理想信念与大学生

指引大学生 做什么人 走什么路 为什么学

化理想为现实

1、 正确认识理想与现实的关系 是实现理想的基础

2、 坚定的信念是实现理想的条件

3、 勇于实践、艰苦奋斗是实现理想的根本途径

爱国主义科学内涵

体现了人民群众对自己祖国的深厚感情,反映了个人对祖国的依存关系,是人们对故园、民族和文化的归属感、认同感、尊严感、荣誉感的统一。 是调节个人与祖国之间的 道德要求 政治原则 法律规范 ,也是 民族精神的核心。

爱国主义基本要求

爱 祖国大好河山 自己的骨肉同胞 祖国的灿烂文化 自己的国家

爱国主义与拥护祖国统一的一致性

是对全体中华儿女包括 港澳台 同胞的要求。 爱国与否是最基本的政治原则。我们要维护祖国统一、反对祖国分裂,任何制造国家分裂、损害国家主权和领土完整的行为都要受到强烈谴责。 大陆之外的同胞,只要站在拥护统一的立场上,就能在政治上求同存异,共同为祖国的统一大业奋斗。

经济全球化下要弘扬爱国主义的原因

爱国主义不会过时,在全球经济化的条件下 国家仍是民族存在的最高形式,是国际社会活动的独立主体。 我们在参与全球化进程中, 必须坚定捍卫国家利益,大力弘扬爱国主义,维护本国、本民族的利益。

第三章

人生观的含义

是世界观的重要组成部分,是人们在实践中形成的 对于人生目的和意义的根本看法,它决定 人们实践活动的目标 人生的方向 对待生活的态度。 主要通过 人生目的 人生态度 人生价值 体现出来。

追求高尚的人生目的

人生目的决定 人生道路 人生态度 人生价值标准

人生态度与人生观

态度是观的 重要内容 态度是观的 表现和反映

端正人生态度

人生须 认真 务实 乐观 进取

高尚人生观含义

只有以为人民服务为核心内容的人生观,才是科学高尚的,值得终生尊奉和践行。

用高尚人生观指引人生

反对 拜金主义 享乐主义 个人主义 的人生观

价值观与人生价值

价值观:一方面表现为:价值取向 价值追求 另一方面表现为:价值尺度和标准 人生价值:是一种特殊的价值,是人的生活实践对于社会和个人所具有的作用和意义。

人生价值的标准与评价

人生价值包含 自我价值 社会价值

1、 自我价值是 个体生存 发展的 必要条件

2、 社会价值是 实现人生自我价值的 基础

促进自我身心的和谐的方法

1、 树立正确的世界观、人生观、价值观

2、 掌握应对心理问题的科学方法

3、 合理调控情绪

4、 积极参加集体活动 增进人际交往

促进个人与他人和谐应坚持的原则

诚信 宽容 互助 ——原则

正确认识和处理竞争与合作的关系

正确认识竞争: 竞争是具有积极意义的,有助于激发竞争主体的进取心,有助于竞争主体

客观评价自己、扬长避短、展现才华,不断提高,从而推动社会发展。 竞争不可以不择手段,通过损害对方达到自己的目的。要遵守法律道德,讲风格,讲合作。

正确认识合作: 一个人、一个群体的力量是有限的,真正伟大的力量 在于团结协作。在

当今社会竞争日益加剧的形势下,应高度重视合作精神的自觉培养,在日常和今后工作中讲究合作。

正确处理竞争 合作的关系: 两者在本质上是相互伴随、相互统一的。竞争离不开合作,

合作也离不开竞争,没有竞争的合作缺乏活力,合作增强竞争的实力。 要鼓励竞争、提倡竞争、保护竞争,同时又要提倡合作、提倡互相关心、互相爱护、互相帮助。

第四章

道德的起源

1、 社会关系的形成是道德赖以产生的客观条件。人类道德生活本质上是对人们社会关系的

认识和反映。

2、 人类自我意识的形成于发展是道德产生的主观条件。

3、 人的劳动是道德起源的历史前提。

道德的本质

1、 道德有 阶级性 历史性 是经济基础决定的, 是社会经济关系的反映

2、 社会经济关系的性质 决定各种道德体系的性质

3、 社会经济关系所表现出来的利益 决定各种道德的基本原则、主要规范

4、社会经济关系的变化 必然引起道德的变化

道德主要功能

主要: 认识 调节——功能

其他: 导向 激励 辩护 沟通——功能

道德的社会作用

含义:道德功能的发挥和实现所产生的社会影响及实际效果

主要表现:1、影响经济基础的形成、巩固、发展

2、对其他社会意识形态的存在有重大影响

3、通过调整人们之间的关系维护社会秩序的稳定

4、提高人的精神境界、促进人的自我完善、推动人的全面发展

中华民族优良道德传统的主要内容

1、 注重 整体利益 国家利益 民族利益 ,强调对 社会 民族 国家 的责任意识和奉献精神

2、 推崇“仁爱“原则 ,追求 人际和谐

3、 讲求谦敬礼让 强调 克骄防矜

4、 倡导 言行一致 ,强调恪守诚信

5、 追求精神境界,把道德理想的现实看做是一种高层次的需要

6、 重视道德践履 强调修养的重要性 倡导道德主体要在完善自身中发挥自己的能动作用

社会主义道德建设要 以为人民服务为核心

1、 为人民服务 是社会主义经济基础 和人际关系 的客观要求

2、 为人民服务 是社会主义市场经济健康发展 的要求

社会主义道德建设要 以集体主义为原则

1、 社会主义集体主义 强调集体利益和个人利益的统一

2、 社会主义集体利益 强调集体利益高于个人利益

3、 社会主义集体利益 强调重视和保障个人的正当利益

个人品德与道德修养

个人品德有 实践性 综合性 稳定性

1、 个人品德对社会道德的发展变革产生重要推动作用

2、 社会道德要求只有与个人品德相结合,才会转变为现实的道德力量

3、 个人品德提升的过程也是能动地作用于社会道德的过程

4、 个人品德是个人实现自我完善的内在根据

5、 锤炼个人品德应首先加强个人道德修养的自觉性

第五章

公共生活的特征

活动范围的广泛性 活动内容的公开性 交往对象的复杂性 活动方式的多样性

公共生活需要公共秩序

1、 有序的公共生活是 构建和谐社会的 重要条件

2、 有序的公共生活是 经济生活健康发展的 必要前提

3、 有序的公共生活是 提高赎回成员生活质量的 基本保证

4、 有序的公共生活是 国家现代化和文明能够程度的 重要标志

维护公共秩序的基本手段

道德 和 法律

社会公德基本特征

继承性 基础性 广泛性 简明性

社会公德主要内容

文明礼貌 助人为乐 爱护公物 保护环境 遵纪守法

社会公德建设的基本现状

1、 继承和弘扬了我国优良的道德传统

2、 改革开放为我国社会公德建设注入了新的活力

3、 各种形式的社会公德建设实践活动蓬勃开展

4、 我国遵守社会公德的状况,总体是好的,但也存在一些不尽人意甚至令人堪忧的现象。

如:事不关己高高挂起 说一套做一套

《治安管理处罚法》基本精神 和 主要内容

精神:一方面 规范 引导社会成员的行为,使人人懂法 守法 既保护自身 又不侵害他人 另一 规范 指导 公安机关和人民警察的执法行为

内容:立法目的和基本原则 违反治安管理行为及处罚种类 处罚程序 执法监督

第六章

职业道德基本要求

爱岗敬业 诚实守信 办事公道 服务群众 奉献社会

爱情的本质

是一对男女 基于一定的社会基础 和 共同的社会理想 ,在内心形成的相互倾慕, 并渴望对方成为自己终生伴侣的一种强烈 纯真 专一 的感情

恋爱中的道德

尊重人格平等 自觉承担责任 文明相亲相爱

第七章

法律的一般含义

1、 是由国家创建 并 保证实施 的行为规范

2、 是统治阶级意志的体现

3、 由社会物质生活条件决定

宪法及相关法

是我国的根本大法。规定国家的根本制度和根本任务,具有最高的法律效力

民法商法 行政法 经济法 社会法 刑法 诉讼与非诉讼程序法

相关推荐