当前位置:文档之家› 名师谈C语言的重要性和如何学习C语言

名师谈C语言的重要性和如何学习C语言

名师谈C语言的重要性和如何学习C语言
名师谈C语言的重要性和如何学习C语言

名师谈C语言的重要性和如何学习C语言

2010-12-08 16:50:07 阅读次数:685

很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢?

第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。

第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。

第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。

那么究竟怎样学习C语言呢?

1:工欲善其事,必先利其器

这里介绍几个学习C语言必备的东东:

一个开发环境,例如turbo C2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。

一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编第二版清华大学出版社,此书编写的很适合初学者,并且内容也很精到。

除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。

2:葵花宝典

学习计算机语言最好的方法是什么?答曰:读程序。

没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂

的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。

3:登峰造极

写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。

是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。

C语言函数知识详解

函数<一> 第一节函数的定义和返回值 一、库函数 1、一个C语言源程序无论包含了多少函数,C程序总是从main 开始执行。 2、调用C语言标准库函数时要求的include命令。 1)用户在源程序include命令中应该包含头文件: #include include命令必须用#开头,系统提供的头文件以.h作为文件的后缀,文件名用””或<>括起来, 2)include命令不是C语句,因此不能在最后加分号。 3、标准库函数的调用: 1)一般调用形式为:函数名(参数表) scanf(“%d”,&a);printf(“%d”,a); putchar(ch);ch=getchar(); 2)库函数的调用可以两种形式出现: 1出现在表达式中: 例:y=pow(x,2,5)+1.3 2作为独立语句完成某程操作: 例:printf(“********\n”); 常用函数: 数学函数:调用数学函数时,要求在源文件中包含以下命令行:

#include“math.h” 例:int abs(int x)double cos(double x) 字符函数和字符串函数 调用字符函数时,要求在源文件中包含头文件”ctype.h”;调用字符串 函数时,要求在源文件 中包含头文件”string.h” 如调用:int isalpha(int ch)检查ch是否为字母。 输入输出函数:调用输入输出函数时,要求在源文件中包含头文件”stdio.h” 例:调用:putchar getchar gets puts 二、函数的定义和返回值 1、函数定义的语法 函数首部(main()) 函数1 C 语定义说明部分 言 程函数体 序 执行语句部分

C语言函数的由来与好处

C语言函数的由来与好处 其实在汇编语言阶段,函数这个概念还是比较模糊的。汇编语言的代码往往就是从入口开始一条一条执行,直到遇到跳转指令(比如ARM 指令B、BL、BX、BLX 之类)然后才跳转到目的指令处执行。这个时候所有的代码仅仅是按其将要执行的顺序排列而已。后来人们发现这样写代码非常费劲,容易出错,也不方便。于是想出一个办法,把一些功能相对来说能成为一个整体的代码放到一起打包,通过一些数据接口和外界通信。这就是函数的由来。 那函数能给我们带来什么好处呢?简单来说可以概括成以下几点: 1、降低复杂性:使用函数的最首要原因是为了降低程序的复杂性,可以使用函数来隐含信息,从而使你不必再考虑这些信息。 2、避免重复代码段:如果在两个不同函数中的代码很相似,这往往意味着分解工作有误。这时,应该把两个函数中重复的代码都取出来,把公共代码放入一个新的通用函数中,然后再让这两个函数调用新的通用函数。通过使公共代码只出现一次,可以节约许多空间。 因为只要在一个地方改动代码就可以了。这时代码也更可靠了。 3、限制改动带来的影响:由于在独立区域进行改动,因此,由此带来的影响也只限于一个或最多几个区域中。 4、隐含顺序:如果程序通常先从用户那里读取数据,然后再从一个文件中读取辅助数据,在设计系统时编写一个函数,隐含哪一个首先执行的信息。 5、改进性能:把代码段放入函数也使得用更快的算法或执行更快的语言(如汇编)来改进这段代码的工作变得容易些。 6、进行集中控制:专门化的函数去读取和改变内部数据内容,也是一种集中的控制形式。 7、隐含数据结构:可以把数据结构的实现细节隐含起来。 8、隐含指针操作:指针操作可读性很差,而且很容易引发错误。通过把它们独立在函数中,可以把注意力集中到操作意图而不是集中到的指针操作本身。 9、隐含全局变量:参数传递。 C 语言中,函数其实就是一些语句的的集合,而语句又是由关键字和符号等元素组成,如果我们把关键字、符号等基本元素弄明白了,函数不就没有问题了么?我看未必。真正要编写出高质量的函数来,是非常不容易的。

