ImageVerifierCode 换一换
格式:DOCX , 页数:67 ,大小:355.16KB ,
资源ID:18423228      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18423228.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言教案.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言教案.docx

1、C语言教案Chap.1 程序设计基本知识1.1 程序 程序设计 程序设计语言程序指人们对所要处理或求解问题的对象、处理规则或过程的描述 计算机的每一种基本操作,都用一条指令来实现程序是计算机用以实现其功能的一组指令序列Ex101#include main() int a,b,sum; /* int 整型 */ a=123; b=456; sum=a+b; printf(sum is %dn,sum); /* %d 整型 */Ex102#include main() int a,b,c; scanf(%d,%d,&a,&b) c=max(a,b); printf(max=%dn,c);max(i

2、nt x,int y) /* 定义整型函数max */ int z; /* x,y:形参 */ if(xy) z=x; else z=y; return(z); /* 返回函数值 z */小结: C程序是由函数构成的 函数是C程序的基本单位 一个函数由两部分组成 一个C程序是从main()函数开始执行的 C程序书写格式自由:一行内可以写几个语句;一个语句也可以分写在几行中 每个语句和数据定义的最后必须有一个分号 注释 /* 注释部分 */程序设计编写 编辑 编译调试 连接 运行 分析整理结果算法为解决某个特定问题而采取的有限的步骤 分析问题 建立数学模型 确定数据结构 设计算法 编写编辑程序

3、编译调试程序 运行分析结果 有穷性 确定性 可行性 有零个或多个输入 有一个或多个输出计算机语言人和计算机交流使用的人和计算机都能接受和理解的语言,即人用以编写程序的语言,因此又叫程序设计语言。C语言就是一种程序设计语言。C语言的特点 结构化语言 基本结构:顺序结构 选择结构 循环结构 语言表达能力强 数据类型较丰富 不足之处: 语言简洁 类型转换较随便,不够安全 可移植性好 没有数组界限检查 生成的代码质量高 运算优先级太多1.2 C语言的词汇集一 字符集 ASCII码英文大、小写字母 数字 空格 回车 换行 制表符特殊字符: + - * / = _ , ; : ! ? ( ) & % $

4、# . | 二 标识符1 关键字(保留字) 具有特定语法含义的英文单词auto break case char const continuedefault do double else enum externfloat for goto if int longregister return short signed sizeof staticstruct switch typedef union unsigned voidvolatile while2 预定义标识符 如:标准库函数名3 用户标识符 用来表示常量、变量、类型、函数等的名字规定: 标识符必须以字母或下划线开头,后跟字母、数字或下划

5、线 标识符不能与关键字同名 大写字母与小写字母被认为是两个不同的字符命名:见名知义原则1.3 常量和变量一 常量 在程序的运行过程中,其值不能改变的量1 整型常量十进制 12 0 100 -100八进制 015 -072十六进制 0x15 -0x1fa long型的后缀:l或L 整型常数在内存中以补码的形式存储补码符号位 0 正数 补码=原数(二进制)1 负数 Ex 求-5补 写出相反数的二进制数 0000 0000 0000 0101 各位求反 1111 1111 1111 1010 末位加1 1111 1111 1111 1011【负数补码求原数】 1111 1111 1111 1011=

6、 补 各位求反 0000 0000 0000 0100 末位加1 0000 0000 0000 0101 化为十进制数,添加符号 -52 实型常量小数形式指数形式 X.XX.XeXX e前必有数 e后必为整3 字符单个ASCII字符 转义字符 32 n 换行 b 退格0 48 A 65 a 97 0 0 t 水平跳格1 49 B 66 b 98 ddd 1-3位8进制数表示的字符9 57 Z 90 z 122 xhh 1-2位16进制数表示的字符4 字符串Computer 字符串长度 存储字节数字符或转义字符序列 8 9(0 结束符)二 变量 在程序的运行过程中,其值可以改变的量1 变量的命名

7、2 先说明后引用变量说明:存储类型 数据类型 变量名表;变量名=表达式,Ex int a=1,sum=0,i,j,k;3 变量的类型整型2个字节 -3276832767intshort intlong int 4个字节 -21474836482147483647unsigned int 065535unsigned long 04294967295实型float 4个字节 7位 3.4e-38 3.4e+38double 8个字节 15-16位 1.7e-3081.7e+308 字符变量char 1个字节字符数据整型数据 Ex int i; i=a;97char c; c=97;a1.4 运算

