管理全能XC 复习 2011

时间:2019-05-13 11:20:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《管理全能XC 复习 2011》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《管理全能XC 复习 2011》。

第一篇:管理全能XC 复习 2011

项目管理

第一章管理概论

1.阶段划分:建设工程项目管理的全寿命周期包括:决策阶段、实施阶段和使用阶段;全过程包括决策阶段、实施阶段;实施阶段包括设计阶段和施工阶段,又可分为五个子阶段,分别为设计前准备阶段、设计阶段、施工阶段、动用前准备阶段及保修期。

2.建设工程项目管理主体包括五个,分别是:业主方(包括监理方和咨询方)、工程项目总承包方(B+D及EPC)、施工方(包括分包方、施工总承包方、施工总承包管理)、设计方和供货方。在以上五方的项目管理中,他们的管理内容都可以概括为:三控制(进度、质量、费用)、三管理(安全环境、合同、信息)、一协调(各自的组织协调任务)。但各方在费用控制中有区别的:业主方是投资控制、总承包方是投资控制和成本控制、设计方是造价控制和成本控制、施工方和供货方是成本控制。

3.施工任务的3种主要委托模式:施工总承包、施工总承包管理、平行发包。掌握施工总承包管理的实质。

4.建设项目总承包的主要模式是为:B+D及EPC模式。掌握实质以及目的。

5.建设工程项目的组织。要求(1)掌握项目结构图,项目结构图和项目结构编码是编制其他编码的基础。用直线或线段连接。(2)掌握项目管理的组织结构:组织结构图反映一个组织系统中各组成部分(组成元素)之间的组织关系(指令关系)。常用的组织结构模式包括职能组织结构、线性组织结构和矩阵组织结构等。必须能够区分职能组织结构、线性组织结构和矩阵组织结构的特点(比如要知道线性结构指令源唯一,职能结构有多个指令源可能会出现矛盾指令,矩阵结构在每一个纵横交汇处有两个指令源,只用于大型组织系统)及使用范围。用单向箭线连接。(3)区分项目管理的工作任务分工表和管理职能分工表。(4)掌握项目管理的工作流程组织,工作流程组织的任务是定义工作的流程。工作流程图反映一个组织系统中各项工作之间的逻辑关系。(5)最后要掌握合同结构图,合同结构图反映业主方和项目各参与方之间,以及项目各参与方之间的合同关系值得注意的是:合同关系用双箭头表示。

6.建设工程项目策划包括:实施策划和决策策划两部分,重点掌握实施策划及其基本内容:项目目标的分析和再论证

7.区分项目管理规划和施工组织设计的区别与联系。

8.施工组织设计:(1)熟记施组的基本内容:工程概况,施工部署及施工方案,施工进度计划,施工平面图和主要技术经济指标。(2)施工组织设计的分类:施工组织总设计,单位工程施工组织设计和分部(分项)工程施工组织设计(或称分部(分项)工程作业设计)。(3)熟悉施工组织总设计的编制程序,其程序如下:收集和熟悉编制施工组织总设计所需的有关资料和图纸,进行项目特点和施工条件的调查研究;计算主要工种工程的工程量;确定施工的总体部署;拟订施工方案;编制施工总进度计划;编制资源需求量计划;编制施工准备工作计划;施工总平面图设计;计算主要技术经济指标。

9.要掌握项目动态控制(即PDCA)的基本原理和方法。动态控制方法是项目管理最基本的方法论。掌握动态控制的工作程序:(1)分解目标、确定目标控制的计划值并实施计划;(2)收集实施中的实际值,与计划值比较。如果有偏差调整、纠偏;(3)如有需要调整目标,然后回到第一步。掌握投资计划值和实际值的比较。特别要掌握组织措施、技术措施、经济措施、合同措施和管理措施的界定。

10.理解风险的概念、等级划分及建设项目风险的四种类型,同时要了解建设项目风险管理的内容包括:风险识别、风险评估、风险响应及风险控制。

11.掌握项目经理的工作性质、任务及责任。区分建造师是专业人士的名称,而项目经理是工作岗位的名称。项目经理是在企业法人的授权下行使管理权力,同时对项目施工负有全责。正确区分项目经理的权限和任务。

12.掌握监理的工作性质(高智能的有偿技术服务,在国际上归为咨询服务。同时,监理方的项目管理可以归为业主方的项目管理)。监理文件的编制以及审批程序,监理人员的权限。

第二章成本

1.要理解建筑安装工程费用虽然包括直接费、间接费、利润及税金,但是施工成本是指在施工过程中所发生的全部生产费用之和,即:直接成本和间接成本组成。

2.施工成本管理就是要在保证工期和质量满足要求的情况下,采取相应措施,把成本控制在计划范围内,并进一步寻求最大程度的成本节约。

3.按照PDCA循环的原则,施工成本管理的任务和环节主要包括:(1)施工成本预测;(2)施工成本计划;(3)施工成本控制;(4)施工成本核算;(5)施工成本分析;(6)施工成本考核。

5.施工成本管理的措施可以归纳的内容:(1)组织措施:组织有效地组织机构、合理配备人员、职责划分、建立相应制度。组织措施是最有效、最节约的措施;(2)技术措施:把握“多方案比选”的关键词以及引入“四新”;(3)经济措施:编制合理的资金使用计划以及激励机制;(4)合同措施:优化合同类型,完善合同条款,正确处理工程变更和索赔。

6.掌握施工成本计划的类型:竞争性成本计划(投标、签订合同阶段)、指导性成本计划(选派项目经理阶段)、实施性成本计划(项目准备实施阶段)。各成本计划编制所使用定额。

7.按照施工进度编制施工成本计划的方法,即直方图和S曲线。理解直方图、时间-成本累计曲线(S曲线)的编制方法。

8.掌握成本控制及成本分析。施工成本控制的步骤:比较;分析;预测;纠偏;检查。其中要知道:(1)分析是施工成本控工作的核心;(2)纠偏是施工成本控制中最具实质性的一步。

9.掌握赢得值(挣值)法:三个成本概念:(1)已完工作预算费用(BCWP):已完成工作量×预算单价;(2)计划工作预算费用(BCWS):计划工作量×预算单价;(3)已完工作实际费用(ACWP):已完成工作量×实际单价。四个计算指标:(1)费用偏差CV=已完工作预算费用(BCWP)-已完工作实际费用(ACWP)CV为负值,项目运行超出预算费用;CV为正值,项目运行节支。(2)进度偏差SV=已完工作预算费用(BCWP)-计划工作预算费用(BCWS)SV为负值,进度延误;SV为正值,进度提前。

(3)费用绩效指数(CPI)=已完工作预算费用(BCWP)/已完工作实际费用(ACWP)CPI<1时,表示超支;CPI>I时,表示节支。(4)进度绩效指数(SPI)=已完工作预算费用(BCWP)/计划;作预算费用(BCWS)SPI<1时,进度延误;SPI>1时,进度提前。费用(进度)偏差反映的是绝对偏差;费用(进度)绩效指数反映的是相对偏差。这部分要求能够分析偏差,还要能够看懂偏差分析曲线图,能够依据其分析各种偏差。

10.掌握三大核算的特点:会计核算、统计核算、业务核算。

11.成本分析基本方法:比较法、因素分析法、差额计算法、比率法。

12.成本分析综合方法:分部分项、月度(季度)、年度、竣工成本分析,以分部分项工程成本分析为重点。

第三章进度

1.要熟练掌握双代号网络计划的时间参数的计算:时间参数的计算可以遵照以下原则:最早开工与完工,从前向后加,当某工序有多个紧前工序的时候,选最大值;最晚开工与完工,从后往前减,当某工序有多个紧后工序时,选最小值;自由时差:紧后工序的(若有多个紧后工序,值)最早开工减去本工序最早完工;总时差:本工序的最晚开工减去最早开工。2.进度计划系统的组成。3.总进度计划的内容、进度计划论证的步骤。4.网络计划与横道图计划的评价。5.掌握建设工程项目管理有多种类型,代表不同利益方的项目管理都有进度控制的任务,其控制的目标和时间范畴是不相同的。同时,建设项目进度控制是一个动态的管理过程,它包括:进度目标分析和论证;进度计划的编制;进度计划的跟踪检查与调整。6.掌握建设工程项目进度控制的四大措施:(1)组织措施;(2)管理措施;(3)经济措施;(4)技术措施。第四章质量 1.质量管理与质量控制之间的关系。质量管理是确定质量方针的全部职能及工作内容,并对其工作效果进行评价和改进的一系列工作。质量控制是质量管理的一部分,质量控制致力于作业技术和管理活动。作业技术方法的正确选择和作业技术能力的充分发挥,即为质量控制的致力点。包含技术和管理两方面。2.熟练掌握PDCA循环的概念,方法。在长期的生产实践过程和理论研究中形成的PDCA循环,是确立质量管理和建立质量体系的基本原理。了解全面质量管理TQC,基本原理就是在强调企业或组织的最高管理者质量方针的指引下,实行全面、全过程和全员参与的质量管理。了解事前、事中、事后控制的途径和影响质量的因素(人、技术、管理、环境、社会)。3.了解建设工程项目质量控制体系的构成,掌握建设工程项目质量控制体系的建立。4.正确划分实施阶段的自控主体和监控主体。5.把质量控制的各项工作划分为事前、事中、和事后控制事项。6.掌握总分包之间的责任界定、施工组织设计的编制和审核程序,经监理工程师审核文件出现偏差后的责任界定。7.掌握施工过程质量验收内容。要知道检验批、分项由监理工程师组织验收,分部验收由总监理工程师组织验收,单位工程由业主组织验收。8.在工程质量统计方法中,1、掌握分层方法,了解分层法的基本原理,分层法的实际应用;

2、掌握因果分析图法;

3、排列图法;

4、直方图法。9.政府监督的职能和内容。要知道政府监督的是建设工程各行为主体的质量行为和监督检查工程实体。10.质量贯标:文件组成以及各文件的地位,区分认证注销、认证暂停、认证撤销的区别。

第二篇:C期末复习

任务一

重点难点分析:了解程序和程序设计语言,c语言的发展和特点,初步掌握c语言的构成和格式特点。

C程序的构成

(1)C 程序由函数构成,函数是C程序的基本单位。

每个C程序由一个或多个函数组成,其中每一个C程序都必须有,且只能有一个main函数。函数是C程序的基本单位。

(2)一个函数由函数首部和函数体两部分构成 函数首部包括函数类型、函数名、函数的参数说明等。例如:

int max(int x,int y)

函数体是函数首部下面用一对{ }括起来的部分。一般包括变量定义部分和语句执行部分。变量定义部分定义函数内部所用变量,语句执行部分规定函数所要执行的动作。

(3)不论main函数在整个程序中的位置如何,C 语言程序总是从 main函数开始执行的,主函数执行完毕,整个程序结束运行。

(4)书写格式自由,一行可以写多个语句,一个语句也可以写在多行上,但每条语句或数据定义的最后必须有一个分号“;”,作为语句的结束标志。

(5)可用“/*……*/”对 C 程序中的任何部分作注释。(6)预处理命令通常应放在源文件或源程序的最前面。(7)Visual C++6.0是集编辑、编译链接和执行于一体的软件。(8)C语言源文件的扩展名是.c。

任务二

本章重点:掌握变量的定义,掌握各种运算符的特点及表达式的正确引用以及各种数据类型之间的相互转换。本章难点:各种数据类型的存储形式、相互转换及各种表达式的正确引用 1数据类型

C语言中提供了丰富的数据类型,其中整型、实型和字符型是基本数据类型,通过基本数据类型可再构造其他更复杂的数据类型。1.1 标识符

标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。

C语言规定标识符只能由字母、数字、下划线三种字符组成,并且第一个字符必须是字母或下划线,同时C语言严格区分大小写。标识符分三类:关键字、预定义符和用户标识符 1.2 变量

注意:变量名、变量值、变量存储空间(变量内存单元)三者的区别与关系 1.变量的定义

变量必须先定义再使用。

【格式】:数据类型 变量名列表; 2.变量的赋值

即将某一数据存入到变量的内存单元中。数据称为变量值。1.3 常量

常量分为:直接常量和符号常量 1.直接常量