C语言-函数

C语言(函数,变量作用范围)二 1 C语言程序由函数组成,以下说法正确的是( A ). A)主函数可以在其它函数之前,函数内不可以嵌套定义函数 B)主函数可以在其它函数之前,函数内可以嵌套定义函数 C)主函数必须在其它函数之前,函数内不可以嵌套定义函数 D)主函数必须在其它函数之前,函数内可以嵌套定义函数 2 以下说法中不正确的是( A )。 A) 主函数main中定义的变量在整个文件或程序中有效 B) 不同的函数中可以使用相同名字的变量 C) 形式参数是局部变量 D) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 3 下面函数 f(double x) {printf(“%6d\n”,x);} 的类型为( C ). A) 实型B)void 类型C)int 类型 D) A)、B)、C)均不正确 4 以下说法中正确的是( C ). A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行 D)C语言程序中,main函数必须放在程序的开始部分 5 以下正确的函数定义是( C ). A) double fun(int x,int y); {int z; z=x+y; return z;} B) fun(int x,y) {int z; return z;} C) double fun(int x,int y) {double z; z=x+y; return z;} D) double fun( x, y) {int x,y; double z; z=x+y; return z;} 6 定义为void类型的函数,其含义是( A ). A)调用函数后,被调用的函数没有返回值 B)调用函数后,被调用的函数不返回 C)调用函数后,被调用的函数的返回值为任意的类型 D)以上三种说法都是错误的

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

c语言作业答案

No.: Name: 第1讲C语言概述 注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。 一、选择题 1. 一个C程序的执行是从A 。 A) 本程序main函数开始,到main函数结束 B) 本程序文件第一个函数开始,到最后一个函数结束 C) 本程序文件第一个函数开始,到本main函数结束 D) 本程序main函数开始,到本程序文件最后一个函 数结束 2. 以下叙述不正确的是D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3. 以下叙述正确的是C 。 A) 在对一个C程序进行编译的过程中,可发现注释中 的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) 语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由B 。 A) 一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. 以下叙述中正确的是C 。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为 语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 6. 下列叙述中正确的是D 。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言的函数可以嵌套调用 7. 以下叙述中正确的是A 。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

c语言关于函数知识点

