第1章C语言概述_第1页
第1章C语言概述_第2页
第1章C语言概述_第3页
第1章C语言概述_第4页
第1章C语言概述_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计计算机基础教研室编写使用教材:任课教师:曹惠雅Email:computer_hustwh@126.com学时安排:32(讲课)/24(上机)考核方式:

课程目的:

使学生具有阅读和编写C语言程序的能力,为进一步为学习“面向对象程序设计”课程打下牢固的基础。学习方法:

语法学习阶段

循序渐进

练习写较大的程序学习并提高编程技巧软件工程参考书目:1、《C语言程序设计教程》(第二版)谭浩强等编高等教育出版社 2、《C语言程序设计》高福成等编清华大学出版社/北方交通大学出版社3、《C语言程序设计及应用》邢馥生等编高等教育出版社 第1章C语言概述第2章基本数据类型和运算符 第3章顺序和选择结构程序设计 第4章循环和跳转结构程序设计第5章数组第6章函数和模块设计第7章指针第8章结构体与联合体第9章预处理和标准函数第10章文件第11章数据结构和数据抽象课程简介5第一章C语言概述

程序设计语言是人与计算机进行信息交流的工具。程序设计要在一定的程序设计语言环境下进行。C语言是目前世界上最流行、使用最广泛的高级程序设计语言之一。在设计操作系统等系统软件和需要对硬件进行操作时,使用C语言编程明显优于其他高级语言,许多大型应用软件和系统软件都是用C语言编写的。C语言也是大学生学习程序设计选用最多的语言。1.1C语言的发展和特点1.2C语言的词汇1.3C语言的程序结构1.4VisualC++6.0上机简介*本章授课内容*1.1C语言的发展(自学)C语言问世于19世纪70年代初。早期的C语言用于UNIX系统。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THECPROGRAMMINGLANGUAGE》一书,通常简称为《K&R》,也有人称之为《K&R》标准。随着微型计算机的日益普及,出现了许多C语言版本。1983年美国国家标准研究所(AmericanNationalStandardsInstitute,ANSI)为C语言制定了第一个ANSI标准,称为ANSIC。1987年美国国家标准研究所又公布了新的C语言标准,称为87ANSIC。这个标准在1989年被国际标准化(ISO)组织采用,被称为ANSI/ISOStandardC(即C89)。BrianW.Kernighian和DennisM.Ritchie根据这个标准,重写了他们的经典著作,并发表了《TheCProgrammingLanguage,SecondEdition》。1.1C语言的发展1995年又为C语言增加了一些新的函数,使之具有C++的一些特征,使C89成为C++的子集。1999年推出的C99在基本保留C语言特征的基础上,增加了一系列面向对象的新特征。C语言也就从面向过程的语言发展成为面向对象的语言。C语言是C++的基础,C++语言和C语言在很多方面是兼容的。本课程使用VisualC++6.0作为上机环境。1.1C语言的发展操作系统是各种软件的核心与基础。所有其它程序的运行都要在操作系统的控制下进行。高级语言源程序必须经过编译系统处理(编译),然后在操作系统控制下才能为计算机执行。在不同的操作系统下编译和运行C语言程序的方式和命令是不同的。C语言的支持环境1.2C语言的主要特点1、C语言简洁、紧凑、使用灵活、方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了不必要成分。2、运算符丰富C的运算符包括的范围很广泛,共有34个运算符。3、数据结构丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算。4、具有结构化的控制语句程序代码模块化,用函数作为程序模块以实现程序的模块化,是结构化的理想模式语言,符合现代编程风格要求。5、C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言放宽了语法检查,允许程序编写者有较大的自由度。6、C语言允许直接访问物理地址

C语言既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,还可以用来编写系统软件。7、C语言程序生成代码质量高

程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%。8、C语言适用范围大,可移植性好

