C语言程序设计

2018-11-13 05:54梁凯华中北大学朔州校区
数码世界 2018年10期
关键词:字符串C语言个数

梁凯华 中北大学(朔州校区)

1 C语言的地位

冯.诺依曼在1945年他提出了现代计算机的若干思想,被后人称为冯.诺依曼思想,这是计算机发展史上的里程碑。自1945年至今大多采用其结构,因此冯.诺依曼被称为计算机之父。他的体系结构计算机由运算器,控制器,存储器,输入设备,输出设备五大部件构成。C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位。

2 C语言的结构化设计

C语言每个阶段的处理都比较容易使人理解。它采用自顶向下,逐步细化,模块化设计,结构化编码的方法来保证完成程序。

2.1 自顶向下逐步细化

通过自顶向下逐步细化可以使c语言代码的出错率降低更能提高c语言程序的执行效率,它能使一个具体的问题抽象化再加以注释方便人们的理解。

2.2 模块化设计

它把一个复杂的问题进行了模块化,使每个模块的功能更简洁更单一,模块在语言中可通过函数实现。

例如贪吃蛇游戏的设计可分为六个模块。游戏开始时,固定蛇身的长度,其位置任意。

(1)蛇头撞到自身和周围边框时游戏结束,重新开始时撞到食物蛇身长度增加一个单位。

(2)吃到一定长度或时间停止为通关。

(3)可以通过设置蛇的运动速度加快游戏的进度。

(4)可以使用外部设备如键盘及手柄控制蛇的运动方向如果不控制蛇则按当前方向运动。

(5)设置显示游戏的级别及分数。

这些模块可以通过c语言程序设计中的函数及代码完成。

2.3 结构化编码

设计好结构化算法之后,还要进行结构化编码,将其用设计好的算法用具体的程序设计语言来表示,得到结构化程序。

3 编写c语言的注意事项

3.1 区分字符与字符串

字符串用双引号表示字符则用单引号表示,字符串的长度为其字节数减1。如“pro”占用4个字节的存储空间,但其有效字符的个数却是3,最后一个字节存储字符串结束标志’’。ASCII码为0的字符为字符串的结束标志。

3.2 c++和++c的区分

若变量c=1;则执行c++后其表达式的值为1,c的值为2。若执行++c后其表达式的值和c的值都为2。

3.3 注意switch语句中的{}和复合语句中的{}

“{}“内是switch语句的语句体,不表示复合语句。Switch后面括号里的表达式的值在vc环境下必须是整形。

3.4 Break语句注意事项和与continue语句的区别

Break语句只能用在switch语句和循环语句中代表跳出本层循环,而continue语句则代表跳出本次循环后执行下一次循环。

3.5 C语言函数调用

C语言在调用函数时须记得声明被调函数,如果不进行声明则会出错。C语言函数可以进行嵌套调用和递归调用但不可以进行嵌套定义。

3.6 C语言中的宏定义是机械化操作只会从左到右执行。

3.7 C语言中的%运算只能是整型。

3.8 C语言中动态分配内存函数与数组分配内存的区别

如果字符串保存到数组中,函数调用结束后数组的内存释放,得不到所需的字符串。

但通过malloc()或 calloc()函数分配内存且通过free()函数释放内存空间则可以执行。如:char *ss;ss=(char*)malloc(6);free(ss); 区别于 char s[6];

4 C语言中函数的分类

4.1 从用户角度分类

其分为库函数和用户自定义函数。如main()函数调用的标准输出函数printf(),scanf(),函数area()中调用的开平方函数sqrt()等都是库函数。又如函数prtmsg()等是用户自定义函数。

4.2 从函数参数角度分类

函数可分为有参函数和无参函数。

4.3 从函数返回值角度分类

函数分为有值函数和无值函数。有值函数在完成其功能后会向主调函数返回一个执行结果。无值函数在完成函数功能后不会向主调函数返回执行结果。

5 C语言与java语言区别

(1)c语言的编辑速度快与java。

(2)c语言中为了方便引入了数组和指针但在java中没有指针。

(3)与java语言相比c语言的代码不易跨平台java的代码易跨平台。

(4)C语言的线程更加灵活java是已经装好的线程。

(5)C语言的开源包偏少而且面向某个领域的框架不多。

(6)c语言中的结构体与数组的区别。

通过结构体可以方便灵活地将若干不同类型的数据组织成一个有机的组合体。在c语言中数组分配的存储空间是固定的,不能够再增加存储空间的分配而结构体却能够自由地通过realloc函数插入新的存储空间。但缺点是其编写的代码更加的复杂难懂。需要注意的是不要把C语言的结构体变量与c语言结构体类型搞混,不能对结构体类型进行初始化操作。若初始化时初值个数少于结构体中成员的个数,其余成员将自动初始化为0。

6 C语言中的运算符

C语言中的运算符可分为三类:单目,双目,三目运算符。

C语言须通过各类运算符进行运算。单目运算符如()圆括号,逻辑非,自增自减等等。双目运算符如>,<,>>,<<等等可以结和两个运算对象。三目运算符如条件运算符? :其为右结合可以结合三个运算对象。C语言中的运算符可根据其优先级的大小来进行其先后顺序的执行以便程序出现错误。

7 举例:C语言程序设计举例起泡法排序

其基本思想是对N个数构成的序列两两比较使相邻的两个数按从小到大的顺序排列。

如输入5个数需要进行4趟沉底第一趟需要进行4次排序,其后的排序操作依次递减。

N个数排序次数用P表示其沉底次数第一次沉底N-1次,用变量Q表示,设定i从0变化到Q相邻的两个元素进行比较,相邻的两个元素可以使用a[i]和a[i+1]表示。

程序设计如下:

8 C语言中变量的作用域和生存期

按照变量的作用域可把变量分为全局变量和局部变量。按照变量的生存期可把变量分为动态存储方式和静态存储方式。

注意事项:

(1)静态局部变量未赋值时,自动赋值为0;动态局部变量不赋值时其值是随机值。

(2)静态局部变量具有可继承性;动态局部变量无继承性。

(3)全局变量是存储在静态存储区,具有全局生存期。未初始化时其值为0。

(4)程序中全局变量和局部变量可以同名,但起作用的为局部变量。

(5)对多个文件的作用域进行扩展时需要使用extern扩展全局变量的作用范围。

9 综上所述

C语言是一种十分强大的语言,可以进行多种方式进行程序的设计,它是一种很有特色的高级语言通过若干个函数组成,它具备构成程序设计的3种基本结构顺序,选择和循环结构。C语言编辑简洁明了,运算符丰富且功能强大还有编译预处理功能。此语言的移植性好不同的处理器用不同的编译器编译指令达到移植的效果。在c语言的发展史上还编写了多个版本的UNIX操作系统K&R编写了(c程序设计语言)一书,从此有了标准的程序设计语言。

猜你喜欢
字符串C语言个数
怎样数出小正方体的个数
基于文本挖掘的语词典研究
互联网+教育背景下的C语言程序设计教学改革探究
基于Visual Studio Code的C语言程序设计实践教学探索
怎样数出小木块的个数
51单片机C语言入门方法
最强大脑
怎样数出小正方体的个数
SQL server 2008中的常见的字符串处理函数
高职高专院校C语言程序设计教学改革探索