关于函数的知识点 1.函数调用的时候的参数叫实际参数 2.函数定义的时候的参数叫形式参数 3.函数调用发生的时候,要求实际参数和形式参数的数量要一致,类型要匹配 4.函数调用发生的时候,要考虑函数的位置? a)如果主调函数在上,被调函数在下,要求要在主调函数的上面或内部对被调函数 进行声明,否则函数调用无法执行; b)如果在程序中使用了库函数,要对该库函数作相应的声明处理。“#include” 5.函数声明 a)自定义函数的声明:推荐使用函数的原型声明方式(将函数的头部完全复制+分号, 构成函数声明语句)放在主调函数的变量定义位置(主调函数内)或者放在主调 函数的上方;声明放在程序的最开头; b)库函数的声明:使用#include来包含该库函数所在的头文件(*.h) c)什么时候不需要对函数进行声明:1. main不需要声明;2. 被调函数写在主调函数 之前,不需要声明。 6.函数的值 a)函数的值要返回主调函数,使用return语句; b)return语句在一个函数可以有多个,但是程序执行遇到第一个return语句的时候 就将结束本函数,回到主调函数。多个return最终只能有一个被执行。 c)return后面可以是变量、常量、表达式 d)return的作用结束被调函数的执行,使程序的流程回到主调函数; e)函数的类型:int, void,float,char,double,long ,short 1.无返回值的函数类型要写成:void 2.有返回值的函数的类型要尽量与return后面的表达式的类型一致 3.若函数类型与return后的类型不一致的情况下,要将return后的数据计 算后自动转换成函数类型再返回; 7.多个形式参数的定义,不管类型是否相同,都要分别用类型来定义形参 8.函数调用中的单向值传递和地址传递 a)普通变量做函数的参数:单向值传递 b)数组名做函数的参数:数组名作为函数的参数的时候,传递的是数组的地址,形 参数组就和实际参数数组具有了相同的地址,实际上它们是同一个数组,所以在 被调函数中对数组元素的计算,计算结果会在主调函数中被得到。 9.函数的调用方式: a)嵌套调用 b)递归调用 10.全局变量和局部变量 a)全局变量 b)局部变量 c)变量的作用域 d)变量的生存期 11.变量的存储类型 auto static register extern

C语言函数及其知识点

C语言函数(Function)及其知识点 绍兴文理学院沈红卫 C语言是函数的语言。这话的内涵很丰富,个人以为,可从以下几个方面去理解和把握函数这部分内容,领会此话的意义。 一、小函数大程序 意思是说,一个C语言程序可以很大,但是通常是由多个函数组成的。从这个意义上说,函数往往就比较短小。 一个程序需要由几个函数来实现,这个取决于你对C语言的掌握程度和领悟能力,没有硬性规定,以方便编程、方便调试、方便升级为原则。 一个程序分解成几个函数,有利于快速调试程序,也有利于提高程序代码的利用率。因为函数是可以多次被调用的,调用次数和调用场合没有限制。除main函数以外,任何一个函数都可以调用另外一个函数。 不要指望一个函数解决程序所有问题。每个函数应该做自己最应该做的事情,即相对独立的功能。 二、main函数及其作用 C语言程序,不管多大,还是多小,永远只能有一个而且只能有一个main函数。 main函数可以放在程序的任何一个地方,可以在程序首部,也可以在程序中间,也可以在程序尾部。 C语言程序,不管main函数在程序的什么地方,一定是从main函数开始执行程序,从main函数结束程序。所以,main函数又被称为主函数,即主心骨、主要的意思。 main函数通常定义成void类型,形式参数也通常为void类型。 三、函数的种类 函数通常分为库函数(标准函数)和自定义函数(用户函数)两大类。 库函数是指由C语言本身提供的,可供直接调用以实现特定功能的函数,例如:求正弦函数(sin())、求平方根函数(sqrt())、输出函数(printf())等等。

自定义函数是指由编程者自己开发、编写的、以实现一定功能的函数。所谓编写C程序(开发C程序),很大程度上,就是编写若干个自定义函数(包括main函数)。 所以可以这样说,不会写函数,就不会写C程序。 四、函数的定义、调用和说明 自定义函数(用户函数)必然涉及到三个方面:这个函数干啥用以及怎么干、调用这个函数、调用前必要的准备,对应三个C语言中的概念,分别是:函数定义、函数调用、函数说明。 函数定义最为关键,因为只有定义了一个函数才能使用这个函数啊。定义的语法详见教材第7章。简单地归纳定义的语法,大致如下: 函数类型函数名(函数的参数及其各自的类型) { 函数体(即函数的具体程序,由若干条语句组成) } 注意上述定义的格式。函数类型:即函数值的类型;函数名:可随意取,最好顾名知义,必须符合C有关标识符(identifier)的三条规则;函数的参数:又叫形式参数,可以是一个,也可以是多个,也可以是没有,如果没有参数,规范的定义应用void类型表示。 C语言中的所有函数都是相对独立的,即不能在一个函数内定义另外一个函数。 函数调用的语法很简单,就是:函数名(实际参数),可以用在任何一个表达式或语句中。 函数说明是函数调用前必须做的一项准备工作。函数说明又叫函数声明,其语法是:“函数类型函数名(函数参数及其各自的类型);”。注意,函数声明只是一条简单的语句,所以,千万别忘记“;”。 库函数在调用前也必须先声明,声明的语法是:#include <该函数对应的头文件>,或者#include “该函数对应的头文件”。两者唯一的区别在于,后者从多路径寻找该头文件并把它包含到用户所在的程序中,而前者只寻找C系统文件所在的路径。所以,可以通俗的理解为,后者比前者更保险就可以了。 五、函数内的变量及其作用范围 凡是函数内定义的变量,均为局部变量,只在该函数内起作用。因此,不同函数内定义的变量不必担心会发生同名冲突、打架的现象。

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参

