C语言第二章谭浩强第四版

合集下载

C语言(谭浩强)第2章数据描述

C语言(谭浩强)第2章数据描述
定点表示和浮点表示,是C语言基本数据类型 的重要特征。为了说明什么是“定点”,什么是 “浮点”,先看π值的几种表示形式: 日常的表示法 C语言中的表示形式 3.14159×100 3.14159e0 0.314159×101 0. 314159e+1 0.0314159×102 0.0314159e+2 31.4159×10-1 31.4159e-1 3141.59×10-3 3141.59e-3
• • • •
转义字符表
转义字符形式 \n \t \v \b \r \f \a \\ \? \“ \’ \ddd xhh 换行 水平制表 垂直制表 退格 回车 走纸换页 报警(如铃声) 反斜杠 问号 双撇号 单撇号 1~3位八进制常数 1~2位十六进制常数 意 义
例2.5 /* 文件名:ex020501.c */ /*打印人民币符号″¥″*/ #include <stdio.h> int main(void) { printf(″Y\b=\n″); return 0; }
/* 注意格式码 */ /* 注意格式码 */
例2.4 /* 文件名:ex020401.c */ #include <stdio.h> int main(void) { char c; c = 0362; printf (″%d\n″, c); return 0; } 运行结果: -14
2. 字符常量
下面不是合法的整型常量:
09876——(非十进制数,又非八进制数,因为有数 字8和9) 20fa——(非十进制数,又非十六进制数,因为不 是以0x开头) 0x10fg——(出现了非法字符)
2. 整数常量类型的确定
在C语言中整数可以进一步分为short、int、 long和long logn等类型。那么,对于一个常数如 何分辨其类型呢?一般说来,有以下原则: 1)默认原则:在没有任何特别标志的情况下,可 以按照常数所在的范围,决定其类型。例如,在 16位的机器中,当一个常整数的值在十进制32768~32767(八进制数0~0177777、十六制数 0x0~0xFFFF),则被看作一个short int或int型 整数。超出上述范围的整常数,则被看作长整数 (32位)表示。例如,234、32766、0177776、 0xFFFE等被看作是int型,而-32769、32768、 0200000、0x10000等被看作是long型。

C语言第2章(谭浩强)

C语言第2章(谭浩强)

§ 2.4
怎样表示一个算法
表示方法: 1、自然语言 2、传统流程图 3、N—S流程图 4、结构化流程图 5、伪代码 、PAD图
10
2.4.1 用自然语言表示算法
用自然语言表示通俗易懂,但容易出现 “歧异性”。
2.4.2 用传统流程图表示算法
直观形象,易于理解。成为世界各国程序 工作者普遍采用。 下面给出传统流程图的说明:
2
§2.1
算法的概念
做任何事情都有一定的步骤,这些步骤都 是有一定的顺序。如:起床上学,用电脑画画, 弹奏乐曲。不要以为只有“计算”的问题才有 算法的。

什么叫做算法?广义:为解决一个问题而采 用的方法和步骤就称为“算法”。
例如:求 1+2+3+4+……+100 可先算1+2、再加3、再加4……直到加上100; 也可采用 100+(1+99)+(2+98)+……+ (49+51)+50 3 本书所关心的算法只限于计算机算法。
5
例2.2 有50个学生,将成绩在80分以上的学 号和成绩打印出来。 说明:n:学号,ni:第i个学生学号,g:成绩, gi:第i个学生成绩 步骤如下: S1:1=>i S2:若gi>80,则输出ni和 gi ,否则不输出。 S3:i+1=>i S4:若i小于等于50,则返回 S2继续执行; 否则算法结束。

著名计算机科学家沃思提出一个公式: 数据结构+算法=程序 实际上,一个程序还应当采用结构化程序设计 方法进行程序设计,并且用某一种计算机语言表示。 因此,可以这样表示。 程序=算法+数据结构+程序设计方法+语言 以上四个方面是一名程序设计员所应具备的知 识。在这四个方面中,算法是灵魂,是解决“做什 么”和“怎么做”的问题。数据结构是加工对象, 语言是工具,编程需要采用合适的方法。

C语言程序设计(谭浩强版)第二章

