您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 2014-2015第一学期《c语言程序设计》问题答疑材料
《C语言程序设计》问题答疑材料一、常见问题总结1.判断字符串a是否大于b,应当使用?库函数strcmp(),或者自己编写相应的函数比较,主要是字符串从左往右依次比较相应位置的字符大小。2.一个C程序的执行是从什么开始?什么结束?从main函数的第一行开始,到main函数最后一行结束。因为一个程序有且只有一个main函数,其他函数都是在main函数里面调用执行的。3.C语言中用于结构化程序设计的三种基本结构是什么?顺序结构、选择结构、循环结构4.指向函数的指针是什么意思?指向函数的指针叫“函数指针”,是一个是指针变量。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。5.循环语句中的break和continue有何区别?break用于跳出循环,执行循环体的下一条语句,而continue只是结束本次循环,然后还要判断条件,看看能不能继续下一次循环!6.C语言有哪些数据类型以及这些数据类型进行混合运算时遵循什么原则?数据类型包括:int,double,float,bool,char,struct,enum和union;混合运算时要保持类型一致,因而往往需要转换变量的数据类型,低级的数据类型要向高级类型转换!7.函数的嵌套调用和递归调用有什么不同?嵌套调用的函数不能是本身,递归调用的函数是本身。8.传递地址和传递变量的区别?C语言中没有“变量传递”的概念,应该是“形参变量向实参变量的值传递”。(1)、在C语言中,所有非数组形式的数据实参都是以值传递的形式调用,在值传递的过程中,被调用函数的形式参数被视为该函数的局部变量,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。所以被调用函数不能修改作为实参的实际变量的值,而只能修改传递给他的那份备份。(2)、而在地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址,被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。9.C语言中输入输出是通过函数完成的?C提供的标准输入输出函数!10.如何才能更好地掌握C语言程序设计?学习C语言程序设计是一个积累的过程,从书的开头对最简单的函数的介绍开始了解C语言,然后进一步深入变量的声明、数据类型等等,看的时候要思考书中的程序运行的每一步会得到什么结果,你是否完全理解书上的程序例子,如果不懂说明相关知识你还没有掌握,同时要多上机编程练习,可以自己照着书上的程序运行,然后再做其他练习,总之多练多思考,只看是不会学懂的!11.表达式18/4*sqrt(4.0)/8值的数据类型是什么?取最长的数据类型,即为浮点型!12.怎样才能学好C语言?不会英语可以学习吗?编程和英语完全是两码事,虽然表面上看上去都是用26个字母在拼写,但实际上编程的语法和英语的语法也完全没关系,命令也就是那么几个,跟英语单词比起来实在是少太多了,编程教材也都是中文的,所以英语不好也能学习编程。当然会英语编程肯定事半功倍的!13.整型变量int与shortint有什么区别?short是16位,int最少是16位,32位平台上int一般是32位。14.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是多少?三个,只看该函数括号内逗号间隔的参数!15.在C语言中逗号和实点有啥区别?句号“.”是结构体成员运算符,优先级非常高;逗号“,”构成逗号表达式,简单说就是隔开两个表达式,优先级最低!16.如何实现实现自定义数据类型?想定义一个占用128位的数据类型,数据类型占用位数可以自定义,如何实现,代码怎么写?根据C语言提供的数据类型和结构体等知识,可以自己定义一个结构体,使其内部各成员总体所占的位数为128即可,定义方法参见结构体相关知识!17.在C语言中,指针类型属于构造类型对吗?指针类型不属于构造类型,C语言提供的数据类型包括基本数据类型、构造数据类型、指针类型和空类型。18.将高级语言编写的程序翻译成目标程序的程序是()?a、解释b、编译c、汇编d、二进制正确为B选项!19.C语言规定:在一个源程序中,main函数的位置?main的位置没有固定要求!20.switch语句的最后一个分支可以不要break语句吗?尽管switch语句的最后一个分支不一定需要break语句,但最好还是在switch语句的每个分支后面加上break语句,包括最后一个分支。这样做的主要原因是:你的程序很可能要让另一个人来维护,他可能要增加一些新的分支,但没有注意到最后一个分支没有break语句,结果使原来的最后一个分支受到其后新增分支的干扰而失效。在每个分支后面加上break语句将防止发生这种错误并增强程序的安全性。此外,目前大多数优化编译程序都会忽略最后一条break语句,所以加入这条语句不会影响程序的性能。21.C语言里的&&是什么意思!?逻辑与运算操作符!22.C语言变量的定义和声明有什么不同?定义和声明间的最主要的区别就是变量是否被分配内存!变量在定义时被分配内存,并且变量可以指定一个初始化的值。变量只能在这个程序中定义一次。声明在该程序中指定了变量的类型和名称。定义也是一种声明:当我们定义一个变量时,我们声明了它的名字和类型。23.C语言程序的执行过程是怎样的呢?1)编辑(在相应软件下编写程序代码)2)编译(成目标程序文件.obj)3)链接(成可执行程序文件.exe)4)运行(可执行程序文件)如果编译过程中出错,还需要调试(debug),然后再重复2-4步!24.现有流行的高级语言有哪些?汇编语言算不算高级语言呢?流行最广泛的有C,其他还有C++,Java,PHP,JavaScript,Ruby,Python,delphi等;汇编不算高级语言!25.C语言的主要用途是什么?它和其他高级语言有什么不同?C语言的用途相当广泛,其应用基本上是偏底层的,对效率要求高的,需要跟操作系统大量地直接打交道的,比如网络通信,多媒体,数据采集传输,信息安全,嵌入式,图形图像处理,模式识别等等。这实际也是应用方面C与其他高级语言之间所不同的地方。另外,语言本身的特点上,C有丰富的数据类型,尤其是指针,是其他语言所不具备的!26.数组名作为实参传递给形参时,数组名被处理为?数组的首地址!27.指向函数的指针是什么意思?指向函数的指针叫“函数指针”,是一个是指针变量。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。28.怎样才能学好C语言?(1)学好C语言,你可以很好地应付任何一种编程工具。(2)一定要多上机练习,通过程式了解相关知识。几经反复方得正果。(3)不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。(4)如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。(5)C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。(6)不要完全相信教材(包括本讲义),所有结论最好都上机验证。二、常用知识总结1.c语言中合法的关键字有32个,分别是1数据类型关键字(12个):(1)char:声明字符型变量或函数(2)double:声明双精度变量或函数(3)enum:声明枚举类型(4)float:声明浮点型变量或函数(5)int:声明整型变量或函数(6)long:声明长整型变量或函数(7)short:声明短整型变量或函数(8)signed:声明有符号类型变量或函数(9)struct:声明结构体变量或函数(10)union:声明联合数据类型(11)unsigned:声明无符号类型变量或函数(12)void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)2控制语句关键字(12个):A循环语句(1)for:一种循环语句(可意会不可言传)(2)do:循环语句的循环体(3)while:循环语句的循环条件(4)break:跳出当前循环(5)continue:结束当前循环,开始下一轮循环B条件语句(1)if:条件语句(2)else:条件语句否定分支(与if连用)(3)goto:无条件跳转语句C开关语句(1)switch:用于开关语句(2)case:开关语句分支(3)default:开关语句中的“其他”分支Dreturn:子程序返回语句(可以带参数,也看不带参数)3存储类型关键字(4个)(1)auto:声明自动变量一般不使用(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)(3)register:声明积存器变量(4)static:声明静态变量4其它关键字(4个):(1)const:声明只读变量(2)sizeof:计算数据类型长度(3)typedef:用以给数据类型取别名(当然还有其他作用(4)volatile:说明变量在程序执行中可被隐含地改变2.语言有哪些数据类型以及这些数据类型进行混合运算时遵循什么原则?(1)基本类型:如整型(基本整型,长整型,短整型,无符号整型),浮点型(单精度,双精度,长双精度),字符型,枚举类型;构造类型:如数组,结构体,共用体;指针类型;空类型(void);(2)不同数据类型之间的转换有2种方式:隐式转换和显式转换。隐式转换指的是默认做的一些转换式,比如整形和实型做混合运算(这里我说的运算是合法的运算,不会是取余这样对操作数有数据类型要求的运算),得到的结果是自动由精度低的或占位数低的数据类型向高的数据类型做转换,也就是上述问题得到的结果是实型。显示转换:指的是使用强制类型转换运算符来进行强制的结果类型转换,这是人为的得到想要的类型的一种方法。
本文标题:2014-2015第一学期《c语言程序设计》问题答疑材料
链接地址:https://www.777doc.com/doc-3004922 .html