C语言编写的程序基本上不作修改就可以用于各种型号的计算机和各种操作系统。1.2C语言的词汇1.2.1C语言字符集定义:组成C语言源程序代码的基本字符,它是构成C语言的基本元素。C语言使用的基本字符:⑴大小写英文字符:A~Z,a~z⑵数字字符:0~9⑶特殊字符:+=-_(下划线)()*&^%#!,.;:?’”~\|/<>{}[]⑷不可打印的字符:空格、换行符、制表符、响铃符1.2.2关键字定义:具有特定含义的、专门用来说明C语言的特定成分的一类单词。C语言的关键字都用小写字母书写,不能用大写字母书写。在C89标准中共有32个关键字:auto breakcasecharconstcontinuedefaultdodoubleelseenumexternfloatregistergotosignedintlongreturnforshortifsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile在新的C99标准中,又增加了5个关键字:_Bool_Complex_imaginaryinlinerestrict1.2.3标识符定义:在C语言中用于标识名字的有效字符序列C语言对标识符作如下规定:(1)标识符的第一个字符必须是英文字母或下划线(2)如果第一个字符后面还有字符序列,则它应是英文字母、下划线符或数字组成的序列。(3)标识符中的英文字母大小写是有区别的。如标识符abc与标识符ABC不相同。试判断下列标识符正确与否:abcdA? Abcd2abc _Abcdab _2a3yes/no πr

标识符的命名技巧“见名知义”

longth (表示长度)time (表示时间)pi (表示圆周率π)score(表示成绩或分数)student(表示学生)1.2.4保留标识符

保留标识符是系统保留的一部分标识符,通常用于系统定义和标准库函数的名字。例如,以下划线开始的标识符通常用于定义系统变量。不能使用把这些标识符来定义自己的变量。虽然它们也是合法的标识符,但是用它们来做一般标识符可能会出现运行错误。1.2.5注释在c语言程序中,注释部分的格式:

/*注释内容*/或//注释内容例如:/*学生成绩管理程序*///Mycprogram注释不是程序代码,只是对程序解释说明的一种标注,用来向用户提示或解释程序的意义。程序编译时会把注释部分作为空白符跳过而不予处理。使用注释需要注意三点:①注释不允许嵌套使用例如:/*test1/*test2*/test3*/编译器解释时,只把/*test1/*test2*/看成注释,后面的test3*/无法解释②用”/*……*/”形式表示注释时,可以跨行,也可以穿插在一行代码中。3用”//……”形式注释内容时,表示从//开始直到该行末尾的所有字符都属于注释,这种注释不能跨行,也不能穿插在一行代码中间。1.3C程序的结构

用C语言编写的程序称为C语言源程序,简称为C程序。举例说明C语言源程序结构的特点:

了解组成一个C程序的基本结构和书写格式

/*通过显示器输出goodmorning!*//*#include称为文件包含命令,扩展名为.h的文件称为头文件*/【例1-1】编写一个C语言程序,输出“goodmorning!”。

程序如下:/*c1_1.c*/#include<stdio.h>voidmain(){printf("goodmorning!\n");}该程序的执行,会在显示器上显示输出:goodmorning!函数类型(返回结果),void表示没有返回值圆括号内定义函数参数函数首部,函数名称main,即主函数。输出函数:将输出的内容送到显示器显示表示函数体的开始表示函数体的结束【例1.1.1】输出一行信息的C程序。#include<stdio.h>voidmain(){printf(“good\n");printf(“morning!\n");}【例1.1.2】输出一行信息的C程序。#include<stdio.h>voidmain(){printf(“goodm");printf("orning!\n");}说明:①C语言程序中可以使用注释,但注释内容不参与编译。注释部分的格式是:/*注释内容*/或//注释内容。②#include称为文件包含命令,#include<stdio.h>是文件包含,其意义是把尖括号<>或引号""内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。详细内容将在后面章节介绍。③main是主函数的函数名,表示这是一个主函数。每个完整的C语言源程序都必须有主函数,且只能有一个主函数(main函数),程序执行总是从main函数开始.函数体由一对大括弧{}括起来④printf函数是一个由系统定义的标准函数,可在程序中直接调用。其功能是将输出的内容送到显示器显示。【例1-2】从键盘输入一个学生两门课(语文yw和数学sx)的成绩,并求其平均成绩。程序如下:#include<stdio.h>voidmain(){

