




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计谢利东目录绪论2第01讲 C语言概述2第02讲 基本数据类型3第03讲 运算符6第04讲 流程控制10第05讲 数组18第06讲 函数21第07讲 算法设计范例24第08讲 自我检测(含答案)28绪论一、 课程简介课程内容:C语言程序设计基础知识适用对象:程序设计初学者二、 课程目标1、 了解程序设计的相关知识2、 掌握C编程3、 理解程序设计语言的基本构成要素4、 掌握算法设计第01讲 C语言概述一、 程序设计语言的发展1、 机器语言:是唯一能被计算机直接解释和执行的语言2、 汇编语言:与机器语言相似,但加入了助记符 Add a,b a+b3、 面向过程的语言:自助游,需理解细节;Basic、C4、 面向对象的语言:找旅行社,无需理解细节;C+、Java、C#二、 C语言简介三、 编写实例:Hellomain() printf( “Hello,C! ”);四、 在Turboc中编写运行C程序的步骤1、 启动TC2、 执行Alt+F,进入File菜单,执行New,新建源文件3、 输入代码并保存 编辑执行Alt+F,进入File菜单,执行Save,保存源文件4、 执行Alt+C,进入Compile菜单,执行“Compile to OBJ”若代码有错,需纠错 编译Ctrl+F95、 执行Alt+C,进入Compile菜单,执行“Make EXE File”若代码有错,需纠错 连接6、 执行Alt+R,进入Run菜单,执行“Run” 执行7、 执行Alt+F5,查看运行结果,查看完后按下Enter,返回编辑环境说明:(1) 编写C程序的步骤:P4(2) 实际运行中,可通过快捷键简化一些操作五、 C程序的基本构成包含头文件,即函数库#include “*.h”main() /*注释*/代码Main函数,所有C程序必须有且只能有一个main函数第02讲 基本数据类型一、 数据类型简介1、 什么是数据类型?对数据的“抽象” 12、13、45、1.2、1.56、0.4e6、RuiLi、DaLi2、 为什么要有数据类型20040102 可以代表学号,属于字符 可以代表整数,属于数值 可以代表日期,属于日期时间3、 C语言中有哪些数据类型?P164、 基本数据类型数值型、字符型、枚举型二、 变量和常量1、 变量:程序运行期间,值可能改变的量(Variation)2、 常量:程序运行期间,值不会改变的量(Const)例如:计算机出10道加法练习题 形式:7+5=?、8+9=?第1个加数 加号 第2个加数 等号op1 + op2 = result第1次:op1=6,op2=7:6+7第2次:op1=5,op2=8:5+8 控制题目数量:OPNUM=103、 常量类型符号常量:通过#define 定义的常量字面常量(直接常量):与变量相似,字面常理有整型、实型、字符型 3.14、3、RuiLi三、 整型类型1、 整型常量 形如3、4、67、890、5632的数据,可以赋给整型变量2、 整型变量(1) 短整型(short)声明: short a ; 声明一个变量的格式:“ 数据类型 变量名 ;”范围:占16位,范围为-3276832767(2) 整型(int)声明:int a;范围:占16位,范围为-3276832767(3) 长整型(long)声明:long a;范围:占32位,范围为-21474836482147483647Main函数3、 实例练习1main()声明3个整型变量,a、b、sum让a的值等于312int a,b,sum ;让b的值等于789a=312;计算a加b的结果b=789;sum=a+b;将结果显示到屏幕上printf(“ The sum of a add b is : %d n”,sum);4、 实例练习2对上例的改进main()int a,b,sum; -声明整型变量a,b,sumprintf (“ Please input two integers(a and b):n”); -提示输入两个整数scanf(“%d,%d”,&a,&b); -要求输入两个整数,分别给a、b,两数间用逗号隔开,例如3,5sum=a+b; -计算a、b之和printf(“Sum=%dn”,sum); -将结果输出到屏幕上四、 实型类型1、实型常量 形如1.2、0.5、0.0023、1.0、2.0的数据,可以赋给实型变量2、实型变量(1) 单精度(float)声明:float a;范围:占32位, -3.4*10-38 3.4*1038 ,6位精度(2) 双精度(double)声明:double a;范围:占64位,-1.7*10-3081.7*10308 ,16位精度3、实型常量的表示十进制小数:如 .123、123.、0.123、123.0、0.0指数形式(规范化):1.23e6或1.23E61.23*106 0.123e7或0.123E7 非规范化 12.3e5或12.3E5 非规范化4、 实例练习输入3个数(整数或小数均可),求平均分析:输入的3个数可以是整数,也可是小数,故只能声明为实型 整数:1.0代码:main() float x1,x2,x3,average; -声明4个实型变量,分别输入的3个数和平均值 printf(“Please input three float data:n”); -提示输入3个实型数据 scanf (“ %f , %f , %f”,&x1,&x2,&x3); -输入3个实型数据,分别给x1、x2、x3,逗号隔开 average=(x1+x2+x3)/3; -求平均值 printf(“Average=%fn”,average); -输出结果五、 字符型1、字符常量表示:x (用单引号,不能是双引号;只能有一个字符)例如:a、b表示字符常量a和b转义字符:系统定义,有特殊含义的字符n换行;b退格,前移一列t下跳一制表位,后移8列2、字符串常量表示:”a dog” (用双引号,不能用单引号;可以放多个字符)例如:”a dog” 表示字符串a dog,由5个字符组成3、字符变量声明:char c;注意:一个字符变量只能存放一个字符常量,即c=a ,正确;c=”a dog”,错误4、实例1字符常量及转义字符的使用main()printf(“nn”); -将当前屏幕换行2次,以方便查看结果printf(“no break:a dog”); -不加n的效果printf(“n”); -换行,以便比较结果printf(“ a break:a n dog”); -加n的效果printf(“n”); -换行,以便比较结果printf(“no reback:a dog ”); -不加b的效果 printf(“n”); -换行,以便比较结果printf(“a reback:abdog ”); -加b的效果printf(“n”); -换行,以便比较结果printf(“a tab:a t dog”)-加t 的效果5、 实例2字符变量的使用main()char c; -声明字符变量cc=a; -c赋值为aprintf(“nchar c=%c”,c); -将变量c以字符变量的形式输出,结果应为aprintf(“nchar c=%d”,c) -将变量c以整型变量的形式输出,结果为97c=c+1;printf(“nchar (c+1)=%c”,c); -将变量c以字符变量的形式输出,结果应为bprintf(“nchar (c+1)=%d”,c) ;-将变量c以整型变量的形式输出,结果为98第03讲 运算符一、 运算符简介1、 什么是运算符表示运算形式的符号称为运算符如:1+2、2*3、6/8、7%2对数据的加工称为运算2、 C语言中有哪些运算符?P29在C语言中共有13类运算符,约有45个二、 算术运算符1、 算术运算符有: +、-、*(shift+8)、/(除)、%(求余数)2、 运算规则(1) 优先级:*、/、% 优先级为3、 +、-、优先级为4(2) 结合性:自左至右 2+6*7-8/2+9%53、 实例练习1main()int a,b,m,f,n;-a、b为输入的整数 m=a*b、f=a/b、n=a%bprintf(“Please input two integers(a and b):n”);-提示输入整数 scanf(”%d,%d”,&a,&b); -输入,形式为5,3m=a*b; -*运算 结果为15f=a/b; -/ 运算 结果为1n=a%b; -% 运算 结果为2printf(“m=a*b=%dn”,m); -输出mprintf(“f=a/b=%dn”,f); -输出fprintf(“n=a mod b=%dn”,n); -输出ngetch(); -Win-TC额外要求,查看结果对 / 和 % 的理解:/ :结果与承载变量的类型相关 int a,b,f; f=a/b;因为承载结果的变量f是整型,故结果都是整数,不带有小数 如a=3、b=5,则f=3/5=0,结果为0,不是0.6如果想让除的结果为小数,则需要把f声明为float型 float a,b,f;f=a/b;如a=3.0,b=5.0,则f=3.0/5.0,结果为0.6%:求余,求余运算要求两侧的数据类型必须是整型(int) int a,b,f; f=a%b;如a=5,b=3,则f= 5 % 3=2 商1余2 如a=3,b=5,则f= 3 % 5=3 商0 余 3float a,b,f; f=a % b;编译出错4、 实例2除运算练习main() int a,b; int f1; float f2; printf(Please input two integers:(a and b):n); scanf(%d,%d,&a,&b); f1=a/b; float c,d; c=(float)a; d=(float)b; f2=c/d; printf(int f1=a/b=%dn,f1); printf(int f2=a/b=%fn,f2); getch();5、 实例3求余运算练习main()int a,b,f;printf(Please input two integers(a and b ):n);scanf(%d,%d,&a,&b);f=a%b;printf(f=%d,f);getch();三、 关系运算符1、 关系运算符: (大于)、=(大于或等于)、=b,若a=4,b=3则表达式结果为真,即值为1 若 a=3,b=4则表达式结果为假,即值为04、 对关系运算的几点理解(1) axb:不能表达为:a=x=b,只能表达为:a=x & x1=684:数学中是错误的,而C程序设计中是对的91结果为 1,表达式变为:1=6841=6结果为0,表达式变为:0840 8结果为0,表达式变为:0404 结果为05、 实例1main()int a,b,result ; -声明整型变量,result用来承接a、b运算的结果printf (“Please input two integers(a and b ):n”); -提示输入两整数scanf(“%d,%d”,&a,&b); -接受输入分别给变量a、b,输入形式为3,4result=(ab); -ab 运算printf(“result=(ab)=%dn”,result); -输出结果result=(ab); -ab运算printf(“result=(a6) & (73):0 & 1,表达式结果为0(46) | (73): 0 | 1,表达式结果为1 !( 46):!0,表式结果为12、 运算规则优先级:! 优先级为2 (高于算术运算、关系运算) &、|优先级为8(低于算术运算、关系运算)结合性:自左至右3、 实例main()int result;result=!(13) | |(25);printf(“result=!(13) | |(25)=%d n”,result);result=!(4=6) & (3=7);printf(“result=!(4=6) & (3=7)=%dn”,result);理解:result=!(13) | |(25); result=! 0 | 0;result=1 | 0;result=1;result=!(4=6) & (3=90) grade=A; else if(score=80) grade=B;else if(score=70) grade=C; else if(score=60) grade=D; else grade=E; printf(“score=%d,grade=%c”,score,grade);6、 实例练习3ifelse 输入5个数字,找出最大值和最小值并输出算法设计:从以下5个数12,3,9,21,4中找出最大值max和最小值min第一步:max=12 min=12第二步:max、min和第二个数3作比较 如果第二个数大于max,说明max应为第二个数,否则不变 如果第二个数小于min,说明min应为第二个数,否则不变 3和max、min(12,12)比较:max=12 min=3第三步:max、min和第三个数9作比较 如果第三个数大于max,说明max应为第三个数,否则不变 如果第三个数小于min,说明min应为第三个数,否则不变 9和max、min(12,3)比较:max=12 min=3第四步:max、min和第四个数21作比较 如果第四个数大于max,说明max应为第四个数,否则不变 如果第四个数小于min,说明min应为第四个数,否则不变 21和max、min(21,3)比较:max=21 min=3第五步:max、min和第五个数4作比较 如果第五个数大于max,说明max应为第五个数,否则不变 如果第五个数小于min,说明min应为第五个数,否则不变 4和max、min(21,3)比较:max=21 min=3第六步:输出结果 max=21 min=3源代码:main() int x1,x2,x3,x4,x5,min,max; printf(Number 1:n); /* 第一步 */ scanf(%d,&x1); max=min=x1; printf(Number 2:n); /*第二步*/ scanf(%d,&x2); if(x2max) max=x2; if(x2max) max=x3; if(x3max) max=x4; if(x4max) max=x5; if(x5min) min=x5; printf(Max=%dtMin=%d,max,min); /*第六步*/ getch();四、 循环结构1、循环结构简介 循环即重复,循环结构就是让计算机重复执行一段代码 在C语言中,循环结构主要有三种: while、do-while、for2、while循环基本形式:while(exp) op执行逻辑:运算exp,若值为真则执行op,否则退出循环应用方法:需要设置一个计数器,控制循环结束实例理解:i=0; -计数器初始化while(i10) -循环条件 i10 printf(“i=%dn”,i); -循环代码体,输出i的值 i+; -计数器自加,相当于i=i+1 执行过程: i=0 判定条件i10为真 执行循环代码:输出i,i自加变为1 i=1 判定条件i10为真 执行循环代码:输出i,i自加变为2 i=2 判定条件i10为真 执行循环代码:输出i,i自加变为3 i=9 判定条件i10为真 执行循环代码:输出i,i自加变为10 i=10 判定条件i10为假 退出循环3、do-while循环基本形式: doopwhile(exp);执行逻辑: 执行一次循环代码op,判定exp,若为值则接着循环,否则退出循环应用方法:需要设置一个计数器,控制循环结束与while循环的区别:x=1; x=1;while(x1) do printf(“x=%d”,x); printf(“x=%d”,x); while(x1); 不会输出x=1 会输出x=1 先判定后执行 先执行后判定4、for循环基本形式: for(exp1;exp2;exp3) op 执行逻辑: exp1:计数器初始化;exp2:循环判定条件;exp3:计数器自加 先执行exp1,接着判定exp2,若为真则执行循环体,并执行exp3使计数器加1,否则退出循环应用方法: 需要设置一个计数器,控制循环结束实例理解: int i; int i;简化 i=0; for(i=0;i5;i+) while(i5) printf(“i=%d”,i) printf(“i=%d”,i) i+; 5、实例while循环理解main() int i; i=0; while(i10) printf(“i=%dn”,i); i+;6、实例用while循环改写5数中找最大值和最小值main() int x,min,max,i; printf(Number 1:n); /* 第一步 */ scanf(%d,&x); max=min=x; i=2; while(imax) max=x; if(xmin) min=x; i+; printf(Max=%dtMin=%d,max,min); /*第六步*/ getch();7、实例do-while与while的区别main()int x;x=1;printf(The result of while:n);while(x1) printf(x=%d,x); printf(The result of do-while:n);do printf(x=%d,x); while(xmax) max=x; if(xmin) min=x; i+; while(i=5); printf(Max=%dtMin=%d,max,min); /*第六步*/ getch();9、实例for循环理解main() int i; for(i=0;i10;i+) printf(i=%dn,i); getch();10、实例用for循环改写5数中找最大值和最小值main() int x,min,max,i; printf(Number 1:n); /* 第一步 */ scanf(%d,&x); max=min=x; for(i=2;imax) max=x; if(xmin) min=x; printf(Max=%dtMin=%d,max,min); /*第六步*/ getch();第05讲 数组一、数组1、什么是数组? 数组是一种组合的数据类型,是一组同类型数据组成的序列 例如:1,2,9,8,7 这5个数构成一个整型数组 3.4,7.0,8.2,9.1 这4个数构成一个实型数组 a , , d , o , g 这5个字符构成一个字符数组 1, 3.4 ,a 因为元素类型不同,不能构成数组 同一数组中的所有元素必须属于同一种数据类型 2、为什么要用数组? 把具有同一性质或同一用途的数据组合在一起,以便引用 例如,要求输入10名学生的学号,如果不使用数组,只能定义 10个变量:x1、x2、x10来承接;如果使用数组,则只 需定义一个字符数组stuNo9,stuNo0=stu_1,stuNo1=stu_2 stuNoi二、一维数组的定义及引用1、声明:int a9; -定义int型数组,可有元素10个 float a9; -定义float型数组,可有元素10个char a9; -定义字符数组,可有元素10个2、相关术语 数组类型:和元素的数据类型是一致的 长度:指元素总数 下标:放在里的整数,表示第几个元素 维度:数组的维数3、数组元素的引用格式:x=a i 规则:下标i的值是从0开始的,即a0、a1、a2、a84、数组元素的赋值格式:a i=x;规则:应确保x的类型和数组a的类型一致5、数组元素的初始化格式:在声明时同时进行 int a4=9,98,7,6 在声明后分别赋值:int a4;a0=9;a1=98;a2=7;a3=6; 6、实例5-1数组的简单使用main()int a5=1,2,3,4,5;int b3;b0=9;b1=8;b2=7;printf(a0=%dt,a0);printf(a1=%dt,a1);printf(a2=%dt,a2);printf(a3=%dt,a3);printf(a4=%dn,a4);printf(b0=%dt,b0);printf(b1=%dt,b1);printf(b2=%dn,b2);getch();7、实例5-2对5-1的改进main()int a5=1,2,3,4,5;int b3;int count;b0=9;b1=8;b2=7;for(count=0;count5;count+) printf(a%d=%dn,count,acount);for(count=0;count3;count+) printf(b%d=%dt,count,bcount);getch();8、实例5-3 Fibonaci数列,见算法设计三、字符数组的使用1、C语言中对字符串的处理: 在C语言中只有字符型变量(Char),一个字符变量只能存一个字符,不能存字符串;但C语言中没有设专门的字符串型变量(String),故处理字符串只能使用字符数组。 理解:字符变量:char ch; ch=a; (正确,只能存单个字符) ch=”a dog”;(错误,不能存字符串)那如何把“a dog”赋给一个变量,进行运算?其他语言的处理:string ch; ch=”a dog”C语言的处理:char ch5; ch0=a; ch1= ; ch2=d;ch3=o;ch4=g;2、字符数组的使用(1)声明:char ch10;(2)初始化:在声明时同时进行初始化char ch10=a, ,d,o,g;char ch=“a dog”(3)输入:接收键盘输入的字符串,方法有二 方法1: char ch10; scanf(“%s”,ch); 以空格作为终结符,故输入的字串不能含空格 方法2: char ch10;gets(ch); 输入的字串可以含有空格输入时常用gets(),不用scanf()(4)输出:将字符串输出到屏幕上,方法有二 方法1: printf(“%s”,ch); 方法2: puts(ch);3、实例5-4字符数组的使用main()char ch110=a dog!;char ch210;ch20=a;ch21= ;ch22=d;ch23=o;ch24=g;ch25=!;printf(%sn,ch1);printf(%c,ch20);printf(%c,ch21);printf(%c,ch22);printf(%c,ch23);printf(%c,ch24);printf(%c,ch25);getch();4、实例5-5字符串的输入与输出main()char ch110; /*定义数组ch1*/char ch210; /*定义数组ch2*/printf(Please input a string:n); /*输入提示*/gets(ch1); /*方法一输入*/printf(Please input another string:n); /*输入提示*/scanf(%s,ch2); /*方法二输入*/printf(First string:t); /*输出提示*/puts(ch1); /*方法一输出*/printf(Second string:t); /*输出提示*/printf(%s,ch2); /*方法二输出*/getch();四、二维数组的使用1、二维数组简介 arr 0 1 2 3012Arr0Arr1Arr2 二维数组可以看作是一维数组的嵌套例如 ,arr0、arr1、arr2是一个一维数组,如果每个元素存储的不是一个数值或 字符,而是另一个数组,则就构成二维数组 arr0=20,2、二维数组的使用(1)声明:int arr34; float arr34; char arr34;(2)初始化:声明的同时进行初始化 int arr34=0,1,2,3,0,1,2,3,0,1,2,3; int arr34=0,1,2,3, 0,1,2,3, 0,1,2,3;(3)赋值:arrij=x;(4)引用:x=arrij;3、实例5-6二维数组的简单使用4、实例5-7综合应用第06讲 函数一、函数简介1、什么是函数? 与数学中的函数不同,C语言中的函数是“功能”的意思,function,就是一段具有某种功能的程序代码。2、为什么要使用函数?(1) 结构化程序设计的要求(2) 提高代码重用性3、C语言中有哪些函数C语言中的函数分为两大类:系统函数:系统定义,程序设计中直接调用即可,如printf()、scanf()就是两个 重要的系统输入、输出函数;P352用户自定义函数:需要自行书写函数执行代码,然后再调用 用户自定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级想象作文神奇的鞋700字(7篇)
- 安全知识培训后感课件
- 2024年呼伦贝尔农垦集团有限公司人员招聘笔试备考及完整答案详解一套
- 教师招聘之《幼儿教师招聘》考试黑钻押题附答案详解(能力提升)
- 青年是新质生产力的未来担当
- 农田智能管理系统开发协议
- 新质生产力园区揭牌
- 新质生产力与资源循环的协同机制
- 教师招聘之《幼儿教师招聘》复习提分资料附参考答案详解【基础题】
- 医护护理协作模式
- GB/T 7019-2024纤维水泥制品试验方法
- GB/T 44808.4-2024人类工效学无障碍设计第4部分:不同年龄人群最小可辨认字符尺寸的估计方法
- 体育训练安全应急预案
- 《航空保险》课件
- 《电商直播》中职全套教学课件
- 45号钢的安全系数和许用应力
- 夏商西周王朝的更替课件
- 设备拆装施工方案
- 矿山项目前期手续办理流程图
- 2024-2030年中国合成生物学行业重点调研及应用需求潜力分析报告
- 《第2课 多样的数据》参考课件1
评论
0/150
提交评论