C语言程序设计(谭浩强版)第二章
奇妙的输出结果。并且,处理出错的方法
不应是中断程序的执行,而应是返回一个
表示错误或错误性质的值,以便在更高的
抽象层次上进行处理。
算法设计的原则
4.高效率与低存储量需求
通常,效率指的是算法执行时间; 存储量指的是算法执行过程中所需 的最大存储空间, 两者都与问题的规模有关。
算法设计的原则
算法的时间复杂度
第二章 程序的灵魂——算法
2.1 算法的概念 2.2 算法的简单举例
2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法
算法的概念
计算机应用: 提取数学模型—设计算法— 编程—测试—应用
程序设计=数据结构+算法
数据结构:对数据的描述 算法:对操作的描述 除此之外程序设计还包括:程序设计方法, 和程序设计语言
怎样表示一个算法
例4的伪代码表示法如下 开始 读入整数n 置sum的初值为0 置k的初值为1 执行下面的操作: 如果k为奇数,置item=1/k 如果k为偶数,置item=-1/k sum=sum+item 直到k>n 打印sum的值 结束
算法设计的原则
算法设计的原则
设计算法时,通常应考虑达到以下目标: 1.正确性 2.可读性 3.健壮性 4.高效率与低存储量需求
从算法中选取一种对于所研究的问题 来说是 基本操作 的原操作,以该基 本操作 在算法中重复执行的次数 作 为算法运行时间的衡量准则。
结构化程序设计方法
采用结构化算法写成的计算机程序是结构 化程序。要编写出结构化程序,经常采用 的方法是结构化程序设计方法。这种方法 的基本思路是: 把给定的问题按层次(纵方向)、分阶段 (横方向)分解为一系列易于编程解决的 小问题,然后对应着这些分解的小问题, 设计结构化的算法,最后采用语言将算法 描述出来。这样一种程序设计方法就是结 构化程序设计方法。

C程序设计(第四版)谭浩强-课后习题答案-共11章(同名1796)

C程序设计(第四版)谭浩强-课后习题答案-共11章(同名1796)

C程序设计(第四版)谭浩强-课后习题答案-共11章(同名1796)第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计373.1顺序程序设计举例373.2数据的表现形式及其运算39 3.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句59 3.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

教材原教案(谭浩强C)第2章

教材原教案(谭浩强C)第2章

执行时输出 66 i和j被指定为整型变量。但在第5和第6行中,将字符′A′和′B′分别赋给i和j,它的作用相当于以下两个赋值语句: i=65;j=66; 因为′A′和′B′的ASCII码为65和66。在程序的第5和第6行是把65和66直接存放到i和j的内存单元中。因此输出65和66。 可以看到:在一定条件下,字符型数据和整型数据是可以通用的。但是应注意字符数据只占一个字节,它只能存放0~255范围内的整数。
说明: (1) 整型数据分为长整型(long int)、一般整型(int)和短整型(short int)。在int前面加long和short分别表示长整型和短整型。 (2) 整型数据的存储方式为按二进制数形式存储,例如十进制整数85的二进制形式为1010101,则在内存中的存储形式如图2.1所示。 图2.1

一个整型常量可以用3种不同的方式表示:
十进制整数。如1357,-432,0等。在一个整型常量后面加一个字母l或L,则认为是long int型常量。例如123L,421L,0L等,这往往用于函数调用中。如果函数的形参为long int,则要求实参也为long int型,此时用123作实参不行,而要用123L作实参。
第2章 数据类型与表达式
C++的数据类型 常量 变量 C++的运算符 算术运算符与算术表达式 赋值运算符与赋值表达式 逗号运算符与逗号表达式
C++的数据类型
计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、浮点数、字符等形式)。不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组)。数据结构指的是数据的组织形式。例如,数组就是一种数据结构。不同的计算机语言所允许使用的数据结构是不同的。处理同一类问题,如果数据结构不同,算法也会不同。例如,对10个整数排序和对包含10个元素的整型数组排序的算法是不同的。 C++可以使用的数据类型如下:

C语言程序设计(谭浩强)第四版_课后答案

C语言程序设计(谭浩强)第四版_课后答案

第一章程序设计和C语言【第15页】1-5#include <stdio.h>int main ( ){ printf ("**************************\n");printf(" Very Good!\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂【第36页】暂无答案第3章最简单的C程序设计——顺序程序设计【第82页】3-1#include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