直接在程序中使用的常量,根据字面意义可进行区分。2.符号常量

【定义格式】#define 符号常量标示符 常量值

例:#define PI 3.14

注意:符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。

使用符号常量的好处是:

  含义清楚;

能做到“一改全改”。

2.整型数据 2.1 整型常量

C语言中,整型常量用来表示数学中的整数,可以用十进制、八进制或十六进制的形式表示,但没有二进制表示形式。2.2 整型变量 1.分类

归纳起来共6类(注意分配的字节数),即:

有符号基本整型 [singned] int

有符号短整型 [singned] short [int]

有符号长整型 [singned] long [int]

无符号基本整型 [unsigned] int

无符号短整型 [unsigned] short [int]

无符号长整型 [unsigned] long [int] 2.整型数据的存放形式

C语言规定一个有符号整数在内存中是以补码形式存放的。3.整型数据的溢出

在应用中根据实际情况来选择数据类型,否则不能正确表达。3实型数据 3.1 实型常量

C语言中,实型常量用来表示带有小数点的实数,有两种表示形式:(1)十进制小数形式:如,4.6、-1.23等

(2)指数形式:由尾数、字母e或E、指数三部分组成;如:3.25E2 3.2 实型变量

1.分类:单精度(float)、双精度(double)、长双精度(long double)2.实型数据的舍入误差

使用时注意不同类型的有效位问题,避免出现舍入误差 4 字符型数据 4.1 字符型常量

C语言规定用单引号定界的单个字符,及单引号定界的转义字符是字符常量。

注意:转义字符仍然代表一个字符。4.2 字符型变量

一个字符型变量在内存占用一个字节的空间,存放的是该字符的ASCII码。4.3 字符型数据与整型数据的混合运算

因字符型数据内存存放的是该字符的ASCII码表现形式与整型数据相似,所以C规定两者可以混合运算。4.4 字符串常量

C语言中用双引号括起来的多个字符。

C语言规定:存放字符串时,为其分配的存储空间比其实际字符个数多1,用于存放串结束标志字符„‟。所以:„a‟在内存中占1个字节;”a”在内存中占2个字节。5运算符和表达式

掌握:各种运算符的功能、对运算对象的要求、优先级别和结合性 5.1 基本算术运算和表达式 1.基本算术运算符

包括: +(加)、-(减)、*(乘)、/(除)、%(求余)+(正号)、-(负号)

注意:(1)/ :参与运算的两个运算对象如果都是整数,则结果取整,例:5/2 的值是2 如果参与运算的运算对象中有实型数据,则结果为实型,例5.0/2的值是2.(2)% :要求参与运算的两个运算对象必须是整型

2.算术表达式:运算对象通过运算符连接起来的式子成为表达式,表达式值的含义。3.运算符的优先级:(详见教材附录)

由高到底依次是:(+、-)正负号运算同级、%、(/、*)同级、(+、-)同级 5.2 自增、自减运算符

1.++、--是单目运算,只能对变量进行自增1或自减1的运算

2.注意++、--作为前缀(先变后用)或后缀(先用后变)的区别 3.其结合性是右结合性 5.3 强制类型转换

【格式】(类型名)(表达式)注意表达式左右括号的作用

【功能】将表达式的值强制转换成前面括号中规定的类型

例:(float)(5/2)的值是2.0

(float)5/2 的值是2.5

任务三

本章重点:掌握C语言常用的输入/输出函数以及顺序结构程序设计的一般方法。1.顺序结构程序概述

顺序结构程序是指程序中的语句完全按照它们的排列次序执行。一般由四个部分组成:

1.定义变量部分;

2.已知变量赋值或输入部分;

3.未知变量求值部分;

4.输出结果部分。

2.顺序结构程序的编写方法,与求解物理题很相似。

1.变量相当于物理量,有几个物理量就定义几个变量。并明确哪些变量是已知的,哪些变量是未知的。

2.给出已知变量的值。若已知变量有明确的值,则用赋值语句给出;否则用输入语句获得。

3.根据已知变量与未知变量的关系,用赋值语句求得未知变量的值。4.输出求得的未知变量的值。

3.C语句的分类

1.赋值语句

赋值语句是在赋值表达式加上分号构成的表达式语句。其一般形式为:变量=表达式;,功能是把表达式的值赋给变量。

  赋值语句拓展之后的一般形式为:变量=变量=…=表达式。

在变量说明中给变量赋初值和赋值语句有些不同,给变量赋初值是变量说明的一部分,在编译的时候执

行,赋初值后的变量与其后的其他同类型变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。

(2)复合语句

把多个语句用“{}”括起来组成一个语句称复合语句。在程序中应把复合语句看成是单条语句。

1.空语句

4.数据的输入输出

C语言本身不提供输入输出语句,输入输出语句是由某些库函数实现。

1.数据的输出

 单字符输入函数putchar

1.一般形式:putchar(字符表达式)。

2.所在头文件:stdio.h.3.功能:向终端输出一个字符(即可以是可显示的字符,又可以是控制字符或其他转义字符)。

 格式输入函数printf

1.格式:printf(格式控制,输出项列表);,输出项列表可以不需要。

2.所在头文件:stdio.h.3.功能:按照用户指定的格式向系统隐含的输出设备输出若干个任意类型的数据。

4.数据的输入

 单字符输入函数getchar

1.一般形式:getchar()。

2.所在头文件:stdio.h.3.功能:从系统隐含的输入设备输入一个字符,只能接收一个输入,如果有多个输入,只有第一个有效。getchar的返回值为输入的字符。

 格式输入函数scanf

1.格式:scanf(格式控制,地址项列表)。

2.所在头文件:stdio.h.功能:按格式控制所指的格式从标准输入设备输入数据并赋给指定的变量。

任务四 本章重点:掌握关系表达式、逻辑表达式的用法,if语句、switch语句的基本用法和语法格式,各种数据类型之间的相互转化,以及选择结构程序设计的基本方法。4.1关系表达式与逻辑表达式

1、C语言中的关系运算符

①<(小于)②<=(小于或等于)③>(大于)④>=(大于或等于)⑤==(等于)⑥!=(不等于)

2、关系表达式和关系表达式的值

由关系运算符组成的表达式称为关系表达式。关系表达式的值是一个逻辑值,即“真”或“假”。在C语言中,以1代表“真”。以0代表“假”。

3、C语言中的逻辑运算符

①&&(逻辑“与”)②||(逻辑“或”)③!(逻辑“非”)

4、逻辑表达式和逻辑表达式的值

由逻辑运算符和运算对象组成的表达式称为逻辑表达式。逻辑表示式的运算结果只有两种:1(“真”)或0(“假”)。应该注意,在判断一个量是否为“真”时,却是以非0代表“真”,以0代表“假”。4.2 if语句

1、含else子句的if语句 语句形式:

if(表达式)语句

1else 语句2 执行过程:

先计算if后面圆括号中的表达式的值,如果表达式的值为非零,执行if子句,然后跳过else子句,去执行if语句后的下

一个语句;如果表达式的值为零,跳过if子句,去执行else子句,接着去执行if语句后的下一个语句。2、不含else子句的if语句 语句形式: if(表达式)语句 执行过程:

先计算if后面圆括号中的表达式的值,如果表达式的值为非零(“真”),则执行其后的if子句,然后执行if语句后的下一个语句;如果表达式的值为零(“假”),则跳过if子句,直接执行if语句后的下一个语句。

3、嵌套的if语句

if子句和else子句中可以是任意合法的C语句,当然也可以是if语句,通常称此为嵌套的if语句。内嵌的if语句既可以嵌套在if子句中,也可以嵌套在else子句中。

在书写嵌套的if语句时,为了提高程序的可读性尽量按层缩进的书写格式来写自己的程序。

值得注意的是在执行嵌套的if语句的过程中,要特别注意if和else的匹配问题,else要与其上离它最近的未匹配的if来匹配。

4.3混合运算与强制类型转换

整型、实型、字符型数据间可以混合运算,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。

不同类型的数据进行运算时,可以利用强制类型转换运算符将一个表达式转换成所需类型。其一般形式为:(类型名)(表达式)4.4switch语句

switch语句的一般形式:

switch(表达式)

{case常量表达式1:语句

1case常量表达式2:语句2 ┇

case常量表达式n:语句n

default:语句n+1 } 执行过程:

当执行switch语句时,首先计算紧跟其后的括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号,如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到switch语句体结束。如果没有与该值相等的标号,并且存在default标号,则从default标号后的语句开始执行,直到switch语句体结束。如果没有与该值相等的标号,且不存在default标号,则跳过switch语句体,什么也不做。4.5拓展:条件表达式

1、条件表达式

形式: 表达式1? 表达式2: 表达式3

由条件表达式组成的赋值语句事实上就是一个if-else语句的简写。因此,若在if-else语句中,当表达式为“真”或“假”时,都只执行一个赋值语句,且给同一个变量赋值时,均可以用简单的条件表达式来处理。

任务五

本章重点:

深入掌握各种循环语句的要点和使用方法。

深入掌握break和continue语句在循环语句中的作用。

能够灵活地运用各种循环语句进行综合程序设计 基本知识点

循环语句是指在满足指定的条件时,重复执行某个语句。重复执行的语句既可以是单个语句,也可以是复合语句。循环语句有while、do-while 和for等几种类型 1.while循环

语句一般格式

while(表达式)循环体语句

注意:先判断循环条件再执行循环,如果循环条件不满足,循环体可能一次都不执行。2.do while循环

语句一般格式 do 循环体语句 while(表达式);

注意:先执行循环体后判断循环条件,如果循环条件不满足,循环体至少执行一次。3.for循环 语句一般格式

for(表达式1;表达式2;表达式3)语句 注意:

(1)三个表达式执行得先后顺序,三个表达式的书写格式,中间用 ; 间隔。

(2)循环体有多句,用复合语句描述。4.break语句与continue语句

注意:⑴break终止本层循环,跳出循环体。

⑵continue跳过本次循环体下面的语句,进入下一次循环。5.三种循环语句的比较

(1)for和while语句先判断循环条件后执行循环体,do-while语句先执行循环体后再判断循环条件。

(2)while和do-while语句的条件表达式只有一个,for语句有3个。

(3)while、do-while、for可以相互替换使用。

(4)while语句多用于不需要赋初值的或者循环次数不确定的情况。for语句多用于要赋初值或者循环次数固定的情况。do-while语句多用于至少要执行一次的循环控制。

(5)循环语句可以嵌套,循环可以并列,但不能交叉。

本章学习难点

1.注意循环中变量的初始化 2.注意书写错误导致的死循环

任务六

本章重点、难点:

1.C语言不允许对数组的大小做动态定义,即数组的大小不依赖于程序运行过程中变量的值。

2.数组元素的下标:C语言中数组元素下标的下限是固定的,总是为0;程序在执行过程中并不自动检验数组元素的下标是否越界。

3.数组在内存中的存放形式

当程序中定义了数组之后,系统将为数组在内存中分配一段连续的存储空间来存储数组元素。

对于一维数组来说,数组元素以下标从小到大的顺序依次存放于内存中。对于二维数组来说,逻辑上可以把它们看成是一个矩阵结构,数组元素在内存中的排列是按照行优先原则。

数组名记录了数组在内存中的首地址,其值不能改变。除字符数组外,不能直接使用数组名对数组进行整体的输入或输出。

数组:由若干类型相同的数据按一定顺序存储所形成的有序集合。用某个名字标识这个集合,这个名字称为数组名。构成数组的每个数据项称为数组的元素,同一数组中的元素必须具有相同的数据类型。

6.1 一维数组的定义和引用 6.1.1 一维数组的定义 定义一维数组的一般形式:

数据类型说明符 数组名[常量表达式];

6.1.2 一维数组元素的引用

数组元素是组成数组的基本单元。数组元素也是一种变量,其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。

数组元素的一般形式为:

数组名[下标] 6.1.3 一维数组的初始化 初始化的一般形式为:

类型说明符 数组名[常量表达式]={值,值……值}; 其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。C语言对数组的初始化有以下几点规定:

1.可以只给部分元素初始化。

当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:

int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

1.只能给元素逐个赋值,不能给数组整体赋值。

