如何用c语言编程软件设计编程,如

程序设计入门—C语言
所属微专业:
程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。对于非计算机专业的学生,学习本课程的主要目的是掌握程序设计的基本方法,C语言是教学媒介。但是对于计算机专业的学生,本课程是向后续的计算机组成、操作系统、编译原理、体系结构等课程前进的基石。本课程是以C语言来讲授程序设计的入门知识,而非具体教授C语言,关于C语言的全面知识,还需要学习本课程的后续课程——“C语言程序设计进阶”。程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,要想学会编程,还需要更多时间的投入和努力。为了学习编程,你需要有一台计算机,安装必要的编程软件。无论是MS Windows、Mac OS X还是Linux,都有适合C语言编程的软件。本课程的后续课程是《C语言程序设计进阶》
证书要求 本课程的成绩由三部分组成:编程题,占25%:每周有1至2道编程题,在题目公布开始2周内需要完成编程题。小测验,占25%:每两周左右有一次小测验,题型为选择题,每次有1周时间,在这7天内需要做测验,每次测验只能做一次。期末考试,占50%。题型为选择和填空题。获得综合评分60分的可以获得本课程的合格证书,获得85分的可以获得优秀证书。
预备知识 作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。
授课大纲 第一周:从做点计算开始1.1 计算机与编程语言计算机怎么做事情的,编程语言是什么,计算机的思维方式是怎样的,为什么是C;关于C语言和版本的极其简单的历史&。1.2 第一个程序C语言的编程软件选择太多,我们推荐Dev C++;如何在Dev C++中编辑、编译和运行程序;详解第一个程序:程序框架、printf、出错怎么办;做点计算:如何让程序输出算术结果1.3 数据是用变量来表示的变量定义:变量是做什么的,如何定义一个变量;变量赋值与:a=b表示把b的值赋给a,而不是它们相等;变量输入:如何让程序读入用户输入的数字&1.4 计算是由表达式来完成的表达式:运算符和算子,取余计算,程序就是数据加计算;浮点数:整数运算的结果只有整数部分,不然就要用浮点数;运算符优先级:优先级、结合关系、赋值运算符;复合赋值和递增递减第二周:做点决定2.1 做判断做判断:if语句根据条件决定做还是不做;判断的条件 关系运算,做比较的运算符; 否则的话:如果条件不成立呢?; 逻辑运算:对比较的结果进行与、或、非运算2.2 复杂的判断逻辑运算;嵌套的if-else:在if或else后面要执行的还是if语句,就成了嵌套; 级联的if-else if:像分段函数这样的程序就可以写成级联的if; if-else的常见错误:没有{}、多了;、=和==这些都是常见的错误&2.3 分支多路分支:switch-case语句&第三周:不断地重复3.1 重复做事情循环:有些事情就得用循环才能解决;while循环:就像if一样,条件满足就不断地做后面大括号里的句子;do-while循环:不管三七二十一,先做循环内的句子再判断条件3.2 for循环for循环:这是最古老的循环; 循环的计算和选择:如何计算循环的次数,如何选择不同的循环第四周:循环控制4.1 循环控制循环控制:如何用break和continue来控制循环 嵌套的循环:在循环里面还是循环; 从嵌套的循环中跳出:break只能跳出其所在的循环&4.2 循环计算猜数游戏;算平均数;整数求逆;前n项求和;整数分解;求最大公约数&第五周:经常做的事情可以摘出来5.1 初见函数函数的定义和调用从函数中返回&5.2 使用函数函数原型:用来告诉编译器这个函数长什么样儿参数传递:调用函数的时候,是用表达式的值来初始化函数的参数&5.3 本地变量本地变量:定义在函数内部的变量是本地变量,参数也是本地变量函数庶事:一些有关函数的细节问题,main()是什么&第六周:要记录很多数据5.1 数组5.1 初试数组数组的使用:如何定义和使用数组,数组的下标和下标的范围&5.2 数组运算数组的例子:统计个数 数组例子:素数二维数组第七周:计算机不只是做数学7.1 字符类型7.2 字符串处理函数 `
参考资料 何钦铭、颜晖,《C语言程序设计(第2版)》,高等教育出版社,2013年
所属微专业
所属系列课程
网易公司()旗下实用技能学习平台。与顶级机构、院校和优秀讲师合作,为您提供海量优质课程,以及创新的在线学习体验,帮助您获得全新的个人发展和能力提升。
关注我们:
& 网易公司 版权所有我想搞软件.我现在学了,汇编,C语言,C++,学了操作系统原理,正在学WINDOWS程序设计.还要学哪些?_百度知道
我想搞软件.我现在学了,汇编,C语言,C++,学了操作系统原理,正在学WINDOWS程序设计.还要学哪些?
我是想搞有关网络方面的软件,因为我大学学的是物理,所以对软件这门知识体系不了解,现在我只能用C在51,ARV,ARM上编程.其它学了,都没怎么用到,主要是感觉自已学得还不够多,不能很好的将它们应用起来.
呵呵,很简单,如果你大学不是计算机专业的,对计算机基础又不是特别扎实,而且看了你想搞软件,还是网络方面的,那就学习c#,.net sql,有了c语言的基础C#比较容易入手,.net是微软推出的软件开发平台,推出的时间相对java时间短,不像java已经有了很多很多老鸟,我大学是学地理的,因为不想当教师,所以学的就是这个,有不明白的可以在讨论。
其他类似问题
为您推荐:
其他3条回答
汗死了.我居然认为谭浩强的书好.我倒..楼上的话我一定会记得的..我要做杰出的程序员+黑客..
c一般一般用于安全软件的编写,比较底层,像c++,c#,Java这些高级语言都可以编写一般的应用程序,先从小软件做起,可以从网上搜一些项目不要只停留于书本
学习任何知识,循序渐进总是最好的方式。不幸的是,很多人明知这个道理,却总是想走所谓的捷径。如果你是一个刚刚开始学习编程的中学生,或者你是一个刚刚进入计算机学院的本科生,又或者你是一个决心在计算机领域有所建树的初学者,你一定迫切地想知道,学习计算机技术,究竟应该从哪里下手。 我的建议是:数学、英语、C语言。 数学和英语的重要性已经不需要我来强调,大家也许从幼儿园就开始学习它们了,请时刻把它们放在最重要的位置,无论你是否学习计算机。 为什么C语言如此重要?我们从学习方法开始说起。书本上描述的东西,倘若不经过我们的亲自实践,是难以被彻底消化吸收的。计算机组成原理讲解了浮点数的格式,如果我们能看到并分析内存或寄存器中某个浮点数的表示,那比单纯的纸上谈兵要强一千倍;数...
windows程序设计的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Posts - 90,
Articles - 0,
Comments - 468
求真、务实。
18:56 by wid, ... 阅读,
我的第一个Windows程序, Hello,world!在的书中, 作者首先回顾了下C语言在控制台下通过标准输入输出函数输出"Hello,world!"的程序, 代码如下:
#include &stdio.h&
int main()
printf( "Hello,world!\n" ) ;
return 0 ;
不过令我疑惑的是, 在我这本《Windows程序设计》(第五版) 2010年9月第5版的书中, 却将这段经典代码的"return 0 ;"写成了"Return 0 ;", 笔者尝试了下, "Return 0 ;"在VC6的编译器和GCC下都是报错的, 难道是我买到盗版书了?
可能是由于印刷失误, 这里就先不管他了。
同样, Charles Petzold也给出了Windows版的"Hello,world!"(其实他给出的是Hello,windows 98!), 代码如下:
#include&windows.h&
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow )
MessageBox( NULL, TEXT("Hello,world!"), TEXT("MessageBox"), 0 );
通过Visual C++ 6.0的"文件"--&"新建"--&"工程", 选择"Win32 Application"创建一个空的项目, 再在这个项目中新建一个"文件", 文件类型为"C++ Source File", 文件以.c为扩展名, 将上面的代码敲入或者复制粘贴到这个文件内容中, 经过编译运行就可以得到一个对话框了, 赶紧截图留念吧!
在这个对话框中, 有标题栏, 标题栏的内容是"MessageBox", 对话框的内容为"Hello,world!", 还有一个"确定"按钮, 而且, 没有那个黑框框窗口, 一切看起来都是那么美好, 来一起看看这段Windows版的Hello,world!吧!-----------------------------------------------------------
*Windows版的Hello,world!代码注释**第一行#include&windows.h&稍微有点C语音基础的都能明白, 这是要包含"windows.h"这个头文件, 也就说明, 在下面的代码中, 要用到这个头文件, 如果我们将#include&windows.h&这句去掉再进行编译看看会有什么情况:
Compiling...
HelloWorld.c
d:\project\lwinc\helloworld\helloworld.c(3) : error C2061: syntax error : identifier 'WinMain'
d:\project\lwinc\helloworld\helloworld.c(3) : error C2059: syntax error : ';'
d:\project\lwinc\helloworld\helloworld.c(3) : error C2146: syntax error : missing ')' before identifier 'hInstance'
d:\project\lwinc\helloworld\helloworld.c(3) : error C2061: syntax error : identifier 'hInstance'
d:\project\lwinc\helloworld\helloworld.c(3) : error C2059: syntax error : ','
d:\project\lwinc\helloworld\helloworld.c(3) : error C2059: syntax error : ')'
执行 cl.exe 时出错.
意料之内的, 报错了, 第一条就是标识符"WinMain"错误, 具体的细节暂时就不深究了, 继续向下看。
*关于windows.h头文件:&& &在windows.h这个头文件中, 实际上已经包含了若干的其他相关的头文件, 用书上的话说, windows.h是个非常重要的包含文件, 其中包含的其他比较重要的头文件有:&& &■ WINDEF.H&& &&& &  &&& 基本数据类型定义&& &■ WINNT.H&& &&& &  &&&&& 支持Unicode的类型定义&& &■ WINBASE.H&& &&& &   内核函数&& &■ WINUSER.H&& &&& &   用户界面函数&& &■ WINGDI.H&& &&& &   & 图像设备接口函数不过我还是好奇windows.h到底包含了那些头文件, 找到VC6的安装目录, 打开Include文件夹, 找到WINDOWS.H并打开, 虽说看不太懂, 但找#include关键词还是无压力的.除去上面的5个还有:&& &■ WINRESRC.H&& && ■ EXCPT.H&& &&& &&&&&& ■ STDARG.H&& &&& &&&& ■ WINNLS.H&& &&& &&&& ■ WINCON.H&& &■ WINVER.H&& &&& && ■ WINREG.H&& &&& & ■ WINNETWK.H&& &&& ■ CDERR.H&& &&& &&&&& ■ DDE.H&& &■ DDEML.H&& &&& &&&& ■ DLGS.H&& &&& &&  & ■ LZEXPAND.H&& &&&&& ■ MMSYSTEM.H&& &&& ■ NB30.H&& &■ RPC.H&& &&& &&& &&&&& ■ SHELLAPI.H&& &&&& ■ WINPERF.H&& &&& &&& ■ WINSOCK2.H&& &&& ■ MSWSOCK.H&& &■ WINSOCK.H&& &&& &■ WINCRYPT.H&& &&& ■ COMMDLG.H&& &&& & ■ WINSPOOL.H&& &&& ■ OLE.H&& &■ OLE2.H&& &&& &&&&&&& ■ WINWLM.H&& &&& && ■ WINSVC.H&& &&& &&&& ■ MCX.H&& &&& &&& && && ■ IMM.H
*程序的入口在Win32控制台程序()中, 应用程序的入口为main()函数, windows程序的程序入口和win32控制台程序的入口类似, 为WinMain()函数.程序的入口函数在WINBASE.H作出了声明, 声明如下:
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
其中由声明可以看出, WinMain函数的返回值被定义为int型;WINAPI为WinMain函数的调用规则, 在WINDEF.H对"WINAPI"作出了如下宏定义:
#define WINAPI __stdcall
说明, WinMain函数的调用规则为""方式, 对于"__stdcall"调用规则, 现在暂时先不去深究, 知道有这么回事就行, 以后会详细了解到的, 现在如果深究"__stdcall"就偏离了这篇博文的主题。
*WinMain函数的参数:1&. WinMain的第一个参数 HINSTANCE hInstance, 用书上的解释为"实例句柄", 由于第一次接触C语言Windows程序设计, 对这个句柄的概念也不是很了解, 去百科了下, 句柄的解释为"一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。"&&。
笔者是这样对句柄进行理解的, 在一个应用程序中, 通常创建了很多的窗口、按钮、标签, 或者使用了一个文件等, 在程序的任何地方, 只要能够获得这个被称为句柄的东西, 就能够找到该控件或者窗口在内存中的位置, 从而对其进行操作。感觉有点像带参数的main函数, 只是这里的主函数参数为一个句柄。
2&. WinMain函数的第二个参数, 同样是个实例句柄, 但书上又进一步解释说在32位的Windows程序设计中, WinMain函数的实例句柄概念已不再采用, 因此WinMain的第二个参数通常总是NULL。笔者的见解: 感觉马上就要晕了, 疑问一: "因此WinMain的第二个参数通常总是NULL", 那么第一个呢?WinMain的第一个参数会不会也可以是NULL呢? 疑问二: WinMain函数的参数从何而来?是操作系统么?带着疑问继续向下看。
3&. WinMain的第三个参数是用来运行程序的命令行, PSTR: 用来指向一个字符串的指针类型, szCmdLine, sz:表示以0结尾的字符串; 目的是通过命令行方式运行程序并向主函数中传入参数, 应该就像给main函数传入参数一样;
4&. WinMain的第四个参数是一个int型参数, 用来指明程序(窗口)最初如何被显示, 例如最小化?最大化?全屏?笔者的见解: 应该很有用, 经常见一些游戏一启动就是全屏的, 但是这个参数也是操心系统传给程序的么?因为从平时运行Windows程序时都是直接双击, 并没有通过命令行给它传入参数, 在编程时应该对程序启动时的显示方式有交代才对, 这样系统再运行时再把这个交代的参数传入给程序告诉程序启动时应该如何显示.(在"笔者的见解"部分的观点均为笔者个人的见解, 如果有误肯定指正, 我会及时更正, 避免误导其他读者。)
*WinMain函数函数体的MessageBox函数:, 名如其"人", 不用猜也知道这个就是显示一个对话框的函数, 打开API文档,MSDN Library通过索引找到MessageBox函数, 发现其声明如下:
int MessageBox(
HWND hWnd,
// handle of owner window, 窗口的一个句柄
LPCTSTR lpText,
// address of text in message box, 一个文本(字符串)的指针
LPCTSTR lpCaption,
// address of title of message box, 标题字符串的指针
UINT uType
// style of message box, 对话框的风格
在上面示例中对MessageBox函数的调用如下:
MessageBox( NULL, TEXT("Hello,world!"), TEXT("MessageBox"), 0 );
第一个参数窗口的句柄的实参为NULL, 意思为不属于任何窗口.第二个参数为对话框的内容, 第三个参数为对话框的标题, 但是这两个参数都使用了一个TEXT()的函数, 书上讲使用TEXT()的目的是将这些字符串打包到TEXT宏代码里面, 笔者尝试了不用这个TEXT()函数而直接像这样:
MessageBox( NULL, "Hello,world!", "MessageBox", 0 );
调用并没有出现警告或者报错信息, 具体使用TEXT()函数的详细原因还不太清楚, 暂时先在这里画个圈。
第四个参数为对话框的风格, 一些以MB_开头的一些常量的组合, 可以使用OR(|)运算进行组合, 这些常量定义在WINUSER.H中, 例如常用的有:
1&.对话框按钮类型:
#define MB_OK
//仅有一个"确定"按钮
#define MB_OKCANCEL
//"确定" + "取消"
#define MB_ABORTRETRYIGNORE
//"终止" + "重试" + "忽略"
#define MB_YESNOCANCEL
//"是" + "否" + "取消"
#define MB_YESNO
//"是" + "否"
#define MB_RETRYCANCEL
//"重试" + "取消"
2&.对话框中的图标类型:&&
#define MB_ICONHAND
//一个红X的错误/停止图标
#define MB_ICONQUESTION
//一个问号的询问图标
#define MB_ICONEXCLAMATION
//一个黄色感叹号的警告图标
#define MB_ICONASTERISK
//一个带有i的信息提示图标
同时, 在这些图标中有的还可以用其他名称代替, 这些别名在WINUSER.H的定义如下:
#define MB_ICONWARNING
MB_ICONEXCLAMATION
#define MB_ICONERROR
MB_ICONHAND
#define MB_ICONINFORMATION
MB_ICONASTERISK
#define MB_ICONSTOP
MB_ICONHAND
------------------------------------------------------------------下午的学习暂时就到这里, 在学习的过程中出现了几个疑问, 在这里对疑问进行下总结:&& &疑问一: 在书中介绍WinMain函数的参数时讲到 "因此WinMain的第二个参数通常总是NULL", 那么第一个呢?WinMain的第一个参数也可以是NULL吗?&& &疑问二: WinMain函数的参数从何而来?是操作系统么?&& &疑问三: 使用TEXT()函数的作用是什么呢?
在这篇博文中笔者表达可几个个人的见解(也可以说是猜测), 如果有错误或者不妥之处恳请指出, 笔者将立即更正, 避免误导其他读者。c语言程序设计和c程序设计有什么区别啊
我想学习软件设计,不知道先学习什么知识好,上网查了一下,好像是学习C语言,不知道各位大虾能不能给我点意见,感激不尽。
09-05-07 &匿名提问 发布
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
请登录后再发表评论!
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
  目录 [隐藏] 1 基本应用 2 发展历史 3 优点概述 4 缺点简介 5 结构特点 6 学习方法 7 顺序结构 8 分支结构 9 循环结构 10 模块化程序结构 11 C源程序的关键字 12 C语言的新标准——C99 13 相关词条 14 参考资料
c语言-基本应用     c语言 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。常用的C语言IDE(集成开发环境)有Microsoft Visual C ,Borland C ,Watcom C ,Borland C Builder,Borland C 3.1 for DOS,Watcom C 11.0 for DOS,GNU DJGPP C ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C。c语言-发展历史     C语言程序设计 C语言的原型ALGOL 60语言。(也称为A语言) 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。即是著名的ANSI C。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C语言程序》(The C Programming Language),从而使C语言成为当时世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及, C语言出现了许多版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。c语言-优点概述     c语言 1、简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2、运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3、数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4、C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5、 C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。6、C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7、 C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低10~20%。8、C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。c语言-缺点简介     c语言 1、C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C 的一大区别。 2.、C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C 在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性。c语言-结构特点     c语言 1、一个C语言源程序可以由一个或多个源文件组成。 2、每个源文件可由一个或多个函数组成。3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4、源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。c语言-学习方法     c语言 在初学C语言时,可能会遇到有些问题理解不透,或者表达式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面感觉是同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃。 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是学生最不易做到的,然而却又是最重要的。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。 学好C语言的运算符和运算顺序:这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要对此合理进行分类,找出它们与在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。 先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序. c语言-顺序结构     c语言 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。 c语言-分支结构     c语言 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。 学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。①if(条件) { 分支体 } ;这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,当x&=0时,其绝对值不变,而x&0时,其值是它的相反数。 if(x&0)x=-x②if(条件)then {分支1}  else  {分支2}  这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2 bx c=0的根  分析:因为当b^2-4ac&=0时,方程有两个实根,否则(b^2-4ac&0)        d=b^2-4ac  {x1=(-b sqrt(d))/2a;  x2=(-b-sqrt(d))/2a;  printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);  }  else  {r=-b/(2*a);  i=sqrt(-d)/(2*a);  printf(“x1=%8.4f %8.4fi\n”r,i);  printf(“x2=%8.4f-%8.4fi\n”r,i)  }③嵌套分支语句:其语句格式为: if(条件1) {分支1}; else if(条件2) {分支2} else if(条件3) {分支3} …… else if(条件n) {分支n} else {分支n 1} 嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。 ④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支…的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。 c语言-循环结构     c语言 循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。 在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。 顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。 c语言-模块化程序结构     C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,C语言程序设计 谭浩强每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数 子函数。 因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。掌握一些简单的算法:编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据的《C程序设计》教学大纲中,只要求掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求要清楚这些算法的内在含义。c语言-C源程序的关键字     所谓关键字就是已被C语言本身使用, 不能作其它用途使用的字。例如关键字不能用作变量名、函数名等。由ANSI标准定义的C语言关键字共32个 : auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static
根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。数据类型关键字A基本数据类型(5个)void :声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果。char :字符型类型数据,属于整型数据的一种。int :整型数据,通常为编译器指定的机器字长。float :单精度浮点型数据,属于浮点数据的一种。double :双精度浮点型数据,属于浮点数据的一种。B 类型修饰关键字(4个)short :修饰int,短整型数据,可省略被修饰的int。long :修饰int,长整形数据,可省略被修饰的int。signed :修饰整型数据,有符号数据类型。unsigned :修饰整型数据,无符号数据类型。C 复杂类型关键字(5个)struct :结构体声明。union :共用体声明。enum :枚举声明。typedef :声明类型别名。sizeof :得到特定类型或特定类型变量的大小。D 存储级别关键字(6个)auto :指定为自动变量,由编译器自动分配及释放。通常在栈上分配。static :指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。register :指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。extern :指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。const :与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。volatile :与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。流程控制关键字A 跳转结构(4个)return :用在函数体中,返回特定值(或者是void值,即不返回值)。continue :结束当前循环,开始下一轮循环。break :跳出当前循环或switch结构。goto :无条件跳转语句。B 分支结构(5个)if :条件语句。else :条件语句否定分支(与if连用)。switch :开关语句(多重分支语句)。case :开关语句中的分支标记。default :开关语句中的“其他”分治,可选。C 循环结构(3个)for :for循环结构,for(1;2;3)4;的执行顺序为1-&2-&4-&3-&2...循环,其中2为循环条件。do :do循环结构,do 1 while(2); 的执行顺序是 1-&2-&1...循环,2为循环条件。while :while循环结构,while(1) 2; 的执行顺序是1-&2-&1...循环,1为循环条件。以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。c语言-C语言的新标准——C99    在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C 继续在改进。(实际上,Normative Amendment1在1995年已经开发了一个新的C语言版本。但是这个版本很少为人所知。)标准在90年代才经历了改进,这就是ISO(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年三月采用。 C99中包括的特性1. 对编译器限制增加了,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节 (extern 要求支持到 31)。2. 预处理增强了。3. 支持 // 行注释(这个特性实际上在C89的很多编译器上已经被支持了)。4. 增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool。5. 支持 long long, long double _Complex, float _Complex 这样的类型。6. 支持 &: :& %: %:%: ,等等奇怪的符号替代。7. 支持了不定长的数组。数组的长度就可以用变量了。可以用int a[*] 这样的写法来声明类型。变量声明不必放在语句块的开头,for 语句提倡这么写 for(int i=0;i&100; i) 就是说,int i 的声明放在里面,i 只在 for 里面有效。(VC没有遵守这条标准,i 在 for 外也有效)。8. 当一个类似结构的东西需要临时构造的时候,可以用 (type_name){xx,xx,xx}。9. 支持 16 进制的浮点数的描述。10. 浮点数的内部数据描述支持了新标准,这个可以用 #pragma 编译器指定。11. 对于非常数的表达式,也允许编译器做化简。12. 修改了对于 / % 处理负数上的定义,比如老的标准里 -22 / 7 = -3, -22 % 7 = -1 而现在 -22 / 7 = -4, -22 % 7 = 6。13. 取消了不写函数返回类型默认就是 int 的规定 14. 允许 struct 定义的最后一个数组写做[]不指定其长度描述。15. const const int i; 将被当作 const int i; 处理。16. 增加和修改了一些标准头文件。17. 输入输出对宽字符还有长整数等做了相应的支持。相对于c89的变化还有 1.增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。 如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两个不同的对象,memcpy()函数就是restrict指针的一个典型应用示例。C89中memcpy()函数原型如下: 代码: void *memcpy (void *s1, const void *s2, size_t size); 如果s1和s2所指向的对象重叠,其操作就是未定义的。memcpy()函数只能用于不重叠的对象。C99中memcpy()函数原型如下:代码: void *memcpy(void *restrict s1, const void *restrict s2,size_t size); 通过使用restrict修饰s1和s2 变元,可确保它们在该原型中指向不同的对象。 2、inline(内联)关键字 内联函数除了保持结构化和函数式的定义方式外,还能使程序员写出高效率的代码。函数的每次调用与返回都会消耗相当大的系统资源,尤其是当函数调用发生在重复次数很多的循环语句中时。一般情况下,当发生一次函数调用时,变元需要进栈,各种寄存器内存需要保存。当函数返回时,寄存器的内容需要恢复。如果该函数在代码内进行联机扩展,当代码执行时,这些保存和恢复操作旅游活动会再发生,而且函数调用的执行速度也会大大加快。函数的联机扩展会产生较长的代码,所以只应该内联对应用程序性能有显著影响的函数以及长度较短的函数 3、新增数据类型 _Bool值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹,以便程序员能够编写同时兼容于C与C 的应用程序。在编写新的应用程序时,应该使用  头文件中的bool宏。Complex and _Imaginary:C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary。头文件中定义了complex和imaginary宏,并将它们扩展为Complex和_Imaginary,因此在编写新的应用程序时,应该使用头文件中的complex和imaginary宏。long long int:C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。 4、对数组的增强 可变长数组:C99中,程序员声明数组时,数组的维数可以由任一有效的整型表达式确定,包括只在运行时才能确定其值的表达式,这类数组就叫做可变长数组,但是只有局部数组才可以是变长的。 可变长数组的维数在数组生存期内是不变的,也就是说,可变长数组不是动态的。可以变化的只是数组的大小。可以使用*来定义不确定长的可变长数组。 数组声明中的类型修饰符:在C99中,如果需要使用数组作为函数变元,可以在数组声明的方括号内使用static关键字,这相当于告诉编译程序,变元所指向的数组将至少包含指定的元素个数。也可以在数组声明的方括号内使用restrict,volatile,const关键字,但只用于函数变元。如果使用restrict,指针是初始访问该对象的惟一途径。如果使用const,指针始终指向同一个数组。使用volatile没有任何意义。 5、单行注释 引入了单行注释标记 &//& , 可以象C 一样使用这种注释了。 6、分散代码与声明 7、预处理程序的修改 a、变元列表 宏可以带变元,在宏定义中用省略号(```)表示。内部预处理标识符__VA_ARGS__决定变元将在何处得到替换。例:#define MySum(```) sum(__VA_ARGS__) 语句MySum(k,m,n);将被转换成:sum(k, m, n); 变元还可以包含变元。例: #define compare(compf, ```) compf(__VA_ARGS__) 其中的compare(strcmp,&small&, &large&); 将替换成:strcmp(&small&,&large&);b、_Pragma运算符 C99引入了在程序中定义编译指令的另外一种方法:_Pragma运算符。格式如下:  _Pragma(&directive&)。其中directive是要满打满算的编译指令。_Pragma运算符允许编译指令参与宏替换。c、内部编译指令STDCFP_CONTRACT ON/OFF/DEFAULT 若为ON,浮点表达式被当做基于硬件方式处理的独立单元。默认值是定义的工具。 STDCFEVN_ACCESS ON/OFF/DEFAULT 告诉编译程序可以访问浮点环境。默认值是定义的工具。 STDC CX_LIMITED_RANGE ON/OFF/DEFAULT 若值为ON,相当于告诉编译程序某程序某些含有复数的公式是可靠的。默认是OFF。 d、新增的内部宏 __STDC_HOSTED__ 若操作系统存在,则为1。__STDC_VERSION__ 199991L或更高。代表C的版本。__STDC_IEC_599__ 若支持IEC 60559浮点运算,则为1。__STDC_IEC_599_COMPLEX__ 若支持IEC 60599复数运算,则为1。__STDC_ISO_10646__ 由编译程序支持,用于说明ISO/IEC 10646标准的年和月格式:yyymmmL。9、复合赋值 C99中,复合赋值中,可以指定对象类型的数组、结构或联合表达式。当使用复合赋值时,应在括弧内指定类型,后跟由花括号围起来的初始化列表;若类型为数组,则不能指定数组的大小。建成的对象是未命名的。 10、柔性数组结构成员 C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。 11、指定的初始化符 C99中,该特性对经常使用稀疏数组的程序员十分有用。指定的初始化符通常有两种用法:用于数组,以及用于结构和联合。用于数组的格式:[index] = vol; 其中,index表示数组的下标,vol表示本数组元素的初始化值。例如:int x[10] = {[0] = 10, [5] = 30}; 其中只有x[0]和x[5]得到了初始化.用于结构或联合的格式如下:member-name(成员名称)。对结构进行指定的初始化时,允许采用简单的方法对结构中的指定成员进行初始化。  例如:struct example{ int k, m, n; } object = {m = 10,n = 200};其中,没有初始化k。对结构成员进行初始化的顺序没有限制。 12、printf()和scanf()函数系列的增强 C99中printf()和scanf()函数系列引进了处理long long int和unsigned long long int数据类型的特性。long long int 类型的格式修饰符是ll。在printf()和scanf()函数中,ll适用于d, i, o, u 和x格式说明符。另外,C99还引进了hh修饰符。当使用d, i, o, u和x格式说明符时,hh用于指定char型变元。ll和hh修饰符均可以用于n说明符。 格式修饰符a和A用在printf()函数中时,结果将会输出十六进制的浮点数。格式如下:[-]0xh, hhhhp d 使用A格式修饰符时,x和p必须是大写。A和a格式修饰符也可以用在scanf()函数中,用于读取浮点数。调用printf()函数时,允许在%f说明符前加上l修饰符,即%lf,但不起作用。 13、C99新增的库 C99新增的头文件和库 a)  支持复数算法 b)  给出对浮点状态标记和浮点环境的其他方面的访问 c)  定义标准的、可移植的整型类型集合。也支持处理最大宽度整数的函数 d)  首先在此1995年第一次修订时引进,用于定义对应各种运算符的宏 e)  支持布尔数据类型类型。定义宏bool,以便兼容于C f)  定义标准的、可移植的整型类型集合。该文件包含在中 g)  定义一般类型的浮点宏 h)  首先在1995年第一次修订时引进,用于支持多字节和宽字节函数 i)  首先在1995年第一次修订时引进,用于支持多字节和宽字节分类函数 14、__func__预定义标识符 用于指出__func__所存放的函数名,类似于字符串赋值。 15、其它特性的改动 a) 放宽的转换限制 限制 C89标准 C99标准 数据块的嵌套层数 15 127 条件语句的嵌套层数 8 63 内部标识符中的有效字符个数 31 61 外部标识符中的有效字符个数 6 31 结构或联合中的成员个数 127 1023 函数调用中的参数个数 31 127 b) 不再支持隐含式的int规则 c) 删除了隐含式函数声明对返回值的约束 d) C99中,非空类型函数必须使用带返回值的return语句。 e) 扩展的整数类型 扩展类型 含义 int16_t 整数长度为精确16位 int_least16_t 整数长度为至少16位 int_fast32_t 最稳固的整数类型,其长度为至少32位 intmax_t 最大整数类型 uintmax_t 最大无符号整数类型 g) 对整数类型提升规则的改进 C89中,表达式中类型为char,short int或int的值可以提升为int或unsigned int类型。 C99中,每种整数类型都有一个级别。例如:long long int 的级别高于int, int的级别高于char等。在表达式中,其级别低于int或unsigned int的任何整数类型均可被替换成int或unsigned int类型。c语言-相关词条
请登录后再发表评论!
  C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。主要有以下特点:  C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。  C 语言发展如此迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象PC- DOS 、WORDSTAR等就是用这种方法编写的。归纳起来C语言具有下列特点:1. C是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。  2. C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。  3. C语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念,可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的编游戏,编3D游戏,做数据库,做联众世界,做聊天室,做 PHOTOSHOP做FLASH,做3DMAX。  4. C语言适用范围大C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。  C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。  C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。  常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,WatcomC++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,WatcomC++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Free, win-tc 等等......[编辑本段]C语言的发展过程  C语言的原型ALGOL 60语言(也成为A语言) 。  1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。  1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。  1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。  而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。  为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。  1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。  1987年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些 C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 ,即经典的87 ANSI C。C语言发展迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。  1990年,国际化标准组织ISO(Intrernational StandardOrganization)接受了87 ANSI C为ISO C的标准(ISO)。1994年,ISO修订了C语言的标准。目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统说实现的语言功能和语法规则有略有差别。[编辑本段]C语言的特点  C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。  具体来讲,C语言的特点 为:  1. 简洁紧凑、灵活方便  C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。  2. 运算符丰富  C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。  3. 数据结构丰富  C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。  4. C是结构式语言  结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。  5. C语法限制不太严格、程序设计自由度大  一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。  6. C语言允许直接访问物理地址,可以直接对硬件进行操作  因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。  7. C语言程序生成代码质量高,程序执行效率高  一般只比汇编程序生成的目标代码效率低10へ20%。  8. C语言适用范围大,可移植性好  C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。  当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。  总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言C语言版本 。[编辑本段]目前最流行的几种C语言  ·Microsoft C 或称 MS C  ·Borland Turbo C 或称 Turbo C  ·AT&T C  这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。[编辑本段]图书信息  书 名: C语言程序设计  作 者:任文,孔庆彦   出版社: 机械工业出版社  出版时间:   ISBN: 1  开本: 16开  定价: 28.00元[编辑本段]内容简介  本书以ANSI C为标准,以Turbo C 2.0为编译环境,全面系统地介绍了C语言程序设计方法。主要内容包括:C语言概述,C语言程序设计的初步知识,顺序结构程序设计,选择结构程序设计,循环结构程序设计,数组,函数,编译预处理,指针,结构体、共用体与枚举类型,位运算,文件。书末附有模拟试卷及附录供参考。  本书参照普通高等教育C语言程序设计课程教学大纲的基本要求编写,充分体现“必需、够用”的原则,知识叙述简明扼要、通俗易懂,内容安排由浅入深、循序渐进,同时注意突出重点、分散难点。每章都附有小结、习题,便于教师教学和学生学习。  本书可作为普通高等院校计算机及相关专业的学生学习c语言程序设计的教材或教学参考书,也适合参加二级、三级计算机等级考试的考生学习,同时还可以作为工程技术人员学习C语言的自学用书。
请登录后再发表评论!}

我要回帖

更多关于 如何学好c语言编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信