怎样学好C语言程序设计

上传人:san****019 文档编号:21081064 上传时间:2021-04-23 格式:PPT 页数:47 大小:4.55MB
收藏 版权申诉 举报 下载
怎样学好C语言程序设计_第1页
第1页 / 共47页
怎样学好C语言程序设计_第2页
第2页 / 共47页
怎样学好C语言程序设计_第3页
第3页 / 共47页
资源描述:

《怎样学好C语言程序设计》由会员分享,可在线阅读,更多相关《怎样学好C语言程序设计(47页珍藏版)》请在装配图网上搜索。

1、 北 京 理 工 大 学 计 算 机 学 院2021-4-23 1 北 京 理 工 大 学 计 算 机 学 院2021-4-23 2 北 京 理 工 大 学 计 算 机 学 院2021-4-23 3 北 京 理 工 大 学 计 算 机 学 院2021-4-23 4 语 言 程 序 设 计 的 组 成 基 本 语 法C 语 言程 序 设 计 程 序 设 计 1. 基 本 元 素2. 数 据 类 型3. 执 行 语 句4. 程 序 组 成1. 程 序 结 构2. 基 本 算 法 语 言 基 本 语 法C 语 言基 本 语 法 1. 基 本 元 素2. 数 据 类 型3. 执 行 语 句4. 程 序

2、 组 成 1. 基 本 字 符 集2. 标 识 符3. 关 键 字1. 基 本 类 型2. 构 造 类 型3. 指 针 类 型4. 空 类 型1. 表 达 式 语 句2. 复 合 语 句3. 控 制 语 句4. 空 语 句1. 源 文 件2. 函 数3. 函 数 的 组 成 语 言 基 本 元 素基 本元 素 1. 基 本 字 符 集2.标 识 符 :3.关 键 字 : 1.数 字 :0 1 2 3 4 5 6 7 8 92.字 母 :abczABCZ3.运 算 符 :+ - * / % = 等4.特 殊 符 号 :_(下 划 线 ) 回 车 (r) 换 行 (n) 制 表 符 (t)等量 名

3、 、 变 量 名 、 数 组 名 、 类 型 名 、 存 储 方式 名 、 语 句 、 函 数 名 、 文 件 名 等 。auto break case char constcontinue default do double elserenum extern float for gotoif int long register returnshort signed sizeof static struct switch typedef union unsigned voidvolatile while 标 识 符 或 北 京 理 工 大 学 计 算 机 学 院2021-4-23 7 2. C

4、语 言 数 据 类 型构 造 类 型指 针 类 型空 类 型 无 值 类 型枚 举 类 型数 组 类 型结 构 类 型联 合 类 型 北 京 理 工 大 学 计 算 机 学 院2021-4-23 8 3. C语 言 执 行 语 句(1) 表 达 式 与 表 达 式 语 句 用 运 算 符 将 运 算 对象 连 接 形 成 的 式 子 就 是表 达 式 。表 达 式 加 分 号 就 构 成 了 表 达 式 语 句 。 1. 表 达 式 语 句 2. 复 合 语 句 3. 控 制 语 句 4. 空 语 句输 入 /输 出 ( I/O) 是 表 达 式 语 句 。 北 京 理 工 大 学 计 算 机

5、 学 院2021-4-23 9 运 算 符 1 算 术 运 算 符 2 赋 值 运 算 符3 关 系 运 算 符4 逻 辑 运 算 符5 自 增 、 自 减 运 算 符6 条 件 运 算 符7 位 运 算 符8 sizeof运 算 符 ( 求 字节 运 算 符 )9 逗 号 运 算 符 北 京 理 工 大 学 计 算 机 学 院2021-4-23 10 运 算 符 的 优 先 级 与 结 合 性优 先 级 运 算 符 分 类 运 算 符1 括 号 ,下 标 ,成 员 运 算 符 ,-2 单 目 运 算 符 !,+,-,printf(“%d”,s); While(an)算 法 的 表 示 -流