例如给十个元素全部赋1值,只能写为:

int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:

int a[10]=1;

1.如给全部元素赋值,则在数组说明中,可以不给出数组长度。

例如:

int a[5]={1,2,3,4,5};可写为:

int a[]={1,2,3,4,5};6.2 二维数组 6.2.1 二维数组的定义 二维数组定义的一般形式

数据类型说明符 数组名[常量表达式1][常量表达式2];

其中“常量表达式1”表示二维数组的行数,“常量表达式2”表示二维数组的列数。6.2.2 二维数组元素的引用

二维数组的元素也称为双下标变量,其表示的形式为:

数组名[下标][下标]

其中下标应为整型常量或整型表达式。6.2.3 二维数组的初始化

给二维数组的初始化主要有以下几种方式。1.分行给二维数组赋初值 例如:

int a[2][3]={{1,2,3},{4,5,6}};

2.按数组元素在内存中排列的顺序对各元素赋初值 例如:

int a[2][3]={1,2,3,4,5,6};3.给部分元素赋初值 例如:

int a[2][3]={{1},{4}};

4.如果对全部元素都赋初值,则定义数组时行长度可以省略,但列的长度不能省。例如:

int a[ ][3]={1,2,3,4,5,6};6.3 字符数组与字符串 6.3.1 关于字符串

C语言规定:字符串的末尾必须有 '' 字符,即 '' 字符为字符串结束标志。'' 是一个转义字符,它的ASCII码值为0。一个字符数组中可以存放若干个字符。字符数组除了可以存放字符型数据外还可以存放字符串。6.3.2 字符数组的定义

一般形式:char 数组名[数组长度] 6.3.3 字符数组的初始化 1.用字符常量赋初值 例如:

char c[10]={'I', ' ','a','m', ' ','h','a','p','p','y'};

则c[0]= 'I',…,c[9]= 'y'。c数组中存放的是10个字符型数据(包括空格字符)。

需要注意:当所赋初值的个数超过数组的长度时系统报错;当所赋初值的个数小于数组的长度时,剩余的元素系统自动赋予'',此时,可以将该数组看做是一个存放字符串的数组;对静态字符数组未被赋值的元素系统自动将其赋值为''。

2.用字符串常量赋初值

C语言中,字符数组最常见的用法是用来处理字符串。用字符串常量来初始化字符数组主要有以下两种方法:

char str[10]= {“a string”};或char str[10]= “a string”;

需要注意:当用字符串常量来初始化字符数组时,数组的长度至少要比字符串中的字符个数多1,所多出的一个元素用来存放字符串的结束标志''。例如要存放字符串”Hello”,则需要将字符数组的长度至少设为6。当然也可以使用二维数组来存放字符串,例如:

char a[3][10]={“china”,“Japan”,“USA”};

表明a数组有三行,每行存放一个字符串。注意:此时的花括号不能省略。3.初始化时长度的省略

在给数组初始化时,也可以省略数组的长度,系统自动根据字符个数计算出数组的长度。例如:

char s[ ]= “Input The Password”;

此时由于s数组中存放的是一个字符串,而字符串中隐含有结束标记'',所以系统自动确认s数组长度为18。再例如:

char ch[ ]={ 's', 't', 'r', 'i', 'n', 'g'};

此时ch数组长度为6。6.3.4字符数组的输入输出 1. 字符数组的输出

对字符数组,其输出控制字符有两种“%c”和“%s”。%c 逐个字符输出字符;%s一次输出整个字符串。2.字符数组的输入

字符数组的输入,如果使用scanf函数,其输入格式控制字符可以有两种形式,即:“%c”和“%s”。%c 逐个字符输入;%s一次输入整个字符串。6.3.5 字符串处理函数

C系统提供的字符串处理函数一般放string.h头文件中,所以若程序中调用字符串处理函数时,应在程序的开始应该写#include “string.h” 预处理命令。1.字符串输出函数puts()函数原型:puts(str)

功能:输出一个字符串,输出时将 '' 置换成 'n',因此,输出字符串后自动换行。2.字符串输入函数gets()函数原型:gets(str)功能:从键盘接受一个字符串直到回车键为止,将接受的字符串存入str数组中。3.字符串连接函数 strcat()函数原型:strcat(str1,str2)

功能:连接两个字符串,把str2中的字符串连接到str1字符串的后面,结果放在str1数组中。注意:字符数组str1必须足够大,以便能容纳连接后的新字符串。4.字符串复制函数 strcpy()函数原型:strcpy(str1,str2)

功能:将str2中的字符串复制到str1数组中。注意:字符数组str1必须足够大,以便能容纳符串str2的内容。5.字符串比较函数 strcmp()函数原型:strcmp(str1,str2)

功能:将str1和str2中的两个字符串自左向右按照各字符的ASCII码值逐对进行比较,直到出现不同的字符或遇到 '' 为止。

6.求字符串长度函数 strlen()调用格式:strlen(str)

功能:测试字符串长度。函数值返回值是str中不包括 ''的字符个数。说明:str可以是存放字符串的字符数组名或字符串常量。

任务七

本章重点:用户自定义函数的定义、调用、声明及返回;函数调用时的参数传递;函数的递归调用;变量作用域与存储类别。

本章难点:函数递归调用、变量存储类别。7.1 库函数

库函数是由C语言编译系统预先定义好的函数,用户可直接调用。

使用库函数的注意事项: 1. 熟知库函数的功能 2. 合理设置库函数的参数 3. 注意返回值的使用

4. 程序开头应用#include包含与该库函数相关的头文件(参见教材附录)7.2 用户函数的定义与调用

1.函数定义的一般形式

【格式】 类型标识符 函数名(形式参数表)/*形式参数可以没有,称为无参函数*/

{

函数声明部分;

函数语句部分;

}

一个函数即对应一定功能,如果程序中需要执行函数所完成的功能则需对函数进行调用,且可进行多次调用。若一个函数A调用函数B,则称函数A为主调函数,函数B为被调函数。

2.函数的调用

(1)【格式】函数名(实参列表)(2)调用方式:

独立函数语句:函数调用单独作为一个语句使用。

函数表达式:函数调用出现在一个表达式中,要求函数必须返回一个确定值。函数参数:函数调用作为另一个函数的实参,要求函数必须返回一个确定值。7.3 函数的参数和返回值

1.函数参数

实参:是调用被调函数时所使用的参数。

形参:是定义被调函数时所使用的参数。

2.实参与形参间的关系

(1)实参可以是常量、变量或表达式;形参必须是变量。

(2)实参与形参的类型、个数应一致,且一一对应。

(3)函数调用时,将实参值对应传递给形参,而形参有任何变化不会反传实参。即值的单向传递。

3.函数的返回值

函数的返回值是函数调用的结果,通过return 语句带回主调函数。函数类型决定函数返回值的类型,如果没有返回值则函数类型应定义为空类型(viod)。函数返回时总是返回到主调函数的调用处。7.4 函数原型

C语言规定在主调函数中要对被调函数进行声明,即函数原型。

【格式】函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,……);

或 函数类型 函数名(参数类型1,参数类型2,……);

但以下三种情况允许在主调函数中缺省对被调函数的声明:(1)被调函数位置在主调函数的前面;(2)被调函数的函数类型为int或char;(3)函数声明在所有函数之前; 7.5 函数的递归调用

一个函数直接或间接地调用它本身,称此函数为递归函数,递归函数的调用称为递归调用。递归函数在设置时应有一个明确的结束递归的条件。7.6 变量的作用域和生存期

7.6.1.变量的作用域

1.局部变量:函数内部定义的变量,称为局部变量。仅在函数范围内有效。

2.全局变量:函数外部定义的变量,称为全局变量。从定义处开始,到程序结束有效。

注意:如果在函数中局部变量与全局变量重名则屏蔽全局变量,让局部变量起作用。

7.6.2 变量的存储类别

C语言程序中的变量,按照其存储方式的不同决定了其不同的生存期。1.自动局部变量与静态局部变量的区别:

(1)分配存储空间不同:自动局变分配在动态存储区中,函数调用结束释放空间;静态局变分配在静态存储区中,函数调用结束空间不释放。

(2)函数中自动局变初始化,则在每次调用函数时都重新分配空间且初始化;而静态局变初始化仅在程序编译时初始化一次,下次调用函数时保存上次调用结束时的值。2.全局变量的存储类别(1)用extern声明全局变量

扩展全局变量的作用域。

(2)用static声明全局变量

限定全局变量的作用域。

任务八

重点和难点分析:本章介绍了号称“C语言精华”的重要概念——指针及其使用技术。指针是C程序中概念最复杂、使用最灵活而初学者最容易出错的而解决难点的关键在于学生切实理解各种形式指针的概念及其区别。1. 变量的指针和指向变量的指针变量

就是变量的地址和用来存放变量地址的地址变量。1)指针变量的定义

形式:类型标识符 *标识符 如:int *pointer;2)指针变量的引用 两个有关的运算符:

& 取地址运算符 &a 就代表变量a的地址

* 指针运算符

*a 就代表变量a的值 2. 数组的指针和指向数组的指针变量

数组的指针指数组的起始地址,数组元素的指针指数组元素的地址。1)指向数组元素的指针变量的定义与赋值

定义和指向变量的指针变量定义相同,c规定数组名代表数组的首地址,即第一个数组元素地址。2)通过指针引用数组元素

我们通常引用数组元素的形式是a[i],如果用指针可以这样引用,*(a+i),或定义一个指针变量p,将数组a的首地址赋给p,p=a;然后用*(p+i)引用。3)数组名作函数参数

形参数组和实参数组之间并不是值传递,而是共用同一段地址,所以在函数调用过程中如果形参的值发生变化,则实参的值也跟着变化。

3. 字符串的指针和指向字符串的指针变量 1)字符串的表示形式

c中字符串有两种表示形式:一种是数组:char string[]=“I love c!”;

一种是字符指针 : char *str=“I love c!”;2)字符串指针作函数参数

实际上字符串指针就是数组的首地址。3)字符指针变量与字符数组的区别

① 字符数组由若干元素组成,每个元素存放一个字符,而字符指针变量只存放字符串的首地址,不是整个字符串

② 对数组初始化要用static,对指针变量不用。

③ 对字符数组赋值,只能对各个元素赋值,不能象下面这样:

char str[14];str=“I love c!”;

对指针变量可以,char *str;str=“I love c!”;④ 数组在定义和编译时分配内存单元,而指针变量定义后最好将其初始化,否则指针变量的值会指向一个不确定的内存段,将会破坏程序。

⑤ 指针变量的值是可以改变的,而字符数组名所代表的字符串首地址却是不能改变的。4. 函数的指针和指向函数的指针变量

一个函数在编译时被分配一个入口地址,这个入口地址就称为函数的指针。函数名代表函数的入口地址,这一点和数组一样。我们可以用一个指针变量来存放这个入口地址,然后通过该指针变量调用函数。5. 返回指针值的函数

一个函数可以带回一个整型值、字符值、实型值等,函数还可以带回一个指针型的数据,即地址。这种函数的定义形式如下:

类型标识符 *函数名(参数表)如:int *a(x,y)返回一个指向整型的指针 6. 指针数组

指针数组无疑就是数组元素为指针,定义形式为:类型标识 *数组名[数组长度] 如:int *p[4],指针数组多用于存放若干个字符串的首地址。7定义结构体类型与结构体变量 7.1 结构体类型的定义

了解结构体与数组的区别,同一数组中各元素的类型是一致的,而同一结构体 成 以不同,且需要根据实际情况定义结构体类型,是一种构造类型。

结构体类型定义格式:

sturct 结构体名

{ 数据类型 成员名1;

数据类型 成员名2;

……

数据类型 成员名n;

};

结构体类型是一种构造类型,系统并不为其分配存储单元。

7.2 结构体类型变量的定义

定义了结构体类型后可以再定义具有该类型的变量,此时系统才为结构体变量分配存储单 存储单元数是各成员所占空间之和。定义结构体变量一般有三种形式:(1)先定义结构体类型,再定义该类型的变量 struct 结构体名

{成员表列

};

struct 结构体名 变量名表列;

(2)定义结构体类型的同时定义结构体变量。