第一讲C语言概论

第1讲程序设计与软件开发基础概述 1.1 计算机语言 1.1.1 计算机语言 第1代语言——机器语言 第2代语言——汇编语言,如MASM 第3代语言——高级语言,如C、BASIC 第4代语言——非过程化语言(面向对象语言),如C++ 第5代语言——智能化语言,用于抽象、数理逻辑等领域。 1.1.2 编译程序和解释程序 计算机语言处理程序: 编译程序 解释程序 计算机程序的运行方式: 编译运行 编辑源程序——由编译程序编译源程序生成目标程序——连接装配生成可执行程序——在操作系统支持下运行程序 解释运行 编辑源程序——在解释程序支持下逐语句解释运行程序 1.2 算法与数据结构 程序=算法+数据结构 数据——是信息的载体,即计算机处理的信息集合,如文字、符号、图、表、声音等。 数据结构——数据元素及其之间的关系——数据的逻辑结构。

数据的存储结构——数据逻辑结构在计算机存储设备中的映象——数据的物理结构 算法——问题求解过程的精确描述。 算法的特点是: 有穷性——计算机执行的次数为有限次,只含有限条指令。确定性——算法的每一步操作含意明确,无二义性。 可行性——有效性——描述的操作可以通过有限次的基本操作来实现。 输入——有0个或多个输入 输出——有1个或多个输出 算法的分类:数值运算算法和非数值运算算法。 算法描述的方法:自然语言描述、流程图描述、N-S盒图描述。程序——用计算机程序语言描述的算法。 1.3 结构化程序设计的3种基本结构及其设计方法 1.3.1 三种基本结构 顺序结构、选择结构、循环结构

1.3.2 算法的表示 1.自然语言 即用文字叙述算法 2.传统流程图 流程图——用图框、流线及文字组成的图形来描述算法. 流程图的基本构件: N-S图——盒图(box diagram),由矩形框组成的图 例求1+2+3+4+……+100的和 1.5 C程序的特点 1.函数——C语言的最小基本单位模块。 2.函数简单介绍 例: #include main()

C语言函数学习

函数 一:学习目的 1:正确理解函数在C语言程序设计中的作用和地位。 2:熟悉函数的定义、原型声明和调用的方法。 3:熟悉数组名做函数参数的用法 二:学习准备 1:有一个一维数组score,内放10个学生成绩,求平均成绩。 #include void main() { float average(float array[10]); float score[10],aver; int i; printf("input 10 scores:\n"); for(i=0;i<10;i++) scanf("%f",&score[i]); printf("\n"); aver=average(score); printf("%5.2f\n",aver); } float average(float array[10]) { int i; float aver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return(aver); } 2:有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。 #include void main() { float average(float array[ ],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={6 5,89.5,99,69.5, 77,89.5,76.5,54,60,99.5}; printf(“%6.2f\n”,average(score1,5)); printf(“%6.2f\n”,average(score2,10)); } float average(float array[ ],int n) { int i;

