c语言课件lec08-1

合集下载

《C语言基础入门》课件

《C语言基础入门》课件

控制语句
1
分支语句
介绍了C语言中的分支语句,包括if语句和switch语句。
2
循环语句
讲解了C语言中的循环语句,包括while循环、do-while循环和for循环。
数组和字符串
1 数组定义和初始化
详细讲解了C语言中的数组的定义和初始化方法。
2 多维数组
探讨了C语言中的多维数组及其在实际编程中的应用。
结构体定义和初始化
详细讲解了C语言中的结构体 的定义和初始化方法。
结构体变量的引用
探讨了C语言中结构体变量的 引用方式和使用场景。
共用体的定义和初始化
讲解了C语言中共用体的定义、 初始化和使用方法。
文件操作
文件的打开和关闭
介绍了C语言中文件的打开和关闭操作。
文件的读写操作
讲解了C语言中文件的读写操作及相关函数 的使用。
《C语言基础入门》PPT 课件
C语言基础入门课程的PPT课件,介绍了C语言的基本概念、程序结构、变量 和数据类型、运算符、控制语句、数组和字符串、指针、结构体和共用体以 及文件操作。
简介
C语言概述
介绍了C语言的背景、发展历程和特点。
C语言的优点
探讨了C语言作为一种高级编程语言的优势和适用性。
C语言的应用领域
讨论了C语言在系统软件、应用软件和嵌入式开发等领域的广泛应用。
程序结构体系
1
程序结构
介绍了C语言程序的基本结构,包括顺序结构、分支结构和循环结构。
2
函数
讲解了函数的定义、声明、参数传递和递归函数的使用。
变量和数据类型
变量类型
探讨了C语言中的变量类型,包括整型、浮点型、字符型和指针类型。
常量和字面量

c语言教学课件ppt

c语言教学课件ppt

网络编程、socket编程、TCP/IP协议
案例三:基于多线程的并发程序
01
总结词
并发执行、多任务处理、高效率
02 03
详细描述
基于多线程的并发程序是一个能够同时执行多个任务的程 序,通过使用C语言的多线程库,实现并发执行和任务间 的通信与同步。该案例可以帮助学生了解和掌握多线程编 程的基本概念和原理,以及多线程并发执行的高效处理方 式。
息。
错误类型
空指针引用、数组越界、内 存泄漏等。
解决方法
通过调试工具对程序进行逐 步调试,观察变量的变化, 查找问题所在并进行修正。
调试技巧与方法
断点调试、变量观察、内存检查等。
设置断点、单步执行、观察变量值、 内存地址等。
总结词
调试技巧
调试工具
方法
掌握常用的调试技巧和方法,提高程 序调试的效率和准确性。
C语言可以用于开发各种应用软件,如办公软件、图形界面程序 等。
游戏开发中需要大量的图形渲染和计算操作,C语言的高效性能 使得其成为游戏开发的一种常用语言。
嵌入式系统需要控制硬件设备,C语言的可移植性和底层访问能 力使其适用于嵌入式系统开发。
02
C语言基础语法
数据类型
整型
包括int、short、long,表示整数类型。
涉及知识点
多线程编程、并发执行、任务间通信与同步
THANK YOU
感谢观看
1978年,Brian Kernighan和Dennis Ritchie合 著了《The C Programming Language》一书, 该书成为了C语言的经典参考书籍。
1990年,C语言被标准化,成为计算机科学教育 的基础语言之一。
C语言的特点

C语言课件(清华大学出版社)

C语言课件(清华大学出版社)
1.4.1 运行C程序的步骤 •上机输入与编辑源程序 •对源程序进行编译 •与库函数连接 •运行目标程序
C程序设计(第三版)
第二章
C程序设计(第三版)
本章要点
算法的概念 算法的表示 结构化程序设计方法
C程序设计(第三版)
主要内容
2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 化程序设计方法
(8)程序可移植性好(与汇编语言比)。 基本上不做修改就能用于各种型号的计 算机和各种操作系统。
C程序设计(第三版)
1.2 C语言的特点
问题:既然有了面向对象的C++语言,为 什么还要学习C语言?
解释1:C++是由于开发大型应用软件的需 要而产生的,并不是所有的人都要去编 写大型软件。
解释2:面向对象的基础是面向过程。C++ 是面向对象的语言,C是面向过程的,学 起来比C语言困难得多,所以不太适合程 序设计的初学者。
C程序设计(第三版)
设y为被检测的年份,算法可表示如下 :
S1:2000 → y
S2:若y不能被4整除,则输出y “不是闰年”。然后转 到S6
S3:若y能被4整除,不能被100整除,则输出y “是闰 年”。然后转到S6
S4:若y能被100整除,又能被400整除,输出y“是闰年 ”,否则输出“不是闰年”。 然后转到S6。
C程序设计(第三版)
用这种方法表示的算法具有通用性、 灵活性。S3到S5组成一个循环,在实现 算法时 要反复多次执行S3,S4,S5等步 骤,直到某一时刻,执行S5步骤时经过 判断,乘数i已超过规定的数值而不返回 S3步骤为止。此时算法结束,变量p的值 就是所求结果。