struct 结构体名

{

成员表列

}变量名表列;

(3)直接定义结构体变量。

员的类型可元,分配的 struct

{ 成员表列 }变量名表列;7.2 结构体变量的引用和初始化 7.2.1 结构体变量的引用

引用形式:结构体变量名.成员名

注意:除同类型结构体变量间可整体赋值外,其余情况需逐一引用结构体变量的各 个 成员;结构体类型可嵌套定义,则只能引用最低级的成员。

7.2.2 结构体变量的初始化

定义变量时赋初值,用大括号将各成员值括起来,各成员值之间用逗号隔开。7.3 结构体指针

指向结构体变量的指针

定义一个结构体变量stu和一个同类型的指针变量p,且p=&stu,则可以通过p 来 访问结构体中的各个成员。

一般形式:(*结构体指针变量).成员名 或 结构体指针变量->成员

任务九

本章的重点:C文件的概念,文件类型指针,文件的打开和关闭,文件的读写和定位技术。难点是:C文件的概念,常用读写函数。

1.文件的相关概念

所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。文件名由两部份组成即主名和扩展名。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。2.文件指针

文件的主要操作有两种即读文件(从文件中读取数据)和写文件(往文件中存储数据)。在C语言中对文件进行各种操作通过文件指针来实现。定义说明文件指针的一般形式为:

FILE *指针变量标识符; 3.文件的打开与关闭

文件在进行读写操作之前要先打开,使用完毕要关闭。在C语言中,文件操作都是由库函数来完成的。在本章内将介绍主要的文件操作函数。① 文件的打开(fopen函数)

fopen函数用来打开一个文件,其调用的一般形式为: FILE*fopen(char *filename,char *mode);

说明:filename是被打开文件的文件名,应包含文件的路径; ②文件关闭函数(fclose函数)

文件一旦使用完毕,应用关闭文件函数把文件关闭,以避免文件的数据丢失等错误。

fclose函数调用的一般形式是:

fclose(FILE *fp); 4.文件的读写 对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数,下面将详细介绍。使用这些函数都要求包含头文件stdio.h。字符读写函数fgetc和fputc

字符读写函数是以字符(字节)为单位的读写函数。每次可从文件读出或向文件写入一个字符。① 读字符函数fgetc

fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:

char ch=fgetc(FILE *fp);

例如:

ch=fgetc(fp);②写字符函数fputc

fputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:

fputc(char ch,FILE *fp);

例如:

fputc(ch,fp);

5.字符串读写函数fgets和fputs ①读字符串函数fgets

函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:

fgets(char *str,int n,FILE *p);

其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符,在读入的最后一个字符后加上串结束标志''。

②写字符串函数fputs

fputs函数的功能是向指定的文件写入一个字符串,其调用形式为:

fputs(char *str,FILE *fp);6.格式化读写函数fscanf和fprintf

fscanf函数,fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的调用格式为:

fscanf(FILE *fp,char *format,args….);fprintf(FILE *fp,char *format,args….);7.数据块读写函数fread和fwtrite

C语言还提供了用于整块数据的读写函数。可用来读写一组数据,如一个数组,一个结构变量的值等。

读数据块函数调用的一般形式为:

fread(void *buffer,unsigned size,unsigned count,FILE*fp);

写数据块函数调用的一般形式为:

fwrite(void *buffer,unsigned size,unsigned count,FILE*fp);

说明:

Buffer: 是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函数 中,它表示存放输出数据的首地址。

size : 表示数据块的字节数。count : 表示要读写的数据块块数。

fp : 表示文件指针。8.文件的读写定位 ①fseek函数

fseek函数用来移动文件内部位置指针,其调用形式为:

fseek(FILE *fp,long offset,int base);

说明:

fp:指向被移动的文件。

offset:“位移量”表示移动的字节数,要求位移量是long型数据。

base: “起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。②rewind函数

rewind函数称为文件复位函数,调用形式为:

rewind(FILE *fp);

例如:rewind(fp);

它的功能是把当前文件指针fp重新移到文件首,下一次文件读写将从文件首开始。③ftell函数

ftell函数用来求文件指针当前位置,调用形式为:

ftell(FILE *fp);

例如:long offset=ftell(fp);

它的功能是返回fp所指向的文件指针相对于文件首的位移量,如果出错则返回-1L。该函数的返回值为长整型。9.文件常用检测函数 ①文件结束检测函数feof

函数调用格式:feof(FILE *fp);

功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。②文件读写出错检测函数ferror

函数调用格式: ferror(FILE *fp);

功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示未出错,否则表示有错。③文件出错结束标志清零函数clearerr

函数调用格式:clearerr(FILE *fp);

功能:本函数用于清除出错标志和文件结束标志,使它们为0值。

第三篇:成人高考政治复习C

十五、简要说明毛主席思想科学概念的涵义?

答:毛主席思想这一科学概念包括三个方面的基本涵义:第一,毛主席思想是马克思列宁主义在中国的运用和发展,是马克思列宁主义普遍原理与中国实际相结合的产物。第二,毛主席思想是被实践证明了的关于中国革命和建设的正确的理论原则和经验总结,是一个完整的科学体系。第三,毛主席思想是中国共产党集体智慧的结晶,是全党的宝贵精神财富。

十六、简要说明毛主席思想的主要内容?

答:(1)毛主席思想是马列主义在中国的运用和发展,是被实践证明了的关于中国革命和建设的正确的理论原则和经验总结,是中国共产党集体智慧的结晶。

(2)毛主席思想的主要内容有:关于新民主主义革命;关于社会主义革命和社会主义建设;关于革命军队的建设和军事战略;关于政策和策略;关于政治工作和文化工作;关于党的建设等。

(3)毛主席思想活的灵魂包括实事求是、群众路线、独立自主三个基本方面。

十七、怎样理解新民主主义革命是新式的资产阶级革命?

答:毛主席指出:中国资产阶级民主主义革命,已不是旧式的一般的资产阶级民主主义革命,这种革命已经过时了,而是新式的特殊的资产阶级民主主义革命,这种革命我们称之为新民主主义革命,它是指无产阶级领导的、人民大众的、反对帝国主义、封建主义和官僚资本主义的革命。这是因为:

第一,新民主主义革命是无产阶级领导的。新旧民主主义革命的根本区别在于领导阶级的不同。五四运动以前,中国资产阶级民主革命的政治指导者是中国的资产阶级和小资产阶级及其知识分子。这时中国无产阶级是作为资产阶级的追随者参加革命的。五四运动以后,中国民主革命的政治指导者,已经不属于中国的资产阶级,而是属于无产阶级了。中国无产阶级由于自己的成长和十月革命的影响,已经迅速地成长为一个独立的政治力量,并登上了历史舞台,随后组建了自己的政党,提出了彻底的反帝反封建的纲领,成为中国民主革命的领导者。

第二,新民主主义革命发生在十月革命之后,属于世界无产阶级革命的范畴。毛主席认为,由于第一次世界大战和十月革命的胜利,改变了整个世界历史的方向,开始了无产阶级革命的新时期。在这样的时代,任何殖民地半殖民地国家反对帝国主义的革命,就已经属于世界无产阶级社会主义革命的范畴。

第三,新民主主义革命的指导思想是马克思主义。在五四运动前,中国的革命、改良或其他形式的反封建反侵略的斗争的指导思想均是西方的资产阶级民主主义思想。事实证明,西方资产阶级民主主义思想指导不了中国人民的革命斗争获得胜利。“十月革命一声炮响,给中国 送来了马克思主义。”中国人民找到了新的指导思想。马克思主义是无产阶级的世界观和方法论,以马克思主义作为思想理论武器是新民主主义革命的一个重要特点。

第四,新民主主义革命的前途是经过新民主主义,过渡到社会主义。一般地说,资产阶级民主革命的前途应是,建立资产阶级专政的资本主义制度;但是,由于中华民族资产阶级几次失掉了发展资本主义的机遇,所以,新民主主义革命胜利后,不走资本主义道路,但也不是立即建立社会主义,而是经过新民主主义逐渐过渡到社会主义。

十八、中国革命为什么必须分两步走?两步走之间的关系是什么?

答:毛主席根据中国半殖民地半封建的社会性质,指出中国革命必须分两步走。第一步,改变半殖民地半封建的社会形态,使中国成为一个独立的新民主主义社会;第二步,使革命向前发展,建立一个社会主义社会,这两者之间的关系是一个上篇和下篇的关系。民主革命是社会主义革命的必要准备,社会主义革命是民主革命的必然趋势,在这二者的关系上,要反对两种错误倾向:一是陈独秀的“二次革命论”,即把中国革命进程中的两个紧密联系的阶段割裂开来,只看到两者的区别,没看到两者的联系,要在两个阶段之间硬插一个资产阶级专政和发展资本主义的阶段;二是王明为代表的“左”倾教条主义,主张民主革命和社会主义革命“毕其功于一役”,混淆了民主革命和社会主义革命的界限,企图把两种不同性质的革命阶段并作一步走,一举取得社会主义革命的胜利。这种观点只看到两者之间的联系,而忽视了两者之间的区别。“二次革命”论和“毕其功于一役”的观点,都违背了中国革命的发展规律。中国革命分两步走的思想,深刻揭示了中国革命的客观规律,揭示了中国革命的前途,为中国革命指明了方向,丰富和发展了马克思主义关于资产阶级民主革命的学说。

十九、简要说明中国新民主主义革命的三大法宝之间的相互关系?

答:中国新民主主义革命的三大法宝即统一战线,武装斗争和党的建设,统一战线和武装斗争,是战胜敌人的两个基本武器。统一战线是实行武装斗争的统一战线。而党的组织,则是掌握统一战线和武装斗争这两个武器以实行对敌冲锋陷阵的英勇战士。

(1)在半殖民地半封建的中国,革命的主要形式是中国共产党领导的武装斗争,党的建设是与武装斗争的开展密切联系的,没有武装斗争就没有党的一切,没有共产党就不可能有新型的人民军队,就不可能取得武装斗争的胜利。

(2)党的建设是在同资产阶级的复杂关系中进行的,而统一战线问题主要也是同中国资产阶级的关系问题。在统一战线中正确地处理了同资产阶级既联合又斗争的关系,党就发展和壮大,否则,则相反。

(3)统一战线是实行武装斗争的统一战线。统一战线必须以武装斗争为支柱,才能巩固和发展。

(4)只有把党建设好,使党的思想、政治路线正确,组织坚强有力,党才能正确地领导统一战线和武装斗争。

因此,统一战线,武装斗争,党的建设是有机地联系在一起,缺一不可的,正确地理解这三者及其关系就正确地理解了中国革命。

二十、红色政权能够存在和发展的原因和条件?

答:第一,中国是一个政治经济发展极不平衡的半殖民地半封建大国,这个基本国情,成为红色政权能够存在和发展的最根本原因;第二,良好的群众基础;第三,向前发展的革命形势;第四,有相当力量的正式红军存在;第五,共产党正确领导。

十一、“工农武装割据”的思想?

答:第一,土地革命是中国革命的基本内容,农民是民主革命的主力军,只有满足了农民的土地要求,才能最广泛地动员和组织广大农民群众参加武装斗争,巩固和扩大革命根据地;第二,武装斗争是中国民主革命的主要斗争形式,是进行土地革命,巩固和发展革命根据地的最有力的工具;第三,农村根据地是中国民主革命的战略基地,是开展土地革命,实行武装斗争的基础和依托。

二十二、走农村包围城市,武装夺取政权道路的必要性?

答:第一,中国是一个半殖民地半封建国家,外部没有民族独立而受帝国主义压迫,内部没有民主制度而受封建制度压迫,无产阶级及其政党无议会可以利用,没有组织工人罢工的合法权利,只能以武装的革命反对武装的反革命;第二,中国是一个经济落后的农业大国,农民占全国人口总数的80%以上,这就决定了农民是民主革命的主力军,中国的民主革命实质上是农民革命,武装斗争实质上是无产阶级领导的以农民为主题的革命斗争,“工农武装割据”是无产阶级领导的革命斗争的最高形式;第三,大革命失败后中国共产党人多次奋斗的结局也证明,革命在城市首先取得胜利的可能性已不存在,而反动统治相对薄弱的广大农村地区,正是实行“工农武装割据”的革命阵地和夺取城市、夺取全国政权的出发点。