C语言学习大纲郝斌讲解

C语言概述: 1、为什么学习C语言 1). C的起源和发展 2).C的特点 优点 代码量小速度快功能强大 缺点 危险性高 开发周期长 可移植性不强 3).c的应用领域 主要是系统领域 4).c的重要性 2、怎样学习C语言 3、学习的目标 了解程序语言及发展历史 熟练掌握c语言的语法规则 掌握简单的算法 理解面向过程的思想,这非常有助于将来对面向对象思想的学习能看懂程序 会调试程序 掌握将大问题转化为一系列小问题来求解的思想 为学习c++、数据结构、c#、java打下良好的基础 4、常见的学习问题 1、学习java为什么建议先学习C语言 2、没学过计算机专业的课程能够学懂C语言 3、英语和数学不好能学好C吗 32个关键词:(有系统定义,不能重做其他定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned unsigned union void volatile while 5、课程规划 c语言简介 第一讲、基本编程知识 第二讲、数据类型 第三讲、运算符和表达式 第四讲、流程控制(所有语言都一样的) 第五讲、函数(体现出面向过程和面向对象的区别) 第六讲、数组 第七讲、指针(c语言的灵魂) 第八讲、变量的作用域和存储方式 第九讲、扩展数据类型 第十讲、专题: 字符串的处理 进制转换 补码 动态内存分配(java、数据结构必学) 综合应用:链表的使用

C语言的常用库函数使用方法分析及用途

C语言的常用库函数使用方法分析及用途 getch()从键盘无回显地读取一字符的函数 功能:将键盘上输入的单个字符的值(ASCⅡ 码)立刻赋给字符型变量 调用方式:字符形变量=getch() 注:需先定义 char 字符形变量; 头文件:conio.h getchar()从stdin流中读取一个字符的函数 功能:将键盘上输入的单个字符的值(ASCⅡ 码)回车后赋给字符型变量 调用方式:字符型变量=getchar() 注:需先定义 char 字符型变量; 头文件:stdio.h initgraph()显示模式控制函数(初始化图形系统函数) 功能:把图形适配器设置为一种图形模式,将选择的图形驱动程序(在BGI 文件中)装入到内存。 调用方式: void far initgraph(int far *driver,int far *mode,char far*path) 其中: *driver可以是数值(0-10),也可是符号值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。 *mode参数从图形系统为各种常用的图形适配器设置的图形模式中(CGAC0、…、IBM8514HI--见头文件graphics.h)选取。常用的有:VGAMED或 1(640×350)(等效于BIOS的模式15)、EGAHI或1(640×350)等。 path指向的字符串为装入驱动程序的路径。如果缺省路径,驱动程序在当前目录。 结束方法:

①void far closegraph()函数用于当程序还要继续在字符模下运行时。它释放由图形函数所占用的内存,同时把屏幕模式恢复为调用initgraph()之前的模式。 ②void far restorecrtmode()函数用于结束运行。将图形适配器设置到原来的模式。任何分配的内存都将自动释放。 头文件:graphics.h outtextxy()在指定位置显示一字符串的函数 原形:void far outtextxy(int x,int y,char far *textstring) 功能:按照当前对齐方式和当前字体、方向、大小在视区中给定位置显示一文本字符串。 注意:用textwidth和textheight函数决定字符串的尺寸大小。 头文件:graphics.h rectangle()画一个矩形的函数 原形:void far rectangle(int left,int top,int right,int bottom) 功能:用当前线性、宽度和画线颜色绘制一个矩形。 头文件:graphics.h setcolor()设置当前要画的线颜色的函数 原形:void far setcolor(int color) 头文件:graphics.h 注意:颜色值(EGA/VGA) 0-BLACK; 1-BLUE; 2-GREEN;

C语言题库-函数