c程序设计第四版(谭浩强著)第2章_算法

c程序设计第四版(谭浩强著)第2章_算法
C程序设计(第三版) 8
如果题目改为:求1×3×5×……×1000 算法只需作很少的改动: S1:1→p S2:3 → i S3:p×i → p S4:i+2 → i S5:若i≤11,返回S3。否则,结束。
C程序设计(第三版)

C程序设计(第三版)

50
2.4.5 用伪代码表示算法 • 概念:伪代码是用介于自然语言和计算机 语言之间的文字和符号来描述算法。 • 特点:它如同一篇文章一样 ,自上而下地 写下来。每一行(或几行)表示一个基本操 作。它不用图形符号,因此书写方便 、格 式紧凑,也比较好懂,也便于向计算机语 言算法(即程序)过渡。 • 用处:适用于设计过程中需要反复修改时 的流程描述。
C程序设计(第三版)
开始
置t的初值为1
置i的初值为2 当i<=5,执行下面操作: 使t=t×i 使i=i+1 {循环体到此结束} 输出t的值 结束

54
2.4.6 用计算机语言表示算法 • 概念:用计算机实现算法。计算机是无法 识别流程图和伪代码的。只有用计算机语 言编写的程序才能被计算机执行。因此在 用流程图或伪代码描述出一个算法后,还 要将它转换成计算机语言程序。 • 特点:用计算机语言表示算法必须严格遵 循所用的语言的语法规则,这是和伪代码 不同的。 • 用处:要完成一件工作,包括设计算法和 实现算法两个部分。设计算法的目的是为 了实现算法。
C程序设计(第三版) 6
2.2 简单算法举例
例2.1: 求1×2×3×4×5
步骤1:先求1×2,得到结果2 步骤2:将步骤1得到的乘积2再乘以3,得到结果6 步骤3:将6再乘以4,得24 步骤4:将24再乘以5,得120
如果要求1×2×…×1000,则要写999个步骤

C语言第二章谭浩强第四版

C语言第二章谭浩强第四版

第二章 程序的灵魂
信息技术教研室
什么是算法
计算机算法可分为两大类别:
数值运算算法 非数值运算算法 数值运算的目的是求数值解 非数值运算包括的面十分广泛,最常见的是用 于事务管理领域

第二章 程序的灵魂
信息技术教研室
简单的算法举例
求1×2×3×4×5× 例2.1 求1×2×3×4×5 …×1000
第二章 程序的灵魂
信息技术教研室
简单的算法举例
例2.3 判定2000—2500年中的每一年是否闰年,并 将结果输出。 闰年的条件: (1)能被4整除,但不能被100整除的年份都是闰 年,如2008、2012、2048年 (2)能被400整除的年份是闰年,如2000年 不符合这两个条件的年份不是闰年 例如2009、2100年
1t
2i t*it i+1i N i>5 Y 输出t
结束
第二章 程序的灵魂
信息技术教研室
例2.7: 例2.2的算法用流程图表示。有50个学生,
要求将成绩在80分以上的学生的学号和成
绩输出。
如果包括输入数据部分
开始 1i Y gi≧80 N
开始 1i 输入ni、gi
输出ni、gi i+1i N i>50 Y 结束




① 起止框 位置不够 判断框
防止交叉 输入输出框
处理框
② 连接点 注释框
流程线
开始
例2.6 将例2.1的算法用流 程图表示。 求1×2×3×4×5 如果需要将最后结果输出:
1t
2i t*it i+1i N
i>5
Y
结束
开始
例2.6 将例2.1的算法用流 程图表示。 求1×2×3×4×5 如果需要将最后结果输出:

《C语言程序设计》课后习题答案(第四版)谭浩强

《C语言程序设计》课后习题答案(第四版)谭浩强

《C语言程序设计》课后习题答案(第四版)谭浩强第1章程序设计和c语言11.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运转c程序的步骤与方法121.6程序设计的任务141-5#includeintmain(){printf(\printf(\verygood!\\n\\n\printf(\return0;}1-6#includeintmain(){inta,b,c,max;printf(\scanf(\max=a;if(maxprintf(\return0;}第2章算法――程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样则表示一个算法222.4.1用自然语言则表示算法222.4.2用流程图则表示算法222.4.3三种基本结构和改进的流程图262.4.4用ns流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计――顺序程序设计373.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的促进作用和分类573.3.2最基本的语句――赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输入数据683.4.4用scanf函数输出数据753.4.5字符数据的输入输出78习题823-1#include#includeintmain(){floatp,r,n;r=0.1;n=10;p=pow(1+r,n);printf(\return0;}3-2-1#include#includeintmain(){floatr5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);//一次存5年期p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存有3年期p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存有2年期p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。