十三、农村包围城市、武装夺取政权道路理论的意义?

答:(1)农村包围城市、武装夺取政权的道路是符合中国国情的中国革命正确的道路,只有沿着这条道路前进,革命才能顺利发展,取得胜利。

(2)农村包围城市、武装夺取政权的革命发展道路理论是以毛主席为代表的中国共产党人,坚持一切从实际出发,实事求是的原则,冲破教条主义的束缚,创造性地把马克思列宁主义普遍原理同中国革命实践相结合的产物,是马克思主义中国化的重要成果,是毛主席思想形成的重要标志。

(3)农村包围城市、武装夺取政权的革命发展道路理论,对马克思主义理论宝库做出了独创性的贡献,在世界共产主义运动历史上,为殖民地半殖民地国家的人民进行革命夺取政权树立了榜样。

(4)农村包围城市、武装夺取政权的革命发展道路的理论及其实现,自始至终贯穿的基本思想就是马克思列宁主义基本原理同中国革命实践相结合,走自己的路,这对于中国进行社会主义建设具有启迪意义。

二十四、人民民主专政理论的基本内容?

答:第一,论述了在中国建立人民民主专政的历史必然性;第二,科学地分析了各个阶级在人民民主专政国家政权中的地位及其相互地位;第三,论述了人民民主专政的本质特征;第四,论述了人民民主专政的职能和任务。人民民主专政的职能和任务,对外是防止帝国主义和各国反动派的颠覆和破坏,维护国家的独立和安全,维护世界和平;对内是镇压敌对势力的反抗,保护人民民主权利,组织和管理国家经济建设,发展社会生产力,促进中国由农业国向工业国、由新民主主义向社会主转变,并最终实现消灭一切阶级和一切国家的伟大目标。

十七、简述党在过度时期的总路线的内容及意义?

答:党在过渡时期的总路线是:“从中华人民共和国成立,到社会主义改造基本完成,这是一个过渡时期。党在这个过渡时期的总路线和总任务,是要在一个相当长的时期内,逐步实现国家的社会主义工业化,逐步实现国家对农业、对手工业和对资本主义:正商业的社会主义改造。”这条总路线体现了发展生产力和变革生产关系、解放生产力的有机统一,是一条社会主义建设和社会主义改造并举的路线。

党在过渡时期总路线的提出具有伟大的意义:第一,反映了中国人民要求走社会主义道路,迅速发展国民经济,尽快变农业国为工业国,摆脱贫困,消灭剥削的强烈愿望。第二,反映了中国由新民主主义向社会主义转变的历史必然。经过建国后的三年国民经济恢复时期的革命和建设实践,新中国的情况发生了一系列的重大变化,社会主义因素不断增加,提出了由新民主主义向社会主义转变的课题。过渡时期的总路线正是反映了这种历史必然性。第三,集中反映了以毛主席为代表的中国共产党人探索中国社会发展和开创中国社会主义道路的创造性贡献,是毛主席思想的重要内容。

二十八、中国社会注意建设道路的提出及指导方针?

答:正确认识社会注主义建设时期我国的基本国情;正确认识社会主义改造完成后国内主要矛盾和工作重心;以苏联为借鉴,走中国式工业化道路;调动一切积极因素,建设社会主义伟大国家。

二十九、简述邓小平理论形成的条件?

答:邓小平理论是在和平与发展成为时代主题,我国改革开放和现代化建设不断前进,在总结我国社会主义胜利和挫折的历史经验并借鉴其他社会主义国家兴衰成败历史经验的基础上,逐步形成和发展起来的,是马克思主义基本原理与当代中国实际和时代特征相结合的产物。

十、邓小平理论的形成经历了哪三个发展阶段?

答:邓小平理论大体上经历了三个发展阶段:

第一阶段是从1978年党的十一届三中全会到1982年党的十二大,邓小平理论初步形成。在党的十二大上,邓小平明确提出了“建设有中国特色社会主义”这一基本命题。

第二阶段是从1982年党的十二大到1987年党的十三大,在全国改革逐步展开的过程中,邓小平理论逐步展开并形成轮廓。十三大第一次提出了“建设有中国特色社会主义理论”这一概念,并从马克思主义哲学、政治经济学和科学社会主义等方面,系统地概括了建设有中国特色社会主义理论的主要观点。这一概括构成了邓小平理论的轮廓。

第三阶段是从1987年党的十三大到1992年邓小平南方谈话和党的十四大,邓小平理论走向成熟,形成理论体系。党的十四大以南方谈话为灵魂,对“邓小平平同志建设有中国特色社会主义理论”的主要内容作了新的科学概括,使之形成比较完整的科学体系。1997年9月,中共十五大把“邓小平理论”确定为党的指导思想并写入党章。1998年3月,全国人大九届二次会议正式把邓小平理论作为指导思想列入宪法

十二、社会主义初级阶段基本路线的主要内容及简明概括是什么?

答:(1)党在社会主义初级阶段的基本路线是:“领导和团结全国各族人民,以经济建设为中心,坚持四项基本原则,坚持改革开放,自力更生,艰苦创业,为把我国建设成为富强、民主、文明的社会主义现代化国家而奋斗。”

(2)“一个中心,两个基本点”是党在社会主义初级阶段的基本路线的简明概括。

(3)“一个中心,两个基本点”共同统一于建设有中国特色社会主义的伟大实践。经济建设是基本路线的核心和主体。我们必须把经济建设作为全党全国工作的中心。动摇了经济建设这个中心,就等于动摇了基本路线。坚持基本路线不动摇,关键是要坚持以经济建设为中心不动摇。改革开放为经济建设提供动力。四项基本原则是立国之本。四项基本原则还为经济建设和改革开放提供政治保证。

十三、简述实现经济增长方式有粗放型向集约型转变的重要意义?

答:(1)可以节省资金和资源的消耗,提高资金和资源的利用率,从而缓解我国经济发展同资源不足、资金严重短缺的矛盾。

(2)可以提高消费品的质量和档次,增加消费品的品种,适应社会需求结构变化的需要,更好地满足人民日益增长的物质文化需要。

(3)可以减少对资源的浪费,保护生态环境,有利于经济建设与资源、环境的相互协调,实现可持续发展。

(4)可以促进科技进步,优化产品结构,提高产品质量,降低生产成本,增强参与国际竞争的能力。

十四、简述社会保障制度的内涵和内容?

答:(1)社会保障,是指国家通过立法对国民收入进行分配和再分配,对社会成员特别是生活有特殊困难的人们的基本生活权利给予保障的社会安全制度。

(2)作为一种体系或一种制度,社会保障由社会救助、社会保险、社会福利和社会优抚等方面组成。第一,社会救助。是指国家和社会对遭受自然灾害、不幸事故和生活贫困者提供物质援助,它是社会保障的最低层次。第二,社会保险居于社会保障的核心地位,指对缴纳社会保险费的社会成员在暂时或永久丧失劳动能力以及遇到其他生活困难时,有权得到国家、社会和有关部门的帮助,主要有失业保险、养老保险、医疗保险等。第三,社会福利是社会保障的最高层次,是指国家和社会在居民住宅,公共卫生、环保、基础教育等领域,向全体公民提供的帮助和服务。第四,社会优抚是对特定阶层比如对军人或军烈属的优待和安置,它是一种带有褒扬、优待和抚恤性质的特殊保障制度 三

十一、简述马克思主义同中国实际相结合出现的两次历史性飞跃和产生的两大理论成果?

答:马克思主义同中国实际相结合的过程中,有两次历史性飞跃,产生了两大理论成果。第一次飞跃的理论成果是被实践证明了的关于中国革命和建设的正确的理论原则和经验总结,它的主要创立者是毛主席,我们党把它称为毛主席思想。党的七大把毛主席思想确立为党的指导思想。第二次飞跃的理论成果是建设有中国特色社会主义理论,它的主要创立者是邓小平,我们党把它称为邓小平理论。党的十五大郑重地把邓小平理论写到了自己的章程中,确立为党的指导思想。

十五、共产党领导的多党合作和政治协商制度有哪些鲜明特点?

答:中国共产党领导的多党合作和政治协商制度。是马克思主义政党理论和统一战线学说与我国具体实际相结合的产物。它既不同于西方的多党制。又不同于一党制。是我国政治制度的一大特点和优点。其鲜明特点主要有:

(1)中国共产党是执政党,各民主党派是与中国共产党通力合作的亲密友党,是参政党,不是在野党,更不是反对党。中国共产党与各民主党派合作的政治基础是坚持共产党的领导,坚持四项基本原则。

(2)各民主党派以人民政治协商会议的组织形式,参加国家政权,参与国家事务管理,参与国家大政方针和国家领导人选的协商,参与国家方针、政策、法律、法规的制定执行。

(3)中国共产党和各民主党派都必须以宪法为活动准则,各民主党派都享有宪法规定的政治自由、组织独立和法律亡的平等地位。

十六、什么叫依法治国?实行依法治国的重大意义是什么?

答:(1)依法治国,就是广大人民群众在党的领导下,依照宪法和法律的规定,通过各种途径和形式管理国家事务,管理经济文化事业,管理社会事务,保证国家各项工作都依法进行,逐步实现社会主义民主的制度化、法律化,使这种制度和法律不因领导人的改变而改变,不因领导人看法和注意力的改变而改变。

(2)依法治国,建设社会主义法制国家,是党领导人民治理国家的基本方略,具有重大意义。它是发展社会主义市场经济的客观需要,是社会主义文明进步的重要标志,是国家长治久安的重要保障。

十七、社会主义精神文明建设的指导思想什么?

答:社会主义精神文明建设的指导思想是:以马克思列宁主义、毛主席思想和邓小平理论为指导,坚持党的基本路线和基本方针,加强思想道德建设,发展教育科学文化,以科学的理论武装人,以正确的舆论引导人,以高尚的精神塑造人,以优秀的作品鼓舞人,培育有理想、有道德、有文化、有纪律的社会主义公民,提高全民族的思想道德素质和科学文化素质,团结和动员各族人民把我国建设成为富强、民主、文明的社会主义现代化国家。

十八、“一国两制”构想的基本内容是什么?

答:“一国两制”是“一个国家,两种制度”的简称。“一国两制”构想是邓小平理论的重要组成部分。其基本内容是:

(1)坚持“一个中国”。世界上只有一个中国,中国的中央政府在北京,在国际上代表中国的只能是中华人民共和国。

(2)实行“两种制度”。在统一的中华人民共和国内,作为国家主体的大陆地区坚持社会主义制度,台湾、香港、澳门则保持原有的资本主义制度和生活方式,两种制度长期共存。

(3)设置特别行政区,保证台湾、香港、澳门的高度自治和繁荣稳定。

(4)实行“-国两制”长期不变。这种不变,既是承诺,又有《基本法》作保障。

十九、“一国两制”构想的重大理论和实践意义是什么?

答:“一国两制”构想是邓小平运用辩证唯物主义和历史唯物主义,坚持实事求是而提出的,是邓小平理论的重要组成部分。它具有重要的理论意义和实践意义。

“一国两制”构想的理论意义主要是:第一,丰富和发展了马列主义的国家学说。在一个统一的主权国家内两种不同性质的社会制度可以长期并存;社会主义国家既可以为作为国家主体的社会主义经济基础服务,也允许和保护一定地区范围内存在的资本主义经济基础和上层建 筑;第二,赋予“和平共处”以新的涵义,把和平共处思想和原则创造性地运用于解决国内问题。

“一国两制”构想的实践意义主要是:第一,它是实现国家统一的最佳方案,符合整个中华民族的根本利益。它有利于推动祖国和平统一大业的实现,有利于大陆和港、澳、台地区经济的稳定和发展,有利于促进我国改革开放和现代化建设的顺利进行;第二,它为解决国际争端和遗留问题提供了新的思路和新的范例,是对世界和平与稳定的重大贡献。

十、社会主义时期民族问题的实质是什么?我国解决民族问题的基本原则、基本政策是什么?