C语言函数练习题 一、选择题 1.在函数的说明和定义时若没有指出函数的类型,则( A ) A: 系统自动地认为函数的类型为整型。 B: 系统自动地认为函数的类型为字符型。 C: 系统自动地认为函数的类型为实型。 D: 编译时会出错。 2.下面正确的函数定义形式是( A ) A: double fun(int x,int y) { } B: double fun(int x;int y) { } C: double fun(int x,int y); D: double fun(int x,y); 3. 若调用一个函数,且此函数中没有return 语句,则正确的说法是:该函数( D ) A: 没有返回值; B: 返回若干个系统默认值; C: 能返回一个用户所希望的函数值; D: 返回一个不确定的值 4. C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值

类型是( B ) A: float 型 B: int 型 C: long 型 D: double 型 5. C语言规定,函数返回值的类型是由( D )(二级题)A: return 语句中的表达式类型所决定; B: 调用该函数时的主调函数类型所决定; C: 调用该函数时系统临时决定; D: 在定义该函数时所指定的函数类型所决定 6.下面函数调用语句含有实参的个数为( B ) func((exp1,exp2),(exp3,exp4,exp5)); A: 1 B: 2 C: 5 D: 4 7. 以下错误的描述是( D ) 函数的调用可以 A: 出现在执行语句中;

B: 出现在一个表达式中; C: 为一个函数的实参; D: 作为一个函数的形参; 8.若函数的形参为一维数组,则下列说法中正确的是( B )A: 调用函数时的对应实参必为数组名。 B: 形参数组可以不指定大小。 C: 形参数组的元素个数必须等于实参数组的元素个数。 D: 形参数组的元素个数必须多于实参数组的元素个数。 9.下面叙述中正确的是( C ) A: 对于用户自己定义的函数,在使用前必须加以说明。 B: 说明函数时必须明确其参数类型和返回类型。 C: 函数可以返回一个值,也可以什么值也不返回。 D: 空函数不完成任何操作,所以在程序设计中没有用处。 10.若使用一维数组名作函数参数,则以下正确的说法是( C )A: 必须在主调用函数中说明此数组的大小; B: 实参数组类型与形参数组类型可以匹配;必须 C: 在被调函数中,不需要考虑形参数组的大小; D: 实参数组名与形参数组名必须一致

C语言函数题库及解答

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时 D.定义函数时所指定的函数类型2.下面不正确的描述是(B )。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 ( D ) A.地址传递 B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有( A )个实参 int a,b,c; int sum(int x1,int x2); …… total=sum((a,b),c); A.2 B.3 C.4 D.5 5.在C语言中( C ) A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C ) A.只能在主函数中出现

B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是( D) A. int a(float x[],int n) B. int a(float *x,int n) C. int a(float x[10],int n) D.int a(float x,int n) 8.在C语言中,函数的数据类型是指( A ) A.函数返回值的数据类型 B. 函数形参的数据类型 C.调用该函数时的实参的数据类型 D. 任意指定的数据类型 9.已知如下定义的函数: fun1(a) { printf("\n%d",a); } 则该函数的数据类型是( C ) A.与参数a的类型相同 B.void型 C.整型 D.无法确定 10.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是( D ) A. swapa(int x,int y) { int temp; temp=x;x=y;y=temp; }

C语言函数知识点总结

函数 本章重点: 函数的定义和调用; 函数间的数据传递方式; 嵌套调用和递归调用; 变量的作用域和存储类别; 模块化程序设计方法。 本章难点: 形参与实参的意义、作用与区别; 参数的两种传递方式; 对递归函数调用过程的理解; 全局变量和局部变量的作用。 //函数相关内容: *语法:包括定义,声明,调用, *语义 语句包括:表达式语句,空语句,控制语句,复合语句,函数调

