C语言程序设计课程总结.doc_第1页
C语言程序设计课程总结.doc_第2页
C语言程序设计课程总结.doc_第3页
C语言程序设计课程总结.doc_第4页
C语言程序设计课程总结.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

本课程总结姚琳 主编(第二版)第一章 C语言程序设计概述 目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在Turbo C集成环境下编辑、运行简单C语言程序的方法。教学重点:C语言程序的结构特点;在VC集成环境下运行C程序教学难点:算法设计和算法描述。一算法:算法:就是解决问题的方法。 计算机算法可分为两类别: 数值运算算法 求数值解,用在科学计算。 非数值运算算法 求非数值解,用在事物处理。数值运算算法 例如:已知三角形的底a等8,高h等14,求三角形的面积s。则数值运算算法为: 1、 a=8 a的值等于8 2、 h=14 h的值等于14 3、 s=a*h/2 计算面积S非数值运算算法 例如从湛江乘火车去北京开会,其算法为:1、买火车票2、按时到车站3、登上火车4、到北京站后乘电车到会场5、参加会议二C语言的特点:1C语言简洁、紧凑,使用方便、灵活。5语法限制不太严格,程序设计自由度大。6C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。3数据结构类型丰富。4具有结构化的控制语句。7生成目标代码质量高,程序执行效率高。8与汇编语言相比,用C语言写的程序可移植性好。2运算符丰富。共有34种。C把括号、赋值、逗号等都作为运算符处理。三C语言的基本结构(1)函数是组成C程序的基本单位,一个C的源程序有且只有一个main函数,但可以有若干个其它的函数。(2)一个函数由两个部分组成: 函数的首部:函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。 函数体:由声明和执行两部分组成。(3)一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。(5)每个语句和数据定义的最后必须有一个分号。(6)C语言本身没有输入输出语句,输入和输出的操作是由库函数scanf和printf等函数来完成的。(7)可用/*/对C程序中的任何部分作注释,以增加程序的可读性。四标识符与关键字:标识符用来表示函数、类型、变量的名称,使字母、下划线和数字的排列,必须用字母、下划线开头;关键字不能作为变量或函数名来使用。 32个关键字:autobreakcasecharconstcontinuedefaultdo double else enum extern float for goto if int long register return short signed static sizof struct switch typedef union unsigned void volatilewhile五C语言程序的开发环境:VC、TC第二章 C语言的基本数据类型与表达式目的:通过对于本章的学习,掌握基本类型数据在C程序设计中的表示和用法。要求:掌握数据类型、常量、变量的概念及变量的定义和使用方法;教学重点:基本数据类型的表示方法,常量、变量的使用方法;一基本数据的三种类型及表示形式:整型 int (十、八- -以数字0开头、十六进制以0X开头)实型 float(十进制制、指数形式- e之前必须有数字,e之后指数必须为整数)字符型:char(注意常见的转义字符)转义字符 转义字符的意义n 回车换行t 横向跳到下一制表位置v 竖向跳格b 退格r 回车f 走纸换页 反斜线符“” 单引号符 ” 双引号a 鸣铃ddd 13位八进制数所代表的字符 xhh 12位十六进制数所代表的字符二常量和变量:变量类型与变量的定义三运算符:符号、优先级别、结合方向1.尤其注意前增、前减、后增、后减和条件运算2.除法运算符“/” :双目运算,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。3.求余运算符(模运算符)“%”:双目运算,具有左结合性。要求参与运算的量均为整型。四表达式:表达式的值及类型(注意类型的强制转换)第三章 顺序结构程序设计目的:通过本讲学习,达到进行顺序结构程序设计的目的。要求:了解程序的三种控制结构及其特点,能对任何一种结构绘制流程图;掌握基本输出输入函数的基本格式及其主要用法;能够设计顺序结构程序。教学重点:printf()和scanf()函数的基本格式及其主要用法。 1、C语言的基本语句2、字符输入、输出:putchar() getchar()3、格式输入输出:scanf(“%d”,&a) printf(“%d,%c,%f”,a,b,c) 重点:格式字符及其含义格式符意 义d以十进制形式输出带符号整数o以八进制形式输出无符号整数x,X以十六进制形式输出无符号整数u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的宽度输出单、双精度实数c输出单个字符s输出字符串实例:scanf (%3d%2d, &x, &y);输入序列:123456ENTER结果:x=123,y=45:scanf (%d,%d:%f, &x, &y, &z);输入序列:1,2:3.5ENTER结果:x=1,y=2,z=3.5:scanf (%d%d%d,&x,&y,&z);输入序列一:1 2 3ENTER输入序列二:1TAB2 3ENTER输入序列三:1ENTER 2 3ENTER第四章 选择结构程序设计(控制语句)目的:通过本讲学习,达到能够使用if语句和switch语句进行程序设计的目的。要求:掌握if语句三种形式(if,if-else,if-else if)和执行过程,掌握if语句嵌套概念;掌握条件运算;掌握多路分支switch语句的格式和执行过程。教学重点:if语句和switch语句的格式和执行过程。一关系运算和关系表达式:、= 、b) max=a;else max=b;三、多支选择:int a=5,b=7,c=9max;if(ab) if(ac) max=a;else max=c; else if( bc) max=b;else max=c;条件语句注意的问题:1、 if( )后面一般不跟“;”号。如: if(ac) ; max=c; 条件不影响后面语句。2、 else 与if 的配对3、 比较两个变量是否相等,必须用“= =”两个等号。如: if(a=b) c=a;4、 if( )语句括号内的值为 0,表示条件不成立。非0表示条件成立。四分情况语句switch()语句和break语句的使用五条件语句的应用例题:1、将字母换成小写。main() char c; scanf(“%d”,%c); if( A=c&c=Z ) c=c+32 ;printf(“%c”,c); 2. 给出一个3位的正整数。按反序打印每位数。例如:321,应输出123。main() int n,a,b,c; scanf(“%d”,&n);a=n/100;b=n%100/10;c=n%10;printf(“n%d%d%d” ,c,b,d);3switch语句的例子例1:#include stdio.hmain() char s=ABCCDA;int k;char c;printf(n);for(k=1;(c=sk)!=0;k+)switch(c) case A:putchar (%); continue; case B: +k;break; default :putchar(*); case C:putchar(&) ;continue; putchar(#);答案:#&*&%例2:#include stdio.hmain( ) int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; printf(n);若输入为2473,则输出是:668977。例3:func(1) ?int func(int a)int b;switch(a) case 1: b = 30; case 2: b = 20; case 3: b = 16; default: b = 0; return b;第五章 循环结构程序设计(控制语句)目的:通过本讲学习,达到使用循环控制语句编写循环控制程序的目的。要求:掌握while、do-while、for三种循环结构格式以及执行流程;掌握三种循环结构的区别。一本章重点:while、do-while、for三种循环的结构格式以及执行流程、break语句和continue语句的功能及应用。注意掌握循环控制三个变量:循环从哪开始-初始值到哪结束-终止值步长多少。for(i=0;i=99;i+) printf(“%d”,ai);二循环语句注意的问题:1、 for( )后面一般不跟“;”号。如: for(i=0;i=99;i+); printf(“%d”,ai);管不了不后面的printf(“%d”,ai);语句。2、 while()语句的步长变量必须在循环体内改变。 例:i=1; While(i10) printf(“%d”,i); i+; 否则死循环。3、 while( )语句括号内的值为 0,表示条件不成立。非0表示条件成立。例:int i,j;for(i=5;i;i-) for(j=1;j5;j+) . 假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为_A_。A. 20 B. 24 C. 25 D. 30三循环的应用例题:一)一重循环的应用:1、输入10个数据到数组a10.main() int i,a10; for(i=0;i=9;i+)scanf(“%d”,%ai);2、已知有十个学生的成绩,求最高分max和最低分min,所在的下标ma,mi。main() int max,mink,ma;int a10=88,78,76,89,66,65,68,99,77,89;max=a0; ma=0;for(k=1;k=9;k+)if(maxak) max=ak; ma=k;min=a0;for(k=1;kak) min=ak; mi=k;printf(“n max=%d,min=%d”,max,min);二) 二重循环的应用:1、打印图形例题:打印下面图案:*总共打印4行,每行打印6个星号。分析:要求打n行. 每行打若干”*” 换行.main() int I,j;for(i=1;i=4;i+) for(j=1;j=6;j+)printf(“*”); printf(“n”); 2、将数组a10=88,78,76,89,66,65,68,99,77,89;从小到大排序main() int i,j,ma;int a10=88,78,76,89,66,65,68,99,77,89;for(i=0;k9) for(j=i+1;jaj) ma=ai;ai=aj;aj=ma;for(i=0;ib?a:b; return m; main() float a,b,m; Scanf(“%f,%f”,&a,&b); m=max(a,b); 调用子程序max printf(“%f”,m);2、求出100500内所有的素数,并按5个一排打印出来。prim(int n) int k,fg; for(k=2;k=n/2;k+) if(n%k= =0) fg=0;break; else fg=1; return fg;main() int k,x,cnt=0; for(k=100;k=500;k+) if(prim(k) if(cnt%5=0) printf(“n”);printf(“ %d”,k); cnt+; 3、 用函数递归实现求n! 。#include long fat(int n) long y; if (n= =1) y=1; else y=n*fat(n-1); return y; void main()int n; long fa; scanf(“%d”,&n); fa=fat(n);printf(“%d != %ldn”,n,fa); 4、教材 第79页 例6.7求最大公约数的程序。六变量作用域与存储方式:注意局部变量、全局变量的概念及特点例:写出程序运行结果int sum(int a) auto int c=0; static int b=3; c+=1; b+=2; return(a+b+c);void main() int I; int a=2; for(I=0;I5;I+) printf(%d, sum(a); 8,10,12,14,16七预编译处理:1、宏定义:无参数的宏定义、带参数的宏定义方法和注意事项2、文件包含第七章 数组(一维数组和二维数组)目的:通过本讲介绍,达到使用数组进行基本编程的目的。要求:掌握一维数组和二维数组的定义和初始化及引用;掌握一维数组的编程应用和二维数组的简单编程应用;了解数组作为函数参数的使用。重点:一维数组和二维数组的定义、初始化及其数组元素的引用方法。一数组的概念 数组:具有相同类型的数据组成的序列,是有序集合 数组定义形式:数据类型 数组名常量表达式l 数据类型:数组的基本类型有整型、实型、字符型等。int a10 float b10 char c10l 数组名 对数组的标识,遵循C语言标识符规则l 常量表达式 是数组元素的个数,即数组长度。int a10 10 它必须是常量。下标:元素在数组的位置.下标的上界: 0下界: 9数组的成员称为数组元素。二数组的基本应用:(必须掌握)1对一组数,求累加数,平均数。2对一组数,求最大值或最小值和下标。3将最小(大值)调到前面。4对一组数,按最大(小)值排序。5. 将字符数组从小到大排序.6. 对字符数组,把字母 a换成b,b-c,z-a.7对一组数a,按给出的条件取数,赋给另外一个数组b。再对b排序。(难,等级考试题)三应用举例1、对字符数组,把字母 a换成b,b-c,z-a.main() int i,j; /*a-b a+1*/ char a10=a ,c,e,u;for(i=0;i=a&aiz)ai=ai+1;else if(ai=z) ai=a;2、对一组数a,把偶数的元素,赋给另外一个数组b。再对b排序。(难,等级考试题) main() int b16,cnt=0,I,j,y;int a16=12,32,11,33,43,45,66,88,78,46,69,99,98,87,76,65;for(i=0;i16;i+)if(ai)%2=0)bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj)y=bi;bi=bj;bj=y;for(i=0;icnt;i+)printf(“%

温馨提示

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

评论

0/150

提交评论