第5章 08C语言及第一个08C工程

第5章 08C语言及第一个08C工程

5.1.4 函数
所谓函数,即子程序,也就是“语句的集合”,就是说把经 常使用的语句群定义成函数,供其他程序调用,这样就可以避免重 复编写程序的麻烦,也可以缩短程序的长度。当一个程序太大时, 建议将其中的一部分程序改成用函数的方式调用较好,因为大程序 过于繁杂容易出错,而小程序容易调试,也易于阅读和修改。函数 定义的一般形式如下所示: 类型标识符 函数名(类型 参数1,类型 参数2,类型 参数3, ……) { 说明部分; 语句; } (1) 使用函数的注意事项 ①函数定义时要同时声明其类型。 ②调用函数前要先声明该函数。 ③传给函数的参数值,其类型要与函数原定义一致。 ④接收函数返回值的变量,其类型也要与函数类型一致。
指针 2000 …...
整型变量i
变量的地址
2001
10
变量的内容
2002
2003 2004 2005 2000 2006 指针变量 变量地址(指针) 指向 变量 变量值 《嵌入式技术基础与实践》 …... 变量i_pointer 指针变量
地址存入 指针变量
5.1.5 指针(2)
(2) 指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具 体值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指 针变量的赋值只能赋予地址。 ① 指针变量初始化的方法 int a; int *point =&a; ② 给指针赋值的方法 int a; int *point; point =&a; 将数值赋给指针将导致错误,例如:int *point; point =1000;是错误的。 被赋值的指针变量前不能再加“*”说明符,如写为*point =&a也是错误的。 (3) 指针的运算 ① 取地址运算符 & 取地址运算符&是单目运算符,其结合性为自右至左,其功能是取变量地址。

C语言程序设计基础知识教材教学课件

C语言程序设计基础知识教材教学课件

性能优化
包括代码优化、算法优化 和数据结构优化等方面的 技巧,以及如何提高程序 的运行效率和响应速度。
内存管理
包括内存分配、内存释放、 内存泄漏检测等方面的技 巧,以及如何合理地管理 程序的内存资源。
C语言在实际项目中的应用
01
系统开发
C语言广泛应用于操作系统、编译器、数据库等系统的开发中,可以学
C语言提供了指针和内存管理机制,可以方 便地进行内存分配和释放,适合开发需要 精细控制内存使用的应用程序。
02
C语言基础语法
数据类型
数据类型
C语言支持多种数据类型,包括整型、 浮点型、字符型等。每种数据类型都 有其特定的取值范围和存储大小。
声明方式
类型转换
在C语言中,变量可以在不同数据类 型之间进行转换。转换可以是隐式转 换或显式转换,取决于编译器和上下 文。
高效性
跨平台性
C语言是一种编译型语言,具有高效、快速 的执行速度,适合开发需要高效率的系统 软件、游戏、嵌入式设备等。
C语言是一种跨平台语言,可以在不同的操 作系统上运行,具有很好的可移植性,适 合开发跨平台的软件和系统。
结构化编程
内存管理
C语言支持结构化编程,具有严格的语法规 范和数据类型检查,可以提高代码的可读 性和可维护性。
C语言程序设计基础知识 教材教学课件
• C语言概述 • C语言基础语法 • C语言进阶知识 • C语言编程实践 • C语言标准库和第三方库 • C语言发展趋势和展望
01
C语言概述
C语言的起源和发展
1960年代
C语言的前身BCPL(Basic Combined Programming Language)由英国剑桥大学的Martin Richards开发,主 要用于操作系统和编译器开发。

8-1GC编程基础

8-1GC编程基础

GCC基本命令格式


