2012年广西壮族自治区C++语言版基础
2012-2013-C语言程序设计教案
2012-2013-C语言程序设计教案青岛农业大学海都学院教案2011 ~2012 学年第二学期课程名称C语言程序设计课程代码HD0906课程性质公共必修学时数72(42/30)开课院(部)基础部教研室数理与计算机授课班级13级机制、电气专升本主讲教师位晓晓职称助教教研室主任倪康人专业负责人二○一三年七月青岛农业大学海都学院教案课程名称C语言程序设计授课专业13级电气、机制班级专升本课程代码HD0906课程类型必修课必修课程(√);限选课程();全校性选修课程()授课方式课堂讲授(√);实验();田间观察()实际操作();讨论();上机()考核方式闭卷(√);开卷();课程论文()具体操作();多种形式结合()课程教学总学时数72学时学分数4.5学时分配课堂讲授42 学时;实验课学时;田间观察学时实际操作学时;讨论学时;上机30学时教材名称《C程序设计》作者谭浩强出版社及出版时间清华大学2010.06指定参考资料《C程序设计(第四版)学习指导》作者谭浩强出版社及出版时间清华大学2010.06《全国计算机等级考试二级教程—C语言程序设计》作者教育部考试中心出版社及出版时间高等教育2011.05《The CProgrammingLanguage(SecondEdition)》作者BrianW.Kernighan& DennisM.Ritchie出版社及出版时间Prentice-HallInternational,Inc2005.09授课教师倪康人职称讲师单位基础部授课时间第 1 周至第18 周;星期三第3/4 节第 1 周:星期日第6/7 节/星期六第6/7 节备注讲次第1 讲章节名称第一章程序设计和C语言第二章算法授课方式课堂讲授(√);实验();田间观察()实际操作();讨论();上机()教学时数 2授课方法和手段多媒体讲授,讨论及PPT演示教学目的与要求了解程序设计的一些初步知识了解算法的概念和特性,掌握一种流程图的画法掌握C程序的构成及书写风格,对C程序有一个初步了解教学基本内容纲要第一章程序设计和C语言1、C语言概述⑴什么是C语言⑵C语言的发展及特点2、简单C程序与上机步骤⑴简单C程序⑵上机步骤第二章算法⑴算法的概念及特征⑵怎样表示算法(自然语言、流程图、N-S盒图及伪代码等)⑶结构化程序设计方法教学重点与难点重点:C程序的基本结构,C程序的上机操作步骤,算法的表示。
2012年计算机二级C语言概述考点串讲
2012 年计算机二级 C 语言概述考点串讲第一章 C 语言概述 [考点一] C 语言概述 C 语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有 9 种控制语句、 32 个关键字和 34 种运算符。
C 语言的数据结构也非常丰富,它的多种数据类型可以实现如 链表、树、栈等复杂的运算,并且用结构化控制句来实现函数的模块化。
C 语言的语法不太 严格,程序的设计自由度大,它可以直接访问物理地址,还可以直接对硬件操作。
C 语言也 是一种移植性比较好的语言。
[考点二] C 语言程序的构成 (1) C 语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中至少包 括一个主函数。
(2) C 程序总是从 main()函数开始执行 (3) C 语言规定每个语句以分号结束,分号是语句组成不可缺少的部分,它在每条语 句的最后出现。
(4) 程序的注释部分应括在 /* 和 */ 之间不能有空格,注释部分允许出现在程序的 任何位置。
[考点三] C 程序的生成过程 C 程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,源程序的扩 展名为.c,目标文件的扩展名为.obj,可执行程序的扩展名为.exe [考点四] 标识符 在编写程序时,必须为函数、变量等命名,这个名字称为标识符。
标识符可以是一个或 多个字符,标识符的第一个字符必须是字母或下划线,随后的字符只能是字母、数字或下划 线。
要区分字母的大小写。
标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C 语言库 函数相同,在程序中各种标识符尽量不要重复,以便区分。
选择变量名和其他标识符时,应 注意做到“见名知义”。
[考点五] 常量在程序运行中, 其值不能被改变的量称为常量。
常量有 5 种类型: 整型常量、 实型常量、 字符型常量、字符串常量和符号常量。
(1) 整型常量 整型常量有 3 种:十进制整型常量、八进制整型常量和十六进制整型常量。
2012年计算机高级语言课程设计(C)要求与安排
2012年“计算机高级语言课程设计(C)”课程设计是实践性教学环节。
在C语言课程设计阶段,学生要通过模仿范例的练习最终完成独立的程序编制任务。
课程设计的目的是要让学生了解程序(软件)开发的规范方法,培养学生的实际编程能力。
在实际工作中,开发一个软件,在通过可行性论证后,软件交给用户使用前,一般要经过下列阶段。
需求分析/问题定义—设计—编写代码—组合测试学生在完成课程设计后,应该对程序开发的各阶段及其任务有所了解和体会,通过学习和实践,初步学习和掌握程序开发过程的规范性方法。
学生是否掌握程序开发过程的规范,完成任务是否合理、正确、完备,就要通过课程设计报告表达出来。
教材:张冬梅, 等编著. 《基于PBL的C语言课程设计及学习指导》(北京: 清华大学出版社, 2011)课程设计安排以上机实验的形式自学《基于PBL的C语言课程设计及学习指导》课程设计部分的内容为主,每位同学根据自己在班级中的序号,从该教材的第六章中选择对应序号的问题作为本次课程设计的题目,完成课程设计报告的编写。
最终的成绩将根据上机考勤、课程设计报告、软件程序的完成情况来确定,请大家认真完成。
课程设计报告的编写和提交要求1)课程设计报告必须按照《中国地质大学本科生课程论文》的模板编写,不符合格式要求的将扣分;2)最终必须提交的东东包括:纸质《课程论文》一份,《课程论文》电子版一份,软件程序源码和数据(能够运行出论文中的结果)一份。
3)提交的最后期限:2012年6月19日C课程设计上机时间课程设计报告的主要内容下面结合《基于PBL的C语言课程设计及学习指导》第5章的例题,说明课程设计报告的各部分应该包含的主要内容。
1、需求分析/问题定义每位学生都有一个要完成的题目。
题目代表了一个实际需要解决的问题或者某项工作的实际操作过程。
“需求分析”就是由程序编制人员在深入理解用户工作过程或者用户要求的基础上,描述将要交给用户的程序(应用系统)运行后的执行情况(功能和效果),它要描述计算机将如何模拟完成用户的各项任务。
2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报
(1)下列链表中,其逻辑结构属于非线性结构的是_________。
A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。
并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。
2012全国计算机二级C语言_公共基础知识
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
C语言课标
C语言程序设计课程标准(2012版)基础语言(C)教研室编订一、课程概述(一)课程性质《C语言程序设计》是国际上广泛流行的计算机高级程序设计语言,它集高级语言和低级语言的功能于一体,除了可用于操作系统的开发,也适合于工业控制、智能仪表、嵌入式系统和硬件驱动等方向。
同时它还具有效率高和可移植性强等特点,因此被称为当代最优秀的程序设计语言。
《C语言程序设计》是计算机应用专业的专业必修课程,主要任务是介绍C语言中的数据类型,运算,语句结构及其程序设计的基本方法。
本课程的开设意在培养学生的程序编译素质,提高学生的程序开发能力。
全国计算机等级考试、全国计算机应用技术证书考试和全国各地区组织的大学生计算机统一考试都将C语言列入了考试范围。
许多人用它编写应用软件。
学习C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。
(二)课程基本理念本课程以“基于工作过程”为指导,邀请知名教授对相关专业其他高级语言学习所需要的理论基础进行分析,并以此为依据确定本课程的工作任务和课程内容。
(三)课程设计思路根据软件技术专业所涉及到的计算机语言编程和高级编程技术运用与实施的技能与知识内容,设计若干个学习情境,实施情境化教学,使学生掌握信息系统常见的程序设计方法、基本的语法专业知识以及建立初步的程序设计思维逻辑,同时培养学生动手实践能力。
二、课程目标(一)总体目标:本课程的总目标是:“以学生为主体,以学生的学习为中心”,通过课程的实施,帮助学生学会学习。
使学生的知识、技能、情感得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,并为其将来从事专业活动和未来的职业生涯打下基础。
课程内容以“基础、实用”突出中职教育特点,确保人才培养目标的实现。
(二)具体目标1、知识目标要求学生掌握基本的程序编写技能。
学会利用常见的C程序开发工具的使用,掌握开发环境的配置,掌握常见菜单命令的使用以及整个窗口的布局设置。
掌握结构化或模块化程序设计技能,学会数组、函数、三大控制结构、结构体和共用体以及指针的使用。
2012广西壮族自治区数据分析入门
1、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。
采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。
本题要找p和q 的最近共同祖先结点r ,不失一般性,设p在q的左边。
后序遍历必然先遍历到结点p,栈中元素均为p的祖先。
将栈拷入另一辅助栈中。
再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p 和q的最近公共祖先。
typedef struct{BiTree t;int tag;//tag=0 表示结点的左子女已被访问,tag=1表示结点的右子女已被访问}stack;stack s[],s1[];//栈,容量够大BiTree Ancestor(BiTree ROOT,p,q,r)//求二叉树上结点p和q的最近的共同祖先结点r。
{top=0; bt=ROOT;while(bt!=null ||top>0){while(bt!=null && bt!=p && bt!=q) //结点入栈{s[++top].t=bt; s[top].tag=0; bt=bt->lchild;} //沿左分枝向下if(bt==p) //不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点{for(i=1;i<=top;i++) s1[i]=s[i]; top1=top; }//将栈s的元素转入辅助栈s1 保存if(bt==q) //找到q 结点。
for(i=top;i>0;i--)//;将栈中元素的树结点到s1去匹配{pp=s[i].t;for (j=top1;j>0;j--)if(s1[j].t==pp) {printf(“p 和q的最近共同的祖先已找到”);return (pp);}}while(top!=0 && s[top].tag==1) top--; //退栈if (top!=0){s[top].tag=1;bt=s[top].t->rchild;} //沿右分枝向下遍历}//结束while(bt!=null ||top>0)return(null);//q、p无公共祖先}//结束Ancestor2、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。
2012C程序教案新部编本
教师学科教案[ 20 – 20 学年度第__学期]任教学科:_____________任教年级:_____________任教老师:_____________xx市实验学校【教学课题】C语言简介【目的要求】了解C语言基本元素的组成,掌握VC6.0集成开发环境,C语言程序的结构,C语言程序的上机步骤【教学重点】上机操作的基本知识,C语言程序的结构【教学难点】C语言程序的结构,程序调试与错误定位【教学方法】任务驱动法、案例教学法、启发式教学【教学手段】讲授+演示+学生实践【作业布置】1、完成教材第一章课后总复习题。
一、提出任务,引入课题:简单应用问题:1、用C程序实现:让计算机输出一句问候语“你好,很高兴能认识你!”。
2、一个简单的C程序,其功能是求键盘输入的两个数中较大的数。
3、怎么让计算机执行并显示结果?其运行环境怎样?二、分析任务,讲授新课(一)VC++6.0运行集成开发环境简介1、启动与退出2、集成开发环境介绍:如图2-1所示。
(以任务1,任务2的实现为例讲解)图2-1 VC6.0集成开发环境VC6.0的集成开发环境主要由标题栏、菜单栏、工具栏、项目工作区窗口、源程序编辑窗口、输出窗口和状态栏7部分组成。
(二)C 语言简介 1、如何学习C 语言 紧紧抓住C 语言学习的主线。
如图2-2所示。
2、C 程序的构成(以上面所做的例题为例)从上面例子,我们对C 语言程序的基本组成和形式(程序结构)有了一个初步了解: (1)C 程序由函数构成(C 是函数式的语言,函数是C 程序的基本单位)。
(2)一个C 源程序至少包含一个main 函数,也可以包含一个main 函数和若干个其它函数。
函数结构预处理命令 语句结构常量、变量、表达式C语言学习主线(3)被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。
C函数库非常丰富,ANSI C提供100多个库函数,Turbo C提供300多个库函数(4)main函数(主函数)是每个程序执行的起始点。
2012计算机二级c语言答案
2012计算机二级c语言答案2012年3月计算机二级C语言试题及答案:版本一1-5BABAC 6-10CBBBA 11-15ADDCD 16-20DADCA 21-25CACCB 26-30BAAD版本二1~10 ADDAD ABCAA 11~20 AABCB DADCA21~30 CACAD CADCB 31~40 CADDB DCBDD版本三ADDAD CBCAC AABCB DADCC CACAD BACCB BDDDB DCBDDn-1 __ 数据操纵语言关系面向对象方法 a=1,b=2 2 2 k<=n 074 rgb 572 a[i++] cab Begin版本四BDDCD ABBCA ABACB DADCA CCCAD CAACA CDDDC DADDA 版本五选择题:BDCBB DADBA BBBDA ACADC DBCBA ABCDD CBCCD ADCAC填空题:n-1 29 数据操作语句;关键字;面向对象方法;a=1 b=2 2 3 k<=n 074 rgb 572 *(a+i) cab test 版本六DDABA DADAA DBCDD CCCDB DBBBA ABADC DDCCD ADCAC 版本七DDCDD ACADC DDBAD ABBAD ADADB CDCAB BBDBB CABDD (n-1)n/2 __ 数据操纵语言关系面向对象方法 a=1,b=2 ; k<=n 074 rgb 572 a[i++] cab Begin版本八BDCAD CBCBD ABDCC DADCA DACAD DAACB CACDC DCBDA版本九选择题:1—5 DDDBD 6—10 ACDAA 11—15 DDBAC 16—20 CBBAC 21—25 ADADC 26—30 BDDAB31—35 CBBBA 36—40 CABCD填空:n-1 29 数据操作关系面向对象方法 A=2,b=2 20 2 K<=n 074 rgb 572 A[i][0] abc Begintest版本十:选择题:1—5 BABAC 6-10CDBBA 11-15 BDDAD 16-20CAABB 21-25 BCCAB 26-30CBBAC 31-35 CDCCD 36-40DAAB版本十一:BDDAB CBCBD BDDDD CADCC BCCAC CABCA CDDCD DBBDC*说明:此信息仅供参考。
2012广西壮族自治区计算机等级考试试题 二级C试题考试技巧与口诀
1、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库2、在深度为5的满二叉树中,叶子结点的个数为(C)A. 32B. 31C. 16D. 153、下列叙述中正确的是(C)A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致4、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D)A. 调用语句B. 命令C. 口令D. 消息5、在一棵二叉树上第5层的结点数最多是(B) 注:由公式2(k-1)得A. 8B. 16C. 32D. 156、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是(A)A. 控制流B. 加工C. 数据存储D. 源和潭7、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库8、以下数据结构中不属于线性数据结构的是(C)A. 队列B. 线性表C. 二叉树D. 栈9、数据库设计包括两个方面的设计内容,它们是(A)A. 概念设计和逻辑设计B. 模式设计和内模式设计C. 内模式设计和物理设计D. 结构特性设计和行为特性设计10、程序流程图(PFD)中的箭头代表的是(B)A. 数据流B. 控制流C. 调用关系D. 组成关系11、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试12、希尔排序法属于哪一种类型的排序法(B)A.交换类排序法B.插入类排序法C.选择类排序法D.建堆排序法13、关系数据库管理系统能实现的专门关系运算包括(B)A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表14、下面描述中,符合结构化程序设计风格的是(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句15、下列叙述中正确的是(C)A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致16、下列工具中属于需求分析常用工具的是(D)A. PADB. PFDC. N-SD. DFD17、程序流程图(PFD)中的箭头代表的是(B)A. 数据流B. 控制流C. 调用关系D. 组成关系18、信息隐蔽的概念与下述哪一种概念直接相关(B)A.软件结构定义B. 模块独立性C. 模块类型划分D. 模拟耦合度19、下述关于数据库系统的叙述中正确的是(A)A. 数据库系统减少了数据冗余B. 数据库系统避免了一切冗余C. 数据库系统中数据的一致性是指数据类型的一致D. 数据库系统比文件系统能管理更多的数据20、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库21、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能22、在关系数据库中,用来表示实体之间联系的是(D)A. 树结构B. 网结构C. 线性表D. 二维表23、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试24、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D)A. 调用语句B. 命令C. 口令D. 消息25、将E-R图转换到关系模式时,实体与联系都可以表示成(B)A. 属性B. 关系C. 键D. 域26、关系表中的每一横行称为一个(A)A. 元组B. 字段C. 属性D. 码27、在软件开发中,下面任务不属于设计阶段的是(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型28、关系数据库管理系统能实现的专门关系运算包括(B)A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表29、在深度为5的满二叉树中,叶子结点的个数为(C)A. 32B. 31C. 16D. 1530、设有下列二叉树:图见书P46对此二叉树中序遍历的结果为(B)A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA31、希尔排序法属于哪一种类型的排序法(B)A.交换类排序法B.插入类排序法C.选择类排序法D.建堆排序法32、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D)A. 概要设计B. 详细设计C. 可行性分析D. 需求分析33、下列关于队列的叙述中正确的是(C)A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表D. 队列是先进后出的线性表。
2012C-1
(2) 编辑源文件。在编辑(Edit) 状态下可以根据需要输入或修改源程序。
(3) 编译源程序。选择“Compile”菜单并在其下拉菜单中选择“Compile to OBJ” , 则进行编译,得到一个后缀为.obj的目标程序。 然后再选菜单“Compile/Link EXE file”, 进行连接操作,可得到一个后缀 为.exe的可执行文件。 也可以将编译和连接合为一个步骤进行。选菜单“Compile/Make EXE file” 或按“F9”键,即可一次完成编译和连接。
C语言程序可移植性好。
在C语言所提供的语句中,没有直接依赖于硬件的语句,与硬件有关的操作都是 通过调用系统提供的库函数来实现的,而这些库函数本身并不是C语言的组成部 分。因此,用C语言编写的程序能够很容易地从一种计算机环境移植到另一种计 算机环境中。
适用场合:操作系统、应用程序、硬件的驱动
20
1பைடு நூலகம்3 C程序结构与格式
一个函数由两部分组成:
函数的首部:在函数的第一行。比如: int max(int x,int y )
函数体:包含两部分(声明部分和执行部分)
由左右花括号括起来的部分是函数体,函数体中的语句将实现程序的预定功能。 C程序总是从main函数开始执行的。
一行可以有多个语句,一个语句也可以写在不同行上。
29
1.5 上机编程和调试步骤
上机步骤 使用Turbo C 平台
(1) 调用 Turbo C 程序。如果用户的当前目录是 Turbo C 编译程序所在的子目录 (例如 TC 子目录),只需从键盘键入“tc” 命令即可:
图1.1
30
1.5 上机编程和调试步骤
上机步骤 使用Turbo C 平台
全国等考C语言2012年3月真题和答案详解
2012年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A)循环队列是队列的一种顺序存储结构 B)循环队列是队列的一种链式存储结构C)循环队列是非线性结构 D)循环队列是一种逻辑结构(2)下列叙述中正确的是A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表C)栈与队列都是非线性结构 D)以上三种说法都不对(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A)4 B)6 C)10 D)16(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A) 内模式 B)外模式 C) 概念模式 D)逻辑模式(5)在满足实体完整性约束的条件下A)一个关系中可以没有候选关键字 B)一个关系中只能有一个候选关键字C)一个关系中必须有多个候选关键字 D)一个关系中应该有一个或多个候选关键字(6)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接 B)并 C)差 D)交(7)软件生命周期的活动中不包括A)软件维护 B)需求分析 C)市场调研 D)软件测试(8)下面不属于需求分析阶段任务的是A)确定软件系统的性能需求 B)确定软件系统的功能需求C)指定软件集成测试计划 D)需求规格说明书评审(9)在黑盒测试方法中,设计测试用例的主要根据是A)程序外部功能 B)程序数据结构 C)程序流程图 D)程序内部逻辑(10)在软件设计中不使用的工具是A)系统结构图 B)程序流程图 C)PAD图 D)数据流图(DFD图)(11)针对简单程序设计,以下叙述的实施步骤顺序正确的是A)确定算法和数据结构、编码、调试、整理文档 B)编码、确定算法和数据结构、调试、整理文档C)整理文档、确定算法和数据结构、编码、调试 D)确定算法和数据结构、调试、编码、整理文档(12)关于C语言中数的表示,以下叙述中正确的是A)只有整型数在允许范围内能精确无误的表示,实型数会有误差B)只要在允许范围内整型数和实型数都能精确的表示C)只有实型数在允许范围内能精确无误的表示,整型数会有误差D)只有用八进制表示的数才不会有误差(13)以下关于算法的叙述中错误的是A)算法可以用伪代码、流程图等多种形式来描述B)一个正确的算法必须有输入C)一个正确的算法必须有输出D)用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码(14)以下叙述中错误的是A)一个C程序中可以包含多个不同名的函数B)一个C程序只能有一个主函数C)C程序在书写时,有严格的缩进要求,否则不能编译通过D)C程序中主函数必须用main作为函数名(15)设有以下语句char ch1, ch2; scanf("%c%c",&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A)A和B之间用逗号间隔 B)A和B之间不能有任何间隔符C)A和B之间可以用回车间隔 D)A和B之间用空格间隔(16)以下选项中非法的字符常量是A)'\101' B)'\65' C)'\xff' D)'\019'(17)有以下程序# include <stdio.h>main( ){ int a=0, b=0, c=0;c=(a-=a-5); (a=b,b+=4);printf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是A)0,4,5 B)4,4,5 C)4,4,4 D)0,0,0(18)设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是A)x++; printf("%d\n",x); B)n=++x; printf("%d\n",n);C)++x; printf("%d\n",x); D)n=x++; printf("%d\n",n);(19)以下选项中,能表示逻辑值“假”的是A)1 B)0.000001 C)0 D)100.0(20)有以下程序# include <stdio.h>main( ){ int a;scanf("%d",&a);if(a++<9) printf("%d\n",a);else printf("%d\n",a--);}程序运行时从键盘输入9<回车>,则输出结果是A)10 B)11 C)9 D)8(20)有以下程序# include <stdio.h>main( ){ int a;scanf("%d",&a);if( a++<9 ) printf( "%d\n",a );else prinft( "%d\n",a-- );}程序运行时从键盘输入9<回车>,则输出结果是A)10 B)11 C)9 D)8(21)有以下程序# include <stdio.h>main( ){ int s=0, n;for( n=0; n<3; n++ ){ switch(s){ case 0:case 1: s+=1;case 2: s+=2; break;case 3: s+=3;default: s+=4;}printf("%d,",s);}}程序运行后的输出结果是A)1,2,4, B)1,3,6, C)3,10,14, D)3,6,10,(22)若k是int类型变量,且有以下for语句for (k=-1; k<0; k++ ) printf("****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行一次 B)循环体执行两次C)循环体一次也不执行 D)构成无限循环(23)有以下程序# include <stdio.h>main( ){ char a,b,c;b='1'; c='A';for (a=0; a<6; a++){ if(a%2) putchar(b+a);else putchar(c+a);}}程序运行后的输出结果是A)1B3D5F B)ABCDEF C)A2C4E6 D)123456(24)设有如下定义语句int m={2,4,6,8,10}, *k=m;以下选项中,表达式的值为6的是A)*(k+2) B)k+2 C)*k+2 D)*k+=2(25)fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。
2012年全国C++语言版入门
{Pi,Pi+1,…,Pm-1}可唯一确定二叉树的右子树 。
11、4、 void LinkList_reverse(Linklist &L)
//链表的就地逆置;为简化算法,假设表长大于2
{
p=L->next;q=p->next;s=q->next;p->next=NULL;
else if(!p && q || p && !q) return (0);
else return(Similar(p->lchild,q->lchild) && Similar(p->rchild,q->rchild))
}//结束Similar
9、在有向图G中,如果r到G中的每个结点都有路径可达,则称结点r为G的根结点。编写一个算法完成下列功能:
if(bt==p) //不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点
{for(i=1;i<=top;i++) s1[i]=s[i]; top1=top; }//将栈s的元素转入辅助栈s1 保存
if(bt==q) //找到q 结点。
for(i=top;i>0;i--)//;将栈中元素的树结点到s1去匹配
}
r[i]=x;
}
4、设T是一棵满二叉树,编写一个将T的先序遍历序列转换为后序遍历序列的递归算法。
5、设T是一棵满二叉树,编写一个将T的先序遍历序列转换为后序遍历序列的递归算法。
6、设一棵二叉树的结点结构为 (LLINK,INFO,RLINK),ROOT为指向该二叉树根结点的指针,p和q分别为指向该二叉树中任意两个结点的指针,试编写一算法ANCESTOR(ROOT,p,q,r),该算法找到p和q的最近共同祖先结点r。
2012广西壮族自治区计算机等级考试试题二级C试题一点通科目一
2012广西壮族自治区计算机等级考试试题二级C试题一点通科目一1、用于描述内存性能优劣的两个重要指标是( D )A、存储容量和平均无故障工作时间B、存储容量和平均修复时间C、平均无故障工作时间和内存的字长D、存储容量和存取时间2、下列术语中,属于显示器性能指标的是( B )A、速度B、分辨率C、可靠性D、精度3、下列4种设备中,属于计算机输入设备的是( D )A、UPSB、投影仪C、绘图仪D、鼠标器4、第四代计算机的逻辑器件,采用的是( B )A、晶体管B、大规模、超大规模集成电路C、中、小规模集成电路D、微处理器集成电路5、DRAM存储器的中文含义是( B )A、静态随机存储器B、动态随机存储器C、静态只读存储器D、动态只读存储器6、以平均修复时间(MTTR),用于描述计算机的( B )A、可靠性B、可维护性C、性能价格比D、以上答案都不对7、个人计算机属于( C )A、小巨型机B、小型计算机C、微型计算机D、中型计算机8、在计算机领域中,通常用英文单词“bit”来表示( C )A、字B、字长C、二进制位D、字节9、1959年IBM公司的塞缪尔(A。
M。
Samuel)编制了一个具有自学能力的跳棋程序,这属于计算机在( D )方面的应用。
A、过程控制B、数据处理C、计算机科学计算D、人工智能10、在计算机的应用中,“MIS”表示( A )A、管理信息系统B、决策支持系统C、办公自动化D、人工智能11、下面都属于微型计算机输入设备的是( C )A、鼠标器。
绘图仪B、扫描仪,绘图仪C、键盘,条形码阅读器D、打印机,条形码阅读器12、下列4种设备中,属于计算机输出设备的是( C )A、UPSB、条形码阅读器C、绘图仪D、鼠标器13、性能价格比也是一种用来衡量计算机产品优劣的概括性指标。
性能代表系统的使用价值,它一般不包括( D )A、计算机的运算速度B、内存储器容量和存取周期C、通道信息流量速率及输入输出设备的配置D、计算机外形尺寸14、发现软盘带有计算机病毒后,比较彻底的清除方式是( C )A、用查毒软件处理B、删除软盘上的所有文件C、格式化软盘D、用杀毒软件处理15、静态RAM的特点是( A )A、在不断电的条件下,其中的信息保持不变,因而不必定期刷新B、在不断电的条件下,其中的信息不能长时间保持,因而必须定期刷新才不致丢失信息C、其中的信息只能读不能写D、其中的信息断电后也不会丢失16、在衡量计算机的主要性能指标中,字长是( A )A、计算机运算部件一次能够处理的二进制数据位数B、8位二进制长度C、计算机的总线数D、存储系统的容量17、通常说1.44MB软盘中1.44MB指的是( D )A、厂家代号B、商标号C、磁盘编号D、磁盘容量18、性能价格比也是一种用来衡量计算机产品优劣的概括性指标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。
用j 记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。
void Platform (int b[ ], int N)
//求具有N个元素的整型数组b中最长平台的长度。
{l=1;k=0;j=0;i=0;
while(i<n-1)
{while(i<n-1 && b[i]==b[i+1]) i++;
if(i-j+1>l) {l=i-j+1;k=j;} //局部最长平台
i++; j=i; } //新平台起点
printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);
}// Platform
2、设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉排序树并给出构造过程。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。
现要求采用循环链表结构设计一个算法,模拟此过程。
#include<stdlib.h>
typedef int datatype;
typedef struct node
{datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
void jose(linklist head,int s,int m)
{linklist k1,pre,p;
int count=1;
pre=NULL;
k1=head; /*k1为报数的起点*/
while (count!=s) /*找初始报数起点*/
{pre=k1;
k1=k1->next;
count++;
}
while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/
{ p=k1; /*从k1开始报数*/
count=1;
while (count!=m) /*连续数m个结点*/
{ pre=p;
p=p->next;
count++;
}
pre->next=p->next; /*输出该结点,并删除该结点*/
printf("%4d",p->data);
free(p);
k1=pre->next; /*新的报数起点*/
}
printf("%4d",k1->data); /*输出最后一个结点*/
free(k1);
}
main()
{linklist head,p,r;
int n,s,m,i;
printf("n=");
scanf("%d",&n);
printf("s=");
scanf("%d",&s);
printf("m=",&m);
scanf("%d",&m);
if (n<1) printf("n<0");
else
{/*建表*/
head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/
head->data=n;
r=head;
for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/
{ p=(linklist)malloc(sizeof(listnode));
p->data=i;
p->next=head;
head=p;
}
r->next=head; /*生成循环链表*/
jose(head,s,m); /*调用函数*/
}
}
4、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。
20分
void Hospital(AdjMatrix w,int n)
//在以邻接带权矩阵表示的n个村庄中,求医院建在何处,使离医院最远的村庄到医院的路径最短。
{for (k=1;k<=n;k++) //求任意两顶点间的最短路径
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (w[i][k]+w[k][j]<w[i][j]) w[i][j]=w[i][k]+w[k][j];
m=MAXINT; //设定m为机器内最大整数。
for (i=1;i<=n;i++) //求最长路径中最短的一条。
{s=0;
for (j=1;j<=n;j++) //求从某村庄i(1<=i<=n)到其它村庄的最长路径。
if (w[i][j]>s) s=w[i][j];
if (s<=m) {m=s; k=i;}//在最长路径中,取最短的一条。
m记最长路径,k记出发顶点的下标。
Printf(“医院应建在%d村庄,到医院距离为%d\n”,i,m);
}//for
}//算法结束
对以上实例模拟的过程略。
各行中最大数依次是9,9,6,7,9,9。
这几个最大数中最小者为6,故医院应建在第三个村庄中,离医院最远的村庄到医院的距离是6。
1、对图1所示的连通网G,请用Prim算法构造其最小生成树(每选取一条边画一个图)。
5、设T是一棵满二叉树,编写一个将T的先序遍历序列转换为后序遍历序列的递归算法。