8、符1 赋值运算符 = 变量名=表达式Ex a=5 v=(a+b-c)/u2 算术运算符 + - * / % 优先级:* / % + -Ex 10/3=3 结合性:自左向右 += -= *= /= %=a+=3 相当于 a=a+3a%=b+3 相当于 a=a%(b+3)m=20 求m+=m*=m/103 自增减运算符 + - - 前缀: +i 先加后用 后缀: i+ 先用后加 +,-只能用于变量,不能用于常量和表达式10+ +(x+y) (-i)- 等都是错误的 结合性:自右向左Ex i=j=5; x=+i; /* i=6 x=6 */y=j+; /* y=5 j=6 */4 逗号运算符 ,(取

9、第二个表达式的值)优先级:最低 结合性:自左向右Ex y=10;x=(y-=5,45/y); /* x=9 */x=y-=5,45/y; /* x=? */表达式:运算对象运算符号算术表达式赋值表达式逗号表达式1.5 表达式 类型转换 同类型数据运算 结果类型与运算对象类型相同不同类型数据运算 先化后算 赋值号两端类型不同,以变量为主Ex1 设a=2,b=3,x=3.5,y=2.5(float)(a+b)/2+(int)x%(int)y2.5+ 3 % 2 (=3.5) 赋值运算的两种值 变量的值 表达式的值Ex2 a=(b=10)/(c=2) a=5 b=10 c=2 5Ex3 自增减运算符

10、 + - -前缀:+i 先加后用 后缀:i+ 先用后加用变量的值作为表达式的值a=5 +a a+变量a的值 6 6表达式的值 6 5TC30上机的主要命令Alt-E 编辑 F2 存盘Alt-F-A 换名存盘 Alt-F-N 编辑新程序Ctrl-F9 运行 Alt-F5 看运行结果F3 将程序调入内存 Alt-X 退出Chap.2 顺序结构程序设计赋值语句表达式语句复合语句空语句选择语句 if switch流程控制语句 循环语句 while do-while for转移语句 goto break continue return2.1 赋值语句 表达式语句赋值表达式后加分号即为赋值语句;表达式后加

11、分号即为表达式语句Ex1 int i; float a=3.5;i=1;i=i+a;Ex2 int a,b,c,s=0,p=1;a=b=c=10;s+=a; p*=b;Ex3 int a=5,b=8,temp;temp=a; a=b; b=temp; (语句作用?) 顺序结构先执行A,后执行B2.2 数据的输入和输出一 数据输出1 printf()函数形式:printf(格式控制,参数表);格式说明符 以%开头%c %d %o %x %u字符 整数:十进制 八进制 十六进制 无符号%f %e %s实数: 小数形式 指数形式 字符串 在%与格式字符间可插入:l 长整型 双精度型m.n 共m位,取

12、小数n位- 向左对齐 转义字符 以开头n b ddd xhh 0 普通字符 原样输出2 putchar()函数形式:putchar(c); c char型在显示器上输出c的值(一个字符)Ex201 printf(abrehiyboun); (分析语句的输出)Ex202#include stdio.hmain() int a=16; char e=A; unsigned b; long c; float d; b=65535; c=123456; d=123.45; printf(a=%d,%4d,%-6d,c=%dn,a,a,a,c); printf(b=%o,%x,%u,%dn,b,b,b,

13、b); printf(d=%f,%10.5fn,d,d); printf(%c,%s,%7.3sn,e,China,Guilin);输出结果:a=16, 16,16 ,c=-7616b=177777,ffff,65535.-1d=123.449997, 123.45000A,China, Gui二 数据输入1 scanf()函数形式:scanf(格式控制,地址表);格式说明符 以%开头:%c %d %f %s在%与格式字符间可插入:l普通字符 原样输入说明: 地址:&变量名、数组名 用%d、%f格式输入数据时,两个数据之间可以用空格、回车符分开 用%c格式输入字符时,空格、回车和转义字符都作为

14、有效输入字符Ex char c1,c2,c3;scanf(%c%c%c,&c1,&c2,&c3);输入:a b c 则c1=a,c2= ,c3=b 输入数据时不能规定精度Ex scanf(%8.6f,&t);出错,应改为 %f 输入数据时,遇到下列情况,认为数据已输入结束a 空格或回车b 宽度结束 如%md,则取m列c 非法输入Ex scanf(%d %c %f,&a,&b,&c);输入:1234 a 123o.26 则a=1234, b=a, c=1232 getchar()函数形式:getchar() 从键盘输入一个字符,作为函数值2.3 程序举例Ex203 设变量x=10.2,y=20.

15、5,编程实现两个变量的值的互换#include main() double x,y,t; printf(Enter x and y:n); scanf(%lf%lf,&x,&y); t=x; x=y; y=t; printf(x=%f,y=%fn,x,y);Ex204 求一元二次方程ax2+bx+c=0的根对一元二次方程ax2+bx+c=0,若b2-4ac0,则方程有两个实根:#include #include void main() float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); disc=b*b-4*a*c; p=-b

16、/(2*a); q=sqrt(disc)/(2*a); x1=p+q;x2=p-q; printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);Ex205 输入两个整数a和b(设a=1500,b=350),求a除以b的商和余数,编写程序并以如下形式输出结果( 表示空格)。a= 1500,b= 350a/b= 4,the a mod b= 100#include stdio.hmain() int a,b,c,d; scanf(%d,%d,&a,&b); c=a/b; d=a%b; printf(a=%5d,b=%4dn,a,b); printf(a/b=%3d,the a mod