gcc [options] [filename] options为编译器所需的选项。 filename:要进行编译的文件名。 GCC根据用户指定的编译选项和所识别的文件扩展 名对编译文件进行相应的处理。 例: //text.c $gcc test.c #include<stdio.h> $./a.out void main() Hello World! { 或: printf(“Hello $gcc -o test test.c World!\n”); $./test } Hello World!


函数库的链接次序


原则:包含函数定义的库应该出现在任何使用到该函 数的源文件和对象文件之后。 例: gcc -Wall -lm sqrt.c -o sqrt (incorrect) gcc -Wall sqrt.c -lm -o sqrt (correct) 程序“sqrt.c”用到了GNU Linear Programming库 “libglpk.a”,而该库又依次用到数学库“libm.a”,那么 应当这么编译: gcc -Wall sqrt.c -lglpk -lm -o sqrt
应用2

-c:编译生成目标文件.o,不链接成可执行文件。 例:gcc –c hello.c –o hello.o 运行程序: ./hello hello gcc!
应用3

-E:gcc生成预处理文件后停止。 例:gcc –E hello.c –o hello.i 预处理文件hello.i的部分内容: ...... extern void funlockfile (FILE *__stream) ; # 679 "/usr/include/stdio.h" 3 # 2 "hello.c" 2 int main(void) { printf("hello gcc!\n"); return 0; }

C语言程序设计第1章ppt课件

C语言程序设计第1章ppt课件

.
7
1.2 程序与程序设计语言
程序与指令 程序设计语言的功能 程序设计语言的语法 程序的编译与编程环境
.
8
程序与指令
指令:计算机的一个最基本的功能
如实现一次加法运算或实现一次大小的判别
计算机的指令系统:计算机所能实现的指令 的集合
程序:一系列计算机指令的有序组合
.
9
程序与指令
例1-2 编写程序,分别求和与乘积 虚拟的计算机指令系统(7条指令 )
的总称
代表的数据(数据类型的义域) 在这些数据上做些什么(即操作或称运算) 例如:整数类型
包含的数据:{…,-2,-1,0,1,2,…} 作用在整数上的运算:+ 、 - 、 * 、 /等
.
14
数据表达
C语言提供的数据类型
基本数据类型:程序设计语言事先定义好,供 程序员直接使用,如整型、实型(浮点型)、 字符型等。
3.Set 0 X; 将X设为0,此处X用以统计A累加的次数
4.Set 0 Z; 将Z设为0,此处Z用以存放A*B的结果
5.BranchEq X B 9; 判别X与B是否相等;若相等说明A 已累加了B次,程序跳转到第9条指令,输出结果
6.Add Z A Z; Z = Z + A
7.Add 1 X X; X = X + 1
用程序设计语言所写的程序必须符合相应 语言的语法
源程序(源代码)是一个字符序列,这些字符 序列按顺序组成了一系列“单词”,“单词” 的组合就形成了语言有意义的语法单位,一些 简单语法单位的组合又形成了更复杂的语法单 位,最后一系列语法单位组合成程序。
.
19
程序设计语言的语法
C语言的主要“单词”

lec08

lec08
11
LOOP
FIN
2
アセンブラによる 機械語への変換結果
番地 ソースの 行番号
リスティンファイルの例
ソース プログラム
機械語 メモリの内容 内容) (メモリの内容)
3
機械語の形式(教科書220ページ)
• 命令には1語長命令と2語長命令がある • 第1語はOPフィールド(8ビット) ,r/r1フィールド (4ビット) ,x/r2フィールド(4ビット)からなる • 第2語は adrフィールド(16ビット)である LD命令が2 LD命令 命令が
か所にある ことに注意 ことに注意
4
機械語への変換方法 Step 1
番地を決める (1) 機械語命令: オペランドの形式(r1, r2 型か、 r, adr 型)によって、1語長命令か2語長命令か を判断し,1語または2語の領域を確保する (2) DS命令: 指定された語数だけ領域を確保する (3) DC命令: 指定された定数の個数(語数)だけ 領域を確保する
6
機械語への変換方法 Step 3
命令の第2語を埋める (1) LAD命令、シフト命令、PUSH命令: オペランド の値を設定する (2) 分岐命令: 分岐先の番地を設定する (3) それ以外の命令: オペランドの番地を設定する (4) リテラル(=nnnn)の記述: プログラムの最後に 7 定数nnnnを確保し、その番地を設定する
第8回 ハンドアセンブル
今日の到達目標 1.ハンドアセンブルとは何か 2.CASLⅡの機械語の形式について理解する(復習) 3.機械語への方法について理解Biblioteka る1ハンドアセンブル
ハンドアセンブルとは? アセンブリ言語で書かれたプログラムを人間 が機械語に変換する。即ち、アセンブラが行 っている処理を人間が行う ⇒ ① 機械語の詳細な理解 ② アセンブラによる変換処理の理解