答:(1)社会主义时期民族问题的实质,已经不是阶级矛盾和阶级斗争问题。而是各族劳动人民内部的矛盾,是各族人民的根本利益一致基础上的具体的内部矛盾;主要是由于历史遗留下来的各民族间经济文化等方面的事实上的不平等,在物质文化生活水平上还存在差别。

(2)我国解决民族问题的基本原则是:坚持民族平等、民族团结和各民族共同繁荣。坚持这一原则,必须反对大民族主义、地方民族主义和分裂主义;坚决揭露和打击国内外敌对势力一切分裂祖国的阴谋活动。解决我国民族问题的基本政策是实行民族区域自治制度。

第四篇:C语言复习大纲

1、C语言程序常见的书写格式;

2、printf()和scanf()函数常用的方法,主要包括格式控制符;

3、常见的基本类型(现学过3种)以及表示数据的范围(大致的)。

4、熟练掌握以下几类运算符的运算规律:算术运算符、关系运算符、逻辑运算符、条件运

算符、自增自减运算符、逗号运算符、简单赋值运算符以及复合的赋值运算符。

5、C程序三种结构。

6、数组(主要是字符和一维)定义、初始化以及引用和函数的定义、以及引用。

7、常见的数组字符串处理函数(包括stccpy()和strcmp())。

8、常见的转义字符的表示及含义作用(如nrtb等)。

9、C语言标识符规则(主要有3条)。

10、break语句和continue语句的功能和使用。

11、逻辑值“真”“假”的判定。

12、if和else配对原则。

13、数组长度与有效下标的关系。

14、熟练掌握三种结构语句的执行流程,特别是循环语句。

15、熟练掌握求最大(小)值、判断素数以及排序等基本算法和程序实现。

建议:除了上述的知识点之外,老师上课用的PPT过一遍,平时实验作业再做一遍。

第五篇:c语言程序设计复习

第一章C语言概述

一、选择题:

1、一个C程序的执行是从(A)。A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束

2、在 C 语言中,每个语句必须以(D)结束。A.回车符 B.冒号 C.逗号 D.分号

3、C 语言规定:在一个源程序中,main函数的位置(C)。A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后

4、一个C 语言程序是由(B)。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成

5、下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行

6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件

二、填空题:

1、C 语言只有 32 个关键字和 9 种控制语句。

2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 * 符号作为开始标记,以 */ 符号作为结束标记。

4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是.c,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe。

6、C 语言的标识符只能由字母、数字和 下划线 三种字符组成。

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的 C 语言浮点型常量是(C)。A.160.B.0.12 C.2e4.2 D.0.0

2、以下选项中,(D)是不正确的 C 语言字符型常量。A.'a' B.'x41' C.'101' D.“a”

3、在 C 语言中,字符型数据在计算机内存中,以字符的(C)形式存储。A.原码 B.反码 C.ASCII 码 D.BCD码

4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。x=(i=4,j=16,k=32)A.4 B.16 C.32 D.52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算

6、若有代数式,则不正确的C语言表达式是(C)。A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3

7、表达式!x||a==b 等效于(D)。

A.!((x||a)==b)B.!(x||y)==b C.!(x||(a==b))D.(!x)||(a==b)

8、设整型变量 m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是(A)。A.0,0 B.0,1 C.1,0 D.1,1

9、设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是(B)。A.3 B.0 C.9 D.-12

10、在以下一组运算符中,优先级最低的运算符是(D)。A.* B.!= C.+ D.=

11、设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B)。A.6 B.12 C.15 D.表达式出错

12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是(C)。A.1 B.2 C.2.0 D.2.5

13、sizeof(double)的结果值是(A)。A.8 B.4 C.2 D.出错

14、设a=1,b=2,c=3,d=4,则表达式:a

15、设a 为整型变量,不能正确表达数学关系:1010 && a<15 D.!(a<=10)&&!(a>=15)

16、设 f是实型变量,下列表达式中不是逗号表达式的是(D)。A.f= 3.2, 1.0 B.f>0, f<10 C.f=2.0, f>0 D.f=(3.2, 1.0)

17、表达式18/4*sqrt(4.0)/8值的数据类型是(C)。A.int B.float C.double D.不确定

18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 C2=’A’+’6’-‘3’;后c2中的值是(A)。A.D B.68 C.不确定的值 D.C

19、以下用户标识符中,合法的是(B)。A.int B.nit C.123 D.a+b 20、C 语言中,要求运算对象只能为整数的运算符是(A)。A.% B./ C.> D.*

21、若有说明语句:char c='72';则变量c在内存占用的字节数是(A)。A.1 B.2 C.3 D.4

22、字符串“ABC”在内存占用的字节数是(B)。A.3 B.4 C.6 D.8

23、要为字符型变量 a赋初值,下列语句中哪一个是正确的(B)。A.char a=“3”;B.char a=’3’;C.char a=%;D.char a=*;

24、下列不正确的转义字符是(C)。A.B.' C.074 D.

二、填空题:

1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0。

3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2,-a-5*b<=d+1, b==a=2的值分别为 1、0、1、1。

4、设 float x=2.5,y=4.7;int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5。

5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0。

6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6。

7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3。

8、数学式a/(b*c)的 C 语言表达式 a/b/c。

三、编程题:

1、设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母 A转换为小写字母 a。1. main(){float x=1.5,y=2.3;printf(“area is %6.2fn”,x*y);} 2.main(){char c=’A’;printf(“%d”,c+32);}

顺序结构答案

一、单项选择题 AADAB CCBBD

二、程序改错题 1.正确的程序为 # include “stdio.h” main(){ char c ; getchar(c);putchar('07');/*鸣笛*/ putchar();} 2. 正确的程序为 main(){ int a,b,s,l;scanf(“%d,%d”,&a,&b);s=a*b;l=2*(a+b);printf(“l=%d,s=%dn”, l ,s);}

三、写出程序运行结果 1. 68 2.x=4 y=11

四、编程题 1.main(){ int a,b,c,sum;float ave;scanf(“%d%d%d”,&a,&b,&c);sum=a+b+c;ave=sum/3.0;printf(“sum=%d,ave=%.2fn”,sum,ave);}

五、选做题 1.void main(){ float a,b,temp;printf(“input a and b:”);scanf(“%d,%d”,&a ,&b);temp = a;a = b;b = temp;printf(“a=%d , b=%dn”, a , b);} 选择结构答案

一、单项选择题

1.B 2.A 3.D 4.C 5.D 6.B 7.C

二、填空题 1.5 5 4 5 5 4 3 3 4 2.4 0 3.VeryGood Good VeryGood Fail Pass Pass

三、阅读程序,写出运行结果 1.10, 4, 3;-1 3 6 1

四、程序设计题 1.main(){ int a,b,x,y;scanf(“%d %d”,&a,&b);x=a*a+b*b;if(x>100){y=x/100;printf(“%d”,y);} else printf(“%d”,a+b);}

2.if结构 main(){ float t;char c;printf(“input score,max as 100:n”);scanf(“%f”,&t);if(t>=90)ch=’A’;else if(t>=80)ch=’B’;else if(t>=70)ch=’C’;else if(t>=60)ch=’D’;else ch=’E’;

printf(“Grade=%dn”,ch);} switch结构 main(){float t;char c;printf(“input score,max as 100:n”);scanf(“%f”,&t);switch(t/10){ case 10: case 9: ch=’A’;break;case 8: ch=’B’;break;case 7: ch=’C’;break;case 6: ch=’D’;break;case 5: ch=’E’;} printf(“Grade=%dn”,ch);}

