《C语言程序设计》基本知识点解答(一)_第1页
《C语言程序设计》基本知识点解答(一)_第2页
《C语言程序设计》基本知识点解答(一)_第3页
《C语言程序设计》基本知识点解答(一)_第4页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言程序设计基本知识点解答(一)第章计算机基础知识Q001?计算机的基本原理是什么?(计算机的基本原理)A001?计算机的基本原理有两个:1. 二进制:是指计算机中所有的信息都是以二进制形式的数据来表示、存储、传递和运算的。2. 存储程序控制: 是指在利用计算机解决问题时, 首先需要人找出解决方法, 然后将这个方法用某种计算机语言转换成计算机程序(包含了原始数据和处理指令) ,再送入计算机中存储,最后由人发出命令,计算机开始按照程序中的指令和流程执行这个程序(即对数据进行加工处理)。Q002?为什么计算机内部使用二进制?(二进制)A002?使用二进制的主要原因是:1. 物理上很容易实现两种

2、相对立的稳定的能量状态(如晶体管的导通与不导通、高电平与低电平、磁性材料中剩磁的顺时针或逆时针方向等)2. 二进制数据的运算规则数量少而且简单,操作实现简便Q003?计算机硬件的基本结构是什么?(硬件)A003?运算器中央处理器 CPU控制器主机内存储器硬件存储器系统外存储器外设输入输出设备( I/O )Q004?计算机硬件系统的核心部件有哪些?它们的作用是什么?(硬件)A004?计算机硬件系统的四大核心部件是控制器、运算器、存储器和输入输出设备。其中:控制器是计算机的指挥控制中心。 其主要功能是识别翻译指令代码并向计算机各部分发出适当的控制信号,以便执行机器指令。运算器是对数据进行加工、运算

3、的部件。其主要功能是对二进制数据进行算术运算和逻辑运算。存储器是存放数据和程序的部件。其主要功能是按照要求向指定的位置存进或取出信息。输入设备的功能是将数据和程序送入到计算机的存储器中。常见的输入设备有键盘、鼠标等。输出设备的功能是将计算机产生的结果送出计算机外。常见的输出设备有显示器、打印机等。Q005?计算机的基本工作过程是怎样的?(硬件)(工作过程)A005?I/O控制器运算计算程序命令指存取命令原始数据令命令输入输入取数存储器运算器输出设备输出存数计算结果控制流数据流Q006?内存储器和外存储器有哪些区别?(存储器)(内存)A006?主要区别如下表所示:结构物理组成作用内存储器(主存储

4、器)外存储器(辅助存储器)属于硬件系统的主机部分, 位于主机板的属于硬件系统的外设部分, 与运算器和控插槽上,与运算器和控制器直接联系进行制器必须通过一定的硬件接口相联系进数据交换行数据交换电介质:半导体集成电路磁介质:磁盘或磁带计算机断电会使内存数据丢失磁介质损伤或消磁会使数据丢失存放计算机系统运行期间正在执行的各存放系统程序、各种应用程序和数据文件种程序和数据等当前不参与运行的大量信息Q007?什么叫存储单元的“位”和“字节”?(内存)(字节)(位)A007?“位”(bit ):是最小的电子线路单元,只能保存一位二进制数即一个0 或一个 1。因此一个“位”单元可以保存的最大的十进制数是1。

5、“字节”(byte ):是由若干个“位”组成的逻辑单元。微机中, 1 字节 8 位。字节是最基本的数据存储单元, 即数据在内存中的存储是以 “字节” 为基本单位的。 任何数据总是占据整数个 “字节”单元 。Q008?什么叫存储单元的地址和内容?(内存)A008? 存储器从第一个字节开始到最后一个字节为止, 每一个字节单元在了逻辑上依次有一个 “编号” ,这个编号就叫内存单元的地址。而有这个地址所指向的内存单元中存放的数据就叫该内存单元的内容。Q009?计算机是如何在内存单元中找到需要的数据的?(内存)A009? 计算机总是首先找到所需数据所在字节单元的地址 (编号),再到该地址所指向的内存单元

