C语言程序设计基本知识点解答(一)第○章计算机基础知识Q001计算机的基本原理是什么?(计算机的基本原理)A001计算机的基本原理有两个:1.二进制:是指计算机中所有的信息都是以二进制形式的数据来表示、存储、传递和运算的。2.存储程序控制:是指在利用计算机解决问题时,首先需要人找出解决方法,然后将这个方法用某种计算机语言转换成计算机程序(包含了原始数据和处理指令),再送入计算机中存储,最后由人发出命令,计算机开始按照程序中的指令和流程执行这个程序(即对数据进行加工处理)。Q002为什么计算机内部使用二进制?(二进制)A002使用二进制的主要原因是:1.物理上很容易实现两种相对立的稳定的能量状态(如晶体管的导通与不导通、高电平与低电平、磁性材料中剩磁的顺时针或逆时针方向等)2.二进制数据的运算规则数量少而且简单,操作实现简便Q003计算机硬件的基本结构是什么?(硬件)A003Q004计算机硬件系统的核心部件有哪些?它们的作用是什么?(硬件)A004计算机硬件系统的四大核心部件是控制器、运算器、存储器和输入输出设备。其中:控制器是计算机的指挥控制中心。其主要功能是识别翻译指令代码并向计算机各部分发出适当的控制信号,以便执行机器指令。运算器是对数据进行加工、运算的部件。其主要功能是对二进制数据进行算术运算和逻辑运算。存储器是存放数据和程序的部件。其主要功能是按照要求向指定的位置存进或取出信息。输入设备的功能是将数据和程序送入到计算机的存储器中。常见的输入设备有键盘、鼠标等。输出设备的功能是将计算机产生的结果送出计算机外。常见的输出设备有显示器、打印机等。Q005计算机的基本工作过程是怎样的?(硬件)(工作过程)A005硬件系统主机外设中央处理器CPU内存储器运算器控制器外存储器输入输出设备(I/O)存储器硬件系统主机外设中央处理器CPU内存储器运算器控制器外存储器输入输出设备(I/O)存储器计算程序原始数据输入输出设备I/O命令运算命令运算器控制器存取命令控制流存储器数据流计算结果输入输出取数存数指令计算程序原始数据输入输出设备I/O命令运算命令运算器控制器存取命令控制流存储器数据流计算结果输入输出取数存数指令Q006内存储器和外存储器有哪些区别?(存储器)(内存)A006主要区别如下表所示:内存储器(主存储器)外存储器(辅助存储器)结构属于硬件系统的主机部分,位于主机板的插槽上,与运算器和控制器直接联系进行数据交换属于硬件系统的外设部分,与运算器和控制器必须通过一定的硬件接口相联系进行数据交换物理组成电介质:半导体集成电路计算机断电会使内存数据丢失磁介质:磁盘或磁带磁介质损伤或消磁会使数据丢失作用存放计算机系统运行期间正在执行的各种程序和数据存放系统程序、各种应用程序和数据文件等当前不参与运行的大量信息Q007什么叫存储单元的“位”和“字节”?(内存)(字节)(位)A007“位”(bit):是最小的电子线路单元,只能保存一位二进制数即一个0或一个1。因此一个“位”单元可以保存的最大的十进制数是1。“字节”(byte):是由若干个“位”组成的逻辑单元。微机中,1字节=8位。字节是最基本的数据存储单元,即数据在内存中的存储是以“字节”为基本单位的。任何数据总是占据整数个“字节”单元。Q008什么叫存储单元的地址和内容?(内存)A008存储器从第一个字节开始到最后一个字节为止,每一个字节单元在了逻辑上依次有一个“编号”,这个编号就叫内存单元的地址。而有这个地址所指向的内存单元中存放的数据就叫该内存单元的内容。Q009计算机是如何在内存单元中找到需要的数据的?(内存)A009计算机总是首先找到所需数据所在字节单元的地址(编号),再到该地址所指向的内存单元去读取内存单元的内容(数据的值)。Q010什么是“机器语言”?(语言)A010计算机能直接执行的用于表示机器指令的二进制数字代码称为“机器语言”,也就是机器指令集合。典型的机器语言程序如下:101011110011011101110110……等等几百个指令很显然,这样的语言写的程序不易记忆和理解,使用、修改和维护都很费时费力,而且不易推广。Q011什么是“汇编语言”?(语言)A011使用一些符号来代表指令、寄存器、存储单元等机器指令中的要素,然后用这些符号来写程序。使用这些助记符代码的语言,叫做“汇编语言”。典型的汇编语言源程序如下:MOVA,47翻译之后就是10101111ADDA,B00110111HALT01110110……等等几百个指令优点:比机器语言易理解、记忆和使用,速度与机器语言相仿。大量用于实时控制。不能独立于机器。汇编语言源程序必须经过“汇编程序”的汇编后才能执行。Q012什么是“高级语言”?(语言)A012使用与人类的自然语言和数学语言相近的符号和运算符构成的语言,叫做“高级语言”。典型的C语言源程序如下:voidmain(){inta=1,b=2,c;c=a+b;printf(c=%d\n,c);}优点:独立于机器,通用性和可移植性强;容易理解、记忆和学习,使用方便,源程序较短。缺点:不能够直接执行,源程序必须经过“编译程序”的编译或“解释程序”的解释后形成目标程序才行。执行速度慢,系统开销大。Q013计算机中表示数据的基本原则是什么?(数据)A013计算机中表示数据的基本原则是:一个数据总要占据一定数目的字节单元(整数个字节、有限个字节)。不同类型的数据占据不同数目的字节单元(比如,PC机DOS环境下一个整数占2个字节,一个实数占4个字节)。所有数据都是以二进制数的补码形式表示的。当要表示一个数据的正负号时,总是用该数据所占字节单元的所有位中最高一位表示数的符号(0表示正,1表示负)。Q014什么叫“定点数”和“浮点数”?(数据)(定点数)(浮点数)A014在计算机中,小数点位置固定的数被称为定点数。定点数有定点整数和定点小数两种。定点整数:小数点默认为在一个二进制数最低位的后面。如图所示:符号位数值部分小数点1010101Ns符号位数值部分小数点1010101Ns定点小数:小数点默认为在一个二进制数最高位(符号位)的后面。符号位数值部分小数点1010101Ns符号位数值部分小数点1010101Ns在计算机中,既有整数部分又有小数部分的数被称为浮点数。第一章C语言基础知识Q015什么是“C”?(C)A015在现代社会中,组织处理信息的能力是成功的关键。设计计算机的目的就是为了快速而有效地处理大量信息。但是除非有人告诉计算机该干什么和怎么干,否则它什么事情也不能做。这就是计算机编程语言诞生的原因,而C语言就属于一种计算机编程语言。它是一种能够让软件工程师与计算机之间进行有效对话的介于汇编语言和高级语言之间的编程语言。C语言非常灵活而且适应性强。自1970年诞生之日起,它一直被用来开发各种各样的程序,包括用于微控制器的固化软件、操作系统、应用程序和图形程序。Q016什么是“C++”?(C++)A016C++是C语言改进之后的产物。这种语言最初被称为“带类的C”(Cwithclass)。它增加了一些特性,其中最重要的特性就是引入了“类”。“类”是根据面向对象的程序设计(OOD)思想来创建的,它能使代码便于重复使用。C++语言完全兼容C语言,学好C有助于C++的学习。Q017如何学习“C”?(C)A017学习和掌握一门编程语言的最终途径是用这门语言编写程序。事实上,在编写程序之前和之后也有很多很重要的工作要做。总的来说,遵循这样一个过程是必有收获的,即:读别人写的程序→自己动手写程序→调试这个程序直到成功。这就如同下围棋:打棋谱→亲自下棋→复盘。Q018什么是计算机程序?(程序)A018计算机程序主要由两部分组成:数据与指令。在一个计算机程序当中,数据和指令总是在满足语法规则的前提下,由程序员按照某种组织形式安排好它们,从而来描述对某个具体问题的已经预先制定出来的解决方法和步骤。程序员使用数据来描述他要操作的信息,使用指令来描述操作的方法、过程和步骤。Q019什么叫“源程序”?(程序)A019源程序特指用汇编语言或高级语言编写出来的,计算机不能够直接识别并执行的数据和代码的集合。源程序必须经过某种“翻译”过程才能变成计算机能够识别的指令。这个“翻译”过程对于汇编语言源程序叫做“汇编”,对于高级语言源程序有“编译”或“解释”两种翻译方法。C语言源程序采用是“编译”的方法。Q020什么是“编译器”?(编译器)A020从根本上说,计算机不能直接识别和执行有高级语言编写的“源程序”,因此必须使用一种称之为“翻译程序”的程序,把“源程序”翻译成二进制形式的“目标程序”。而“编译器”就是这些“翻译程序”当中的一种。C语言就是一种“编译”语言,即是说,用C语言写出的源程序必须经过“C编译器”的编译才能变成二进制的代码。Q021我怎么能得到C的“编译器”?(编译器)A021世界上有很多厂商和团体开发了很多的“C编译器”,有商业版本的,也有完全免费的。比较有名的C编译器有MicrosoftC,TurboC,BorlandC,WatcomC,GNUC等等。商业版本的编译器往往性能更好,所附带的函数库也更丰富,但是需要花钱购买。因此,如果主要目的是为了学习C语言,那么完全可以使用免费的C编译器。比如TurboC和GNUC。你可以在有关公司的网站上或者很多有关C语言的个人网站上下载这些免费的编译器。另外一点,由于C++是完全兼容C的,所以你也可以使用C++编译器来编译你的C源程序。同样,你也可以在互联网上下载到免费的C++编译器,比如Inprise公司(原Borland公司)的C++Builder编译器。Q022C程序的基本结构和特点是什么?(C程序)(程序结构)A0221.一个C程序是由函数构成的。C语言又被称作“函数式语言”。函数可能是系统库函数或用户自定义函数。使用函数构成程序可以容易实现结构化程序设计方法。2.一个C程序中必须有一个main函数,而且只能有一个。无论主函数位于程序的何处,程序都由它开始执行。3.一个函数由两部分组成:函数原型和函数体。函数原型确定函数名,形参数量和类型,函数的返回值及其类型;而函数体包含在一对{}中,由若干语句组成以实现函数功能。4.每个C语句必须以分号结束。5.可以用/**/(块注释符)在程序中任何地方作注释。注释的内容不会被编译。6.C程序的书写格式很自由。Q023什么是“函数”?(函数)A023函数是按照一定语法规则被封装好了的,能够完成特定功能的一段代码模块。使用函数构成程序可以容易实现结构化程序设计方法。Q024什么是“系统库函数”和“用户自定义函数”?(函数)A024系统库函数是指随同某个版本的C编译器一起发布的已经实现了的函数集合。用户往往不能得到这些函数的源代码,但是可以在自己的程序里调用这些函数从而实现相应的功能。不同公司、不同版本的C编译器所附带的库函数不尽相同,但是所有的C编译器都会附带一个被称之为“标准库函数”的函数库。因此,在使用标准库函数编程时,可以不考虑编译器的版本问题,因为所有的编译器都支持它们。另外也有一些独立软件供应商会提供第三方的需要单独购买的具有特定功能的函数库。而用户自定义函数是指用程序员自己编写的完成所需功能的函数。比如,每个C程序中都包含的main函数就是一个用户自定义函数。Q025C语言有哪些“系统库函数”?(函数)A025每个版本的编译器都会发送对所附带的库函数的分类列表和字母顺序列表以及详细说明手册。另外,也可以查找编译器所附带的在线帮助系统来寻求信息。还可以购买有关专家编写的函数使用手册。如果是标准库函数的话,你可以在互联网上找到它们的使用说明。Q026什么是main函数?(main函数)(主函数)A026在C程序当中,main函数是一个具有特定名称和特殊地位的用户自定义函数。无论主函数位于源程序的何处,程序都从它的第一个语句开始执行,到执行完最后一个语句结束。在main函数的函数体中