《c语言基础入门》课件

《c语言基础入门》课件

运算符与表达式
详细介绍算术、关系和逻辑 运算符的使用,以及表达式 的含义和计算方法。
控制语句
解释条件、循环和跳转语句 的含义和使用方法,帮助人 们掌握C语言中各种控制语句 的作用和用法。
C语言高级应用
数组与指针
介绍数组和指针的概念及使用方法,详细讲 解数组和指针在C语言中的应用场景。
动态内存分配与释放Fra bibliotek1计算器程序设计
通过编写计算器程序,让人们学会如
简单画图程序设计
2
何在C语言中进行基本的算术运算和 表达式计算。
使用C语言编写简单的画图程序,帮
助人们了解如何在C语言中进行基本
的图形绘制操作。
3
连连看游戏程序设计
使用C语言编写连连看游戏程序,展 示C语言的实际应用及其强大的功能。
结束语
学习建议
给出学习C语言的建议和方法, 让人们从入门到精通掌握C语 言的基础知识和高级用法。
优缺点
介绍C语言作为编程语言的优 缺点,帮助人们全面了解C语 言的特点和适用范围。
发展趋势
探讨C语言的应用前景和发展 趋势,让人们了解C语言在未 来的发展和应用前景。
C语言基础入门PPT课件
这是一份关于C语言基础入门的PPT课件,通过本课件,你将了解C语言的发展 历程、语法特点、应用领域、基础语法、高级应用和实践案例等方面的知识。
C语言基础概述
1
发展历程
介绍C语言的发展历程,从B语言到C语言的发展过程,让人们全面了解C语言的 出现和发展。
2
语法特点
探究C语言的语法特点,从函数、变量、运算符、控制语句等方面进行详细讲解, 让人们深入了解C语言的语法特性。
3
应用领域

c语言教案 ppt课件

c语言教案  ppt课件

ppt课件
41
3.2 常量与变量
标识符:
所谓标识符是指用来标识符号常量名、变量 名、函数名、数组名、类型名、文件名的有效字 符序列。简单地说,标识符就是一个名字。
C语言规定标识符只能由字母、数字和下划 线三种字符组成,第一个字母必须是字母或下 划线。
注意:大写字母和小写字母被认为是两个不同 的字符。
Else pring -x
ppt课件
36
2.4.6 用计算机语言表示算法
main()
{ int i ,t ;
i=1;
i=2
while(i<=5)
{ t=t*i;
i=i+1;
}
printf( “%d”,t)
}
ppt课件
37
2.5 结构化程序设计方法
结构化程序:就是用高级语言表示的结构化算法。
结构化程序设计方法的基本思路:把一个复杂 问题的求解过程分阶段进行,每个阶段处理的 问题都控制在人们容易理解和处理的范围内。
ppt课件
42
ANSI C标准没有规定标识符的长度
Turbo C3.0标识符的定义十分灵活。作为 标识符必须满足以下规则:
1. 所有标识符必须由一个字母(a~z, A~Z)或下划线(_)开头;
2. 标识符的其它部分可以用字母、下划 线或数字(0~9)组成;
3. 大小写字母表示不同意义, 即代表不 同的标识符;
1、有穷性 2、确定性 3、有零个或多个输入 4、有一个或多个输出 5、有效性
ppt课件
28
2.4 怎样表示一个算法
2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法
ppt课件
29
例 2 流程图

第二讲简单C语言程序入门课件

第二讲简单C语言程序入门课件