6、去读取内存单元的内容(数据的值) 。Q010?什么是“机器语言”?(语言)A010?计算机能直接执行的用于表示机器指令的二进制数字代码称为“机器语言”,也就是机器指令集合。典型的机器语言程序如下:1010 11110011 01110111 0110等等几百个指令很显然,这样的语言写的程序不易记忆和理解,使用、修改和维护都很费时费力,而且不易推广。Q011?什么是“汇编语言”?(语言)A011?使用一些符号来代表指令、寄存器、存储单元等机器指令中的要素,然后用这些符号来写程序。使用这些助记符代码的语言,叫做“汇编语言” 。典型的汇编语言源程序如下:MOV A, 47翻译之后就是 1010111

7、1ADD A, B00110111HALT01110110等等几百个指令优点:比机器语言易理解、记忆和使用,速度与机器语言相仿。大量用于实时控制。不能独立于机器。汇编语言源程序必须经过“汇编程序”的汇编后才能执行。Q012?什么是“高级语言”?(语言)A012?使用与人类的自然语言和数学语言相近的符号和运算符构成的语言,叫做“高级语言”。典型的 C语言源程序如下:void main()int a=1, b=2, c;c=a+b;printf("c=%dn", c);优点:独立于机器,通用性和可移植性强;容易理解、记忆和学习,使用方便,源程序较短。缺点:不能够直接执行,源程序

8、必须经过“编译程序”的编译或“解释程序”的解释后形成目标程序才行。执行速度慢,系统开销大。Q013?计算机中表示数据的基本原则是什么?(数据)A013?计算机中表示数据的基本原则是:一个数据总要占据一定数目的字节单元(整数个字节、有限个字节)。不同类型的数据占据不同数目的字节单元(比如,PC机 DOS环境下一个整数占2 个字节,一个实数占 4 个字节)。所有数据都是以二进制数的补码形式表示的。当要表示一个数据的正负号时,总是用该数据所占字节单元的所有位中最高一位表示数的符号(0表示正, 1 表示负)。Q014?什么叫“定点数”和“浮点数”?(数据)(定点数)(浮点数)A014?在计算机中,小数

9、点位置固定的数被称为定点数。定点数有定点整数和定点小数两种。定点整数:小数点默认为在一个二进制数最低位的后面。如图所示:Ns1010101符号位数值部分小数点定点小数:小数点默认为在一个二进制数最高位( 符号位 ) 的后面。Ns1010101符号位小数点数值部分在计算机中,既有整数部分又有小数部分的数被称为浮点数。称之为“翻译程序”的程序,把“源程序”翻译成二进制形式的“目标程序”这些 “翻译程序”当中的一种。 C 语言就是一种“编译”语言,即是说,用必须经过“ C 编译器”的编译才能变成二进制的代码。第一章C 语言基础知识Q015?什么是“ C”?( C)A015?在现代社会中,组织处理信息

10、的能力是成功的关键。设计计算机的目的就是为了快速而有效地处理大量信息。 但是除非有人告诉计算机该干什么和怎么干, 否则它什么事情也不能做。 这就是计算机编程语言诞生的原因, 而 C语言就属于一种计算机编程语言。 它是一种能够让软件工程师与计算机之间进行有效对话的介于汇编语言和高级语言之间的编程语言。 C 语言非常灵活而且适应性强。自 1970 年诞生之日起, 它一直被用来开发各种各样的程序, 包括用于微控制器的固化软件、操作系统、应用程序和图形程序。Q016?什么是“ C+”?( C+)A016?C+是 C语言改进之后的产物。这种语言最初被称为“带类的C”(C with class)。它增加了

11、一些特性,其中最重要的特性就是引入了“类” 。“类”是根据面向对象的程序设计(OOD)思想来创建的,它能使代码便于重复使用。C+语言完全兼容C 语言,学好 C 有助于 C+的学习。Q017?如何学习“ C”?( C)A017? 学习和掌握一门编程语言的最终途径是用这门语言编写程序。事实上,在编写程序之前和之后也有很多很重要的工作要做。总的来说, 遵循这样一个过程是必有收获的,即:读别人写的程序自己动手写程序调试这个程序直到成功。这就如同下围棋:打棋谱亲自下棋复盘。Q018?什么是计算机程序?(程序)A018?计算机程序主要由两部分组成:数据与指令。在一个计算机程序当中,数据和指令总是在满足语法