(完整版)《C语言程序设计》-谭浩强(第四版)教案

(完整版)《C语言程序设计》-谭浩强(第四版)教案

《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。

谭浩强C程序设计第四版

谭浩强C程序设计第四版
利用反演规则求反函数F时,不仅要注意运算的 优先顺序,而且还要注意只有单个变量的反变 量才变为原变量,而对于多个变量组合后的“非”
号 不能变反。
(1) 反演规则
即: “ ”, “+”, “0” , “1”, “原变 量”, “反变量”
“+” , “ ” , “1” , “0”, “反变量”, “原变量”
第2章 逻辑代数及 逻辑函数化简
2.1 逻辑代数的基本运算与公式 2.2 公式法化简逻辑函数 2.3 逻辑函数的标准形式
2.4 图解法(卡诺图)化简 (重点) 2.5 表格法化简(Q-M法 ) 2.6 逻辑函数的实现
2.1 逻辑代数的基本运算与公式
逻辑代数:二进制运算的基础。 应用代数方法研究逻辑问题。由英国数学家 布尔(Boole)和德.摩根于1847年提出,又叫 布尔代数,开关代数。 逻辑函数的表示:真值表,表达式,逻辑门 逻辑函数的生成:逻辑问题的描述,由文字叙 述的设计要求,抽象为逻辑表达式的过程。 然后才能化简、实现,逻辑设计的第一步。 逻辑代数的基本运算:与、或、非 (1) “与”运算,逻辑乘 (2) “或”运算,逻辑加 (3) “非”运算,取反
(1) 反演规则
反演规则
Y AB CDE
Y ABC DE
Y ( A B)(C D E ) Y AB CD E
练习
(2) 对偶规则
设F为一个逻辑函数表达式,若将F中的 “与”、 “或”运算符互换(即·变为+, +变为·),常量0、1互换(即0变为1, 1 变为0), 所得到的新表达式就叫做函数F 的对偶式
(2) 对偶规则
3.附加公式
附加公式1
3.附加公式
3.附加公式
附加公式2

C语言程序设计谭浩强(第四版)期末复习重点

C语言程序设计谭浩强(第四版)期末复习重点

C语言程序设计谭浩强(第四版)期末复习重点第一章程序设计和C语言1.1.什么是计算机程序程序:一组计算机能识别和执行的指令。

只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作..计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。

1.2什么是计算机语言计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。

计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言);面向对象的语言1.3C语言的发展及其特点C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。

因此C语言问世以后得到迅速推广。

C语言主要特点:语言简洁、紧凑,使用方便、灵活。

(只有37个关键字、9种控制语句;程序书写形式自由,源程序短)运算符丰富。

(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达式类型多样化)数据类型丰富。

(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。

)具有结构化的控制语句。

(如ifele语句、while语句、dowhile语句、witch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言)语法限制不太严格,程序设计自由度大。

(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查)允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。

(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言)用C语言编写的程序可移植性好。

C程序设计(第四版)(谭浩强)第二章课后习题答案

C程序设计(第四版)(谭浩强)第二章课后习题答案

C程序设计(第四版)(谭浩强)第2章课后习题答案算法——程序的灵魂P017 2.1 计算机1-5相乘的积.#include<stdio.h>int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<6;i++) //这里是到6.{s=s*i; //相乘}printf("The sum is %d .\n",s);return 0;}#include<stdio.h> //作出要求:换成1到11间奇数相乘.int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2{if(i%2!=0) //i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; //跳过这个for循环的这一次,执行下一次.}printf("The sum is %d .\n",s);return 0;}暂时没法做.P019 2.3 判断2000-2500年中的闰年,并输出.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。

所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。

规则为:·1)如果年份能被4整除,则该年计为闰年;可是,假如不做调整的话,当400年的时候,累计才多出96.92天,接近于多出97天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。

