您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2014-2015第二学期《c语言程序设计》问题答疑材料
《C语言程序设计》问题答疑材料一、论坛提过得问题总结1.常用的C语言调试编译器?MicrosoftVisualStudio2010,WinTc等,推荐使用VisualStudio2010。2.如何正确掌握解决程序中编写顺序?编程中出现的令学生困惑的顺序问题主要是是程序调用过程中出现的顺序问题吧,要学会调试,跟踪代码,总的来讲,C语言是顺序结构程序!3.表达式和表达式语句如何区分?前者是一个数学概念,后者是C语言语法概念!4.汇编语言和c语言有什么区别?汇编语言更接近及其语言,直接对内存如寄存器操作。C是高级语言,在C编程中看不到对内存的直接操作!5.C语言中指针是变量么?如果是那指针的变量值是什么?指针其实是指向内存中的地址,值在相应的地址中存放!6.C语言和C++是什么关系C是面向过程语言;C++是面向对象语言;一个切身体会是:C语言中的struct已经有了C++中面向对象的感觉。在C++中要体会对类、象、继承这些关键词,这是面向对象的要义所在!7.C语言和C#有什么区别?C是过程语言,而C#是面向对象语言,两个是有根本的差别的,基本上可以说没有联系,之所以叫C#主要是因为历史的原因,c适合做芯片级的开发,底层应用的开发,而C#适合做桌面级开发和浏览器级的开发。8.字串符和与指针有什么区别?字串符是一种数据形式;指针是内存访问形式。它俩并没有联系,只是我们说可以用指针来操作字符创串,如*p=helloworld。9.C++与Java有什么联系吗C++与Java都是面向对象编程语言,这一点是相似的。Java语言摒弃了C++中指针的操作,更加安全!10.Static关键字在C语言中的作用?static全局变量与普通的全局变量区别:static全局变量值初始化一次,防止在其他文件单元中被引用。static函数与普通函数区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。static局部变量和普通局部变量区别:static局部变量只被初始化一次,下一次依据上一次结果值11.数组与指针的区别?1)数组:定义了一块连续的内存区域。数组时连续分配一串单元,数目开始定义的时候就必须固定下来,程序是死程序,容易浪费内存。2)指针:就是一个普通变量,即指向某一块内存区域的首地址。指针存放一个地址值,表示指向某一个单元,可以用指针来索引单元。数组可以完成栈,堆,树等等的操作,它在编程时候的好处是非常的灵活,在构建思路的时候有很大的灵活性。12.判断字符串a是否大于b,应当使用?库函数strcmp(),或者自己编写相应的函数比较,主要是字符串从左往右依次比较相应位置的字符大小。13.一个C程序的执行是从什么开始?什么结束?从main函数的第一行开始,到main函数最后一行结束。因为一个程序有且只有一个main函数,其他函数都是在main函数里面调用执行的。14.C语言中用于结构化程序设计的三种基本结构是什么?顺序结构、选择结构、循环结构15.指向函数的指针是什么意思?指向函数的指针叫“函数指针”,是一个是指针变量。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。16.循环语句中的break和continue有何区别?break用于跳出循环,执行循环体的下一条语句,而continue只是结束本次循环,然后还要判断条件,看看能不能继续下一次循环!17.C语言有哪些数据类型以及这些数据类型进行混合运算时遵循什么原则?数据类型包括:int,double,float,bool,char,struct,enum和union;混合运算时要保持类型一致,因而往往需要转换变量的数据类型,低级的数据类型要向高级类型转换!18.函数的嵌套调用和递归调用有什么不同?嵌套调用的函数不能是本身,递归调用的函数是本身。19.传递地址和传递变量的区别?C语言中没有“变量传递”的概念,应该是“形参变量向实参变量的值传递”。(1)、在C语言中,所有非数组形式的数据实参都是以值传递的形式调用,在值传递的过程中,被调用函数的形式参数被视为该函数的局部变量,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。所以被调用函数不能修改作为实参的实际变量的值,而只能修改传递给他的那份备份。(2)、而在地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址,被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。20.C语言中输入输出是通过函数完成的?C提供的标准输入输出函数!21.如何才能更好地掌握C语言程序设计?学习C语言程序设计是一个积累的过程,从书的开头对最简单的函数的介绍开始了解C语言,然后进一步深入变量的声明、数据类型等等,看的时候要思考书中的程序运行的每一步会得到什么结果,你是否完全理解书上的程序例子,如果不懂说明相关知识你还没有掌握,同时要多上机编程练习,可以自己照着书上的程序运行,然后再做其他练习,总之多练多思考,只看是不会学懂的!22.整型变量int与shortint有什么区别?short是16位,int最少是16位,32位平台上int一般是32位。23.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是多少?三个,只看该函数括号内逗号间隔的参数!24.在C语言中逗号和实点有啥区别?句号“.”是结构体成员运算符,优先级非常高;逗号“,”构成逗号表达式,简单说就是隔开两个表达式,优先级最低!25.如何实现实现自定义数据类型?想定义一个占用128位的数据类型,数据类型占用位数可以自定义,如何实现,代码怎么写?根据C语言提供的数据类型和结构体等知识,可以自己定义一个结构体,使其内部各成员总体所占的位数为128即可,定义方法参见结构体相关知识!26.在C语言中,指针类型属于构造类型对吗?指针类型不属于构造类型,C语言提供的数据类型包括基本数据类型、构造数据类型、指针类型和空类型。27.将高级语言编写的程序翻译成目标程序的程序是()?a、解释b、编译c、汇编d、二进制正确为B选项!28.C语言规定:在一个源程序中,main函数的位置?main的位置没有固定要求!29.switch语句的最后一个分支可以不要break语句吗?尽管switch语句的最后一个分支不一定需要break语句,但最好还是在switch语句的每个分支后面加上break语句,包括最后一个分支。这样做的主要原因是:你的程序很可能要让另一个人来维护,他可能要增加一些新的分支,但没有注意到最后一个分支没有break语句,结果使原来的最后一个分支受到其后新增分支的干扰而失效。在每个分支后面加上break语句将防止发生这种错误并增强程序的安全性。此外,目前大多数优化编译程序都会忽略最后一条break语句,所以加入这条语句不会影响程序的性能。30.C语言里的&&是什么意思!?逻辑与运算操作符!31.C语言变量的定义和声明有什么不同?定义和声明间的最主要的区别就是变量是否被分配内存!变量在定义时被分配内存,并且变量可以指定一个初始化的值。变量只能在这个程序中定义一次。声明在该程序中指定了变量的类型和名称。定义也是一种声明:当我们定义一个变量时,我们声明了它的名字和类型。32.C语言程序的执行过程是怎样的呢?1)编辑(在相应软件下编写程序代码)2)编译(成目标程序文件.obj)3)链接(成可执行程序文件.exe)4)运行(可执行程序文件)如果编译过程中出错,还需要调试(debug),然后再重复2-4步!33.现有流行的高级语言有哪些?汇编语言算不算高级语言呢?流行最广泛的有C,其他还有C++,Java,PHP,JavaScript,Ruby,Python,delphi等;汇编不算高级语言!34.C语言的主要用途是什么?它和其他高级语言有什么不同?C语言的用途相当广泛,其应用基本上是偏底层的,对效率要求高的,需要跟操作系统大量地直接打交道的,比如网络通信,多媒体,数据采集传输,信息安全,嵌入式,图形图像处理,模式识别等等。这实际也是应用方面C与其他高级语言之间所不同的地方。另外,语言本身的特点上,C有丰富的数据类型,尤其是指针,是其他语言所不具备的!35.数组名作为实参传递给形参时,数组名被处理为?数组的首地址!36.指向函数的指针是什么意思?指向函数的指针叫“函数指针”,是一个是指针变量。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。二、常用知识总结1.C语言中的循环语句if()~else~(条件语句)for()~(循环语句)while()~(循环语句)do~while()(循环语句)continue(结束本次循环语句)break(终止执行switch或循环语句)switch(多分支选择语句)goto(转向语句)return(从函数返回语句)2.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:说明变量在程序执行中可被隐含地改变3.C语言有哪些数据类型以及这些数据类型进行混合运算时遵循什么原则?(1)基本类型:(2)不同数据类型之间的转换有2种方式:隐式转换和显式转换。隐式转换:指的是默认做的一些转换式,比如整形和实型做混合运算(这里我说的运算是合法的运算,不会是取余这样对操作数有数据类型要求的运算),得到的结果是自动由精度低的或占位数低的数据类型向高的数据类型做转换,也就是上述问题得到的结果是实型。显示转换:指的是使用强制类型转换运算符来进行强制的结果类型转换,这是人为的得到想要的类型的一种方法。
本文标题:2014-2015第二学期《c语言程序设计》问题答疑材料
链接地址:https://www.777doc.com/doc-3004952 .html