12、规则的前提下, 由程序员按照某种组织形式安排好它们, 从而来描述对某个具体问题的已经预先制定出来的解决方法和步骤。程序员使用数据来描述他要操作的信息,使用指令来描述操作的方法、过程和步骤。Q019?什么叫“源程序”?(程序)A019? 源程序特指用汇编语言或高级语言编写出来的,计算机不能够直接识别并执行的数据和代码的集合。源程序必须经过某种“翻译”过程才能变成计算机能够识别的指令。这个“翻译”过程对于汇编语言源程序叫做“汇编” ,对于高级语言源程序有“编译”或“解释”两种翻译方法。 C 语言源程序采用是“编译”的方法。Q020?什么是“编译器”?(编译器)A020?从根本上说, 计算机不能直接

13、识别和执行有高级语言编写的“源程序”,因此必须使用一种。而“编译器”就是 C 语言写出的源程序Q021?我怎么能得到 C 的“编译器”?(编译器)A021?世界上有很多厂商和团体开发了很多的“C 编译器”,有商业版本的,也有完全免费的。比较有名的 C编译器有 Microsoft C , Turbo C , Borland C ,Watcom C,GNU C等等。商业版本的编译器往往性能更好,所附带的函数库也更丰富, 但是需要花钱购买。因此,如果主要目的是为了学习 C语言,那么完全可以使用免费的 C编译器。比如 Turbo C 和 GNU C。你可以在有关公司的网站上或者很多有关 C语言的个人网

14、站上下载这些免费的编译器。另外一点,由于 C+是完全兼容 C 的,所以你也可以使用 C+编译器来编译你的 C 源程序。同样,你也可以在互联网上下载到免费的 C+编译器,比如 Inprise 公司(原 Borland 公司)的 C+Builder 编译器。Q022?程序的基本结构和特点是什么?(C程序)(程序结构)A022? 1. 一个程序是由函数构成的。语言又被称作“函数式语言” 。 函数可能是系统库函数或用户自定义函数。使用函数构成程序可以容易实现结构化程序设计方法。2. 一个程序中必须有一个 main 函数,而且只能有一个。 无论主函数位于程序的何处, 程序都由它开始执行。3. 一个函数由

15、两部分组成:函数原型和函数体。函数原型确定函数名,形参数量和类型,函数的返回值及其类型;而函数体包含在一对中,由若干语句组成以实现函数功能。4. 每个语句必须以分号结束。5. 可以用 /*/ (块注释符)在程序中任何地方作注释。注释的内容不会被编译。6. 程序的书写格式很自由。Q023?什么是“函数”?(函数)A023? 函数是按照一定语法规则被封装好了的,能够完成特定功能的一段代码模块。使用函数构成程序可以容易实现结构化程序设计方法。Q024?什么是“系统库函数”和“用户自定义函数”?(函数)A024? 系统库函数是指随同某个版本的 C 编译器一起发布的已经实现了的函数集合。用户往往不能得到

16、这些函数的源代码,但是可以在自己的程序里调用这些函数从而实现相应的功能。不同公司、不同版本的 C编译器所附带的库函数不尽相同, 但是所有的 C 编译器都会附带一个被称之为“标准库函数”的函数库。因此,在使用标准库函数编程时,可以不考虑编译器的版本问题,因为所有的编译器都支持它们。 另外也有一些独立软件供应商会提供第三方的需要单独购买的具有特定功能的函数库。而用户自定义函数是指用程序员自己编写的完成所需功能的函数。比如,每个 C 程序中都包含的 main 函数就是一个用户自定义函数。Q025?C 语言有哪些“系统库函数”?(函数)A025?每个版本的编译器都会发送对所附带的库函数的分类列表和字母

17、顺序列表以及详细说明手册。另外,也可以查找编译器所附带的在线帮助系统来寻求信息。 还可以购买有关专家编写的函数使用手册。如果是标准库函数的话,你可以在互联网上找到它们的使用说明。Q026?什么是 main 函数?( main 函数)(主函数)A026?在 C程序当中, main 函数是一个具有特定名称和特殊地位的用户自定义函数。无论主函数位于源程序的何处,程序都从它的第一个语句开始执行,到执行完最后一个语句结束。在 main 函数的函数体中, 通过调用系统库函数或其它的用户自定义函数来完成整体的功能。 而其它的自定义函数是不能调用main 函数的。Q027?C 程序中,如何定义一个函数?(函数

18、)A027?定义一个函数包括定义函数头和定义函数体。格式如下:函数值类型函数名(函数形参列表)函数体函数头指示了该函数与其它函数不同的唯一的函数名, 执行该函数时所必须提供的输入信息, 以及函数执行结束后得到的值的类型。函数体包含若干个语句来具体实现该函数的功能。Q028?C 程序中,函数体为什么要包含在大括号而不是其它的括号当中?(函数)A028? 函数体总要包含在一对特定的符号中以形成封装的模块。其它的高级语言可能使用的是其它的符号,而 C语言中就是使用的大括号。这是规定。Q029?什么叫“语句”和“语句结束符”?(语句)(语句结束符)A029? 一个语句就是一条命令。一个语句在编译后会变

19、成很多条机器指令,告诉计算机做什么事情。语句可以很简单, 也可以很复杂。为了区分程序中的若干个语句,每种语言都必须指定一个符号来标示语句的结束,这个符号就叫语句结束符。 C 语言中的语句结束符是分号。又是规定。Q030?什么叫“注释”?(注释)A030?注释是指在源程序中,对代码本身以及代码所设计的相关信息进行说明和注解的字符序列。为了区别源程序中的注释内容和正式的内容,必须用某种界定符号包围注释。Q031?在编写计算机源程序中,为什么要添加“注释”?(注释)A031? 现代计算机的运行速度已经很快, 所以对计算机程序的要求从原来的程序大小、 算法效率、编程的技巧性等等已经转变为程序的可读性和

20、可维护性。 而添加适当的注释是保证和增强程序可读性和可维护性的最重要的手段之一。 对大型的程序尤其如此。 对没有注释或注释不科学的程序进行维护和二次开发,其代价和成本是无法估计阿。 因此,对程序员来讲,一开始就养成给程序写注释的习惯是至关重要的,这已经成为评价一个程序员水平高低的重要标准。Q032?在 C 程序中,如何添加“注释”?(注释)A032?C 语言中,用成对出现的/* /来告诉编译器,包含在/*/之间的所有内容都是注释。编译器在对源程序进行编译时,将忽略和跳过这些内容。Q033?对于 C 程序的书写格式有何规定?(格式)A033? C 程序的书写格式是很自由的。你只要不把一个完整的符

