C语言教程2010版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计第一章C语言概述第二章程序的灵魂—算法第三章数据类型运算符与表达式第四章顺序程序设计第五章选择程序设计第六章循环控制第七章数组第八章函数第九章预处理命令第十章指针第十一章第十二章第十三章697参考书:【C程序设计题解与上机指导(第三版)】谭浩强Name:罗致春Phone:13378025311Email:zhichun_luo@xtu.edu.cn第一章C语言概述C语言出现的发展简况C语言的特点简单的C程序介绍C语言集成开发环境TC及VisualC++6.0简介返回1)、机器语言2)、汇编语言3)、面向过程的语言4)、面向对象的程序设计语言程序设计语言10000000加10010000减A+B=A或ADDA,BA-B=A或SUBA,BQbasicFortranTurboCPascalC++JavaVCVB语言名称适用范围Basic教学和小型应用程序的开发Fortran科学及工程计算程序的开发Pascal专业教学和应用程序的开发C中、小型系统程序的开发COBOL商业与管理应用程序的开发dBASE数据库管理程序的开发FoxBASE数据库管理程序的开发C++面向对象程序的开发LISP人工智能程序的开发PROLOG人工智能程序的开发Java面向对象程序的开发C语言发展简况在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。C语言是贝尔实验室于70年代初研制出来的。C语言被广泛认为是一种高效、实用、灵活的软件开发工具,有多种适合不同操作系统和不同机种(字长为8bit~32bit)的C语言编译系统。在C的基础上,一九八三年又由贝尔实验室的BjarneStroustrup推出了C++。C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。由B.W.Kernighan和D.M.Ritchit合著的《TheCProgrammingLanguage》一书对C语言作了详细的描述。C语言版本目前最流行的C语言有以下几种:·MicrosoftC或称MSC·BorlandTurboC或称TurboC返回C语言的优点既有高级语言的程序思想与设计方法,又有低级语言的操作能力。所以它也被称为“中级语言”;结构化的体系结构。层次清晰,便于按模块化方式组织程序,易于调试和维护;非常强的处理能力,不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址;广泛的可移植性,可以方便地移植到不同的软、硬件环境;代码效率高;C语言的”缺点”太灵活,不易掌握,容易出错,不适合初学者;运算符优先级太多;类型转换限制少,检验较弱,不够安全;返回简单的C程序介绍C语言的源程序由一个或多个函数组成,每个函数完成一种指定的操作,实现一定的功能。所以有人又把C语言称为函数式语言。用库函数组装C程序自己设计C函数用库函数组装C程序示例一:示例二:示例三:返回C语言提供了丰富的库函数,如SIN函数求正弦值,EXP函数求一个数的指数等,C编译系统将这些函数集中存放在一些库文件中,按函数名调用。示例一显示“WelcometoXiangtan!”voidmain(){printf(“WelcometoXiangtan!\n”);}(1)C程序由一系列函数组成,这些函数中必须有一个且只能有一个以main为名的函数,这个函数称为主函数,整个程序从主函数开始执行。在此例程序中main函数没有参数,但后面的一对小括号是函数的标志,不能省略。(2)第二行和第四行是一对大括弧,在这里表示函数体的开始和结束,一个函数中所有的执行语句都写在函数体中。示例一voidmain(){printf(“WelcometoXiangtan!\n”);}(3)注意第三行末尾的分号(;),C语言规定,它是一个语句结束的标志。(4)第三行的printf是C语言的一个函数,它的作用是格式输出,由主函数main调用,它在屏幕上显示出括号内双引号之间的字符串,其中“\n”代表换行符。示例二#includemath.hvoidmain(){floatx;/*定义实型变量x*/x=sin(0.19199);/*调用sin函数*/printf(“%f\n”,x);}sin函数是C系统的库函数,在调用数学库函数时,要用到一些系统提供的信息,这些信息包含在math.h文件中.编译命令#includemath.h的作用是将math.h文件的内容代替这行#include命令.示例三#includestdio.hvoidmain(){inta,b,sum;/*定义三个整型变量*/a=1;b=2;/*把1赋值给变量a,把2赋值给变量b*/sum=a+b;/*求a与b的和,并把结果放入变量sum中*/printf(“sumis%d\n”,sum);/*输出变量sum的值*/}这个程序由一个主函数组成。第四行中的int表示定义变量类型为整型,该行定义了三个整型变量,即a,b和sum。第五行是两个赋值语句,其中的“=”是赋值运算符。第七行的“%d”是输入输出函数中的“格式字符串”,在这里表示以“十进制整数”的形式输出变量sum的值。程序的运行结果中,“%d”的位置被sum的值取代。程序中的/*和*/是注释符。注释内容写在/*和*/之间。a=1:b=2sum=a+bPRINT“sumis”;sumENDQBASIC程序FUNCTIONf2%(n%)n%=n%*n%f2%=n%ENDFUNCTIONDECLAREFUNCTIONf2%(n%)INPUT“num=”;num%p%=f2(num%)PRINTp%END函数f2模块完成求某整数的平方的功能主程序模块从键盘中输入数据,通过函数f2求平方后输出.请用QBASIC编写程序示例四本程序的作用是求一个数的平方。这个程序由两个函数组成,即主函数main()和被调用函数f2().第四行的scanf是格式输入函数,其作用是输入一个十进制整数到变量num中。第五行调用f2()函数时,把变量num的值传递给形式参数n.f2()函数返回num的平方,返回值赋值给变量p.从第八行开始定义了函数f2(),该函数的功能是求n的平方值,并返回求得的平方值。注意:f2()函数的定义是独立于main()函数之外的。#includestdio.hvoidmain(){intf2(intn);/*函数声明*/intnum,p;/*定义两个整型变量*/scanf(“%d”,&num);/*输入一个整数到变量num中*/p=f2(num);/*调用f2函数,并把函数的返回值存入变量中*/printf(“%d”,p);/*输出变量p的值*/}intf2(intn)/*定义f2函数,n为形式参数*/{intt;t=n*n;/*求n的平方,并把计算结果放入变量t中*/return(t);/*返回变量t的值*/}intf2(intn)/*定义f2函数,n为形式参数*/{intt;t=n*n;/*求n的平方,并把计算结果放入变量t中*/return(t);/*返回变量t的值*/}voidmain(){intnum,p;/*定义两个整型变量*/scanf(“%d”,&num);/*输入一个整数到变量num中*/p=f2(num);/*调用f2函数,并把函数的返回值存入变量中*/printf(“%d”,p);/*输出变量p的值*/}C程序的基本结构特点2、每个函数的结构如下:括号内的函数体由若干个语句组成,每个语句必须以分号结束,C语言的书写格式很自由,一行内可以写多个语句,一个语句很长时也可以写在多行上。函数类型函数名(形式参数定义){数据定义部分函数执行部分}1、C程序由函数构成,函数是C程序的基本组成单位。一个C源程序中有且只有一个main()函数,除main()函数外可以有若干个其他的函数。每个函数实现某一特定的操作,这样一个复杂的问题由若干个函数共同分担解决。3、各个函数的定义是相互独立的。主函数可以写在其他函数的定义之前,也可以写在其他函数的定义之后,但程序的执行总是从主函数开始。返回C程序的上机步骤:返回返回文件新建文件c1.cC++SourceFileD:\CCFilesOKD:\CC\c1.c编辑窗口此编译命令要求一个有效的项目工作区,你是否同意建立一个默认的项目工作区?第二章程序的灵魂--算法2.1算法的概念2.2简单算法举例2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法本章要点算法的概念算法的表示结构化程序设计方法一个程序应包括两个方面的内容:对数据的描述:数据结构(datastructure)对操作的描述:算法(algorithm)著名计算机科学家沃思提出一个公式:数据结构+算法=程序数据结构+算法+程序设计方法+语言工具完整的程序设计应该是:§2.1算法的概念广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。方法1:1+2,+3,+4,一直加到100加99次方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50加51次对同一个问题,可有不同的解题方法和步骤例:求1001nn§2.1算法的概念为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。希望方法简单,运算步骤少。计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。§2.2简单算法举例例2.1:求1×2×3×4×5步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120如果要求1×2×…×1000,则要写999个步骤S1:使p=1S2:使i=2S3:使p×i,乘积仍放在变量p中,可表示为:p×i=pS4:使i的值加1,即i+1=iS5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果,算法可改写:S1:1=pS2:3=iS3:p×i=pS4:i+2=iS5:若i≤11,返回S3。否则,结束。如果题目改为:求1×3×5×……×11算法只需作很少的改动:用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。例2.2有50个学生,要求将他们之中成绩在80分以上者打印出来。设n表示学号,n1代表第一个学生学号,ni代表第i个学生学号。用G代表学生成绩,gi代表第i个学生成绩,算法表示如下:S1:1=iS2:如果gi≥80,则打印ni和giS3:i+1=iS4:如果i≤50,返回S2,继续执行;否则算法结束变量i作为下标,用来控制序号(第几个学生,第几个成绩)。当i超过50时,表示已对50个学生的成绩处理完毕,算法结束。例2.3判定2000~2500年中的每一年是否闰年,将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。设y为被检测的年份,算法可表示如下:S1:2000=yS2:若y不能被4整除,则输出y“不是闰年”。然后转到S6S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到

1 / 702
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功