用语句 函数:*函数首部:包括返回值类型,函数名,形参 *函数体 *函数调用的过程:*开辟空间(形参,函数的局部变量) *把实参送给形参 *执行函数 *释放空间 1.函数其实就是一段可以重复调用的、功能相对独立完整的程序段。 2.主函数可以调用其他函数,其他函数也可以互相调用。 3.一个C程序必须有一个且只能有一个main函数,无论main 函数位于程序 的什么位置,运行时都是从main函数开始执行的。 4.函数不能嵌套定义,也就是说一个函数不能从属于另一个函数。函数之

间可以互相调用,但是任何函数不能调用main函数,main函数是被操作系 统调用的。 5.函数的分类: (1)从用户角度看:库函数、用户自定义的函数 (2)从形式:无参函数、有参函数 6.函数定义即函数的实现,是对所要完成功能的操作进行描述的过程,包 括函数命名和返回值类型声明、形式参数的类型说明、变量说明和一系 列操作语句等。 函数和变量一样,必须“先定义,后使用” 7.函数定义应包括以下内容: 函数的名字、返回值的类型。函数参数的类型和名字,无参函数不需要

指定。指定函数的功能 8.在函数体中,声明部分是对函数内部所用到的变量的类型说明,并对要 调用的函数进行声明。 9。定义有参函数的一般形式为: 类型标识符函数名(形式参数表列) { 声明部分; 语句; } 10.在C语言中,可以用以下几种方式调用函数 (1)函数表达式 函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式 的运算。这时要求函数是有返回值的。 例如:y=sin(x);

C语言的常用库函数使用方法分析及用途

C语言的常用库函数使用方法分析及用途 absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void*buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K 个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void*buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号;

buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h atof()将字符串转换成浮点数的函数 原形:double atof(const char*s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h atoi()将字符串转换成整型数的函数

原形:int atoi(const char*s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h atol()将字符串转换成长整型数的函数 原形:long atol(const char*s) 功能:把s所指向的字符串转换成long int类型。s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h bcd()把一个数转换成对应的BCD码的函数

C语言基础知识归纳

C语言基础知识 1.每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main() 函数中结束。 2.在C语言中,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。 3.用单引号括起来的一个字符常量只能存放一个字符;C语言中没有字符串变量,只能用 字符数组来存储字符串。 4.外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类 别。 5.在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。 6.用sizeof(int)计算int类型数据的字节数。 7.C语言运行时,首先系统检查语法的正误,再运行程序的语法;C语言中,可以在一个 函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。 8.预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的可以有多条预处理命 令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。 9.feof函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。 10.当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。 11.在赋值表达式中,赋值运算符“=”右侧不能为表达式;在求余运算符中的两侧都必须 为整型;在强制类型转换时,类型名应用括号括起来。 12.静态局部变量,只有当程序结束后,其值才释放。 13.当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。 14.算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同; 算法正确的程序最终一定会结束。 15.在C语言中,预处理命令行都以“#”开头;当需要时才用#include;预处理的作 用就是实现宏定义和条件编译。 16.当数组元素的下标超出了定义的下标范围时,系统不给出“下标越界”的字样,而是得 出错误的答案,因此在编程时务必检查下标是否越界。 17.共用体变量不能作为函数的参数,也不能使函数带回共用体变量。 18.指向函数的指针变量的定义形式为:数据类型(*指针变量)();,因此其为指向函 数的指针变量。 19.用C语言编写的代码程序是源程序,只有通过编译、连接才能进行。 20.在说明为static时,其生存期得到延长,而其作用域并没有改变,在定义后系统会自动 帮它赋值为0,static为关键字不能被用作它用。 21.频繁地使用空语句会降低程序的可读性和运算速度。 22.运算符%两边都应是整数,赋值语句左边应该是变量,而非表达式,强制转换语句强制 类型应加括号。 23.在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。 24.函数fread(&Iarray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的 数据存储到数组Iarray中。 25.整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达到写入数据时,未 经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。 26.使用putchar、getchat、puts、gets、printf、scanf函数时,必须在程序的开头出现包含头 文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含

相关主题
文本预览
相关文档 最新文档