五、选做题 1.main(){ int a,b,c,t;scanf(“%d%d%d”,&a,&b,&c);if(a

2.switch((s>0)&&(s<=10)){case 1: switch((s>=3)&&(s<=6)){ case 1: x=2;break;case 0: switch(s>1)||(s>8)){ case 1: x=3;break;case 0: x=1;break;} } break;case 0: x=0;break;}

循环结构答案

一、选择题

1.B 2.A 3.A 4.C 5.A 6.B 7.A 8.C 9.D 10.D

二、填空题 1.x1 x1/2-2 2.ch=getchar()ch>=’A’&&ch<=’Z’ 3.s=s+t*i t=-t

三、阅读下列程序,写出程序运行的输出结果 1.852 2.8921 3.5 4.SUM=2468

四、程序改错 1.main(){ int i=200,n=0;/*n用来记录每行已打印数的个数*/ while(i<=300){if(i%7==0){ //break;printf(“%5d”,i);n=n+1;if(n==5)/*满5个换行*/ { printf(“n”);n=0;} } i++;} }

2).main(){ int i,s=0,t=1;for(i=1;i<=7;i++){ t=t*i;s=s+t;} printf(“sum=%dn”,s);}

五、程序设计题 1.main(){int x,g,s,b;for(x=100;x<1000;x++){ b=x/100;s=x%100/10;g=x%10;if((g*g*g+s*s*s+b*b*b)==x)printf(“%dn”,x);} }

2.main(){ int i,s=0,f=1;for(i=2;i<80;i++){s=s+f*(i-1)/i;f=-f;} printf(s=%fn”,s);}

六、选做题 1.main(){ float s=0,m=2.0,n=1.0,p;int i;for(i=1;i<=20;i++){s=s+m/n;p=m;m=m+n;n=p;} printf(s=%fn”,s);}

2.#include main(){ int i,j,k,s=1;for(i=1;i<=20;i++)for(j=1;j<=50;j++){ k=100-i*5-j*2;if(k>=0){ printf(“%2d %2d %2d”,i,j,k);s=s+1;if(s%5==0)printf(“n”);} } }

第7章 数组习题 A卷

1.单项选择题(1)int a[4]={5,3,8,9};其中 a[3]的值为()。D A.5 B.3 C.8 D.9(2)以下 4 个字符串函数中,()所在的头文件与其他 3 个不同。A A.gets B.strcpy C.strlen D.strcmp(3)以下 4 个数组定义中,()是错误的。D A.int a[7];B.#define N 5 long b[N];C.char c[5];D.int n,d[n];(4)对字符数组进行初始化,()形式是错误。B A.char c1[ ]={'1', '2', '3'};B.char c2[ ]=123;C.char c3[ ]={ '1', '2', '3', ''};D.char c4[ ]=“123”;(5)在数组中,数组名表示()。A A.数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C.数组所有元素的首地址 D.数组最后 1 个元素的首地址

(6)若有以下数组说明,则数值最小的和最大的元素下标分别是()。B int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12 B.0,11 C.1,11 D.0,12(7)若有以下说明,则数值为 4 的表达式是()。D int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’, d, g;A.a[g-c] B.a[4] C.a['d'-'c'] D.a['d'-c](8)设有定义:char s[12] = “string”;则printf(“%dn”,strlen(s));的输出是()。A A.6 B.7 C.11 D.12(9)设有定义:char s[12] = “string”;则printf(“%dn ”, sizeof(s));的输出是()。D A.6 B.7 C.11 D.12(10)合法的数组定义是()。A A.char a[ ]= “string ”;B.int a[5] ={0,1,2,3,4,5};C.char a= “string ”;D.char a[ ]={0,1,2,3,4,5}(11)合法的数组定义是()。D A.int a[3][ ]={0,1,2,3,4,5};B.int a[ ][3] ={0,1,2,3,4};C.int a[2][3]={0,1,2,3,4,5,6};D.int a[2][3]={0,1,2,3,4,5,};(12)下列语句中,正确的是()。D A.char a[3][ ]={'abc', '1'};B.char a[ ][3] ={'abc', '1'};C.char a[3][ ]={'a', “1”};D.char a[ ][3] ={ “a”, “1”};(13)下列定义的字符数组中,输出 printf(“%sn”, str[2]);的输出是()。C static str[3][20] ={ “basic”, “foxpro”, “windows”};A.basic B.foxpro C.windows D.输出语句出错

(14)下列各语句定义了数组,其中哪一个是不正确的()。C A.char a[3][10]={“China”,“American”,“Asia”};B.int x[2][2]={1,2,3,4};C.float x[2][ ]={1,2,4,6,8,10};D.int m[][3]={1,2,3,4,5,6};(15)数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是()。B A.a[3][2] B.a[2][1] C.a[1][2] D.a[2][3](16)下面的程序中哪一行有错误()。D #include main(){ float array[5]={0.0};//第A行 int i;for(i=0;i<5;i++)scanf(“%f”,&array[i]);for(i=1;i<5;i++)array[0]=array[0]+array[i];//第B行 printf(“%fn”,array[0]);//第C行 } A.第A行 B.第B行 C.第C行 D.没有

(17)下面哪一项是不正确的字符串赋值或赋初值的方式()。A.char *str;str=“string”;B.char str[7]={'s','t','r','i','n','g'};C.char str1[10];str1=“string”;D.char str1[]=“string”,str2[]=“12345678”;(18)若有以下说明和语句,则输出结果是哪一项()。C(strlen(s)为求字符串s的长度的函数)char s[12]=“a book!”;printf(“%d”,strlen(s));A.12 B.8 C.7 D.11(19)若有以下说明和语句,则输出结果是()。B(strlen(s)为求字符串s的长度的函数)char sp[]=“tv0willn”;printf(“%d”,strlen(sp));A.14 B.3 C.9 D.字符串中有非法字符(20)若有以下说明和语句,则输出结果是()。C char str[]=“"c:abc.dat”“;

C printf(”%s“,str);A.字符串中有非法字符 B.”c:abc.dat“ C.”c:abc.dat“ D.”c:abc.dat“

2.填空题

(1)C 语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必须是正整数、0、或者。但在程序执行过程中,不检查元素下标是否。数据类型,0,符号常量,越界

(2)C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。连续,数组名,地址

(3)执行 static int b[5], a[ ][3] ={1,2,3,4,5,6};后,b[4] =,a[1][2] =。0,6(4)设有定义语句 static int a[3][4] ={{1},{2},{3}};则 a[1][0]值为,a[1][1] 值为,a[2][1]的值为。2,0,0(5)如定义语句为 char a[ ]= ”windows“,b[ ]= ”95“;,语句 printf(”%s“,strcat(a,b));的输出结果为。Windows95(6)根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。step是一个有4个实型元素的数组,元素值分别为1.9,-2.33, 0, 20.6。grid是一个二维数组,共有4行,10列整型元素。

int mesh[10];float step[4] = {1.9,-2.33, 0, 20.6};int grid[4][10];(7)array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语句为:

。该数组下标的取值范围是从___到___(从小到大)。用scanf函数输入数组的第二个元素表示为:。用赋值语句把39存入第一个元素表示为:。把第六个和第四个元素之和存入第一个元素表示为:。

int array[10] = {9,4,7,49,32,-5};0 9 scanf(”%d“,&array[1]);array[0] = 39;array[0]= array[5]+array[3];(8)写出以下初始化数组的长度:①int chn[3];数组chn的长度为___。②float isa[]={1.0,2.0,3.0,4.0,5.0};数组isa的长度为___。③int doom[8];数组doom的长度为___。④float pci[4][2];数组pci的长度为___。

⑤int ast[3][3];数组ast的长度为___。⑥int att[3][4];数组att的长度为___。⑦float dell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell的长度为___。6 20 16 32 18 24 36(9)若有以下整型的a数组,数组元素和它们得值如下所示: 数组元素: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 元素的值: 9 4 12 8 2 10 7 5 1 3 ①请写出对该数组的说明,并赋以上初值。②该数组的最小下标值为___,最大下标值为___。

③写出下面各式的值:a[a[9]]的值为___ ;a[a[4]+a[8]]的值为___。int a[10]={9,4,12,8,2,10,7,5,1,3};0 9 8 8(10)字符串”abn12/“"的长度为___。10

3.判断题

(×)(1)C允许对数组的大小作动态定义,即可用变量定义数组的大小。(×)(2)字符数组不要求它的最后一个字符为‘’,甚至可以不包含‘’。(×)(3)数组定义 int a[10];也可以写成 int a(10)。(√)(4)在对全部数组元素赋初值时,可以不指定数组长度。(×)(5)定义s为5×6(5行6列)的数组可写成 float a[5,6];(√)(6)数组定义 int a[10];表示数组名为a,此数组有10个元素。

(×)(7)数组定义 int a[10];表示数组名为a,此数组有10个元素,第10个元素为a[10]。

(√)(8)static char c[]={“a book”};与static char c[]=“a book”;等价。(×)(9)static char c[]={'a' ,' ','b','o','o','k',''};与 static char c[]={'a' ,' ' ,'b','o','o','k'};等价。(×)(10)设已有说明:static char c1[10],c2[10];下面程序片段是合法的。c1={“book”};c2=c1;

4.程序填空题

(1)输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。

#include void main(){ float a[20],pjz=0,s,t;int i,k;for(i=0;i<20;i++)pjz+=a[i];s=fabs(a[0]-pjz);for(i=1;i<20;i++)if(fabs(a[i]-pjz)

(2)以下程序以每行 10个数据的形式输出 a 数组,请填空。void main(){ int a[50],i;printf(”输入50个整数:“);for(i=0;i<50;i++)scanf(”%d“,);for(i=1;i<=50;i++){ if()printf(”%3dn“ ,);printf(”%3d“,a[i-1]);} } &a[i] i%10==0 a[i-1]

(3)下面程序的功能是输出数组 s 中最大元素的下标,请填空。void main(){ int k, p;int s[ ]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)if(s[p]>s[k]);printf(”%dn“ ,k);} k=p

(4)这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、20个数的和及它们的平均值。请填空。void main(){ char array;int max,min,average,sum;int i;for(i=0;i<;i++){ printf(”请输入第%d个数:“,i+1);scanf(”%d“,);} max=array[0];min=array[0];for(i=0;i<=;i++){ if(maxarray[i])sum=;} average =;printf(”20个数中最大值是%d,“,max);printf(”最小值是%d,“,min);printf(”和是%d,“,sum);printf(”平均值是%d.n“,average);} [20] 20 &array[i] 19 max=array[i];min=array[i];sum+array[i] sum/20 B卷

5.阅读程序,分析程序的功能。(1)#include #include void main(){ char s[80];int i;for(i=0;i<80;i++){ s[i]=getchar();if(s[i]=='n')break;} s[i]='';i=0;while(s[i])putchar(s[i++]);putchar(‘n’);} 从键盘输入一个字符串,并逐一输出

(2)#include #include void main(){ char str[10][80], c[80];int i;for(i=0;i<10;i++)gets(str[i]);strcpy(c, str[0]);for(i=1;i<10;i++)if(strlen(c)

(3)#include #include void main(){ char a[10][80], c[80];int i, j, k;for(i=0;i<10;i++)gets(a[i]);for(i=0;i<9;i++){ k=i;for(j=i+1;j<10;j++)if(strcmp(a [j], a[k])<0)k=j;if(k!=i){strcpy(c,a[i]);strcpy(a[i], a[k]);strcpy(a[k],c);} // 字符串交换 } for(i=0;i<10;i++)puts(a[i]);} 从键盘输入若干字符串,并将它们按大到小顺序排好再输出

(4)阅读程序,写出运行结果 #include void main(){ int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;for(i=0;i<6;i++){ for(j=0;j<6;j++)if(a[i]==b[j])break;if(j<6)printf(”%d “,a[i]);} printf(”n“);} 4 25 27 16

(5)阅读程序,写出运行结果。#include void main(){ char a[8],temp;int j,k;for(j=0;j<7;j++)a[j]='a'+j;a[7]='';for(j=0;j<3;j++){ temp=a[6];for(k=6;k>0;k--)a[k]=a[k-1];a[0]=temp;printf(”%sn“,a);} } gabcdef fgabcde efgabcd

(6)阅读下列程序,写出程序运行的输出结果。#include #include void main(){ char str1[ ]=”*******“;for(int i=0;i<4;i++){ printf(”%sn“,str1);str1[i]=' ';str1[strlen(str1)-1]='';} } ******* ***** *** *

(7)该程序的运行结果是: min= ,m= ,n=。void main(){ float array[4][3]={ {3.4,-5.6,56.7}, {56.8,999.,-.0123}, {0.45,-5.77,123.5}, {43.4,0,111.2} };int i,j;int min;int m,n;min = array[0][0];m=0;n=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(min > array[i][j]){ min = array[i][j];m=i;n=j;} printf(”min=%d,m=%d,n=%dn“,min,m,n);}-5.77 2 1

(8)写出下面这个程序的输出结果: void main(){ char str[]=”ABCDEFGHIJKL“;printf(”%sn“,str);屏幕上显示 printf(”%sn“,&str[4]);屏幕上显示 str[2]=str[5];printf(”%sn“,str);屏幕上显示 str[9]='';printf(”%sn“,str);屏幕上显示 } ABCDEFGHIJKL EFGHIJKL ABFDEFGHIJKL ABFDEFGHI

(9)读懂下面的程序并填空。void main(){ char str[80];int i=0;gets(str);while(str[i]!=0){ if(str[i]>='a'&&str<='z')str[i]-=32;i++;} puts(str);} 程序运行时如果输入 upcase, 屏幕显示 程序运行时如果输入 Aa1Bb2Cc3, 屏幕显示 UPCASE AA1BB2CC 第8章 函数习题 A卷

1.单项选择题

(1)C 语言总是从 函数开始执行。A A.main B.处于最前的 C.处于最后的 D.随机选一个

(2)函数在定义时,省略函数类型说明符,则该函数值的类型为。A A.int B.float C.long D.double(2)以下 函数,真正地没有返回值。B A.int a(){int a=2;return(a);} B.void b(){printf(”c“);} C.int a(){int a=2;return a;} D.以上都是(3)在 C 语言中,有关函数的说法,以下正确的是。A A.函数可嵌套定义,也可嵌套调用 B.函数可嵌套定义,但不可嵌套调用 C.函数不可嵌套定义,但可嵌套调用 D.函数不可嵌套定义,也不可嵌套调用(4)以下函数调用语句中,含有实参的个数为。C fun((2,3),(4,5+6,7));A.1 B.2 C.5 D.6(5)函数调用可以在。D A.函数表达式中 B.函数语句中 C.函数参数中 D.以上都是(6)被调函数返回给主调函数的值称为。C A.形参 B.实参 C.返回值 D.参数(7),可以不进行函数类型说明。D A.被调函数的返回值是整型或字符型时 B.被调函数的定义在主调函数定义之前时 C.在所有函数定义前,已在函数外预先说明了被调函数类型 D.以上都是(8)被调函数通过 语句,将值返回给主调函数。D A.if B.for C.while D.return(9)被调函数调用结束后,返回到。D A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处

C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句(10)以下对 C语言函数的有关描述中,正确的是。A A.在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C函数既可以嵌套定义又可递归调用 C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中(11)C 语言中函数的隐含存储类型是。C A.auto B.static C.extern D.无存储类型

(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是。A A.return 这两个数 B.形参用两个元素的数组 C.形参用两个这种数据类型的指针 D.用两个全局变量(13)C语言可执行程序从什么地方开始执行()。C A.程序中第一条可执行语句 B.程序中第一个函数 C.程序中的main函数 D.包含文件中的第一个函数

(14)有一个函数原型如下所示,则该函数的返回类型为()。C abc(float x,float y);A.void B.double C.int D.float

2.填空题

(1)变量的作用域主要取决于变量,变量的生存期既取决于变量,又取决于变量。所处的位置,所处的位置,存储类型

(2)说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为:。动态,auto(3)静态型局部变量的作用域是 ,生存期是。它所在的局部,整个程序

(4)函数中的形参和调用时的实参都是数组名时,传递方式为,都是变量时,传递方式为。址传递,值传递

(5)函数的形式参数的作用域为,全局的外部变量和函数体内定义的局部变量重名时,_________变量优先。该函数中,局部

(6)若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符。return,void(7)若函数的形式参数是指针类型,则实参可以是 或。指针,数组名(8)函数的参数为 char *类型时,形参与实参结合的传递方式为。址传递(9)函数的实参为常量时,形参与实参结合的传递方式为。值传递

(10)下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。int int int* *result void mul(___x,___y,___result){ ___=x*y;}

3.判断题

(×)(1)函数说明指的是在程序中设定一个函数模块。(√)(2)形参只有在被调用时才分配存储空间。(×)(3)在C的函数中,最好使用全局变量。

(×)(4)在调用函数时,实参传值给形参,调用结束时,形参值传给实参。(√)(5)所有函数定义都是并行的,相互独立的。(×)(6)函数的隐含存储类型是extern。(×)(7)形参可以是常量、变量或表达式。(×)(8)函数调用可以作为一个函数的形参。

(√)(9)C语言规定,实参应与其对应的形参类型一致。(×)(10)定义函数时,形参的类型说明可以放在函数体内。

4.程序填空题

(1)对数组按值从大到小的顺序排序后输出,请填空。#include void main(){ float a[7]={2,6,3,8,3,12,9};int i;void sort(float*,int);;for(i=0;i<7;i++)printf(”%f “,a[i]);printf(”n“);} void sort(){ int i,j,k;float t;for(i=0;i

(2)下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。#include void find(float *p, int max, int min, int n){ int k;*max=*p;for(k=1;k

5.写出下列程序运行结果(1)main(){ int i=1,p;p=fun(i,i+1);printf(”%dn“,p);} int fun(int a,int b){ int f;if(a>b)f=1;else if(a==b)f=0;else f=-1;return f;}-1

(2)键盘输入 abcdef #include void fun(){ char c;if((c=getchar())!='n')fun();putchar(c);} void main(){ fun();} fedcba(3)#include #define C 5 int x=1,y=C;void main(){ int x;x=y++;printf(”%d %dn“, x,y);if(x>4){ int x;x=++y;printf(”%d %dn“,x,y);} x+=y--;printf(”%d %dn“,x,y);} 5 6 7 7 12 6(4)#include int c , a=4;func(int a , int b){ c=a*b;a=b-1;b++;return(a+b+1);} void main(){ int b=2 , p=0;c=1;p=func(b , a);printf(”%d,%d,%d,%dn“, a,b,c,p);} 4,2,8,9(5)unsigned fun6(unsigned num){ unsigned k=1;do { k*=num%10;num/=10;} while(num);return k;} void main(){ unsigned n=26;printf(”%dn“, fun6(n));} 12(6)#include int max(int a,int b);main(){ int x,y,z,t,m;scanf(”%d,%d,%d“,&x,&y,&z);t=max(x,y);m=max(t,z);printf(”%d“,m);} int max(int a,int b){ if(a>b)return(a);else return(b);} 运行时若输入:10,15,9 则输出:___ 15 运行时若输入:300,129,300 则输出:___ 300(7)#include long sum(int a,int b);long factorial(int n);main(){ int n1,n2;long a;scanf(”%d,%d“,&n1,&n2);a=sum(n1,n2);printf(”a=%1d“,a);} long sum(int a,int b){ long c1,c2;c1=factorial(a);c2=factorial(b);return(c1+c2);} long factorial(int n){ long rtn=1;int i;for(i=1;i<=n;i++)rtn*=i;return(rtn);} 运行时若输入:2,3 则输出:___ 8 运行时若输入:0, 5 则输出:___ 121(8)#include int s();int x,y;main(){ int n;x=1;y=2;n=s();printf(”x=%d,y=%d,n=%d“,x,y,n);} int s(){ int z;x=3;y=4;z=x+y;return(z);} 程序运行后输出:___ 3,4,7

(9)以下程序的输出结果是a=___,b=___,c=___。#include int func(int a,int *p);void main(){ int a=1,b=2,c;c=func(a,&b);b=func(c,&a);a=func(b,&c);printf(”a=%d,b=%d,c=%d“,a,b,c);} int func(int a,int *p){ a++;*p=a+2;return(*p+a);} 36 16 19 第九章 预处理

A部分(本、专科必做)

一、选择题

以下不正确的叙述是(D)

A、宏替换不占用运行时间。B、宏名无类型。

C、宏替换只是字符替换。D、宏名必须用大写字母表示。C语言的编译系统对宏命令的处理(D)

A、在程序运行时进行的。B、在程序连接时进行。C、和C程序中的其它语句同时进行编译的。D、在对源程序中其它语句正式编译之前进行的。

3、以下程序的输出结果是(C)。A、15 B、100 C、10 D、150 #define MIN(x,y)(x)<(y)?(x):(y)void main(){ int I,j,k;i=10;j=15;k=10*MIN(i,j);printf(“%dn”,k);}

4、以下叙述中正确的是(D)

用#include包含的文件的后缀必须是“.h”。

若一些源程序中包含某个头文件;当该文件有错时,只需对该头文件进行修改,包含此头文件的所有源程序不必重新进行编译。宏命令行可以看作是一行C语句。预处理是在编译之前进行的。

5、以下叙述中正确的是(C)A、源程序中所有的行都参加编译。B、宏定义常量与const定义常量是一样的。

C、宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。D、以上都不正确。

二、填空题

以下程序中for 循环执行的次数是 6。#define N 2 #define M N+1 #define NUM(M+1)*M/2 void main(){ int i;for(i=1;i<=NUM;i++);printf(“%dn”,i);}

2、以下程序的输出结果是 x=93。#define A 3 #define B(a)((A+1)*a)void main(){ int x;x=3*(A+B(7));printf(“x=%dn”,x);}

B部分(本科必做)

编程:请写出一个宏定义MYALPHA(c),用以判断c是否是字母字符,若是,得1,否则,得0。

解:#define MYALPHA(c)((c>=’A’&&c<=’Z’)||(c>=’a’&&c<=’z’)?1:0)第十章 指针

A部分(本、专科必做)

一、选择题

1、若有定义:int x,*pb;则以下正确的表达式是(A)A、pb=&x B、pb=x C、*pb=&x D、*pb=*x

2、以下程序的输出结果是(B)

A、因变量无定义输出不定值 B、0 C、-1 D、1 #include void main(){printf(“%dn”,NULL);}

3、以下程序的输出结果是(B)

A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 #include void sub(int x,int y,int *z){*z=y-x;} void main(){ int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%d,%d,%dn”,a,b,c);}

4、以下程序的输出结果是(C)A、4 B、6 C、8 D、10 #include void main(){ int k=2,m=4,n=6;int *pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(“%dn”,n);}

5、已知指针p的指向(图一)的a[1],则执行语句*p++;后,*p的值是(B)。A、20 B、30 C、21 D、31 a[0] a[1] a[2] a[3] a[4] 10 20 30 40 50(图一)

6、已知指针p的指向(图一)的a[1],则表达式*++p的值是(B)。A、20 B、30 C、21 D、31

7、已知指针p的指向(图一)的a[1],则表达式++*p的值是(C)。A、20 B、30 C、21 D、31

8、以下程序的输出结果是(D)。A、23 B、24 C、25 D、26 #include void prtv(int *x){printf(“%dn”,++*x);} void main(){ int a=25;prtv(&a);}

9、以下程序的输出结果是(B)。

A、运行出错 B、100 C、a的地址 D、b的地址 #include void main(){ int **k,*a,b=100;a=&b;k=&a;printf(“%dn”,**k);}

10、以下程序运行后,输出结果是(D)。A)8 B)7 C)6 D)5 #include ss(char *s){ char *p=s;while(*p)p++;return(p-s);} main(){ char *a=”abded“;int i;i=ss(a);printf(”%dn“,i);}