怎么撤销呢?就有了下面这个规则:·2)如果年份能被100整除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:·3)如果年份能被400整除,则计为闰年。

C语言程序设计谭浩强(第四版)期末复习重点

C语言程序设计谭浩强(第四版)期末复习重点

福7下方是正文:第一章程序设计和C语言1.1.什么是计算机程序程序..:一组计算机能识别和执行的指令。

只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。

1.2什么是计算机语言计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。

计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言);面向对象的语言1.3C语言的发展及其特点C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。

因此C语言问世以后得到迅速推广。

C语言主要特点:语言简洁、紧凑,使用方便、灵活。

(只有37个关键字、9种控制语句;程序书写形式自由,源程序短)运算符丰富。

(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达式类型多样化)数据类型丰富。

(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。

)具有结构化的控制语句。

(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言)语法限制不太严格,程序设计自由度大。

(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查)允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。

(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言)用C语言编写的程序可移植性好。

C程序设计(第四版)(谭浩强)完整版 课后习题答案

C程序设计(第四版)(谭浩强)完整版 课后习题答案

C程序设计(第四版)(谭浩强)第一章课后习题答案P006 1.1 向屏幕输出文字.#include<stdio.h>//预编译. 代码均调试成功,若有失误大多不是代码问题.自已找找.int main(){printf("Welcome to \n");return 0; //与int main对应,为了程序可移植性,建议全用int main + return 0;.}P008 1.2 求两个数的和.#include<stdio.h>int main(){int a,b,sum;a=5;b=4;sum=a+b;printf("The sum is %d .\n",sum);return 0;}P008 1.3 调用函数比较两个数的大小.#include<stdio.h>int main(){int max(int x,int y); //被调用函数在主函数后面,用前先声明.int a,b,c;scanf("%d,%d",&a,&b); //输入时要按格式来,此处的逗号,用空格会发生错误.c=max(a,b); //a,b作为实参传入被调用函数中.printf("The max is %d .\n",c);return 0;}int max(int x,int y) //定义了两个形参.{int z; //z属于局部变量,可与主函数中相同名字.if (x>y)z=x;elsez=y;return(z); //z作为整个程序的出口值,赋给主函数中的c.}P015 0.6 三个数的大小.(数字0表示课后练习题)#include<stdio.h>int main(){int a,b,c,d; //d是用于存储最大值的.int max(int x , int y , int z); //测试可知,在VS2008中,可以不预先声明.printf("Please input 3 numbers :\n");scanf("%d %d %d",&a,&b,&c);d=max(a,b,c); //调用函数中有三个形参,这里需要传入三个实参,才可运算.printf("The max is :%d .\n",d); // d可以换成max(a,b,c).}int max(int x , int y , int z){int m;if (x>y && x>z) //求三者之大的一种方法.m=x;if (y>x && y>z)m=y;if (z>y && z>x)m=z;return (m); //返回值m给主函数中的d.}C程序设计(第四版)(谭浩强)第2章课后习题答案算法——程序的灵魂#include<stdio.h>int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<6;i++) //这里是到6.{s=s*i; //相乘}printf("The sum is %d .\n",s);return 0;}#include<stdio.h> //作出要求:换成1到11间奇数相乘.int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2{if(i%2!=0) //i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; //跳过这个for循环的这一次,执行下一次.}printf("The sum is %d .\n",s);return 0;}P019 2.2 按要求输出80分以上的学生信息.暂时没法做.P019 2.3 判断2000-2500年中的闰年,并输出.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。

C语言程序设计(谭浩强)第四版-课后答案

C语言程序设计(谭浩强)第四版-课后答案

第一章程序设计和C语言【第15页】1-5#include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" V ery Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂【第36页】暂无答案第3章最简单的C程序设计——顺序程序设计【第82页】3-1#include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并且用某一种计算机语言表示
算法、数据结构、程序设计方法和语言工具是
一个程序设计人员应具备的知识
第二章 程序的灵魂
信息技术教研室
算法是解决“做什么”和“怎么做”的问题
程序中的操作语句,是算法的体现
不了解算法就谈不上程序设计
第二章 程序的灵魂
信息技术教研室
2.1 什么是算法
2.2 简单的算法举例
2.4.5 用伪代码表示算法
2.4.6 用计算机语言表示算法
第二章 程序的灵魂
信息技术教研室
用自然语言表示算法
2.2节介绍的算法是用自然语言表示的