6、程 图 例 如 计 算 : s=a ; a=1 n 北 京 理 工 大 学 计 算 机 学 院2021-4-23 18 程 序 的 组 成C程 序 由 函 数 组 成 , 函 数 由 四 部 分 组 成main( ) 程序首部 说 明 语 句 数据结构 语 句 输 入 语 句 执 行 语 句 运 算 处 理 算法设计 输 出 语 句 北 京 理 工 大 学 计 算 机 学 院2021-4-23 19C程 序 组 成 : 说 明 对 象 ; 输 入 数 据 ; 运 算 处 理 ; 输 出 结 果main( ) main( ) 说 明 对 象 数 据 类 型 语 句 输 入 数 据 scanf()

7、; 运 算 处 理 算 法 设 计 输 出 结 果 printf(); 北 京 理 工 大 学 计 算 机 学 院2021-4-23 20 程 序 设 计 举 例main( ) int a,b,c,sum; 说 明 语 句 a=1;b=2; 赋 值 语 句 scanf(“%d”, 输 入 语 句 sum=a+b+c; 运 算 处 理 printf(“sum=%dn”,sum); 输 出 语 句 执行语句例 : 输 入 a,b,c,求 其 和 。按 下 述 四 步 编 写 程 序 : 说 明 对 象 ; 输 入 数 据 ; 运 算 处 理 ; 输 出 结 果 北 京 理 工 大 学 计 算 机

8、学 院2021-4-23 21结 构 化 程 序 的 三 种 基 本 结 构 : 顺 序 、 选 择 与 循 环 。 程 序 设 计 的 基 本 算 法一 . 结 构 化 程 序 的 三 种 基 本 结 构顺 序 结 构语 句 1语 句 2 N 条 件Y语 句 1 语 句 2选 择 结 构 条 件NY 循 环 体当 型 循 环 直 到 型 循 环循 环 结 构循 环 体 N条 件 Y 北 京 理 工 大 学 计 算 机 学 院2021-4-23 22 打 印 平 面 二 维图 形 : 要 用 双 重 循环 , 外 循 环 控 制 行数 , 内 循 环 控 制 列数 。 打 印 平 面 二 维

9、图 形打 印 三 角 图 形输 入 n=4, 输 出 以 下 图 形 : main( ) int i, j, n; printf(“nInput n : “); scanf(“%d”, for(i=1;i=n;i+) for(j=1;j=40-2*i;j+) printf(“%c”, ); for(j=1;j=2*i-1;j+) printf(“%2c”, * ); printf(“n”); * * * * * * * * * * * * * * * * 北 京 理 工 大 学 计 算 机 学 院2021-4-23 23 只 需 将 输 出上 面 三 角 的 程 序略 加 修 改 后 , 复制

10、 移 到 下 面 , 再输 出 下 面 倒 三 角就 可 以 了 。打 印 菱 形 图 形输 入 n=4, 输 出 以 下 图 形 : * * * * * * * * * * * * * * * * * * * * * * * * * 北 京 理 工 大 学 计 算 机 学 院2021-4-23 24 打 印 菱 形 图 形 程 序main( ) int i,j,n; printf(Enter n : ); scanf(%d, for(i=1; i=n; i+) for(j=1; j=40-2*i; j+) printf( ); for(j=1;j=0; i-) for(j=1; j=40-2

11、*i; j+) printf( ); for(j=1; j=2*i-1; j+) printf(%2c,*); printf(n); printf(nn); getch( ); 北 京 理 工 大 学 计 算 机 学 院2021-4-23 25 根 据 问 题 的 部 分 条 件 预 估 答 案 的 范 围 , 然 后 在此 范 围 内 对 所 有 可 能 的 情 况 逐 一 验 证 (穷 举 ) , 直 到全 部 情 况 都 通 过 了 验 证 为 止 。穷 举 法穷举法步骤: 预 估 出 答 案 的 大 致 范 围 ; 用 循 环 语 句 对 范 围 内 所 有 可 能 情 况 进 行 穷

12、 举 ; 在 穷 举 中 逐 一 验 证 , 将 满 足 条 件 的 情 况 输 出 , 即为 所 解 。 凡 是 求 解 有 多 少 种 方 案 或 可 能 等 一 类 非 数 值 问 题都 可 以 用 穷 举 法 来 求 解 。 如 : 百 钱 百 鸡 问 题 、 换 硬 币问 题 、 水 仙 花 问 题 、 完 数 问 题 、 素 数 问 题 等 。 北 京 理 工 大 学 计 算 机 学 院2021-4-23 26 百 钱 百 鸡 问 题 例 : 每 只 公 鸡 5个 钱 , 每 只 母 鸡 3个 钱 , 每 3只 小鸡 1个 钱 , 用 100个 钱 , 买 100只 鸡 , 问 公

13、 鸡 、 母 鸡 和小 鸡 各 买 几 只 ? 穷 举 法 分 析 : 设 公 鸡 、 母 鸡 和 小 鸡 数 为 x,y,z. 答 案 的 大 致 范 围 : x=1 19, y=1 33 穷 举 : for(x=1;x=19; x+) for(y=1; y=33; y+) 条 件 : n=5*x+3*y+z/3 北 京 理 工 大 学 计 算 机 学 院2021-4-23 27 百 钱 百 鸡 程 序main() int x,y,z; for(x=1;x20;x+) for(y=1;y34;y+) z=100-x-y; if(5*x+3*y+z/3=100) 共 三 组 解 :x y z3

14、 20 774 18 787 13 808 11 8111 6 8312 4 84 北 京 理 工 大 学 计 算 机 学 院2021-4-23 28 完 数 问 题 例 : 编 程 输 出 1000以 内 的 所 有 “ 完 数 ” 。 所 谓“ 完 数 ” 是 该 数 恰 好 等 于 它 的 全 部 因 子 之 和 。 例 如 , 6的 因 子 是 1, 2, 3, 恰 好 6 =1+2+3 , 因 此 6是 “ 完数 ” 。穷 举 法 分 析 : 答 案 的 大 致 范 围 : n=1 1000 穷 举 : for(n=1; n=1000; n+) 条 件 : n=s 其 中 , s分

15、别 为 该 数 n的 全 部 因 子 之 和 。求 全 部 因 子 之 和 : s=0; for(i=1;i=n/2;i+) if(n%i=0) s=s+i; main() int i,j,n,s; for(n=1;n=1000;n+) s=0; for(i=1;i=n/2;i+) if(n%i=0) s=s+i; if(s=n) printf(%4d=1,n); for(i=2;i=n/2;i+)if(n%i=0) printf(+%d,i); printf(n); 共 三 组 解 : 6=1+2+3 28=1+2+4+7+14 496=1+2+4+8+16+31+62+124+248完 数

16、 程 序 北 京 理 工 大 学 计 算 机 学 院2021-4-23 30 根 据 问 题 的 递 推 关 系 , 由 已 知 项 , 经 过 有 限 次的 递 推 迭 代 , 得 到 待 求 的 未 知 项 。递 推 法迭代法步骤: 列 出 问 题 的 已 知 项 ; 根 据 问 题 的 关 系 , 写 出 递 推 公 式 ; 用 循 环 语 句 , 对 递 推 公 式 进 行 有 限 次 的 递 推 迭 代 ,直 到 待 求 的 未 知 项 , 即 为 所 解 。 凡 是 具 有 递 推 公 式 的 一 类 数 值 问 题 , 都 可 以 用 迭代 法 来 求 解 。 如 : 级 数 问

17、 题 、 斐 波 那 契 数 列 问 题 等 。 北 京 理 工 大 学 计 算 机 学 院2021-4-23 31 阶 乘 问 题 例 : 输 入 n值 , 求 1n的 阶 乘 1! n! 。递 推 法 分 析 : 列 出 问 题 的 已 知 项 : 0! =1; 根 据 问 题 的 关 系 , 写 出 递 推 公 式 : i ! =i *(i-1)! ; 用 循 环 语 句 , 对 递 推 公 式 进 行 有 限 次 的 递 推 迭 代 ,直 到 待 求 的 未 知 项 。 for(i=1;i=n;i+) n1=i*n0; n0=n1; printf(%4d!=%-10ld,i,n1);

18、由 于 数 值 上 升 很 快 , 用 long型 , 同 理 , 在 输 出 时要 应 用 “ %ld”形 式 。 main( ) int i,n; long n1,n0=1; printf(Input n : ); scanf(%d, for(i=1;i=n;i+) n1=i*n0; n0=n1; /* 递 推 公 式 */ printf(“%4d!=%-10ld”,i,n1); /* %-10ld宽 10位 左 对 齐 */ printf(nn); getch(); 阶 乘 程 序 (JC!.C)运 行 结 果 : Input n : 10 1!=1 2!=2 3!=6 4!=24 5!

19、=120 6!=720 7!=3040 8!=40320 9!=362880 10!=3628800 北 京 理 工 大 学 计 算 机 学 院2021-4-23 33 斐 波 那 契 数 列 问 题 例 : 求 斐 波 那 契 数 列 1, 1, 2, 3, 5, 8, 13 的 前 40项 值 。递 推 法 分 析 : 列 出 问 题 的 已 知 项 : f1=1, f2=1; 根 据 问 题 的 条 件 , 写 出 递 推 公 式 : f=f2+f1; 用 循 环 语 句 , 对 递 推 公 式 进 行 有 限 次 的 递 推 迭 代 ,直 到 待 求 的 未 知 项 。 for (i=

20、3; i=40; i+) f=f2+f1; printf(%12ld, f);f1=f2; f2=f; /*迭 代 , 为 下 一 循 环 作 准 备 */ 由 于 数 值 上 升 很 快 , 用 long型 , 同 理 , 在 输 出时 要 应 用 “ %ld”形 式 。 main( ) long int f1=1, f2=1,f; int i; printf(%12ld%12ld,f1,f2); for (i=3; i=40; i+) f=f2+f1; printf(%12ld, f); if(i%4=0) printf(n); f1=f2; f2=f; /*迭 代 */ 斐 波 那 契

21、数 列 程 序 (FEBO 0.C) 运 行 结 果 : 1 1 2 3 5 8 13 2134 55 89 144 24157817 39088169 63245986 102334155 北 京 理 工 大 学 计 算 机 学 院2021-4-23 35 迭 代 法 是 一 种 数 值 近 似 求 解 的 方 法 。 它 把 一 个 复 杂问 题 的 求 解 转 化 为 简 单 的 迭 代 算 式 , 经 过 重 复 执 行 这 个迭 代 算 式 , 得 到 最 终 解 。 有 精 确 和 近 似 两 种 迭 代 法 。迭 代 法迭代法步骤: 列 出 迭 代 变 量 的 初 始 值 ; 根

22、 据 问 题 的 条 件 , 写 出 迭 代 公 式 ; 用 循 环 语 句 , 重 复 执 行 这 个 迭 代 公 式 , 直 到 待 求的 最 终 值 。 凡 是 对 N个 数 求 和 、 求 均 值 、 求 方 差 等 这 一 类 问体 都 适 合 用 精 确 迭 代 法 来 求 解 ; 但 主 要 是 用 近 似 迭 代法 来 求 解 代 数 方 程 、 微 分 方 程 及 解 方 程 f(x)=0等 问 题 。 北 京 理 工 大 学 计 算 机 学 院2021-4-23 36 求 和 问 题 例 : 求 1-3+5-7+ -99+101 的 值 。迭 代 法 分 析 : 适 合 用

23、 精 确 迭 代 法 来 求 解 。 列 出 迭 代 变 量 的 初 始 值 : k=1; sum=0; 根 据 问 题 条 件 写 出 迭 代 公 式 : sum=sum+k*n; k=-k; 用 循 环 语 句 , 重 复 执 行 这 个 迭 代 公 式 : for(n=1;n=101;n+=2) sum=sum+k*n; k=-k; 北 京 理 工 大 学 计 算 机 学 院2021-4-23 37 main( ) int n,k,sum; k=1; sum=0; for(n=1;n=101;n+=2) sum=sum+k*n; k=-k; printf(sum=%dnn,sum); g

24、etch( );求 和 程 序 (L6_1.C) 运 行 结 果 : sum=51 北 京 理 工 大 学 计 算 机 学 院2021-4-23 38 期 末 考 试 试 题 类 型 1 单 项 选 择 题 ( 每 小 题 1分 , 共 20分 )2 填 空 题 ( 每 空 1分 , 共 10分 )3 程 序 分 析 题 ( 每 题 5分 , 共 30分 )4 程 序 填 充 题 ( 每 空 1分 , 共 10分 )5 程 序 设 计 题 ( 每 题 10分 , 共 30分 ) 北 京 理 工 大 学 计 算 机 学 院2021-4-23 39 分 支 : if语 句 switch语 句 与

25、break语 句指 针 : int a,*p; p= 两 个 运 算 符 p=a;数 组 元 素 的 访 问 for(i=0;i6;i+)下 标 法 : printf(“%d”,a i );指 针 法 : printf(“%d”,*(p+i);地 址 法 : printf(“%d”,*(a+i); define N 10main( ) int aN, i, j, k, t; printf(Input %d number : , N); for (i=0; iN; i+) scanf(%d, for (i=0; iN-1; i+) for (j=i+1; jN; j+) if(a j a i )

26、 t=a j ; a j =a i ; a i =t; printf(The sorted numbers : ); for (i=0; iN; i+) printf(%3d, a i );程 序 分 析 Input 10 number :1 6 34 98 5 6 22 9 8 9 程 序 执 行 的 输 出 结 果 为 :The sorted numbers:9 6 1 5 6 8 9 22 34 98 北 京 理 工 大 学 计 算 机 学 院2021-4-23 41 2. 程 序 分 析 :用 指 针 输 出 数 组 元 素 的 值运 行 结 果 : 11 22 33 44 55 66

27、 1 2 3 4 5 6 北 京 理 工 大 学 计 算 机 学 院2021-4-23 42 变 量 的 指 针 int i, *pi; pi= 则 : *pi 与 i 等 价 。 数 组 的 指 针 int a10,*p; p=a; 则 : *(p+i)=*(a+i)=ai 等 价 。 移 动 指 针 i 个 元 素函 数 的 指 针 int (*pf)( ), max(x,y); 指 针 初 始 化 pf=max;则 函 数 调 用 : c=(*pf)(a,b) ; 与 c=max(a,b); 等 价 。 指 针 的 指 针 int a, *pa, *ppa; pa= ppa= 则 : *

28、ppi=pi; *pi=i ; *ppi=*pi=i; 指 针 的 数 组 int *pa3; char *str =“fd”, “12”, “ab”;指 针 型 函 数 int *f(x,y); main() int *p; p=f(a,b);指 针 类 型 举 例 北 京 理 工 大 学 计 算 机 学 院2021-4-23 43 3. 求 和#include main( ) float pi=0.0, n=1.0, s=1.0, t; do t=s/n; pi= pi+t; s=-s; n+=2; while(fabs(t)=1e- 6); printf(“pi=%fn”,4*pi);

29、程 序 的 执 行 结 果 为 :pi=3.141598用 下 列 公 式 计 算 的 值 1 1 1 1 1 1 - = 1 - - + - - - + - - - - 4 3 5 7 9 11 n ( 精 度 要 求 |1/n|10-6) 北 京 理 工 大 学 计 算 机 学 院2021-4-23 44 水 仙 花 问 题 例 : 输 出 所 有 的 “ 水 仙 花 数 ” 。 所 谓 “ 水 仙 花数 ” 是 一 个 3位 数 , 其 各 位 数 字 的 立 方 和 等 于 该 数 本身 。 例 如 , 153是 “ 水 仙 花 数 ” , 因 为 153=13+53+33。穷 举 法

30、 分 析 : 答 案 的 大 致 范 围 : n=100 999; 穷 举 : for(n=100;n=999;n+) 条 件 : n=a*a*a+b*b*b+c*c*c 其 中 , a,b,c分 别 为 该 数 n的 百 位 、 十 位 和 个 位 数 。 北 京 理 工 大 学 计 算 机 学 院2021-4-23 45 水 仙 花 程 序main( ) int n,a,b,c; for(n=100;n=999;n+) a=n/100;b=n%100/10;c=n%10; if(n=a*a*a+b*b*b+c*c*c)printf(%8d=%d+%d+%dn,n,a*a*a,b*b*b,c

31、*c*c); printf(nn);getch( ); 运 行 结 果 :153=1+125+27370=27+343+0371=27+343+1407=64+0+343 北 京 理 工 大 学 计 算 机 学 院2021-4-23 46 卷 后 语 同 学 们 , 语 言 程 序 设 计 是 一 门 非 常 重要 的 技 术 基 础 课 , 只 要 我 们 坚 持 三 心 加 三 力 ,即 要 有 : 信 心 、 决 心 和 恒 心 + 毅 力 、 耐 力 和 抗 干 扰 力我 们 就 一 定 能 学 好 “ 语 言 程 序 设 计 ” 课 。 北 京 理 工 大 学 计 算 机 学 院2021-4-23 47 再 见 谢 谢

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!