电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

c语言公共基础知识

来源:莲生三十二作者:开心麻花2025-11-191

c语言公共基础知识(精选6篇)

c语言公共基础知识 第1篇

公共基础120题

(1)下面叙述正确的是______。(C)A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数 C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上三种描述都不对

(2)以下数据结构中不属于线性数据结构的是______。(C)A.队列 B.线性表 C.二叉树 D.栈

(3)在一棵二叉树上第5层的结点数最多是______。(B)A.8 B.16 C.32 D.15(4)下面描述中,符合结构化程序设计风格的是______。(A)A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B.模块只有一个入口,可以有多个出口 C.注重提高程序的执行效率 D.不使用goto语句

(5)下面概念中,不属于面向对象方法的是______。(D)A.对象 B.继承 C.类 D.过程调用

(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。(B)A.可行性分析 B.需求分析 C.详细设计 D.程序编码

(7)在软件开发中,下面任务不属于设计阶段的是______。(D)A.数据结构设计 B.给出系统模块结构 C.定义模块算法

D.定义需求并建立系统模型(8)数据库系统的核心是______。(B)A.数据模型 B.数据库管理系统 C.软件工具 D.数据库

(9)下列叙述中正确的是______。(C)A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统

C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致

(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。(A)A.内模式 B.外模式 C.概念模式 D.逻辑模式

(11)算法的时间复杂度是指______。(C)A.执行算法程序所需要的时间 B.算法程序的长度

C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数

(12)下列叙述中正确的是______。(A)A.线性表是线性结构 B.栈与队列是非线性结构 C.线性链表是非线性结构 D.二叉树是线性结构

(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。(B)A.349 B.350 C.255 D.351(14)结构化程序设计主要强调的是______。(B)A.程序的规模 B.程序的易读性 C.程序的执行效率 D.程序的可移植性

(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。(D)A.概要设计 B.详细设计 C.可行性分析 D.需求分析

(16)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。(A)A.控制流 B.加工 C.数据存储 D.源和潭

(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。(B)A.阶段性报告 B.需求评审 C.总结 D.都不正确

(18)下述关于数据库系统的叙述中正确的是______。(A)A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致 D.数据库系统比文件系统能管理更多的数据(19)关系表中的每一横行称为一个______。(A)A.元组 B.字段 C.属性 D.码

(20)数据库设计包括两个方面的设计内容,它们是______。(A)A.概念设计和逻辑设计 B.模式设计和内模式设计 C.内模式设计和物理设计 D.结构特性设计和行为特性设计(21)算法的空间复杂度是指______。(D)A.算法程序的长度 B.算法程序中的指令条数 C.算法程序所占的存储空间 D.算法执行过程中所需要的存储空间

(22)下列关于栈的叙述中正确的是______。(D)A.在栈中只能插入数据 B.在栈中只能删除数据 C.栈是先进先出的线性表 D.栈是先进后出的线性表

(23)在深度为5的满二叉树中,叶子结点的个数为______。(C)A.32 B.31 C.16 D.15(24)对建立良好的程序设计风格,下面描述正确的是______。(A)A.程序应简单、清晰、可读性好 B.符号名的命名要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无

(25)下面对对象概念描述错误的是______。(A)A.任何对象都必须有继承性 B.对象是属性和方法的封装体 C.对象间的通讯靠消息传递 D.操作是对象的动态性属性

(26)下面不属于软件工程的3个要素的是______。(D)A.工具 B.过程 C.方法 D.环境

(27)程序流程图(PFD)中的箭头代表的是______。(B)A.数据流 B.控制流 C.调用关系 D.组成关系

(28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。(A)A.数据库系统 B.文件系统 C.人工管理 D.数据项管理

(29)用树形结构来表示实体之间联系的模型称为______。(B)A.关系模型 B.层次模型 C.网状模型 D.数据模型

(30)关系数据库管理系统能实现的专门关系运算包括______。(B)A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表

(31)算法一般都可以用哪几种控制结构组合而成______。(D)A.循环、分支、递归 B.顺序、循环、嵌套 C.循环、递归、选择 D.顺序、选择、循环

(32)数据的存储结构是指______。(B)A.数据所占的存储空间量

B.数据的逻辑结构在计算机中的表示 C.数据在计算机中的顺序存储方式 D.存储在外存中的数据(33)设有下列二叉树:

对此二叉树中序遍历的结果为______。(B)A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA(34)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。(D)D.消息 A.调用语句 B.命令 C.口令

(35)检查软件产品是否符合需求定义的过程称为______。(A)A.确认测试 B.集成测试 C.验证测试 D.验收测试

(36)下列工具中属于需求分析常用工具的是______。(D)A.PAD B.PFD C.N-S D.DFD(37)下面不属于软件设计原则的是______。(C)A.抽象 B.模块化 C.自底向上 D.信息隐蔽

(38)索引属于______。(B)A.模式 B.内模式 C.外模式 D.概念模式

(39)在关系数据库中,用来表示实体之间联系的是______。(D)A.树结构 B.网结构 C.线性表 D.二维表

(40)将E-R图转换到关系模式时,实体与联系都可以表示成______。(B)A.属性 B.关系 C.键 D.域

(41)在下列选项中,哪个不是一个算法一般应该具有的基本特征______。(C)A.确定性 B.可行性 C.无穷性

D.拥有足够的情报

(42)希尔排序法属于哪一种类型的排序法______。(B)A.交换类排序法 B.插入类排序法 C.选择类排序法 D.建堆排序法

(43)下列关于队列的叙述中正确的是______。(C)A.在队列中只能插入数据 B.在队列中只能删除数据 C.队列是先进先出的线性表 D.队列是先进后出的线性表

(44)对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。(B)A.N+1 B.N C.(N+1)/2 D.N/2(45)信息隐蔽的概念与下述哪一种概念直接相关______。(B)A.软件结构定义 B.模块独立性 C.模块类型划分 D.模拟耦合度

(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。(C)A.模拟现实世界中不同事物之间的联系 B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。(C)A.详细设计 B.需求分析 C.总体设计 D.编程调试

(48)软件调试的目的是______。(B)A.发现错误 B.改正错误 C.改善软件的性能 D.挖掘软件的潜能

(49)按条件f对关系R进行选择,其关系代数表达式为______。(C)A.R|X|R B.R|X|R f C.бf(R)D.∏f(R)(50)数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。(D)A.自顶向下 B.由底向上 C.由内向外 D.由整体到局部

(51)在计算机中,算法是指______。(C)A.查询方法 B.加工方法

C.解题方案的准确而完整的描述 D.排序方法

(52)栈和队列的共同点是______。(C)A.都是先进后出 B.都是先进先出

C.只允许在端点处插入和删除元素 D.没有共同点

(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。(A)A.cedba B.acbed C.decab D.deabc(54)在下列几种排序方法中,要求内存量最大的是______。(D)A.插入排序 B.选择排序 C.快速排序 D.归并排序

(55)在设计程序时,应采纳的原则之一是______。(A)A.程序结构应有助于读者理解 B.不限制goto语句的使用 C.减少或取消注解行 D.程序越短越好

(56)下列不属于软件调试技术的是______。(B)A.强行排错法 B.集成测试法 C.回溯法 D.原因排除法

(57)下列叙述中,不属于软件需求规格说明书的作用的是______。(D)A.便于用户、开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据 C.作为确认测试和验收的依据 D.便于开发人员进行需求分析

(58)在数据流图(DFD)中,带有名字的箭头表示______。(C)A.控制程序的执行顺序 B.模块之间的调用关系 C.数据的流向 D.程序的组成成分

(59)SQL语言又称为______。(C)A.结构化定义语言 B.结构化控制语言 C.结构化查询语言 D.结构化操纵语言

(60)视图设计一般有3种设计次序,下列不属于视图设计的是______。(B)A.自顶向下 B.由外向内 C.由内向外 D.自底向上(61)数据结构中,与所使用的计算机无关的是数据的______。(C)A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构

(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。(D)A.ABCED B.DBCEA C.CDABE D.DCBEA(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。(B)A.顺序存取的存储结构、顺序存取的存储结构 B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构 D.任意存取的存储结构、任意存取的存储结构(64)在单链表中,增加头结点的目的是______。(A)A.方便运算的实现 B.使单链表至少有一个结点 C.标识表结点中首结点的位置 D.说明单链表是线性表的链式存储实现

(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。(B)A.模块间的关系

B.系统结构部件转换成软件的过程描述 C.软件层次结构 D.软件开发过程

(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。(B)A.PAD图 B.N-S图 C.结构图 D.数据流图

(67)数据处理的最小单位是______。(C)A.数据 B.数据元素 C.数据项 D.数据结构

(68)下列有关数据库的描述,正确的是______。(C)A.数据库是一个DBF文件 B.数据库是一个关系

C.数据库是一个结构化的数据集合 D.数据库是一组文件

(69)单个用户使用的数据视图的描述称为______。(A)A.外模式 B.概念模式 C.内模式 D.存储模式

(70)需求分析阶段的任务是确定______。(D)A.软件开发方法 B.软件开发工具 C.软件开发费用 D.软件系统功能

(71)算法分析的目的是______。(D)A.找出数据结构的合理性

B.找出算法中输入和输出之间的关系 C.分析算法的易懂性和可靠性 D.分析算法的效率以求改进

(72)n个顶点的强连通图的边数至少有______。(C)A.n-1 B.n(n-1)C.n D.n+1(73)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。(B)A.堆排序 B.直接插入排序 C.快速排序 D.直接选择排序

(74)用链表表示线性表的优点是______。(A)A.便于插入和删除操作

B.数据元素的物理顺序与逻辑顺序相同 C.花费的存储空间较顺序存储少 D.便于随机存取

(75)下列不属于结构化分析的常用工具的是______。(D)A.数据流图 B.数据字典 C.判定树 D.PAD图

(76)软件开发的结构化生命周期方法将软件生命周期划分成______。(A)A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段 C.总体设计、详细设计、编程调试 D.需求分析、功能定义、系统设计

(77)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。(C)A.循环的集合 B.地址的集合 C.路径的集合 D.目标的集合

(78)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。(D)A.数据无冗余 B.数据可共享

C.专门的数据管理软件 D.特定的数据模型

(79)分布式数据库系统不具有的特点是______。(B)A.分布式 B.数据冗余

C.数据分布性和逻辑整体性 D.位置透明性和复制透明性

(80)下列说法中,不属于数据模型所描述的内容的是______。(C)A.数据结构 B.数据操作 C.数据查询 D.数据约束

(1)算法的复杂度主要包括______复杂度和空间复杂度。答:时间

(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。答:模式#逻辑模式#概念模式

(3)若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。答:黑盒

(4)如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。答:一对多#1:N#1:n(5)关系数据库管理系统能实现的专门关系运算包括选择、连接和______。答:投影

(6)在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。答:中序

(7)结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。答:模块化

(8)软件的调试方法主要有:强行排错法、______和原因排除法。答:回溯法

(9)数据库系统的三级模式分别为______模式、内部级模式与外部级模式。答:概念#概念级(10)数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。答:数据存储

(11)设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。答:250(12)在最坏情况下,冒泡排序的时间复杂度为______。答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)(13)面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。答:实体

(14)软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。答:需求获取

(15)______是数据库应用的核心。答:数据库设计

(16)数据结构包括数据的______结构和数据的存储结构。答:逻辑

(17)软件工程研究的内容主要包括:______技术和软件工程管理。答:软件开发

(18)与结构化需求分析方法相对应的是______方法。答:结构化设计

(19)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。答:参照完整性

(20)数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。答:概念

(21)栈的基本运算有三种:入栈、退栈和______。答:读栈顶元素#读栈顶的元素#读出栈顶元素

(22)在面向对象方法中,信息隐蔽是通过对象的______性来实现的。答:封装

(23)数据流的类型有______和事务型。答:变换型

(24)数据库系统中实现各种数据管理功能的核心软件称为______。答:数据库管理系统#DBMS(25)关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。答:查询

(26)实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。答:空间复杂度和时间复杂度

(27)数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。答:存储结构

(28)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。答:可重用性

(29)面向对象的模型中,最基本的概念是对象和 ______。答:类

(30)软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。答:完善性

(31)算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有穷性

(32)顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。答:相邻

(33)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。答:数据结构

(34)数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

答:概念设计阶段#数据库概念设计阶段

(35)数据库保护分为:安全性控制、______、并发性控制和数据的恢复。答:完整性控制

(36)测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。答:调试

(37)在最坏情况下,堆排序需要比较的次数为______。答:O(nlog2n)(38)若串s=“Program”,则其子串的数目是______。答:29(39)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。答:1对多#1:N(40)数据库管理系统常见的数据模型有层次模型、网状模型和______三种。答:关系模型

c语言公共基础知识 第2篇

1.每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数中结束。

2.在C语言中,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。

3.用单引号括起来的一个字符常量只能存放一个字符;C语言中没有字符串变量,只能用字符数组来存储字符串。

4.外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

5.在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。

6.用sizeof(int)计算int类型数据的字节数。

7.C语言运行时,首先系统检查语法的正误,再运行程序的语法;C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。

8.预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。

9.feof函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。

10.当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。

11.在赋值表达式中,赋值运算符“=”右侧不能为表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。

12.静态局部变量,只有当程序结束后,其值才释放。

13.当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。

14.算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同;算法正确的程序最终一定会结束。15.在C语言中,预处理命令行都以“#”开头;当需要时才用#include;预处理的作用就是实现宏定义和条件编译。16.当数组元素的下标超出了定义的下标范围时,系统不给出“下标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。

17.共用体变量不能作为函数的参数,也不能使函数带回共用体变量。

18.指向函数的指针变量的定义形式为:数据类型(*指针变量)();,因此其为指向函数的指针变量。

19.用C语言编写的代码程序是源程序,只有通过编译、连接才能进行。

20.在说明为static时,其生存期得到延长,而其作用域并没有改

变,在定义后系统会自动帮它赋值为0,static为关键字不能被用作它用。

21.频繁地使用空语句会降低程序的可读性和运算速度。22.运算符%两边都应是整数,赋值语句左边应该是变量,而非表达式,强制转换语句强制类型应加括号。

23.在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。

24.函数fread(&Iarray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的数据存储到数组Iarray中。25.整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。

26.使用putchar、getchat、puts、gets、printf、scanf函数时,必须在程序的开头出现包含头文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含头文件#include”string.h”命令行,而使用数学函数时,必须在程序的开头出现包含头文件#include”math.h”的命令行。

27.一个斜杠与小于等于127任意数字按一个字符计算,一个斜杠与任意一个字符按一个字符计算。

28.一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。

29.根据C语言规定,注释语句可以换行写,并且一个“/*”和

其后紧跟的第一个“*/”中间的部分是注释内容,且注释内容不参与程序的运行。例如:b=0;/*b=20;给b赋值*/ 则b=0。30.sizeof是求字节数的运算符,包括‘’,而strlen是求字符串的实际长度的函数,不包括‘’,以‘’作为结束。31.在函数声明时,其中的形参变量、个数、函数的类型必须一致。

32.C语言源程序经编译后生成后缀为.obj的目标程序;C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件;用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。

33.switch括号后的表达式可以使任何表达式;case后的表达式必须是常量表达式,常量表达式中不能出现变量,且类型必须是整数、字符型或枚举型。

34.C程序必须由一个或一个以上的函数组成;函数调用可以作为一个独立的语句存在;若函数有返回值,必须通过return语句返回。

35.在C语言中,数据只能从实参单向传递给形参,称为“按值”传递。【在实参传递到形参时,是数值传递,而不是地址传递,形参中值的改变不会影响实参中的值。】

36.可以用typedef声明新的类型名来代替已有的类型名,而不能

增加新的类型。

37.在没有限制输出宽度时,一般浮点数的小数位数是6位,不管输出格式是%f或lf%均如此。

38.C语言中,函数的隐含存储类别是无存储类别。

39.当实参传递到形参时,地址传递时形参的改变影响实参。40.串的长度指的是串中的字符的个数,且其字符个数可以为零。41.C语言中数据类型有整型、实型、字符型等,实行数据分为单精度型和双精度型两种。

42.整型数组只能一个一个地输入或输出,而在字符型数组中可以对字符串整体地输入与输出。

43.C语言中,文件型指针变量的定义形式为:FILE *文件型指针名。C语言中对二进制文件的访问速度比文本文件快;C语言中,随机文件以二进制代码形式存储数据;C语言中的文本文件以ASCII码形式存储数据。

44.因为#define是宏定义的标志,而不是C语句,而printf是输出函数,因此其是C语句。

45.在实参传递给形参时,地址传递时能够改变,而数值传递时则不变。

46.在scanf函数中,必须含有输入项,并且需含有与之一一对应的转换说明符,在scanf函数的格式字符前可以加入一个正整数指定输入数据的宽度,但不可以实数指定小数位的宽度,输入项是地址表达式。

47.switch语句使用注意事项:(1)switch语句与if语句不同,仅能判断一种关系:是否恒等;(2)switch语句中case子句的常量可以使整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许变量;(3)在同一个switch中,case子句的常量不能相同,在嵌套的switch语句中,不同层次的switch之间,可有相同的常量;(4)default子句可以省略。例如:default:printf(“En”);(5)case和default子句只能在switch语句中使用,且case和default只起标号作用,可出现在switch中的任何位置;(6)case和default子句后面的语句序列允许由多个可执行语句组成,且不必用“{}”括起来,也可以为空语句;(7)switch语句中可省略break语句,但省略后会改变流程。

48.break语句是限定转向语句,它使流程跳出所在的结构,把流程转向所在结构之后。continue语句被称为继续语句。该语句的功能是使本次循环提前结束,即跳过循环体中continue语句后面尚未执行的循环体语句,继续进行下一次循环的条件判别。

49.在C语言中,一个程序必须有一个main()函数,但是其文件就不一定,因为其可以通过链接来实现多个子函数放到这个主函数中,主函数的位置是不固定的,可以根据自己的爱好和习惯来使用,在C语言中任何函数都不能调用主函数,且与函数的位置有关。在C程序的函数中不能定义另一个函

数。

50.在用fprintf输入时,要将其转换为二进制数形式放到文件中。51.由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。而目标程序为“.obj”,可执行程序为“.exe”。52.在C语言中,合法的标识符可以由字母、数字和下划线组成,且第一个字符必须为字母或下划线。

53.C语言规定必须以main作为主函数名。程序要从main()函数开始执行,最后在main()函数中结束。54.赋值运算符左侧的操作数必须是一个变量。

55.在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。

56.在一个C语言源程序文件中所定义的全局变量,其作用域为:由具体定义位置和extern说明来决定范围。【全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。】

57.C语言中,凡是以“#”号开头的行,都成为“编译预处理”。对C原程序进行编译前,由编译预处理程序对这些变异预处理命令进行处理。

58.typedef语句的作用仅仅是用“标识符”来表示已存在的“类型名”,并未产生新的数据类型。

59.共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。60.C语言中注释可以出现在任意位置;C语言一行内可以写多个语句,一个语句可以写在多行上;C语言编写的程序可以放在多个程序文件中。

61.标识符只能由数字、字母和下划线组成,并且只能以字母和下划线开头。

62.在用基本输出语句printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出,如果格式说明个数多余输出项个数,则对于多余的格式项输出不定制或0。

63.二维数组定义和初始化允许省略行下标,不允许省略列下标。64.预处理命令行是在系统对原程序进行编译之前进行处理的,不是在程序执行的过程中。

65.gets和getchar函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入。

66.动态变量和静态变量都是内存变量,而寄存器变量不保存在内存上,而是直接存储在CPU的寄存器中。变量的存储类别有自动、静态、寄存器、外部。

67.C语言的源程序是由函数构成的,其基本单位是函数,每一个函数完成相对独立的功能,其中至少包括一个主函数;C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上;C语言规定每个语句以分号结束。可随时添加注释,对程序没影响。

68.由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”。由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指令和数据。所以计算机能识别的程序是“目标程序”。而计算机可以直接执行的是可执行程序,即后缀为.exe的程序。

69.C语言源程序不能表示二进制,她

在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制3种形式表示。

70.宏名没有大小写限制。宏定义可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。宏代换可以代替任何数据类型,不受数据类型的限制。函数影响运行时间,宏调用影响编译时间。

71.字符数组可以只存放普通字符,不存放字符串。此时该字符数组没有存放结束标志‘’。

c语言公共基础知识 第3篇

关键词:C语言教学方法,高校教学方法,任务驱动法,程序设计

据资料统计,我国80%以上的城市家庭都拥有计算机,并联通了互联网;社会上几乎所有行业都普及了计算机。信息化时代的到来,使得社会对计算机能力的需求提高,每个高等院校都逐步认识到了计算机课程在整个高校人才培养计划中的重要性。各高校理工科专业的学生一般都开设有“计算机基础”和“C语言程序设计”这两门计算机课程,对于前者教师以任务为驱动,学生结合教材通过自学或同学之间讨论等能完成教师布置的基本任务。疑难之处由教师分析讲解,学生学会操作、应用即完成了教学任务。而程序设计需要学生领会求解的思想方法,需有较强的逻辑思维能力,并通过语言加以实现。随着计算机课教学改革的深化,教学质量的不断提高,越来越多的人注意到:教学质量的提高决不能单纯依靠一本教材,必须突出以教材为主、结合各种教学手段和教学方法,最大限度地调动学生主动学习的积极性和探索知识的创新性。本文将从自身教学的实践出发,结合C语言程序设计这门课程的教学特点,谈一下对C语言程序教学方法的几点体会。

1 激发学生学习C语言的兴趣

1.1 注重入门教育

人们常说“良好的开端是成功的一半”。第一节课是导课,我们每位老师面临的就是如何在第一节课激起学生学习本门课的兴趣。我们可以从社会各行业对应聘者的要求出发(需要英语和计算机过级证)来说明学习的重要性。然后,可以举例说明学好本门课可以到达什么样的水平,可以获得什么相关的认证等等。最后可以演示几个用C语言编写的程序,如俄罗斯方块等让学生知道,如果你学好了,可以玩自己编的游戏,用自己编的软件。

1.2 选用生动有趣的题材

心理学家布鲁纳强调:“学习最好的刺激乃是对所学材料的兴趣。”由于C语言学习相对而言比较枯燥,为了防止学生在学习过程中产生厌学现象,我在上课过程中尽量选用生动有趣的题材,来提高学生的学习兴趣,同时培养学生的逻辑思维。在讲解算法时,我就选用了“野人传教士过河问题”,让同学们帮传教士过河。设有3个传教士和3个野人来到河边,打算乘一只船从右岸渡到左岸去。该船的最大负荷能力为两个人。在任何情况下:如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他们怎样才能用这条船安全地把所有人都渡过河去呢?同学们兴趣十足,都积极思考,争先恐后地将自己的方法说出来。有的同学还在思考,看还有没有其他的方法。对其它章节的内容,我也是精心准备题材。基本上每次课我都会留一个思考题让同学们课下思考,在下次课开课前告诉我解题方法。所以一学期下来,很少有同学缺课的。

2 培养学生分析问题的能力

2.1 采用“任务驱动法”教学

所谓“任务驱动法”教学,简言之就是“先结果后过程”,在学习过程中,学生在教师的帮助下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机的驱动下,通过对学习资源的积极主动应用,进行自主探索和互动协作的学习,并在完成既定任务的同时,引导学生产生一种学习实践活动。是一种以解决问题、完成任务为主的多维互动式的教学理念。例如在讲授到循环结构时,我就把“韩信点兵”的典故讲给学生听,自然就激起了他们学习的欲望;快下课时,我又留了“鸡兔同笼”的问题,让学生根据自己所学的知识想方设法来完成任务。这种教学方式目标明确,让同学们很喜欢,从而达到教学目的。

2.2 通过现实生活中的例子剖析算法,提高学生编程能力

在讲授if语句时,有一个实例“输入三个数a,b,c,要求按由小到大的顺序输出。”[1],程序如下:

有同学对交换两个变量(如a和b)的值时要引入中间变量t感到不解。我便拿出两个杯子,一杯水、一杯豆浆。问同学们假如要交换这两个杯子里的溶液该怎么办?同学们马上想到借助一只空杯:先把水倒入空杯,然后把豆浆倒入(原先放有水的)杯中,最后把空杯中的水倒入豆浆杯中,实现了两个杯子里的溶液交换。通过这个例子,同学们很快掌握了交换两数的值和交换两个杯子里的溶液是一个道理。

在C语言中对于要使用的变量我们都要先赋初值再使用,可有些同学总是记不住。我就拿来一个空的粉笔盒,将粉笔倒在一边。向同学们展示是一个空的粉笔盒,然后当着同学们的面,向里面放入一支粉笔,问同学们,粉笔盒里有几支粉笔?同学们都说有一支。我再背着他们向粉笔盒里放了几支粉笔,然后当着同学们的面,也向里面放入一支粉笔,问同学们,现在粉笔盒里有几支粉笔?同学们的回答就不一致了,有说4支,有说6支,也有说不知道的。我就问他们,为什么不知道?他们都说没看清刚开始粉笔盒里有几支粉笔,所以不知道。通过这个例子,同学们也很快掌握了要使用的变量在运算前一定要有确切的值。

3 重视上机,提高学生编程能力

程序设计是一门实践性很强的课程,上机调试是学好程序设计课程的重要环节[2]。要学好C语言课程就必须上机反复练习。通过实践加强对理论的掌握。然而,当前在计算机教学过程中普遍存在的问题是“重理论轻实践”,纸上谈兵。

实践教学主要体现在以下两个方面:一是互动性,重视学生的参与。在教学中必须坚持以学生为本,让学生多多参与,亲自动手,亲自操作。二是要把学业与就业、创业紧密结合,更加注重职业素质的培养,努力使学生通过上机实践获得就业的技能和创业的本领。

我在一学期布置了不少课下的作业,有些是只要解题思路,有些是要编程实现。对于要编程实现的作业我都要求同学们在上机课时将自己编写的程序调试一下,从中发现问题,解决问题。充分调动学生的主动性。如,同学们在编写水仙花数时,对于未知的一个三位数,学生不知如何求其个位、十位和百位上的数字。发现这个问题后,我及时引导他们用一个已知数试试,让他们求432的百位数4、十位数3和个位数2,找到方法后再将此方法应用到未知三位数的求解算式中。

4 多鼓励,少批评,调整学生的学习心态

没有人不喜欢听别人表扬自己的,小学生如此,大学生也如此。C语言这门课程有大量的作业要学生完成,如果教师将作业收上来,只是简单的批一个“阅”字,打几个“√”或“”,久而久之,学生就会认为老师没有认真批改作业,就会有学生应付、抄袭甚至是不交作业。所以,每次布置作业后,我都会及时批改,并在下次课前对学生的作业进行点评。对于作业做得不错的学生,当众表扬,对基础薄弱的学生,加强鼓励。

程序设计的方法比较灵活。一个题目可以有好几种解题思路,正可谓“条条大道通罗马”,为此我总是要求学生思考多种解题思路,鼓励学生多探究。对于在作业中有多种解题思路的同学,我都会及时表扬,并让这些同学在课堂上将自己的想法与同学们分享。这样,同学们的思路都扩宽了。而且有的同学为了得到答案,还自己上网查找学习资料和程序,同学们之间也经常交流解题方法,激发了他们的学习兴趣,大大提高了同学们的学习能力。

5 与时俱进,更新教学手段

因特网的高速发展和校园网的广泛普及为我们改革传统的教学模式提供了新的契机。目前,网络的应用给我们的实验教学提供了很好的平台。我们学校对于C语言程序设计这门课都提供了多媒体教室上课,机房也全天对同学们开放。课上,老师可以借助投影仪将程序演示给同学们看,还可以上网将一些适用的益智游戏打开让同学们演练,提高大家的分析能力。

我们通常将C语言教学分为语言教学和程序设计教学两部分。语言教学主要涉及C语言的变量类型、运算符、语句及语法规则,没有深奥理论,也没有多少逻辑推理,所以采用CAI教学比较合适;程序设计教学则以算法为主,而最复杂、最灵活的就是算法,不能用CAI教学。必须采用传统方法教学,即老师提出任务,学生自己寻找合适的算法,然后再评讲[3]。

另外,为了能让同学们及时和老师或他人交流学习体会,我们建立了C语言课程的教学网站,通过网站可以实现课件下载、在线学习、模拟考试、例题分析、在线答疑、论坛等多方面内容。并且,我还专门建立了C语言学习的QQ群,在课下和同学们进行沟通。

6 结束语

学习是无止境的,只要能培养学生的学习兴趣,激发他们学习C语言的潜能,就能改变过去学习程序设计语言的无味。总之,在以培养学生创新能力和实践动手能力为主的思想指导下,C语言课最终要形成由理论课、实验/实践课、课程作业设计构成的课程体系。通过电子教案、习题集、试题库、教学网站等一系列的措施,使学生可以通过各个渠道来深化对该课程的理解和掌握,最大限度地激励了学生学习计算机的主动性和强烈的求知欲[4]。

参考文献

[1]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[2]邓连波,江南.工科专业C语言教学方法研究[J].电脑知识与技术,2007(13):218-219.

[3]曾立梅,周属衡.关于C语言教学方法的探索[J].计算机教育,2004(6):64-68.

c语言公共基础知识 第4篇

关键词 C语言 软件编程 实验探讨

中图分类号:TP3 文献标识码:A

1 C语言的概述

在各种计算机编程语言中,C语言属于一门高级语言,它是一切计算机语言的基础,拥有高级语言和低级语言的特点,灵活方便,简洁紧凑;而且它的语法限制不严格,程序员在设计时程序书写自由。不仅能够编写系统软件,同时还可以编写应用软件,能够适应于多种操作系统,应用广泛,可移植性强。总之,C语言对于信息技术的发展具有十分重要的作用和价值。

2基于C语言的计算机软件编程实验研究

2.1C语言的编程技巧

(1)灵活运用指针

在C语言编程的时候,指针是一种特殊类型的变量,它能够帮助程序员有效的表达和解决程序设计过程中遇到的复杂问题,熟练掌握指针是必要的。指针具有三要素:指针名以及指针类型和值。在编程时,指针和一般变量名相同,但是在类型以及值上具有区别,另外,指针不仅能够被用于表示数组,还可以被作为函数的参数返回值。

(2)C 语言的特有函数

在C语言编程的时候,有时需要用到一些特有函数。函数都具有一定的功能,同时函数名也反映了该函数的功能。在进行函数定义时,程序员需要把函数的名字、返回值类型以及参数名等各项都进行定义。另外,因为库函数是由C 编译系统提供的,这些函数均是系统首先定义好的,在程序调用的时候,程序员只需利用“#include 指令”把与之相关的头文件包含到所用文件中即可。

(3)算法技巧

在程序设计的过程中,算法是程序的灵魂,因此,掌握一定的算法技巧是必不可少的。通常情况下,算法不仅可以用自然语言表示,有的时候也利用流程图表示。需要注意的是,利用流程图表示算法时,程序设计员必须熟练掌握常用的流程图符号。且“数学乃是计算机之母”,牢固的数学知识同样能够提升编程效率。

(4)位运算以及文件知识

相比其他计算机高级语言的运算方法,位运算作为C 语言的重要特色,具有独特性和唯一性。位运算是以二进制位为对象,然后结合相关程序要求进行各种运算。文件包含有数据文件以及程序文件,是计算机不可缺少的,程序设计员在进行编程时,需要把所写的程序存储的文件之中,这样可以便于程序员查找数据,提升查找效率。

2.2 C语言和汇编语言混合的程序设计案例分析

(1)混合的软件编程方法

随着信息技术的不断发展和应用,在软件开发过程中,大多时候需要使用两种语言混合编程,有效地提高了程序的开发效率。通常情况下,混合的软件编程方法有两种,具体如下:

①把汇编语句嵌入C语言程序中。例如,把asm汇编语句嵌入到C语言源程序中:/*把5送到ax寄存器*/当把一组汇编语句嵌入到C语言源程序中,则需要利用大括号把嵌入程序给括起来:在本次的实验之中,在进行程序嵌入时,有其固定的格式,需要在嵌入的各行代码之前加“asm”关键字,也可以直接在asm代码块中放入汇编语句。但是程序设计者在进行嵌入时,一定要注意满足以下条件:汇编语言指令代码中关键字asm必不可少,且要放在指令代码之前;嵌入汇编语言指令代码能够和正常C语言程序混合,但是C语言的分隔符“;”必不可少;嵌入汇编语言时C语言的注释分界符必不可少,分别是“/*”和“*/” 。

②首先编写C语言程序以及汇编程序,然后独立编译目标代码模块,最终进行链接。

首先,在进行混合编程时,C语言程序能够调用汇编语言的各种子程序以及其定义的变量,同时,C语言编写的函数以及定义的变量等也可以被汇编语言调用。而且混合编程的过程中,一个任务往往是由若干个功能模块组成,且不同的功能模块均是利用合适的语言进行独立编程,且以函数的形式存在。因此,程序设计者要根据每一模块的特点选择相应的语言和语言编程系统进行独立编程,并形成目标文件,继而连接目标文件,形成完整的可执行文件。在混合编程的过程中,设计者需要注意五个问题:参数传递问题;寄存器的使用问题;存储模式;变量以及函数的调用问题;子程序的返回值问题。其中,关于参数传递问题,在进行C语言程序调用汇编程序时,必须遵从参数传递原则,利用堆栈把参数传递给汇编程序。例如,在C语言程序中含有函数:voidaa(char*p,inti),这个函数是利用汇编语言进行编写的,如果编译是在小内存模式下实施的,系统在进行调用时,则写成aa(&q, n);运行时程序首先把n压入堆栈,然后再把&q压入堆栈,当参数传递过来并被汇编语言的子程序取得时,BP寄存器便被用作基地址寄存器,实现对栈中所存数据进行存取操作。

(2)混合的软件编程实例分析

程序的主要功能是在五个数中寻找最小数,有主程序“min.c” 以及汇编子程序“qiumin.asm”这两个部分组成。其中主程序是利用C语言编写,汇编子程序是利用汇编语言编写,被主程序调用,主要于完成寻找最小数。程序代码如下:

/*文件名为:min.c*/

/*声明qiumin为外部函数*/

利用C语言和汇编语言混合的编程方法,能够实现应用程序局部满足高运行速度的要求,但是在具体的运用之中,程序设计者仍需要注意寄存器分配以及内存模式等因素对于程序的影响;且在运行时,因为程序设计语言之间存在相互调用的外部接口,故可以实现外部调用。

参考文献

C语言基础知识实例讲解 第5篇

这篇文章旨在让各位对 C 有个总体的认识,有看不懂的地方请不必太在意,只要记住就可以了,继续往下学下去就会明白的。

首先请看下面这个简单的 C 程序,猜猜它会做些什么。猜不出来也没关系,后面会有详细的解说。

#include

int main(void)

/* 一个简单的程序 */

{ intnum;

/* 声明一个名叫num的变量 */ num = 1;

/* 将 1 赋值给num

*/

printf(“This is a simple C program.”);/* 调用printf函数 */ printf(“My favorite number is %d because it is first.”, num);

return 0;

}

在对这个程序进行详细说明之前,我想先请您用编译器把它编译成可执行文件,并且运行,看看运行结果和您的猜想是否一致。如果不懂如何进行编译,请参考以下文章:

下面,我将分两步对这个程序进行详细的讲解。第一步是概要说明,也就是对程序中每一行代码的含义作简单讲解,以帮助您对这个程序有一个大致的理解。第二步是详细说明,也就是程序中的每一行代码进行详细的讲解,以加深您的理解。

一、概要说明

#include <-

把另外一个文件包含进来

这行代码命令编译器把头文件(.h 文件)stdio.h中的内容包含到我们的 程序中。stdio.h是C语言的标准头文件之一,提供对键盘输入和显示输出等的 支持。要使用printf函数,就应该包含这个头文件。顺带一提,stdio代表

standard input/output,也就是标准输入输出的意思。

int main(void)

<-

函数头

C 程序由一个或多个函数组成。我们的这个程序只有一个函数:main 函数。圆括号()表明 main 是一个函数;int表明 main 函数返回一个整数;void 表明

main 函数不接受任何参数。在此,请您紧记,int main(void)是 ISO/ANSI C 标准中定义的 main 函数定义方法之一。

/* a simple program */

<-

注释

/* 和 */ 用于对程序进行注释说明,帮助读者更快更好地理解程序。编译器 会忽略 /* 和 */ 之间的内容(包括 /* 和 */),不会对它们进行编译。

{

<-

函数体的开端

这个开大括弧 { 标志着函数体开始。函数体以闭大括弧 } 结束。在 { 和 } 之间的语句都属于这个函数。

intnum;

<-

声明变量num 这个语句表明我们声明了一个名叫num的变量。int表明这个变量为 整型变量。

num = 1;

<-

赋值语句

这个语句将 1 赋值给变量num。执行这个语句后,num的值等于 1。

printf(“This is a simple C program.”);

<-

函数调用语句

printf函数是 C 语言标准函数库里的函数。这个语句调用printf函数在

屏幕上显示“This is a simple C program.”,并且换行。是换行符,它提示

printf开始新的一行,也就是将光标移动到下一行的开端。如果上面的语句中没有,那就不会换行,而且光标会紧跟在“This is a simple program.”后面。

printf(“My favorite number is %d because it is first.”, num);

%d 告诉printf用num的值替换掉 %d,并且以整数形式显示num的值。因为num的值为 1,所以这个语句在屏幕上显示“My favorite number is 1

because it is first.”,并且换行。

return 0;

<-

返回语句

C 程序应该返回一个数值给它的调用者。0 代表程序无误退出;而其它数字的含义

则由系统决定。通常,非零(如-1)代表程序运行中遇到某种错误而退出。

}

<-

函数体结束 函数体以闭大括弧 } 结束。

二、详细说明

现在,让我们进一步来了解每一行代码的含义。下面的内容很基础,也很重要,必须认真弄懂,牢牢掌握。

1.#include 预处理指令和头文件

在编译器对我们写的源程序进行编译之前,预处理器会对我们的写的源代码

进行必要的处理,称为预处理。#include 就是一个预处理指令,它命令预处理器 进行的预处理是:把特定的头文件包含到我们的源代码里。

#include 的作用是将头文件stdio.h里的内容包含进我们的程序,产生的结果是将stdio.h里的内容一字不漏地插入 #include 出现的 地方,并且删除 #include 。换句话说,就是用stdio.h里的内容替换

#include 。这个过程是在预处理阶段完成的。C 语言的这种包含文件的 机制为多个程序共享相同信息提供了极大的方便。

stdio.h是 C 语言标准中定义了的头文件,它包含着输入输出函数的信息。

所有 C 编译器都应该有这个头文件,这是 ANSI/ISO C 标准中规定的。当然,ANSI/ISO C 规定的编译器必须提供的头文件可不止这么一个。标准还规定了许多 别的头文件,那些我们会在以后慢慢学到。

有些程序需要包含stdio.h,而有些不需要。如果上面这个例子中没有使用

printf函数,那就不需要包含stdio.h。

头文件中包含着编译器进行编译时所需的信息。头文件中可能指明了函数名和

函数调用方法,但是这些函数的实现代码并不在头文件中,而是在预先编译好了的 库文件里。

链接器负责在库文件中寻找我们的程序所需的代码,并且把那些代码和我们写的 程序进行链接,从而将我的写的程序链接成可执行文件。一句话,头文件用于指导 编译器正确地将我们写的源程序编译成可执行文件。

2.main 函数

在 C 语言中,main 函数是主函数。每个 C 程序都必须有且只能有一个

main 函数(主函数)!C 程序从 main 函数开始执行,并且在 main 函数中结束。int是 main 函数的返回值类型,它表明 main 函数应该返回一个整数给程序的 调用者(如操作系统)。

如果您想了解更多关于 main 函数的东西,请点击下面的链接:

C/C++ 误区一:void main

3.注释

/* a simple program */

/* */ 之间的内容都是注释。对程序进行适当的注释可以帮助读者(包括您自己)

更快更好地理解您写的代码。注释可以在源程序中的任何地方书写。/* 和 */ 之间的 任何内容(包括 /* 和 */)都会被编译器忽略掉。注意:/ 和 * 必须紧挨在一起,它们之间不能有空格。

/* 我是注释 */

/*我是 跨行注释*/

/* 我也是注释

*/ 以上的注释都是合法的;但下面的注释是非法的,因为没写注释结束标记 */。

/* 非法,没有注释结束标记 下面这个注释可能会出乎你的意料:

/* 我是注释开始标记

/* 哦哦,我不是注释开始标记

我是注释结束标记,我和第一个 /* 匹配,而不是和第二个 /* 匹配。*/ 上面这个注释中,注释结束标记 */ 和第一个 /* 匹配,它们之间的内容 都被视为注释。

C99 中增加了另外一种注释方式,这种注释方式使用 // 作为注释符,和 // 处于同一行,并且在 // 右边的内容都被当作注释。/ 和 / 之间不能有空格。

// 我是注释

intrigue;

//注释放在这里也是合法的

上面的注释在 C99 中是合法的,但是在 C89 中是非法的。也就是说,老旧的 编译器可能不支持 // 注释符。VC6 支持 //,TC2 不支持。

4.大括号与函数体

C 语言中,所有函数都以大括弧({ })作为界定符。函数体从开大括弧 { 开始,以闭大括弧 } 结束。在后续教程中,我会对函数进行更详细的讲解。

5.intnum;

这个语句声明了变量num。这一行末尾的分号(;)表明这一行

是一个语句。;是语句的一部分,单独一个;也是一个合法的 C 语句。

int是 C 语言中的一个关键字,它代表 C 语言里的一种基本数据类型:整型。

关键字是语言的保留字,不能用作其它用途。例如:我们不能关键字来做变量名或者 函数名。

标识符是指我们为变量或函数等取的名字。在这个语句中,num就是标识符。

C 语言中,所有变量在使用前都必须声明。C89 中,变量的声明必须位于 函数体或者程序块的开端。例如: int main(void)/* C89 */

{ /* 函数体开始 */ int doors;int dogs;doors = 5;dogs = 3;

{ /* 程序块开始 */ int dig;int dug;dig = 6;dug = 8;

} /* 程序块结束 */

return 0;

} /* 函数体结束 */ 而在 C99 中,声明可以位于函数体或者程序块的任何地方。但是,变量仍然 需要在声明之后才可使用。例如: int main(void)/* C99 */

{ /* 函数体开始 */ int doors;doors = 5;

{ /* 程序块开始 */ int dig;dig = 6;int dug;dug = 8;

} /* 程序块结束 */ int dogs;dogs = 3;

return 0;

} /* 函数体结束 */ 上面的程序在 C99 中是合法的,但是在 C89 中却是非法的。当前支持C99 的 编译器不多,所以上面的代码您的编译器很有可能编译不了。故而,为了使我们的 代码具有良好的可移植性,我们应该尽可能少用,甚至不用 C99 中的新特性。

6.赋值

num = 1;赋值是 C 语言中的一种基本操作。上面的语句是一个赋值语句,它的含义 是:将 1 赋值给变量num。赋值操作完成后,num的值等于 1。

7.printf函数

printf(“This is a simple C program.”);printf(“My favorite number is %d because it is first.”, num);

这两行代码都调用了printf函数。printf是一个标准 C 函数,也就是说,它是 C 语言标准函数库里定义了的函数。圆括号()表明printf是一个函数,圆括号里的内容会被传递给printf函数。例如,上面第一行代码把“This is a simple C program.”(不包括双引号)传递给printf函数,然后由printf 函数把这些信息显示于显示器。是换行符,它提示printf开始新的一行。正因为是换行符,所以不会显示出来,而是进行了换行。如果上面的语句中 没有,那就不会换行。

上面代码第二行中的 %d 告诉printf用num的值替换掉 %d,并且以 整数形式显示num的值。

%d 被称为占位符,它告诉printf应该在什么地方显示num的值。% 用于 提醒printf在此处显示一个变量的值(本例中是num的值);d 告诉printf以 十进制整数的形式显示num的值。

8.return(返回)语句

return 0;这个 return 语句是我们程序中的最后一个语句。int main(void)中的int 表示 main 函数应该返回一个整数,所以我们要使用 return 语句来返回一个整数。如果您想了解更多关于返回值的东西,请点击下面链接,查看文章的第四点。

C/C++ 误区一:void main

上面所说的某些内容您暂时可能还不太理解,但是不用害怕,牢牢地把它们记住,然后继续往下学吧!随着学习的深入,就会逐渐搞明白。现阶段只要有这个概念就足够了。

C语言程序实例讲解(二)首先请看以下代码,并且和我们的第一个 C 程序比较比较,看看这个程序新增了什么知识点。

/* meter2centimeters.c--以厘米为单位来表示两米 */

#include

int main(void){ int meters, centimeters;meters = 2;

centimeters = 100 * meters;/* 100 乘以 meters */ printf(“%d-meter is equal to %d centimeters.”, meters, centimeters);printf(“Yes, I said %d centimeters!”, 100 * meters);

return 0;}

下面我们来仔细分析这个小程序。

1.文档

这段代码头部的注释标明了文件名和程序的作用,我们把这些注释称为文档。写文档是一个很好的习惯,可以帮助我们了解程序的作用。在由多个源文件组成的程序中,文档显得更为重要。由于我们目前为止所写的都是很简单的程序,您也许还不觉得写文档有多大的作用,甚至还觉得浪费时间。但是我们应该养成写文档的习惯,这对我们以后写复杂的程序很有帮助。对于复杂程序,我们应该尽可能把文档写得更详尽。可以参考以下格式: /*************************************************** * 文件名: meter2centimeters.c * 作者:Antigloss at http://stdcpp.cn * 编写日期: 05-9-9 0:00 * 最后修改日期: 05-9-9 0:00 * 功能:以厘米为单位来表示两米 * 算法: 1 米 = 100 厘米

**************************************************/

2.多重声明

int meters, centimeters;上面那句声明语句声明了两个变量。我们可以在一句声明语句中声明任意数目的变量,只要变量名之间用逗号(,)隔开就可以了。例如下面这个语句声明了 4 个变量。int a, b, c, d;

3.乘法运算

C 语言中,* 是乘法运算符,所以 centimeters = 100 * meters;的意思是:用 100 乘以变量 meters 的值(本例中为 2),然后把相乘的结果赋值给变量 centimeters。

4.printf函数

C语言入门基础教案 第6篇

教学目标:

一认知目标:了解C语言的特点和C语言的开发步骤

二能力目标:初步了解C程序的组成结构和主函数的作用;

掌握五种基本算术运算符的使用:+、—、*、/、%,了解优先级与结合性;

三情意目标:学习C语言基础上能使用Microsoft Visual C++6.0 进行基本的C程序开发

教学要求:

识记:

计算机程序设计语言的一些必备知识与理论 理解:

理解C程序的组成结构和主函数的作用;

理解C语言等高级程序设计语言的开发过程

理解C语言中各种运算的运算规则,由运算符和相关数据组成表达式的方法;

运用:

能使用printf()函数进行信息的输出;

能编写简单程序

教学重点:

1)计算机程序设计语言的理论知识,语言的分类和特点以及开发过程等; 2)C语言的简介,结构特征和特点等;

3)如何使用Microsoft Visual C++ 6.0进行C语言程序开发; 4)C语言源程序的结构介绍及基本语法的简介; 5)C语言源程序的书写要求;

6)C语言基础:函数的组成、标识符及其命名、变量的声明、变量的赋值、各种算数运算符的使用及优先级与结合性等。

教学难点:

如何让学生理解C语言的结构及语法基础还有源程序的书写要求,掌握对函数的组成、标识符及其命名、变量的声明、变量的赋值、各种算数运算符的使用及优先级与结合性等

授课方法: 讲授法与演示法相结合计算机程序设计语言基础

一新课导入

大家都听过程序员没?或者是网络上俗称调侃的码农?对,简单讲就是编写计算机代码的工作。在新世纪大家对与计算机相关的软件和产品都不陌生,每个人都使用过计算机软件如微信,QQ等等,那这些软件又是怎么开发出来的呢?简单来讲它们是怎么产生的呢?对,它们都是使用计算机程序编写出来的。今天我们就来学习了解下计算机程序设计语言。

二新课讲授

1计算机程序设计语言介绍及分类 程序概念:程序是由一系列指令组成的,为解决某一具体问题而设计的一系列排列有序的指令的集合。

程序设计语言分为三类:机器语言、汇编语言、高级语言。 机器语言:一台计算机中所有指令集合称为该计算机的指令系统,这些指令就是机器语言,它是一种二进制语言。

优点:面向机器、程序简洁、运行速度快;

缺点:不直观、难懂、难记、难写、难以修改和维护

 汇编语言:使用符号(助记符)来代替机器语言中的二进制代码

优点:质量高、执行速度快、占用内存少

缺点:面向机器,与机器语言基本上一一对应,具有机器语言的缺点

 高级语言:接近自然语言,使用英语单词表达语句,便于理解、记忆和掌握

优点:通用性强,便于理解、记忆和掌握 缺点:不能直接运行源程序,运行速度相对慢

2高级程序设计语言的开发过程

 分析问题、建立模型  表现模型  源程序的编写  程序的编译与连接  程序的测试与调试C语言的特点

① 既有高级语言的程序思想与设计方法,又有低级语言的操作能力; ② 结构化体系

③ 可以直接访问内存的物理地址,丰富的运算符和数据类型 ④ 可移植性强 ⑤ 代码效率高 使用Microsoft Visual C++ 6.0开发C语言程序(1)启动Microsoft Visual C++ 6.0(2)(3)(4)(5)新建项目 新建文件

在出现的文本窗口中输入程序 编译并运行程序 C源程序的结构特征

#include

/*编译预处理,包含标准输入输出文件头文件*/ Int main(void)/*主程序名*/ {

/*表示函数的开头*/ Printf(“Hello,World!n”);

/*函数体*/ Return 0;}

/*表示函数的结束*/

说明:

(1)程序一般用小写字母书写;

(2)C程序是由函数构成的,函数是C程序的基本单位;(3)每个程序必须要有一个main()(只能有一个),称主函数;(4)程序体必须要在{}之间;

(5)每个语句的结尾,必须要有“;”作为终止符;(6)用/*..........*/作注释,//可作行注释;

三归纳小结

本节主要介绍了计算机程序设计语言及分类以及高级程序设计语言的开发过程,重点介绍C语言的特点和使用Microsoft Visual C++ 6.0开发C语言程序的步骤,最后由最简单的C语言源程序来学习了解C语言的重点基本规则。

四 课堂巩固练习

带领学生使用演示如何使用Microsoft Visual C++ 6.0开发环境,并演示简单的C语言源程序整个开发过程步骤。

五作业布置

在电脑上安装Microsoft Visual C++ 6.0软件,并学会新建项目和文件,将helloworld程序编辑运行出来,并练习其他输出语句的程序设计。

六后记

c语言公共基础知识

c语言公共基础知识(精选6篇)c语言公共基础知识 第1篇公共基础120题(1)下面叙述正确的是______。(C)A.算法的执行效率与数据的存储结构无...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部