用自然语言表示通俗易懂,但文字冗长,容易出现歧
义性

用自然语言描述包含分支和循环的算法,不很方便 除了很简单的问题外,一般不用自然语言
第二章 程序的灵魂




① 起止框 位置不够 判断框
防止交叉 输入输出框
处理框
② 连接点 注释框
流程线
开始
例2.6 将例2.1的算法用流 程图表示。 求1×2×3×4×5 如果需要将最后结果输出:
1 t
2 i t*it i+1i N
i>5
Y
结束
开始
例2.6 将例2.1的算法用流 程图表示。 求1×2×3×4×5 如果需要将最后结果输出:
第二章 程序的灵魂
信息技术教研室
简单的算法举例
S1:使p=1,或写成1p S2:使i=2,或写成2i S3:使p与i相乘,乘积仍放在变量p中,可表示
若是1000,求什么? 为:p*ip S4:使i的值加1,即i+1 i S5:如果i不大于5,返回重新执行S3;否则,算 法结束 最后得到p的值就是 5!的值
第二章 程序的灵魂
信息技术教研室
简单的算法举例
例2.5 给出一个大于或等于3的正整数,判断 它是不是一个素数。 所谓素数(prime),是指除了1和该数本身之 外,不能被其他任何整数整除的数 例如,13是素数,因为它不能被2,3,4,…, 12整除。
第二章 程序的灵魂
信息技术教研室
判断一个数n(n≥3)是否素数:将n作为被除数,将2 到(n-1)各个整数先后作为除数,如果都不能被整除, 则n为素数
第二章 程序的灵魂
信息技术教研室
简单的算法举例
若求1×3×5×7×9×11
S1:使p=1,或写成1p
3i 3 ,或写成2 S2:使i=2
S3:使p与i相乘,乘积仍放在变量p中,可表示
为:p*ip 相当于i ≦11 S4:使i的值加2 1,即i+1 2 i 11, S5:如果i不大于5 ,返回重新执行S3;否则,算 法结束 最后得到p的值就是 5!的值
第二章 程序的灵魂
信息技术教研室
1 1 1 1 1 例2.4 求 1 2 3 4 99 100
S1:sign=1 99次循环后sum的值 S2:sum=1 就是所要求的结果 S3:deno=2 S4:sign=(-1)*sign S5:term=sign*(1/deno) S6:sum=sum+term S7:deno=deno+1 S8:若deno≤100返回S4;否则算法结束
第2章 算法---程序的灵魂
第二章 程序的灵魂
信息技术教研室
一个程序主要包括以下两方面的信息: (1) 对数据的描述。在程序中要指定用到哪 些数据以及这些数据的类型和数据的组 织形式 这就是数据结构(data structure)
(2) 对操作的描述。即要求计算机进行操作 的步骤,
也就是算法(algorithm)
例2.10: 例2.5判断素数的算法用流程图表示。对 一个大于或等于3的正整数,判断它是不 是一个素数。
开始
输入n 2 i n%ir r=0 N i+1i N Y 输出n是素数
S1:输入n的值 S2:i=2 (i作为除数) S3:n被i除,得余数r S4:如果r=0,表示n能被i整除,则输出n“不是素数”, 算法结束;否则执行S5 可改为n/2 n S5:i+1i S6:如果i≤n-1,返回S3;否则输出n “是素数”,然后 结束。
第二章 程序的灵魂
信息技术教研室
算法的特性
1 t
2 i t*it i+1i N i>5 Y 输出t
结束
第二章 程序的灵魂
信息技术教研室
例2.7: 例2.2的算法用流程图表示。有50个学生,
要求将成绩在80分以上的学生的学号和成
绩输出。
如果包括输入数据部分
开始 1 i Y gi≧80 N
开始 1 i 输入ni、gi
输出ni、gi i+1i N i>50 Y 结束
1 1 1 1 1 1 2 3 4 99 100
开始
1sum 2deno 1sign (-1)*signsign sign*(1/deno)term sum+termsum deno+1deno deno>100 Y 输出sum 结束
N
第二章 程序的灵魂
信息技术教研室
一个有效算法应该具有以下特点: (1) 有穷性。一个算法应包含有限的操作步 骤,而不能是无限的。 (2) 确定性。算法中的每一个步骤都应当是 确定的,而不应当是含糊的、模棱两可的。
第二章 程序的灵魂
信息技术教研室
2.3算法的特性
一个有效算法应该具有以下特点:
(3) 有零个或多个输入。所谓输入是指在执行算法 时需要从外界取得必要的信息。 (4) 有一个或多个输出。算法的目的是为了求解, “解” 就是输出。 没有输出的算法是没有意义的。 (5) 有效性。算法中的每一个步骤都应当能有效地 执行,并得到确定的结果。
第二章 程序的灵魂
信息技术教研室
简单的算法举例
例2.2 有50个学生,要求将成绩在80分以上的学生 的学号和成绩输出。 用ni代表第i个学生学号,gi表示第i个学生成绩 S1:1i S2:如果gi≥80,则输出ni和gi,否则不输出 S3:i+1i S4:如果i≤50,返回到步骤S2,继续执行,否则, 算法结束
第二章 程序的灵魂
信息技术教研室
简单的算法举例
year不能被 4整除 非闰年
闰年
year被100整 除,又能被 400整除 其他
year被4整除, 但不能被100 整除 闰年
逐渐缩小判 断的范围
非闰年
第二章 程序的灵魂
信息技术教研室
简单的算法举例
1 1 1 1 1 例2.4 求 1 2 3 4 99 100
第二章 程序的灵魂
信息技术教研室