17、b=%4dn,c,d);Chap.3 选择结构程序设计3.1关系表达式与逻辑表达式关系运算符 = = = !=逻辑运算符 ! & |! a 求反a & b a与b都是真吗?a | b a或b中有真吗? 表达式的值 真 1 假 0; 运算对象 非0为真 0为假 注意=与=的区别 比较 x=3与x=3 比较10x20与10x&x20的区别( ) ! * + = = & | ?: = , + / - -= = *=& /=* %= (类型名) 自右向左 自右向左Ex1 a=4 求d=!a 结果为0Ex2 x=1,y=1 求(!x|y- -)0 1(先用后减) 结果为1Ex3 c为小写字母,表示成 c

18、=a & c=z3.2 if语句一 if语句的形式形式1: if(e) s1;e 表达式 s1 语句形式2: if(e) s1;else s2;e表达式 s1、s2语句说明:先计算表达式e的值,若表达式e的值为真(非0),执行语句s1;否则执行语句s2Ex301 求给定整数的绝对值#include main() int x,y; scanf(%d,&x); y=x; if(x0) y=-x; printf(x=%d,|x|=%dn,x,y);Ex302 输入三个数,从大到小排序后输出算法:1 定义变量,输入三个数a、b、c2 对a、b、c从大到小排序 将a、b进行比较,大数存入a,小数存入b

19、将a、c进行比较,大数存入a,小数存入c(此时a为最大数) 将b、c进行比较,大数存入b,小数存入c(b比c大,从大到小排序为a、b、c)3 输出从大到小排序后数a、b、c#include main() float a,b,c,t;复合语句:用 括起来的几个语句,在语法上作为一个语句使用。 printf(Input a,b,c:); scanf(%f %f %f,&a,&b,&c);if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(b0y= x x=0x-1 x0#include main() int x,y; scanf(%d,&x);y=x;if(x!=

20、0)if(x0) y=x+1;else y=x-1;if(x=0)if(x0) y=x+1;else y=x;else y=x-1; printf(x=%d,y=%dn,x,y); 嵌套的if语句的配对else总是和在它前面 离它最近 尚未配对的那个if 配对Ex 设a=4,b=3,c=2,执行下面的if语句后,c=?if(ab)if(b0) c=0;else c+; 如何改变嵌套的if语句的配对加语句括弧 if(ab) if(b0) c=0; else c+;用if语句的第种形式 if(ab) if(b0) c=0;else ;else c+; Ex304 输入某学生的成绩,输出该学生的成绩

21、和等级(A级:90-100;B级:80-89;C级:60-79;D级:0-59)#include main() int x; printf(Please input x(0=x100|x=90) printf(x=%d-An,x);else if(x=80) printf(x=%d-Bn,x); else if(x=60) printf(x=%d-Cn,x);else printf(x=%d-Dn,x);三 条件运算符(三目运算符)e1?e2:e3e1、e2和e3是三个表达式。若e1的值为真(非0),则表达式的值为e2,否则表达式的值为e3Ex308 char c;c=getchar();c=

22、(A=c&c=Z ?c+32:c);若c是英文大写字母,则转变为小写字母3.3 switch语句形式:switch(整型表达式) case 常量表达式1:语句序列1;case 常量表达式2:语句序列2;case 常量表达式n:语句序列n;default: 语句序列(n+1);Ex 设x=1,a=0,b=0switch(x) case 0:b+; case 1:a+; case 2:a+; b+;Ex305 用switch语句解Ex304#include main() int x; printf(Please input x(0=x0 有两个不等实根4 d0) x1=(-b+sqrt(d)/(2

23、*a);x2=(-b-sqrt(d)/(2*a);输出两个不相等的实根x1,x2; else 根的实部rp=-b/(2*a); 根的虚部ip=sqrt(-d)/(2*a); 输出两个共轭复根;N-S图:程序:#include #include math.hmain() float a,b,c,d,x1,x2,rp,ip; printf(Input a,b,c:); scanf(%f,%f,%f,&a,&b,&c); if(a= =0) printf(x=%fn,-c/b); goto exit; else d=b*b-4*a*c; if(d= =0) printf(x1=x2=%fn,-b/(

24、2*a); else if(d0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(x1=%f,x2=%fn,x1,x2);else rp=-b/(2*a); ip=sqrt(-d)/(2*a); printf(complex root:n); printf(x1=%f+%fin,rp,ip); printf(x2=%f-%fin,rp,ip); exit:;goto exit; 无条件转向语句,exit是语句标号exit:; 带标号的空语句Chap.4 循环结构程序设计4.1 循环的基本概念Ex 求 1+2+3+4+5+6+7+8+9+10=?s=1+2+3+4+5+6+7+8+9+10如果求1+2+3+100 呢?或者求1+2+3+n (n为某一任意指定的数)呢?计算机的操作是一步一步执行的,步步分解Ex s=1+2+3+n分解1 分解2s= 0; s=0; i=1;s+=1;s+=2;s+=n;变量赋初值 s=0; i=1;循环三要素 循环体 s+=i;i+;循环条件 i=n循环变量:在循环中表示循环增量的变量i步长语句:在循环语句中循环变量的变化语句i+当型先判断循环 while循环的实现方法 当型后判断循环 do_while步长型循环 for解法1 while语句main()

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2