C语言程序设计基本知识点解答一.docx
C语言程序设计根本学问点解答一第章 计算机根底学问Q001Ø计算机的根本原理是什么?计算机的根本原理A001Ø 计算机的根本原理有两个:1.二进制:是指计算机中全部的信息都是以二进制形式的数据来表示、存储、传递和运算的。:是指在利用计算机解决问题时,首先需要人找出解决方法,然后将这个方法用某种计算机语言转换成计算机程序包含了原始数据和处理指令,再送入计算机中存储,最终由人发出嘱咐,计算机开始依据程序中的指令和流程执行这个程序即对数据进展加工处理。Q002Ø为什么计算机内部运用二进制?二进制A002Ø运用二进制的主要缘由是:1.物理上很简洁实现两种相对立的稳定的能量状态如晶体管的导通及不导通、高电平及低电平、磁性材料中剩磁的顺时针或逆时针方向等2.二进制数据的运算规那么数量少而且简洁,操作实现简便Q003Ø计算机硬件的根本构造是什么?硬件A003ØQ004Ø计算机硬件系统的核心部件有哪些?它们的作用是什么?硬件A004Ø计算机硬件系统的四大核心部件是限制器、运算器、存储器和输入输出设备。其中:限制器是计算机的指挥限制中心。其主要功能是识别翻译指令代码并向计算机各部分发出适当的限制信号,以便执行机器指令。运算器是对数据进展加工、运算的部件。其主要功能是对二进制数据进展算术运算和逻辑运算。存储器是存放数据和程序的部件。其主要功能是依据要求向指定的位置存进或取出信息。输入设备的功能是将数据和程序送入到计算机的存储器中。常见的输入设备有键盘、鼠标等。输出设备的功能是将计算机产生的结果送出计算机外。常见的输出设备有显示器、打印机等。Q005Ø计算机的根本工作过程是怎样的?硬件工作过程A005ØQ006Ø内存储器和外存储器有哪些区分?存储器内存A006Ø主要区分如下表所示:内存储器主存储器外存储器扶植存储器构造属于硬件系统的主机部分,位于主机板的插槽上,及运算器和限制器干脆联络进展数据交换属于硬件系统的外设部分,及运算器和限制器必需通过确定的硬件接口相联络进展数据交换物理组成电介质:半导体集成电路计算机断电会使内存数据丢失磁介质:磁盘或磁带磁介质损伤或消磁会使数据丢失作用存放计算机系统运行期间正在执行的各种程序和数据存放系统程序、各种应用程序和数据文件等当前不参及运行的大量信息Q007Ø什么叫存储单元的“位和“字节?内存字节位A007Ø“位bit:是最小的电子线路单元,只能保存一位二进制数即一个0或一个1。因此一个“位单元可以保存的最大的十进制数是1。“字节byte:是由假设干个“位组成的逻辑单元。微机中,1字节8位。字节是最根本的数据存储单元,即数据在内存中的存储是以“字节为根本单位的。任何数据总是占据整数个“字节单元 。Q008Ø什么叫存储单元的地址和内容?内存A008Ø存储器从第一个字节开始到最终一个字节为止,每一个字节单元在了逻辑上依次有一个“编号 ,这个编号就叫内存单元的地址。而有这个地址所指向的内存单元中存放的数据就叫该内存单元的内容。Q009Ø计算机是如何在内存单元中找到需要的数据的?内存A009Ø计算机总是首先找到所需数据所在字节单元的地址编号,再到该地址所指向的内存单元去读取内存单元的内容数据的值。Q010Ø什么是“机器语言?语言A010Ø计算机能干脆执行的用于表示机器指令的二进制数字代码称为“机器语言,也就是机器指令集合。典型的机器语言程序如下:1010 11110011 01110111 0110 等等几百个指令很明显,这样的语言写的程序不易记忆和理解,运用、修改和维护都很费时费劲,而且不易推广。Q011Ø什么是“汇编语言?语言A011Ø运用一些符号来代表指令、存放器、存储单元等机器指令中的要素,然后用这些符号来写程序。运用这些助记符代码的语言,叫做“汇编语言。典型的汇编语言源程序如下:MOV A, 47翻译之后就是1010 1111ADD A, B0011 0111HALT0111 0110 等等几百个指令优点:比机器语言易理解、记忆和运用,速度及机器语言相仿。大量用于实时限制。不能独立于机器。汇编语言源程序必需经过“汇编程序的汇编后才能执行。Q012Ø什么是“高级语言?语言A012Ø运用及人类的自然语言和数学语言相近的符号和运算符构成的语言,叫做“高级语言。典型的C语言源程序如下:void main()int a=1, b=2, c;c=a+b;printf("c=%dn", c);优点:独立于机器,通用性和可移植性强;简洁理解、记忆和学习,运用便利,源程序较短。缺点:不行以干脆执行,源程序必需经过“编译程序的编译或“说明程序的说明后形成目的程序才行。执行速度慢,系统开销大。Q013Ø计算机中表示数据的根本原那么是什么?数据A013Ø计算机中表示数据的根本原那么是:一个数据总要占据确定数目的字节单元整数个字节、有限个字节。不同类型的数据占据不同数目的字节单元比方,PC机DOS环境下一个整数占2个字节,一个实数占4个字节。全部数据都是以二进制数的补码形式表示的。当要表示一个数据的正负号时,总是用该数据所占字节单元的全部位中最高一位表示数的符号0 表示正,1 表示负。Q014Ø什么叫“定点数和“浮点数?数据定点数浮点数A014Ø在计算机中,小数点位置固定的数被称为定点数。定点数有定点整数和定点小数两种。定点整数:小数点默认为在一个二进制数最低位的后面。如下图:定点小数:小数点默认为在一个二进制数最高位(符号位)的后面。在计算机中,既有整数部分又有小数部分的数被称为浮点数。第一章 C语言根底学问Q015Ø什么是“C?CA015Ø在现代社会中,组织处理信息的实力是胜利的关键。设计计算机的目的就是为了快速而有效地处理大量信息。但是除非有人告知计算机该干什么和怎么干,否那么它什么事情也不能做。这就是计算机编程语言诞生的缘由,而C语言就属于一种计算机编程语言。它是一种可以让软件工程师及计算机之间进展有效对话的介于汇编语言和高级语言之间的编程语言。C语言特别灵敏而且适应性强。自1970年诞生之日起,它始终被用来开发各种各样的程序,包括用于微限制器的固化软件、操作系统、应用程序和图形程序。Q016Ø什么是“C+?C+A016ØC+是C语言改进之后的产物。这种语言最初被称为“带类的CC with class。它增加了一些特性,其中最重要的特性就是引入了“类。“类是依据面对对象的程序设计OOD思想来创立的,它能使代码便于重复运用。C+语言完全兼容C语言,学好C有助于C+的学习。Q017Ø如何学习“C?CA017Ø学习和驾驭一门编程语言的最终途径是用这门语言编写程序。事实上,在编写程序之前和之后也有许多很重要的工作要做。总的来说,遵循这样一个过程是必有收获的,即:读别人写的程序自己动手写程序调试这个程序直到胜利。这就犹如下围棋:打棋谱亲自下棋复盘。Q018Ø什么是计算机程序?程序A018Ø计算机程序主要由两部分组成:数据及指令。在一个计算机程序当中,数据和指令总是在满意语法规那么的前提下,由程序员依据某种组织形式支配好它们,从而来描绘对某个具体问题的已经预先制定出来的解决方法和步骤。程序员运用数据来描绘他要操作的信息,运用指令来描绘操作的方法、过程和步骤。Q019Ø什么叫“源程序?程序A019Ø源程序特指用汇编语言或高级语言编写出来的,计算机不行以干脆识别并执行的数据和代码的集合。源程序必需经过某种“翻译过程才能变成计算机可以识别的指令。这个“翻译过程对于汇编语言源程序叫做“汇编,对于高级语言源程序有“编译或“说明两种翻译方法。C语言源程序承受是“编译的方法。Q020Ø什么是“编译器?编译器A020Ø从根本上说,计算机不能干脆识别和执行有高级语言编写的“源程序,因此必需运用一种称之为“翻译程序的程序,把“源程序翻译成二进制形式的“目的程序。而“编译器就是这些 “翻译程序当中的一种。C语言就是一种“编译语言,即是说,用C语言写出的源程序必需经过“C编译器的编译才能变成二进制的代码。Q021Ø我怎么能得到C的“编译器?编译器A021Ø世界上有许多厂商和团体开发了许多的“C编译器,有商业版本的,也有完全免费的。比较知名的C编译器有Microsoft C,Turbo C,Borland C,Watcom C,GNU C等等。商业版本的编译器往往性能更好,所附带的函数库也更丰富,但是需要花钱购置。因此,假设主要目的是为了学习C语言,那么完全可以运用免费的C编译器。比方Turbo C和GNU C。你可以在有关公司的网站上或者许多有关C语言的个人网站上下载这些免费的编译器。另外一点,由于C+是完全兼容C的,所以你也可以运用C+编译器来编译你的C源程序。同样,你也可以在互联网上下载到免费的C+编译器,比方Inprise公司原Borland公司的C+ Builder编译器。Q022Ø程序的根本构造和特点是什么?C程序程序构造A022Ø1.一个程序是由函数构成的。语言又被称作“函数式语言。 函数可能是系统库函数或用户自定义函数。运用函数构成程序可以简洁实现构造化程序设计方法。2. 一个程序中必需有一个main函数,而且只能有一个。无论主函数位于程序的何处,程序都由它开始执行。3. 一个函数由两部分组成:函数原型和函数体。函数原型确定函数名,形参数量和类型,函数的返回值及其类型;而函数体包含在一对 中,由假设干语句组成以实现函数功能。4. 每个语句必需以分号完毕。5. 可以用/* */块注释符在程序中任何地方作注释。注释的内容不会被编译。6. 程序的书写格式很自由。Q023Ø什么是“函数?函数A023Ø函数是依据确定语法规那么被封装好了的,可以完成特定功能的一段代码模块。运用函数构成程序可以简洁实现构造化程序设计方法。Q024Ø什么是“系统库函数和“用户自定义函数?函数A024Ø系统库函数是指伴同某个版本的C编译器一起发布的已经实现了的函数集合。用户往往不能得到这些函数的源代码,但是可以在自己的程序里调用这些函数从而实现相应的功能。不同公司、不同版本的C编译器所附带的库函数不尽一样,但是全部的C编译器都会附带一个被称之为“标准库函数的函数库。因此,在运用标准库函数编程时,可以不考虑编译器的版本问题,因为全部的编译器都支持它们。另外也有一些独立软件供应商会供应第三方的需要单独购置的具有特定功能的函数库。而用户自定义函数是指用程序员自己编写的完成所需功能的函数。比方,每个C程序中都包含的main函数就是一个用户自定义函数。Q025ØC语言有哪些“系统库函数?函数A025Ø每个版本的编译器都会发送对所附带的库函数的分类列表和字母依次列表以及具体说明手册。另外,也可以查找编译器所附带的在线扶植系统来寻求信息。还可以购置有关专家编写的函数运用手册。假设是标准库函数的话,你可以在互联网上找到它们的运用说明。Q026Ø什么是main函数?main函数主函数A026Ø在C程序当中,main函数是一个具有特定名称和特别地位的用户自定义函数。无论主函数位于源程序的何处,程序都从它的第一个语句开始执行,到执行完最终一个语句完毕。在main函数的函数体中,通过调用系统库函数或其它的用户自定义函数来完成整体的功能。而其它的自定义函数是不能调用main函数的。Q027ØC程序中,如何定义一个函数?函数A027Ø定义一个函数包括定义函数头和定义函数体。格式如下:函数值类型 函数名函数形参列表函数体函数头指示了该函数及其它函数不同的唯一的函数名,执行该函数时所必需供应的输入信息,以及函数执行完毕后得到的值的类型。函数体包含假设干个语句来具体实现该函数的功能。Q028ØC程序中,函数体为什么要包含在大括号而不是其它的括号当中?函数A028Ø函数体总要包含在一对特定的符号中以形成封装的模块。其它的高级语言可能运用的是其它的符号,而C语言中就是运用的大括号。这是规定。Q029Ø什么叫“语句和“语句完毕符?语句语句完毕符A029Ø一个语句就是一条嘱咐。一个语句在编译后会变成许多条机器指令,告知计算机做什么事情。语句可以很简洁,也可以很困难。为了区分程序中的假设干个语句,每种语言都必需指定一个符号来标示语句的完毕,这个符号就叫语句完毕符。C语言中的语句完毕符是分号。又是规定。Q030Ø什么叫“注释?注释A030Ø注释是指在源程序中,对代码本身以及代码所设计的相关信息进展说明和注解的字符序列。为了区分源程序中的注释内容和正式的内容,必需用某种界定符号包围注释。Q031Ø在编写计算机源程序中,为什么要添加“注释?注释A031Ø现代计算机的运行速度已经很快,所以对计算机程序的要求从原来的程序大小、算法效率、编程的技巧性等等已经转变为程序的可读性和可维护性。而添加适当的注释是保证和增加程序可读性和可维护性的最重要的手段之一。对大型的程序尤其如此。对没有注释或注释不科学的程序进展维护和二次开发,其代价和本钱是无法估计阿。因此,对程序员来讲,一开始就养成给程序写注释的习惯是至关重要的,这已经成为评价一个程序员程度上下的重要标准。Q032Ø在C程序中,如何添加“注释?注释A032ØC语言中,用成对出现的/* */来告知编译器,包含在/* */之间的全部内容都是注释。编译器在对源程序进展编译时,将无视和跳过这些内容。Q033Ø对于C程序的书写格式有何规定?格式A033ØC程序的书写格式是很自由的。你只要不把一个完好的符号或一个常量拆开,其它的都可以随意支配。Q034Ø在编写计算机源程序时,为什么要遵循确定的书写标准?格式A034Ø缘由很简洁也很重要:保证和增加程序的可读性和可维护性。一幅美丽的书法会使人赏心悦目,可一幅涂鸦那么会使人雅兴大减。Q035Ø关于良好的书写标准和编码习惯,有何建议?格式A035Ø只是建议,并非规定,但事实上已经约定俗成:Q036ØC源程序是如何运行的?C程序运行A036ØQ037Ø什么是IDE?IDE集成开发环境A037Ø是集成开发环境Integrated Develop Environment的缩写。IDE包含了编辑器Editor、编译器Compiler、连接程序Linker、工程管理程序Project Manager、调试器Debugger、在线扶植系统Online Help System和其它一些扶植开发工具Other Tools。用户的全部开发工作都可以在一个IDE中完成。Q038Ø怎么学习运用IDE?IDE集成开发环境A038Ø最好的方法就是查看IDE自带的在线扶植系统。绝大多数的IDE都带有详尽的扶植系统,对IDE本身的组成、功能和运用有具体的说明。除此之外,扶植系统中还包含对全部库函数和扶植工具的运用说明。因此,确定要学会看扶植。当然,这对你的计算机英语程度有较高要求。Q039Ø什么叫“预编译?预编译A039Ø在对源程序进展正式编译之前所做的一些处理工作叫做预编译。最常见的预编译工作就是用include包含文件和用define进展符号交换。C源程序中,全部的预编译嘱咐都由#号开头。运用预编译嘱咐,可以供应C语言本身不包含的一些扩大功能。Q040Ø什么叫“编译?编译A040Ø将高级语言源程序翻译成二进制代码的目的程序的一种方法和过程。完成这个过程的是一个特地的程序,叫“编译器。Q041Ø什么叫“连接?连接A041Ø将编译后的二进制目的程序和有关函数库进展连接并打包成可执行程序的过程叫做连接。完成这个过程的是一个特地的程序,叫“连接器。Q042Ø什么叫“调试?调试A042Ø一个程序恒久不行能一次就完全写正确,总会存在这样那样的错误。有些错误属于简洁的语法错误,有些错误属于困难的逻辑错误,有些错误直到程序运行时才有可能觉察。检查并解除全部这些错误直到程序完全正确的过程就叫调试。编写一个大型的程序,往往有一半的时间用在了调试工作上,因此,学习调试的方法,积累调试的阅历时一个程序员必需要阅历的过程。Q043Ø用C语言只能写在DOS下运行的程序吗?CA043Ø当然不是。不管是DOS和WINDOWS,还是Unix和Linux,或者其它的操作系统,你所需要的就是属于那个操作系统的C或C+“编译器,你就可以用C语言编写在那个操作系统下运行的程序。当然,不同的操作系统下,由于程序运行的原理不一样,因此编程的原理睬有所不同。Q044Ø除了C程序设计的书籍外,还有更多学习C语言的资源吗?C学习A044Ø有,那就是INTERNET。你只要在某个搜寻引擎中输入诸如“C语言、“C教程、“C源码之类的关键字,就会搜寻到成百上千的网站和网页。国外关于C语言教程和C语言编程的网站就更多了。学会运用并用好这些资源,你很快就会变成一个C语言高手。第二章 算法根底学问Q045Ø什么叫“算法?算法A045Ø算法,简洁的说就是为解决一个问题而实行的方法和步骤。一个实际问题假设需要通过编写计算机程序来解决的话,就必需首先制定出解决该问题的算法。对于同一个问题可能存在着不同的解决方法和步骤,也就是说有不同的算法。所以确定算法时,在保证正确有效的前提下,应当尽量进步算法的效率和质量。另外,我们更关切的是特地针对计算机编程而制定的算法,而不是一般的一般意义上的算法。Q046Ø能否举例说明什么是“计算机算法?算法A046Ø例如编程序求 1×2×3×4×5××10。对于这样一个具体问题,我们可以得到不止一个的算法。算法:干脆写一个乘法表达式来计算,即S1:prod=1×2×3×4×5×6×7×8×9×10这个算法的结果虽然是正确的,但是这样的解决方法和步骤明显不是有效合理的。因为假设问题变成了求1×2×3×4×5××100,或者变成了1×3×5×7×9××101,那么这种方法就不适用了。算法:利用编程语言中“变量的概念,每次计算一个乘法并把结果保存在该变量中,下次再用这个变量去乘以下一个数,即S1:prod=1S2:prod=prod×2S3:prod=prod×3S4:prod=prod×4S5:prod=prod×5S10: prod=prod×10这个算法的结果也是正确的,比算法简洁一些,但是照旧不是有效合理的,同样的问题就在于算法不通用。算法:利用“变量的概念的同时,再利用“循环的解决方法,可以实现真正的计算机算法S1:prod=1S2:n=1S3:prod=prod×nS4:n=n+1S5:假设n10,那么返回到S3;否那么,完毕这个算法具有通用性、灵敏性。因为只要是同样的类似的问题,那么这个算法是不需要作大的改动的。而且全部计算机语言都有实现“循环的限制语句,因此这个算法就是我们所说的有效的正确的计算机算法。Q047Ø一个计算机算法应当有什么样的特性?算法A047Ø一个算法应具有以下特点:(1) 有穷性:一个算法的步骤必需是合理有限的(2) 确定性:算法中的每一个步骤应当是确定的,而不应当是模糊的、模棱两可的(3) 有零个或多个输入:执行算法是需从外界获得必要的信息(4) 有一个或多个输出:执行一个算法后应当有必要的结果(5) 有效性:算法中的每一个步骤都必需是能有效成立和有效执行,并得到确定结果的。Q048Ø如何表示一个计算机算法?算法算法的表示A048Ø一个算法制定好后,总要通过某种方式把它表示出来,以便自己和其别人阅读理解。通常,可以通过“自然语言、“流程图、“伪代码、“计算机语言等方法来描绘一个计算机算法。自然语言就是人们日常运用的语言,可以是英语、汉语或其它语言。用自然语言表示算法通俗易懂,但文字冗长,含义不太严格,简洁出现“歧义性。此外,用自然语言表示包含分支和循环的算法也不便利。因此,最常见的计算机算法表示方法就是“流程图。 用“计算机语言来描绘算法事实上就是我们通常所说的编程序,即程序事实上就是对一个算法的描绘。“伪代码是用介于自然语言和计算机语言之间的文字和符号来描绘算法。它犹如一篇文章。自上而下地写下来。每一行或几行表示一个根本操作。它不用图形符号。因此书写便利。格式紧凑,也比较好懂,便于向计算机语言算法即程序过渡。Q049Ø如何用流程图表示一个计算机算法?算法的表示流程图A049Ø流程图是用一些事先规定好的具有某种含义的图框和流程线来表示算法中的步骤和各种操作。这是用传统流程图表示的求1×2×3×4×5××10的算法:用流程图表示算法直观形象,逻辑清楚,但是占用篇幅较多,尤其当算法比较困难时,画流程图既费时又不便利,而且当算法不断改动时,流程图的修改也特别费事,因此流程图宜用于表示一个完成的最终算法。流程图有许多种类型,最常见的是传统流程图和NS流程图。传统流程图中由于对流程线的运用没有严格限制,全部很简洁造成流程图的混乱和无规律。Q050Ø什么是根本程序构造?程序构造A050Ø为了进步算法的质量,使算法设计和阅读便利,必需限制传统流程图当中流程线的滥用,即不允许无规律的使流程转向,只能依次的进展下去。但是,一个算法当中难免会包含一些分支和重复而不行能全部由一个一个步骤依次向下构成。为理解决这个问题,人们规定出几种根本程序构造,然后由这些根本程序构造按确定规律组成一个算法构造,整个算法的描绘那么是由上而下的将各个根本构造依次排列起来而成的。根本程序构造有三种,分别是依次构造、分支构造和重复构造。流程图如下。用这三种根本构造就可以表示任何困难的算法。