数据是操作的对象 操作的目的是对数据进行加工处理,以得到
期望的结果 著名计算机科学家沃思(Nikiklaus Wirth)提
出一个公式: 算法 + 数据结构 = 程序
第二章 程序的灵魂
信息技术教研室
一个程序除了算法和数据结构这主要要素外,
还应当采用结构化程序设计方法进行程序设计,
2.3 算法的特性 2.4 怎样表示一个算法
2.5 结构化程序设计方法
第二章 程序的灵魂
信息技术教研室
什么是算法
广义地说,为解决一个问题而采取的方法和步
骤,就称为“算法” 对同一个问题,可以有不同的解题方法和步骤 为了有效地进行解题,不仅需要保证算法正确, 还要考虑算法的质量,选择合适的算法
规律: ①第1项的分子分母都是1 ② 第2项的分母是2,以后每一项的分母子都是前 一项的分母加1 ③ 笫2项前的运算符为“-”,后一项前面的运算 符都与前一项前的运算符相反
第二章 程序的灵魂
信息技术教研室
例2.4 求
1 1 1 1 1 1 2 3 4 99 100
S1:sign=1 sign—当前项符号 term—当前项的值 S2:sum=1 sum—当前各项的和 -1 S3:deno=2 deno—当前项分母 S4:sign=(-1)*sign -1/2 S5:term=sign*(1/deno) 1-1/2 S6:sum=sum+term 3 满足,返回S4 S7:deno=deno+1 S8:若deno≤100返回S4;否则算法结束
信息技术教研室
Y 2.4.2 用流程图表示算法 N 一个入口
流程图是用一些图框来表示各种操作 …… 用图形表示算法,直观形象,易于理解 两个出口

x≧0
……
起止框
输入输出框
判断框
处理框
流程线
连接点
注释框
第二章 程序的灵魂
信息技术教研室
2.4.2用流程图表示算法
流程图是用一些图框来表示各种操作 ② ③ 用图形表示算法,直观形象,易于理解
太繁琐 步骤1:先求1*2,得到结果2。
步骤2:将步骤1得到的乘积2再乘以3,得到 结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。这就是最后 的结果。

第二章 程序的灵魂
信息技术教研室
简单的算法举例
改进的算法:

设变量p为被乘数 变量i为乘数 用循环算法求结果
常用的方法有: 自然语言 传统流程图 结构化流程图 伪代码 ……
第二章 程序的灵魂
信息技术教研室
怎样表示一个算法
2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 2.4.3 三种基本结构和改进的流程图 2.4.4 用N-S流程图表示算法
第二章 程序的灵魂
信息技术教研室
什么是算法
计算机算法可分为两大类别:
数值运算算法 非数值运算算法 数值运算的目的是求数值解 非数值运算包括的面十分广泛,最常见的是用 于事务管理领域
相关文档
最新文档