21、号或一个常量拆开,其它的都可以随便安排。Q034?在编写计算机源程序时,为什么要遵循一定的书写规范?(格式)A034? 原因很简单也很重要:保证和增强程序的可读性和可维护性。一幅漂亮的书法会使人赏心悦目,可一幅涂鸦则会使人雅兴大减。Q035?关于良好的书写规范和编码习惯,有何建议?(格式)A035?只是建议,并非规定,但事实上已经约定俗成:1. 适当的注释会大大增加程序的可读性和可维护性2. 一行尽量只写一个语句3. 使用有规则的缩进式代码排列方式4. 在需要的地方加上一些空行5. 起有意义和易于分辨的符号名Q036? C 源程序是如何运行的?( C 程序)(运行)A036?上机输入和编译源程

22、序编辑源程序文件 *.cYesNo目标程序有错?文件 *.objNo链接可执行程序文件 *.exe调试执行NoYes结果正确?结束Q037?什么是 IDE?( IDE)(集成开发环境)A037?是集成开发环境 Integrated Develop Environment 的缩写。 IDE 包含了编辑器 Editor 、编译器 Compiler 、连接程序 Linker 、项目管理程序 Project Manager 、调试器 Debugger、在线帮助系统 Online Help System 和其它一些辅助开发工具 Other Tools 。用户的所有开发工作都可以在一个 IDE 中完成。Q

23、038?怎么学习使用 IDE?( IDE)(集成开发环境)A038?最好的方法就是查看IDE 自带的在线帮助系统。绝大多数的IDE 都带有详尽的帮助系统,对 IDE 本身的组成、 功能和使用有详细的说明。 除此之外,帮助系统中还包含对所有库函数和辅助工具的使用说明。因此,一定要学会看帮助。当然,这对你的计算机英语水平有较高要求。Q039?什么叫“预编译”?(预编译)A039?在对源程序进行正式编译之前所做的一些处理工作叫做预编译。最常见的预编译工作就是用 include 包含文件和用 define 进行符号替换。 C 源程序中,所有的预编译命令都由 #号开头。使用预编译命令,可以提供 C语言本