if语句
根据条件判断执行不同的代码块。
for语句
循环执行一段代码指定的次数。
函数
01
02
03
04
函数定义
定义函数名、返回类型和参数 列表。
函数调用
通过函数名和参数列表调用函 数。
函数参数传递
按值传递或按指针传递。
函数返回值
函数执行完毕后返回一个值。
03 C语言程序结构
程序的构成
01
程序由预处理指令、函 数、变量和语句组成。
算术运算符
+、-、*、/等,用于进行数学 运算。
逻辑运算符
&&、||、!等,用于进行逻辑 运算。
其他运算符
()、[]、->等,用于改变运算 顺序或访问数组元素或结构体 成员。
流程控制语句
while语句
switch语句
当条件满足时重复执行一段代码。
do-while语句
根据不同的值执行不同的代码块。
先执行一段代码,然后判断条件 是否满足,如果满足则重复执行。
控制流语句如if、 while、for等用于控 制程序的执行流程。
程序的调试与优化
01
02
03
04
调试是查找和修复程序中错误 的过程。
使用调试器可以单步跟踪程序 的执行,查看变量的值和内存
状态。
优化是通过改进代码结构和算 法,提高程序的性能和效率。
常见的优化技巧包括减少循环 次数、使用更高效的数据结构
和算法等。
04 C语言编程实践
输入输出函数的使用
总结词
了解并掌握C语言中的输入输出函数,如printf()和scanf(),是编写C语言程序 的基础。

精品-清华大学C语言课件 第9章08 本章常见错误

精品-清华大学C语言课件 第9章08 本章常见错误

sizeof(a)和sizeof(a+1)
有如下代码,分别求sizeof(a)和sizeof(a+1)的计算结果。
int a[10]="123";
在表达式sizeof(a)中,数组名a代表数组本身,故这时sizeof(a)测出的是整个数组的大小,是 10个int型变量所占空间,4*10 = 40。不要误以为它的大小是10。同理,如果是double类型,就是80。
sizeof(a+1)测出的是指针类型的大小。此时的a+1意味着a被当做指针处理。在32 位系统中指针 的大小是4,故sizeof(a+1)的测量结果是4。
Hale Waihona Puke 本章常见错误本讲大纲
1.输出数组内容时后面出现乱码 2. sizeof(a)和sizeof(a+1)
输出数组内容时后面出现乱码
char str[3] = {"123"}; printf("%s\n",str);//输出123,后面有乱码出现
如上代码,数组大小为3,字符串长度也是3,此时字符串正常存入数组,但字符串结束符’\0’ 没有空间存放,所以输出字符串之后还会继续向后引用内存,结果就会输出垃圾值。设计数组时,通 常要比字符串长度多一个字节的空间,用以存放’\0’。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23 5 4 7 8 4

输入样例 2
21 5 5 10

输出样例 1
11

输出样例 2
bit is doomed!
10
算法设计:北理工的恶龙
• 算法设计
1. 读入龙头数 n 和勇士 m 2. 读入 n 个龙头数据存入数组 dragon 中 3. 读入 m 个勇士数据存入数组 cavalier 中 4. 对数组 dragon 中的 n 个数据从小到大进行排序 5. 对数组 cavalier 中的 m 个数据从小到大进行排序 #define M 100 int cavalier[M], dragon[M], n, m; scanf("%d%d", &n, &m); input( dragon, n ); input( cavalier, m ); sort( dragon, n ); sort( cavalier, m );
4
编码风格
• • • • • • • • • 注意花括号的位置 缩进应该是四个空格 for、while 等语句和括号间要有空格 , ; 等后要有空格或换行 运算符的前后应有空格 函数名后的括号无空格 if、for、while 后必须使用花括号 要在适当的位置添加空行 函数要加 return
5
编码风格
11
算法设计:北理工的恶龙
• “处理”部分的算法设计
1. 龙头下标 j=0,勇士下标 i=0 2. 当 i<m 且 j<n 时,进入 3 进行尝试,否则结束。 3. 判断第 i 个勇士的身高 >= 第 j 个龙头直径吗? 若成立,则表示第 i 个勇士可以砍下第 j 个龙头, 记录身高,找下一个勇士和下一个龙头(i++, j++) 转2。 若不成立,试探下一个勇士(i++),转2。 for ( i=j=0; i<m && j<n; ) { if ( cavalier[i] >= dragon[j] ) { result += cavalier[i]; i++; j++; } else i++; }
6
软件纠错的六个阶段: 1. 这不可能。 2. 我机器上就没事。 3. 不应该呀。 4. 为什么会出现这种问题? 5. 噢,我明白了。 6. 以前怎么就没问题?
7
程序设计的一般步骤
• 明确问题的性质,分析题意
–数值问题/非数值问题
• 建立问题的描述模型
–数学模型/过程模型
• 设计/确定算法
–数学问题:数值分析 –非数学问题:
说明: 输入数据的精度不高于小数点后50位。 输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。 结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不 进行四舍五入的处理。
15
算法设计:科学计数法
• 读入数据:底数、E/e、指数
例:-1.2345 e 6
–将输入的数据分开存储,E/e将底数和指数分隔开, 底数和E/e之间有空格 –底数:可能过长,存放于数组中,如何处理小数点 和底数上的正负号?单独存放 –底数和E/e之间、E/e和指数之间可能有空格,将E/e 和空格舍去 –指数:整数,存放在int型变量中
#include <stdio.h> int main() { int i, n = 0; for ( i = 0; i < 10; ++i ) { if ( n % 2 == 0 ) { n = n + i; } else { n = n - i; } } printf("%d\n", n); return 0; } #include <stdio.h> int main() { int i, n = 0; for ( i = 0; i < 10; ++i ) { if ( n % 2 == 0 ) { n = n + i; } else { n = n - i; } } printf("%d\n", n); return 0; }
printf("\nlocal x in main is %d\n",x); int x = 1; /*【1】*/ /*( I )*/ int main(void) return 0; { } int x = 5; /*【2】*/ 局部变量 printf("local x in outer scope of main is %d\n",x); /*( A )*/ { /*start a new scope*/ int x = 7; /*【3】*/ 局部变量 printf("local x in outer scope of main is %d\n",x); /* ( B )*/ }/*end new scope*/
12
算法设计:北理工的恶龙
int main ( ) { int n, m, i, j; long result=0; /* 记录学分*/ scanf("%d%d", &n, &m); input( dragon, n ); input( cavalier, m ); sort( dragon, n ); sort( cavalier, m ); for ( i=j=0; i<m && j<n; ) /* 进行试探 */ { if ( cavalier[i] >= dragon[j] ) { result += cavalier[i]; i++; j++; } else i++; } if ( j==n ) printf("%ld\n", result ); else printf("bit is doomed!\n"); }
9
算法设计:北理工的恶龙
• 输入
第一行龙头数n, 勇士人数m(1<=n, m<=100) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高
• 输出
如果勇士们能完成任务,输出校长需要花的最小费用;否则输 出 “bit is doomed!”