二、填空题

1、若有定义:char ch;(1)使指针p指向变量ch的定义语句是 char *p=&ch。

(2)若已定义char *p;,使指针p指向变量ch的赋值语句是 p=&ch。(3)在(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是 scanf(“%c”,p)。

(4)在(1)的基础上,通过指针p给变量ch赋字符’a’的语句是*p=’a’。(5)在(1)的基础上,通过指针p用格式输出函数输出ch中字符的语句是printf(“%c”,*p)。

2、以下程序输出的是 C。void main(){ int i=3, j=2;char *a=”DCBA“;printf(”%c%cn“,a[i],a[j]);}

3、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。void exchange(int *x, int *y){ int t;t=*y;*y= *x;*x= t;}

B部分(本科必做)程序填空:

1、下面程序的输出结果是 A B C D B C D C D D。char b[]=”ABCD“;void main(){ char *chp;for(chp=b;*chp: chp+=2)printf(”%s“,chp);printf(”n“);} 下面是一个字符串连接函数,请补充完整。void mystrcat(char *s1,char *s2){ char *p,*q;for(p=s1;*p;p++);for(q=s2;*q;q++)*p++=*q;*p=’’;} 第十一章 结构体与共用体 A部分(本、专科必做)

一、选择题

1、设有如下定义: struct sk {int a;float b;}data,*p;若有p=&data;,则对data中的a域的正确引用是(B)。A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a

2、根据以下定义,能输出字母M的语句是(D)。

A、printf(“%cn”,class[3].name);B、printf(“%cn”,class[3].name[1]);C、printf(“%cn”,class[2].name[1]);D、printf(“%cn”,class[2].name[0]);struct person{char name[9];int age;};struct person class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16,};

3、以下程序的输出结果是(D)。A、0 B、1 C、3 D、6 #include void main(){ struct emplx{int x;int y;}enum[2]={1,3,2,7};printf(“%dn”,enum[0].y/enum[0].x*enum[1].x);}

4、若有以下说明及语句,则值为6的表达式是(D)。A、p++->n B、p->n++ C、(*p).n++ D、++p->n struct st{int n;struct st *next;};struct st a[3],*p;a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next=’’;p=&a[0];

5、已知字符0的ASCII码的十进制的值是48,且数组的第0个元素在低位,以下程序的输出结果是(B)。A、39 B、9 C、38 D、8 void main(){ union{int i[2];long k;char c[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf(“%xn”,s->c[0]);}

6、以下程序输出的结果是(C)。A、32 B、16 C、8 D、24 typedef union{long x[2];int y[4];char z[8];}MYTYPE;MYTYPE them;void main(){ printf(“%dn”,sizeof(them));}

7、设有以下语句 typedef struct S { int g;char h;} T;则下面叙述中正确的是(B)。

A)可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量

8、有以下说明和定义语句 struct student { int age;char num[8];};struct student stu[3]={{20,”200401“},{21,”200402“},{109,”200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是(D)。A)(p++)->num B)p->num C)(*p).num D)stu[3].age

二、填空题

1、为了建立结构体(含有两个成员,data是数据成员,next是指向自身结构体的指针成员),请填空: Struct link { char data;struct link *next;}

2、把类型int另取一个类型名称INT,则以下应填:

下载管理全能XC 复习 2011word格式文档
下载管理全能XC 复习 2011.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    六年级复习试卷C

    六年级复习试卷C 一、看拼音,写词语。(5分) fēnxīshūjíkǎoyànfěicuìchōuyē 二、用“___”在括号里划出带点字的正确读音。(4分) 歼灭(jiānqiān)勉强......

    c语言期末复习

    谁能出线 电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多......

    全能语法大全

    1111 (see 、hear 、notice 、find 、feel 、listen to 、 look at (感官动词)+do eg:I like watching monkeys jump 2 (比较级 and 比较级) 表示越来越怎么样 3 a piece of......

    颁奖词全能

    各位老师同学们,大家早上好! 历时一个月之久的热闹二校学科素养达人赛终于在上周的最后一项阅读积累赛后宣告圆满结束,比赛的过程中无论是老师们还是同学们,无不彰显着努力拼搏,......

    全能店长

    不管是店长还是区主管都应是一个全能店长的角色,因为每一个小区都应看是一个小店,每一位区主管就是这个小店的老板,要有自主经营观念。小区里的每一件事都是家里的事。全能店长......

    C语言考试复习要点

    C语言考试复习要点: 一. 题型: 1.选择题——最基本的知识点,概念——共20分 2.程序运行结果分析——10道程序题——共30分 (来源于课本例题和作业,复习的重点是多看课本程序和作业......

    党校复习材料填空选择c

    1,《共产党宣言》的作者是马克思和恩格斯. 2,中国共产党成立于1921年7月. 3,中国共产党的宗旨是全心全意为人民服务. 4,中国共产党的三大优良作风是:理论联系实际,密切联系......

    c语言期末复习试题

    下面程序运行时,如果从键盘上输入3,5,程序输出的结果是(C)。 void main(void) { int a,b,*pa,*pb; pa=&a; pb=&b; scanf("%d,%d",pa,pb); *pa=a+b; *pb=a+b; printf("a=%......