一、简答题1、C语言中进行函数声明的作用是什么?答:函数声明的作用是:把函数的名字、函数类型及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照和检查(例如,函数名是否正确,实参的类型和个数是否一致)。2、举例说明在C语言中如何定义符号常量,使用符号常量的优点?答:使用符号常量:在程序运行过程中,其值不能被改变的量称为常量。常量分类:整型﹑实型﹑字符﹑字符串常量。符号常量:在C语言中允许程序中的常量定义为一个标识符,这个标识符称为符号常量。带有名字的常量定义格式:#define符号常量常量例如:#defineAGE35#defineM1.9734067e9优点:1)简化书写格式、减少出错率。2)定义符号常量可以提高程序的可读性,便于程序的调试和修改。3)符号常量不同于变量,在其作用域内不能被改变和重新赋值。4)习惯上人们把符号常量名用大写字母表示,变量用小写,以示区别。3、C语言中,变量为何要先定义后使用?答:程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:?数据类型?存储类型?作用域数据类型决定数据所占内存字节数,数值取值范围,在其上可进行的操作。对变量先定义后使用的目的是:1)凡是未被事先定义的不做为变量名,这就能保证程序中变量名使用得正确,便于编译时发现错误,避免变量名使用时出错。2)每个变量被指定一确定类型,在编译时就能为其分配相应的存储单元。3)指定每一个变量属于一个类型,便于在编译时据此检查该变量所进行的运算是否合法。4、字符串是以'\0'结束的,存储一个字符串需要多少个字节?答:如“ABC”实际需要3+1个字节来存储这个字符串常量。5、C语言中,动态存储区主要存放哪些数据?答:动态存储区中存放以下数据:1)函数的形参2)函数调用时的现场保护和地址等。3)Autoregister型局部变量对以上数据,当进行函数调用时分配动态存储空间,当函数调用结束时,释放这些存储单元。在程序的执行过程中,这种分配和释放是动态的。6、使用全局变量的优点和复作用是什么?答:优点:是增加了函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值,就能影响到其他函数,相当于各个函数间有直接的传递通道。由于函数的调用只能带回一个返回值,因此有时可以利用全局变量增加与函数联系的渠道,从函数得到一个以上的返回值。1.)所有函数之前定义的全局变量可被本文件中所有函数共用。2.)全局变量的有效范围是它定义的位置到本源文件结束。3.)全局变量增加了函数之间的联系通道。4.)全局变量与局部变量重名时,在函数内部将屏蔽全局变量。5.)全局变量在程序执行的全过程都占用存储单元。复作用:1)、过多的全局变量时函数之间的“耦合性”增加,不利于程序的移植。2)、过多的全局变量使程序的可读性变差。3)、外部变量可加强函数模块之间的数据联系,但又使这些函数依赖这些外部变量,因而使得这些函数的独立性降低。4)、从模块化程序设计的观点来看这是不利的,因此不是非用不可时,建意不要使用外部变量。建议不在必要时不要使用全局变量,因为:①全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。②它使函数的通用性降低了,因为函数在执行时要依赖于其所在的外部变量。若将一个函数移到另一个文件中,还要将有关的外部变量及其值一起移过去。但若该外部变量与其他文件的变量同名时,就会出现问题,降低了程序的可靠性和通用性。③使用全局变量过多,会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外部变量的值。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使用全局变量。7、二维数组的定义和初始化的正确形式有哪些?答:二维数组的初始化:1)分行初始化。如:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2)按数组排列的顺序将所有数据写在一个花括号内,如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};3)部分元素初始化。如:staticinta[3][4]={{,1},{0,6},{0,0,11}};⒋如果对全部元素都赋初值,则定义数组时可以不指定第一维的长度,如:staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};8、wiledowhile两循环结构的相同点和不同点是什么?答:1)while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。2)do-while语句的一般形式为:do{循环体}while(表达式);do-while语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。while语句和do-while语句一般都可以相互转换。