24、身不包含的一些扩充功能。Q040?什么叫“编译”?(编译)A040? 将高级语言源程序翻译成二进制代码的目标程序的一种方法和过程。完成这个过程的是一个专门的程序,叫“编译器” 。Q041?什么叫“连接”?(连接)A041?将编译后的二进制目标程序和有关函数库进行连接并打包成可执行程序的过程叫做连接。完成这个过程的是一个专门的程序,叫“连接器”。Q042?什么叫“调试”?(调试)A042?一个程序永远不可能一次就完全写正确,总会存在这样那样的错误。有些错误属于简单的语法错误,有些错误属于复杂的逻辑错误, 有些错误直到程序运行时才有可能发现。 检查并排除所有这些错误直到程序完全正确的过程就叫调试。

25、 编写一个大型的程序, 往往有一半的时间用在了调试工作上,因此,学习调试的方法,积累调试的经验时一个程序员必须要经历的过程。Q043?用 C 语言只能写在DOS下运行的程序吗?( C)A043? 当然不是。不管是 DOS和 WINDOWS,还是 Unix 和 Linux ,或者其它的操作系统,你所需要的就是属于那个操作系统的 C 或 C+“编译器”,你就可以用 C 语言编写在那个操作系统下运行的程序。当然,不同的操作系统下,由于程序运行的原理不相同,因此编程的原理会有所不同。Q044?除了 C 程序设计的书籍外,还有更多学习C 语言的资源吗?( C)(学习)A044? 有,那就是 INTERN

26、ET。你只要在某个搜索引擎中输入诸如“ C 语言”、“C教程”、“ C 源码”之类的关键字, 就会搜索到成百上千的网站和网页。 国外关于 C 语言教程和 C 语言编程的网站就更多了。学会使用并用好这些资源,你很快就会变成一个C 语言高手。第二章算法基础知识Q045?什么叫“算法”?(算法)A045?算法,简单的说就是为解决一个问题而采取的方法和步骤。一个实际问题如果需要通过编写计算机程序来解决的话, 就必须首先制定出解决该问题的算法。对于同一个问题可能存在着不同的解决方法和步骤,也就是说有不同的算法。所以确定算法时,在保证正确有效的前提下, 应该尽量提高算法的效率和质量。 另外,我们更关心的是

27、专门针对计算机编程而制定的算法, 而不是普通的一般意义上的算法。Q046?能否举例说明什么是“计算机算法”?(算法)A046? 例如编程序求 1×2×3×4×5× × 10。对于这样一个具体问题,我们可以得到不止一个的算法。算法:直接写一个乘法表达式来计算,即S1:prod=1×2×3×4×5×6×7×8×9×10这个算法的结果虽然是正确的, 但是这样的解决方法和步骤显然不是有效合理的。 因为如果问题变成了求 1×2×3

28、15;4×5× × 10 0,或者变成了 1× 3×5×7×9× × 101,那么这种方法就不适用了。算法:利用编程语言中“变量”的概念, 每次计算一个乘法并把结果保存在该变量中, 下次再用这个变量去乘以下一个数,即S1: prod=1S2: prod=prod ×2S3: prod=prod ×3S4: prod=prod ×4S5: prod=prod ×5S10: prod=prod × 10这个算法的结果也是正确的, 比算法简洁一些, 但是仍然不是

29、有效合理的, 同样的问题就在于算法不通用。算法:利用“变量”的概念的同时,再利用“循环”的解决方法,可以实现真正的计算机算法S1: prod=1S2: n=1S3: prod=prod ×nS4: n=n+1S5:如果 n 10,则返回到 S3;否则,结束这个算法具有通用性、 灵活性。因为只要是同样的类似的问题, 那么这个算法是不需要作大的改动的。而且所有计算机语言都有实现“循环”的控制语句, 因此这个算法就是我们所说的有效的正确的计算机算法。Q047?一个计算机算法应该有什么样的特性?(算法)A047?一个算法应具有以下特点:(1) 有穷性:一个算法的步骤必须是合理有限的(2) 确定性:算法中的每一个步骤应当是确定的,而不应该是含糊的、模棱两可的(3) 有零个或多个输入:执行算法是需从外界取得必要的信息(4) 有一个或多个输出:执行一个算法后应该有必要的结果(5) 有效性:算法中的每一个步骤都必须是能有效成立和有效执行,并得到确定结果的。Q048?如何表示一个计算机算法?(算法) (算法的表示)A048? 一个算法制定好后, 总要通过某种方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论