输入样例 1
• 数据结构/算法分析与设计 • 一般方法:穷举/递推/递归/分治/回溯/……
• 编程调试 • 分析运行结果
8
算法设计:北理工的恶龙
最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。 要杀死这只龙,必须把它所有的头都砍掉, 每个勇士只能砍一个龙头,龙的每个头大小都不 一样,一个勇士只有在身高不小于龙头的直径的 情况下才能砍下它。而且勇士们要求,砍下一个 龙头必须得到和自己身高厘米数一样的学分。 校长想花最少的学分数杀死恶龙,于是找到 你寻求帮助。
3
void useLocal(void) { int x = 25; /*【4】*/ 局部变量 printf("\nlocal x in useLocal is %d after entering useLocal\n",x); /* ( C1,F1 )*/ x++; printf("local x in useLocal is %d before exiting useLocal\n",x); /*( C2,F2 )*/ } void useStaticLocal(void) { static int x = 50; /*【5】*/ 局部变量 静态变量 printf("\nlocal static x is %d on entering useStaticLocal\n",x); /*( D1,G1 )*/ x++; printf("local static x is %d on exiting useStaticLocal\n",x); /*( D2,G2 )*/ } void useGlobal(void) { printf("\nglobal x is %d on entering useGlobal\n",x); *( E1,H1 )*/ x*=10; printf("global x is %d on exiting useGlobal\n",x); /*( E2,H2 )*/ }
20
Address 0001 0002 0003
10011001 11001010 10001100 00001011
1023 1024

11001010 10001100
Can address store in memory? Why should address store in memory?
• 将底数乘以指数并按要求输出
–指数>0,将小数点从原始位置向后移动指数位 –指数<0,将小数点从原始位置向前移动指数位,前 16 方要补0
算法设计:科学计数法
• 读入数据:底数、E/e、指数 int p=-1,n,i=0,j,sign=0,flag=0;char c,s[100]; while(scanf("%c",&c)&&c!='e'&&c!='E') if(c==„.‟)p=i-1; /*记录原始小数点的位置*/ else if(c<='9'&&c>='0')s[i]=c,i++; /*仅将底数中的数字,存放在数组s中*/ else if(c==„-‟)sign=1; /*记录底数的符号*/ else if(p<0)p=i-1; /*如果没有小数点,设置小数点默认的位置*/
相关文档
最新文档