intyw,sx,sum;/*定义三个整型变量*/

printf("Inputtwonumber:");/*显示提示信息*/

scanf("%d%d",&yw,&sx);/*输入x,y值*/sum=yw+sx;/*求出yw与sx之和,并赋于变量sum*/

printf(“average=%d\n”,sum/2);/*输出平均成绩*/}程序分析:⑴该程序中使用了yw、sx和sum三个变量,所有变量在使用之前必须先定义。⑵scanf函数是一个由系统定义的标准函数,可在程序中直接调用。它的功能是输入变量yw和sx的值。&yw和&sx中“&”的含义是“取变量地址”,表示将从键盘输入的2个值分别存放到地址标志为yw和sx的存储单元中。⑶“%d”是输入输出数据的“格式说明”,用来指定输入输出时的数据类型和格式,%d表示“十进制整数类型”,在执行输出时,屏幕上显示一个十进制整数值。⑷sum=yw+sx为赋值表达式,表示将yw+sx之和赋值给sum变量所标识存储单元。【例1-3】输入两个整数,进行比较后将较大数输出。#include<stdio.h>voidmain(){intx,y,z;/*定义三个整型变量*/intmax(inta,intb);/*函数类型说明*/printf("Inputtwonumber:");/*显示提示信息*/scanf("%d%d",&x,&y);/*输入x,y值*/z=max(x,y);/*调用max函数*/printf("max=%d\n",z);/*将较大数输出*/}intmax(inta,intb)/*定义max函数*/{intc;/*定义一个整型变量*/c=a>b?a:b;/*求出变量c的值*/returnc;/*将c的值返回到主调函数*/}程序分析:⑴本程序包括两个函数:主函数main和自定义函数max。max函数的作用是将a和b中较大者的值赋于变量c;return语句将c的值返回该主调函数main。⑵在调用max函数时,将实际参数x和y的值分别对应传给max函数中的形式参数a和b。⑶a>b?a:b是一个条件表达式,当a>b成立时,a>b?a:b的值为a的值;反之则为b的值。详细内容在第二章中介绍。通过以上3个例子,概括C源程序的结构特点:①C语言程序为函数模块结构,所有的C语言程序都是由一个或多个函数构成,其中main函数必须有且只能有一个。函数是C语言程序的基本单位。②C语言程序总是从主函数开始执行,当执行到调用函数的语句时,程序将控制转移到被调函数中执行,执行结束后,再返回到调用函数继续执行,直到程序执行结束为止。③C语言程序的函数是由编译系统提供的标准函数(如printf()、scanf()等)和由用户自己定义的函数。通过以上3个例子,概括C源程序的结构特点:(续)④源程序中的预处理命令通常放在源文件或源程序的最前面。⑤每一个说明和每一个语句都必须以分号结尾。但是预处理命令、函数头和花括号“{”、“}”之后不能加分号。⑥标识符、关键字之间必须至少加一个空格以示分隔。若已有明显的分隔符,也可不再加空格。⑦可以在程序的任何位置用/*注释内容*/或//注释内容的形式对程序或语句进行注释。1.2.3书写程序时应遵循的规则C语言程序的书写格式非常自由,但从书写清晰,便于阅读,理解,维护的角度出发,建议在书写C语言程序时应遵循以下几个规则:①一个说明或一条语句占一行。②用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。③低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写,同一层次的语句或说明左对齐,以便看起来更加清晰,增加程序的可读性。④函数与函数之间加空行,以便清楚分出程序中有几个函数.在编程时应力求遵循上述规则,以养成良好的编程习惯。1.3VisualC++6.0上机简介1.3.1关于VisualC++6.0

VC是微软公司的产品,微软公司是一家专门从事软件开发、研制的公司。这套软件使用了全然一新的集成开发环境,使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。1.3.2VisualC++6.0集成环境上机步骤

(源程序的编辑、编译、连接和运行)C语言是一种高级语言,存放C语言源程序的文件扩展名必须

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论