C语言程序设计(第2章)

合集下载

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语言程序设计(李圣良)章 (2)

C语言程序设计(李圣良)章 (2)

}
第2单元 顺序和选择结构程序设计
图2-6 例2-6程序运行结果 注意,长整型的数据输出使用“%ld”或“%Ld”,在 Visual C++ 6.0系统中,“%d”、“%ld”控制结果一样,但 在Turbo C中则要严格区分。 (4) %mld:按照指定宽度输出长整型数据。
第2单元 顺序和选择结构程序设计
第2单元 顺序和选择结构程序设计
以上介绍了常用的几种格式符,归纳如表 2-1 所示。
第2单元 顺序和选择结构程序设计
2.1.2 输出语句printf函数 对于一个有意义的程序来说,应该有一个或多个输出,也
就是至少要有一个输出,将程序的结果进行输出。所谓输出, 是指从计算机向外部输出设备(显示器、打印机、磁盘等)输出 数据。一般默认的标准输出设备是显示器。
C语言本身并不提供专门的输入输出语句,C语言中的输入 输出操作是调用专门的输入输出函数来完成的。输入输出函数 的有关信息存放在文件“stdio.h”中,“stdio.h”是标准输 入输出库的头文件,其中包含了所有的标准输入输出函数的有 关信息。因此,在使用这些函数前,必须有“# include <stdio.h>”编译预处理命令,否则系统会提示出错信息 “error C2065:'printf':undeclared identifier”。
{ 语句 1; 语句 2; … 语句 n;
} 例如: { t=x;
x=y; y=t; }
第2单元 顺序和选择结构程序设计
4. 控制语句 控制语句是C语言程序中用来控制程序流程的语句。在C语 言中可具体划分为9种程序流程控制语句。 条件判断语句:if,switch。 循环语句:do…while,while,for。 转向语句:break,continue,goto,return。 以上9种控制语句具体的应用将在后续单元中进行详细讲 解。

《C语言程序设计》(软件技术11级)(第2章)

《C语言程序设计》(软件技术11级)(第2章)

2.1基本字符、标识符和关键字

2.1.3 关键字(保留字) 为系统预定义的标识符,在C语言中有特殊的 含义
void int return float double char long short unsigned if else switch case default break
do while continue for
2.3数据的格式化输出和输入

输入输出函数库: stdio.h printf() scanf() getchar() putchar() gets() puts()




2.3数据的格式化输出和输入
2.3.1数据的格式化输出
学一学
printf( 格式控制,【输出列表】) ;
格式控制是用双引号括起来的字符串,分两种情况: 1.字符串只含有普通字符或转义字符,则不包含输出 列表。(练一练:\*‟\n‟为转义字符,表示换行*\)
结构类型 联合类型 枚举类型
struct union enum
空类型(无值类型) void
2.2数据类型及常数、变量




1.不同类型的数据在内存中占据不同长度的存 储区(字节),且采用不同的表示方式。 2.一种数据类型对应着一个取值的范围 3.一种数据类型对应着一组允许的操作 4.构造类型数据是由基本类型按照一定的规律 构造出来的。 5.C语言的数据又可分为常量和变量,他们都 分别属于上述类型中得一种。
iSum=iPrize1+iPrize2;
printf("该同学的奖学金为:%d\n",iSum);
return 0;
}
2.3数据的格式化输出和输入

电大C语言程序设计 第2章 基本数据类型和表达式

电大C语言程序设计 第2章 基本数据类型和表达式

第2章 基本数据类型和表达式 章 2.2.3 枚举常量
枚举常量是枚举类型中的值,即枚举值。 枚举常量是枚举类型中的值,即枚举值。 枚举类型定义: 枚举类型定义: enum <枚举类型名 枚举类型名>{<枚举表 ; 枚举表>}; 枚举类型名 枚举表 (1)enum color{red,yellow,blue}; (2)enum day{Sun,Mon,Tues,Wed,Thur,Fri,Sat};
第2章 基本数据类型和表达式 章 2.2.5 地址常量 指针类型的值域范围: 指针类型的值域范围:0~(232-1),每一个整数 , 代表内存空间中一个对应单元的存储地址。 代表内存空间中一个对应单元的存储地址。 用户可以直接使用整数0作为地址常量 作为地址常量, 用户可以直接使用整数 作为地址常量,称为 空地址常量,对应的符号号常量在stdio.h中定义,其值为整数 。 中定义, 号常量在 中定义 其值为整数0。
第2章 基本数据类型和表达式 章 2.3 变量 变量是用标识符表示的、 变量是用标识符表示的、其值可以被改变的 量。 1.变量定义语句 变量定义语句 <类型关键字 <变量名 [=<初值表达式 类型关键字> 变量名> 初值表达式>],…; 类型关键字 变量名 初值表达式
第2章 基本数据类型和表达式 章 2.3 变量 2.语句格式举例 语句格式举例 (1)int a,b; (2)char ch1=‘a’,ch2=‘A’; (3)int x=a+2*b; (4)double d1,d2=0.0,d3=3.14159; 3.语句应用举例 见circle.c 语句应用举例
第2章 基本数据类型和表达式 章 2.2.3 枚举常量
(1)enum color c1,c2,c3; (2)enum day today,workday; (3)c1=red; (4)workday=Wed; enum day {Sun=7,Mon=1,Tues,Wed,Thur,Fri,Sat};

C语言程序设计教程第2章程序流程

C语言程序设计教程第2章程序流程
画出
流程图
算法
确定
程序结构
变量类型
程序语句
(7)调试
调试
C语言程序设计
第二章 程序设计和程序结构
良好的程序编写风格会大大缩 短调试过程,附录4介绍了C语言程 序的一般书写风格,附录11介绍了 一些常见的错误。
C语言程序设计
第二章 程序设计和程序结构
2.1.2 算法
在实际的编程过程中要注意:
1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法
第二章 程序设计和程序结构
本章概述
2.3程序结构 2.1程序设计与算法 2.4流程图及程序例子 2.2流程图
C语言程序设计
第二章 程序设计和程序结构
本章概述
• 本章主要介绍了C语言的程序结构、 流程图的绘制和程序设计的过程。 • 学习目标: • 1、理解程序的开发、设计过程 • 2、掌握C语言程序结构
C语言程序设计
第二章 程序设计和程序结构
其中最后一行的“Press any key to
continue”是VC6.0自动添加在每个
程序运行结果后面的一句提示信息,它
表示当程序执行结束时,操作者可以按
任意键返回到编辑界面。在后面的程序 运行结果中,将不再给出这一信息。
C语言程序设计
第二章 程序设计和程序结构
scanf("%d",&num1);
printf("Input the 2nd integer number: "); scanf("%d",&num2); sum=num1+num2; printf("sum=%d\n",sum); }
C语言程序设计

C语言程序设计 第2章 顺序结构与分支结构程序设计

C语言程序设计 第2章 顺序结构与分支结构程序设计

main() { char op;float x,y;
scanf("%f%c%f",&x,&op,&y); switch (op) { case '+' : printf("=%f\n",x+y); break;
case '-' : printf("=%f\n",x-y); break; case '*' : printf("=%f\n",x*y); break; case '/' : if (y!=0.0)
200,0,0
空语句
空语句是只有分号 ;的语句。示什么操作也不做。 从语法上讲,空语句也是一条语句。 在程序设计中,若某处在语法上需要一条语句,而实际上不需要 执行任何操作时就可以使用它。 例如,在设计循环结构时,有时用到空语句。
int i,s=0; for(i=1;i<=10;s=s+i++);
main() { int a;
scanf("%d",&a); switch(a) { case 3+8:printf("a==11");break; case 90: printf("a==90");break; case 'a': printf("a==97");break; case a>100:printf("a>100");break; default:printf("default"); } }
printf("%c\n",c); }

第二章 C语言程序设计

第二章 C语言程序设计
有符号 (signed) 整型变量 无符号 (unsigned) 基本整型(int) 短整型(short int) 长整型(long int)
例:整型数据的溢出。 main( ) { int a, b; a=32767; b=a+1;
printf(“%d,%d”,a,b);
}
返回
整型变量的定义
[unsigned][short][long] int <变量名1>, <变量名2>,……<变量名n>;
表达式1,表达式2……表达式n
说明:
1、逗号运算符的结合性为从左到右
2、所有运算符中,逗号运算符的优先级最低
练习题
执行下列语句后,a和b的值 分别为
int a, b; a=1+(b=2+7%-4-’A’)
练习题
执行下列语句后,a和b的值 分别为 -59,-60
int a, b; a=1+(b=2+7%-4-’A’)
练习题
一个C语言的源程序中,
(A)必须有一个主函数

(B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
练习题
1、编程实现,输入一个数,输出其 绝对值。 2、编程实现,输入a,b,c三个数, 输出其中最大者。
题 1、
Void Main()
{
int a, result; /*定义变量*/ scanf(“please input a number:%d”, &a); if (a>=0) result=a; else result=-a;
3、类型转换
例:
void main( )
{ float x, y;

C语言程序设计-第2章 简单c程序设计

C语言程序设计-第2章  简单c程序设计

2.1.3 C语言关键字 • 在C语言中,有些字符串在系统中有特定的含 义与名称,在程序中不能用于其它目的,我 们将这些特殊字符串称为关键字,或称为C语 言保留字。 • C语言关键字共32个
auto double int struct break else long switch case enum char extern const float short unsigned contin ue for signe d void default goto sizeof do if staic
• 变量声明(定义): 语法:变量声明 变量表; 举例: int x,y,z;(多个变量用“,”号隔 开,但必须以“;”结束。(在C语言程序中所有 标点符号必须在英文格式下输入) • 变量的初始化 变量定义后,就可以给变量赋值,这个过程叫 变量的初始化。也可以在变量定义同时进行赋值。
变量类型
原因
2.2.2 常量与变量
1.常量
所谓常量,指程序执行中其值不变的量。C语言中,常 量分为普通常量和符号常量。 普通常量分为数值常量,如128,835.6;字符常量用单引 号,如’a’,S’;字符串常量用双引号表示,如 “Hello”,”world”;
2.变量
其值可以改变的量称为变量。一个变量应该有一个 名字,在内存中占据一定的存储单元。变量定义必须放在 变量使用之前。一般放在函数体的开头部分。变量名和变 量值是两个不同的概念。
C语言程序设计
——第2章
简单C程序设计
本章主要内容提示
C语言标识符命名规则
C语言关键字
C语言常量与变量 常用表达式与优先级 输入输出函数
本章学习目标
• • • • • •
知识目标 掌握C语言标识符命名规则 熟记C语言关键字 正确理解C语言常量与变量 掌握C语言数据类型及转换 掌握常用表达式与优先级 熟练使用输入输出函数 能力目标 • 正确定义常量与变量 • 能根据要求正确输入数 据、输出结果 • 分析问题并根据要求正 确编写简单程序

c语言程序设计-第2章_算法

c语言程序设计-第2章_算法

C程序设计(第三版)
例2.7 将例2.2的算 法用流程图表示。打 印50名 学生中成绩在 80分以上者的学号和 成绩。
C程序设计(第三版)
如果如果包括 这个输入数据 的部分,流程 图为
C程序设计(第三版)
例2.8 将例 2.3判定闰 年的算法用 流程图表示
用流程图表示算法要比 用文字描述算法逻辑清 晰、易于理解。
完整的程序设计应该是:
数据结构+算法+程序设计方法+语言工具
C程序设计(第三版)
2.1 算法的概念
广义地说,为解决一个问题而采取的方 法和步骤,就称为“算法”。 对同一个问题,可有不同的解题方法和步骤 例: 求
n
n 1
100
• 方法1:1+2,+3,+4,一直加到100 加99次 • 方法2:100+(1+99)+(2+98)+…+(49 +51)+50 = 100 + 49×100 +50 加51次
C程序设计(第三版)
2.4 算法的表示
可以用不同的方法表示算法,常用的有: –自然语言 –传统流程图 –结构化流程图 –伪代码 –PAD图
C程序设计(第三版)
2.4.1 用自然语言表示算法 自然语言就是人们日常使用的语言,可 以是汉语或英语或其它语言。用自然语言 表示通俗易懂,但文字冗长,容易出现“ 歧义性”。自然语言表示的含义往往不大 严格,要根据上下文才能判断其正确含义 ,描述包含分支和循环的算法时也不很方 便。因此,除了那些很简单的问题外,一 般不用自然语言描述算法。
S2:如果≥80,则打印和,否则不打印。 S3:i+1 → i S4:如果i≤50,返回S2,继续执行。否则算法结束

c语言程序设计第二章课后参考答案[修改版]

c语言程序设计第二章课后参考答案[修改版]

第一篇:c语言程序设计第二章课后参考答案第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力强B)语言定义严格C)数据结构系统化D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译B)编译和连接C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件B)目标文件C)源程序文件D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,includeB)switch,typedef,continue C)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句B)选择语句C)循环语句D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

第2章 简单C程序设计

第2章  简单C程序设计

2015-1-18
《解析C程序设计(第2版)》第2章 简单C程序设计
17
标识符
标识符的命名必须遵守以下原则: (1)不能是C语言中的关键字,如int,do,for等等。 (2)只能由字母,数字,和下划线三种字符组成,且第一 个字符必须是字母或下划线。 ( 3 )不要太长。旧的 ANSI C 规定前 6 个字符有效;在 IBM-PC的MSC系统中取8个字符;Turbo C则允许32 个字符。 (4)见名知义。区分大小写。
另外,Turbo C2.0扩展关键字有: asm,_cs,_ds,_es,_ss,cdecl,far, near,huge,interrupt,pascal
2015-1-18
《解析C程序设计(第2版)》第2章 简单C程序设计
16
标识符
标识符分为: 系统预定义标识符(如 main、printf 等) 用户自定义标识符(如Add、r、x, y, sum等) 在程序中使用的常量、变量、语句标号以及函数的名 称等统称为标识符(Identifier) 除库函数的函数名、头文件名和预处理命令由系统定 义外,其余都由用户自定义
2015-1-18
《解析C程序设计(第2版)》第2章 简单C程序设计
21
问题的分析
甲:请给我计算一下圆的周长和面积。 乙:请问半径是多少? 甲:5.3。 乙:圆的周长=2*π*5.3=33.3 圆的面积=π*5.3*5.3=88.25 算法? 开始 1.输入半径 2.计算周长和面积 3.输出计算结果 结束
《解析C程序设计(第2版)》第2章 简单C程序设计
4
第一个C程序的组成
预处理 主函数main 注释
#include <stdio.h> main() /*主函数*/ { printf("hello,world!\n"); }

c语言程序设计第2章(谭浩强)

c语言程序设计第2章(谭浩强)

第2章程序的灵魂——算法1. 概念:为解决某一特定问题而采取的具体工作步骤和方法。

2. 举例◆计算1+2+3+……+100的值◆计算1×2×3×……×1000的值◆有50个学生,要求输出他们之中成绩在80分以上的学号和成绩◆判定2000-2500年中的每一年是否闰年3. 算法的表示(1) 自然语言(2) 流程图表示法(3) 伪代码表示法(4) 计算机语言表示法(2) 流程图表示法顺序结构、选择结构和循环结构流程图这三种基本结构有以下共同的特点:1. 只有一个入口;2. 只有一个出口;3. 结构中的每一部分都有被执行到的机会;4. 结构内没有死循环。

用上述基本结构的顺序组合可以表示任何复杂的算法结构,但是基本结构中的流程线使流程图显得较乱,于是1973年美国学者提出了一种新的流程图形式。

在这种流程图中,完全去掉了带箭头的流向线,全部算法写在一个矩形框内。

下面是三种控制结构的N-S图。

例1 求四个数的和算法一:在内存中设一累加用的存储单元S。

第1步:将存储单元S清零。

第2步:输入第1个数a1。

第3步:把a1加到存储单元S中。

第4步:输入第2个数a2。

第5步:把a2加到存储单元S中。

第6步:输入第3个数a3。

第7步:把a3加到存储单元S中。

第8步:输入第4个数a4。

第9步:把a4加到存储单元S中。

第10步:把存储单元S中的结果输出。

算法二:在内存中设一累加用的存储单元S和一计数用的单元I。

第1步:将累加单元S清零。

第2步:将计数单元I清零。

第3步:输入一个数A。

第4步:把A加到累加单元S中。

第5步:计数单元I的值增加1,即I+1=>I。

第6步:若I<4则转去执行第3步,否则,继续执行第7步。

第7步:输出存储单元S中的结果。

开始结束S+A=>S 0=>S 0=>I 输入A I+1=>I I<4输出S 0=>s0=>I输入A S+A=>S I+1=>I 直到I=4输出结果S N-S 图Y例2 求5!开始结束T*i=>t 1=>t 2=>i i+1=>i i>5输出S N例3 将50名学生中成绩在80分以上练习1:交换两个单元的内容。

C语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

C语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

word格式-可编辑-感谢下载支持第2章基本数据类型及顺序结构程序设计一、选择题1、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定2、以下选项中不合法的标识符是(C)A)print B)FOR C)&a D)_003、可在C程序中用作用户标识符的一组标识符是(A)A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Big14、以下选项中不属于字符常量的是(B )A)'C' B)"C" C)'\xCC0' D)'\072'5、以下选项中,合法的一组C语言数值常量是(B)A)028 B)12. C).177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e56、以下正确的字符串常量是(A)A) "\ \ \" B) ' abc ' C)Olympic Games D) ""7、下列定义变量的语句中错误的是(D)。

A)int _int;B)double int_; C)char For;D)float USS8、下列变量定义中合法的是(A)。

A) short _a=1.le-1;B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1e-3;9、以下定义语句中正确的是(C)A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;10、设有说明语句:char a=’\72’;则变量a(A)。

《C语言程序设计》第4版何钦铭、颜晖主编课后习题答案

《C语言程序设计》第4版何钦铭、颜晖主编课后习题答案

《C语⾔程序设计》第4版何钦铭、颜晖主编课后习题答案第2章 ⽤C语⾔编写程序Page 0201#include<stdio.h>//练习2-32int main(void)3{4 int i,j,k;5 for(int i=1;i<=4;i++)//第i⾏6 {7 for(int j=1;j<=i-1;j++)//j个空格8 {9 printf(" ");10 }11 for(k=1;k<=5-i;k++)//k个*12 {13 printf("* ");14 }15 printf("\n");16 }1718 return 0;19}Page 0231#include<stdio.h>2int main(void)3{4 int f,c;//练习2-55 f=150;6 c=5*(f-32)/9;//或者是c=5/9.0*(f-32)||c=5.0/9*(f-32),但不可以是5/9,会得到0.因为:两个整型数据做除法运算,结果⼀定是整数。

7 printf("华⽒温度%d对应的摄⽒温度为%d.\n",f,c);89 printf("\n");1011 /*计算物体⾃由下落的距离(练习2-6)*/12 int h,g,t;13 t=3;//下落时间14 g=10;//重⼒加速度 10m/s^215 h=g*t*t/2;16 printf("⼀个物体从100⽶的⾼空⾃由下落,前3秒内下落的距离为:%d⽶.\n",h);1718 return 0;19}20Page 0292#include<math.h>3int main(void)4{5 /*计算摄⽒温度(练习2-8)*/6 double c,f;7 printf("输⼊华⽒温度:");8 scanf("%lf",&f);9 c=5*(f-32)/9.0;10 printf("华⽒温度%.2lf对应的摄⽒温度为%.3lf\n",f,c);1112 printf("\n");1314 /*整数四则运算(练习2-9)*/15 int x,y,z_1,z_2,z_3;16 double z_4;17 printf("输⼊两个正整数x,y:");18 scanf("%d %d",&x,&y);19 z_1=x+y;20 z_2=x-y;21 z_3=x*y;22 z_4=x/y;23 printf("%d和%d的和为%d,差为%d,积为%d,商为%lf\n",x,y,z_1,z_2,z_3,z_4); 2425 printf("\n");2627 /*计算分段函数(判断x是否不为0)(练习2-10)*/28 double x_1,y_1;29 printf("输⼊x_1:");30 scanf("%lf",&x_1);31 if(x_1!=0)32 y_1=1/x_1;33 else y_1=0;34 printf("输⼊%.2lf时,对应的y值为%.1lf\n",x_1,y_1);3536 printf("\n");3738 /*计算分段函数(判断x是否⼩于0)(练习2-11)*/39 double x_2,y_2;40 printf("输⼊x_2:");41 scanf("%lf",&x_2);42 if(x_2<0)43 y_2=pow(1+x_2,2)+2*x_2+1/x_2;44 else y_2=sqrt(x_2);45 printf("输⼊%.2lf时,对应的y值为%.2lf\n",x_2,y_2);464748 printf("\n");4950 return 0;51}Page 0372int main(void)3{4 int i,n,flag;//例2-85 double t,sum;6 printf("输⼊⼀个正整数n:");7 scanf("%d",&n);8 sum=0;9 flag=1;10 for(i=1;i<=n;i++)11 {12 t=flag*(1.0/(2*i-1));13 sum+=t;14 flag=(-1)*flag;1516 }17 printf("sum=%lf\n",sum);1819 printf("\n");2021 /*求1+1/2+···的前n项和(练习2-13)*/22 int n_1,j;23 double sum_1=0;24 printf("Enter n_1(n_1>=0):");25 scanf("%d",&n_1);26 for(j=1;j<=n;j++)27 {28 sum_1+=1.0/j;29 }30 printf("sum_1=%.2lf\n",sum_1);3132 printf("\n");3334 /*求1+1/3+1/5+···的前n项和(练习2-14)*/35 int n_2,k;36 double sum_2;37 printf("Enter n_2:");38 scanf("%d",&n_2);39 for(k=1;k<=n_2;k++)40 {41 sum_2+=1.0/(2*k-1);42 }43 printf("sum_2=%.2lf\n",sum_2);4445 printf("\n");4647 /*求1-1/4+1/7-1/10+···的前n项和(练习2-15)*/48 int n_3,m,flag_1=1;49 double sum_3=0;50 printf("Enter n_3:");51 scanf("%d",&n_3);52 for(m=1;m<=n;m++)53 {54 sum_3+=flag_1*1.0/(3*m-2);55 flag_1=flag_1*(-1);56 }57 printf("sum_3=%.2lf\n",sum_3);5859 return 0;60}Page 0402#include<math.h>3int main(void)4{5 int n,i;6 double power;7 printf("Enter n:");8 scanf("%d",&n);9 printf("2的乘⽅表:\n");10 for(i=0;i<=n;i++)11 {12 power=pow(2,i);13 printf("2的%d次⽅为%.0lf\n",i,power);14 }1516 printf("\n");1718 /*3的乘⽅表(练习2-17)*/19 int m,j;20 double power_1;21 printf("Enter m:");22 scanf("%d",&m);23 for(j=0;j<=m;j++)24 {25 power_1=pow(3,j);26 printf("pow(3,%d)=%.lf\n",j,power_1);27 }2829 return 0;30}1#include<stdio.h>//练习2-182double fact(int n)3{4 int i;5 double product;6 product=1;7 for(i=1;i<=n;i++)8 {9 product*=i;10 }1112 return product;13}14int main(void)15{16 int n,m,i;17 double result_1,result_2,result_3,c;18 printf("输⼊两个正整数m和n(m<=n):");19 scanf("%d %d",&m,&n);20 for(i=0;i<=n;i++)21 {22 result_1=fact(i);23 }24 for(i=0;i<=m;i++)25 {26 result_2=fact(i);27 }28 for(i=0;i<=n-m;i++)29 {30 result_3=fact(i);31 }32 c=result_1/(result_2*result_3);33 printf("c=%.lf",c);3435 return 0;36}。

《C语言程序设计》课件-第2章用C语言编写程序

《C语言程序设计》课件-第2章用C语言编写程序

input x: 2.5 f(2.50)=0.4
input x: 0 f(0.00)=0.0
软件测试的基本思想
if(x != 0) y = 1/x;
else y = 0;
input x: 2.5 f(2.50)=0.4
input x: 0 f(0.00)=0.0
软件测试
精心设计一批测试用例 [输入数据,预期输出结果] ,然后分 别用这些测试用例运行程序,看程序的实际运行结果与预 期输出结果是否一致。
double x, y;
Enter x (x>=0): 9.5 f(9.500000)=12.67
Enter x (x>=0): 15 f(15.000000)=20.00
printf("Enter x (x>=0):\n"); /* 输入提示 */
数据必须输入吗?
scanf("%lf", &x);
数据输2入.3:.4格式格化式输入化函输数入sca函nf(数) scanf()
#include <stdio.h>
scanf("%lf", &x);
scanf(格式控制字符串, 输入参数1, …, 输入参数n);
变量地址 用双引号括起来,表示输入的格式
scanf-格式控制字符串
格式控制字符串:
• 格式控制说明: 按指定的格式输入数据, %…
数据输出2.:2.格4 式格化式输出化函输数 出prin函tf()数printf()
#include <stdio.h>
printf("Hello World! \n"); printf("fahr = %d, celsius = %d\n", fahr, celsius);

C语言程序设计第二章

C语言程序设计第二章

2.2常量和变量

变量的类型
2.3 整型数据
2.3.1整型常量 整型常量即整常数。在C语言中,整型常量可以用十进制、八 进制、十六进制3种形式表示。 1.十进制整数 由0~9共10个数码组成。如5234,-78,0等。注意:5234不能 写成5,234。 2.八进制整数 八进制整数必须以数字o开头,组成八进制的数码为0~7。如 o123,o101,o645,o763等。 3.十六进制整数 十六进制整数以0x或0X开头(0为数字),组成十六进制的数码为 0~9,A~F(a~f)。如0x99A,0X97C,0x59ff等。
基本类型 实型 字符类型 (char) 枚举类型 (enum) 数组类型([]) 结构体类型 (struct) 共用体类型 (union) 文件类型 (FILE)
单精度型 (float) 双单精度型 (double)
符号长整型 (unsigned long)
构造类型

C语言提供的数据类型如右所 示:
2.3 整型数据
3.整型变量的定义 整型变量的定义的格式如下: 类型标识 变量名1,变量名2,变量名3…… 类型标识符可以是int、short、long、unsigned,或是它们的组合,例 如: int x,y; //指定变量x、y为整型变量 long c,d; //指定变量c、d为长整型变量 unsigned age,hight; //指定变量age,hight为无符号整型变量 变量的定义,一般放在一个函数开头的声明部分。 4.整型变量的赋值 可以将一个整型常量或整型变量赋值给整型变量,例如: int x=456;
2.4 实型数据
2.4.1实型常量 在C语言中,实型表示实数的集合,实型常量又称为实数。实 型常量只能用十进制形式表示,不能用八进制或十六进制形式表示。 实型常量有两种表示形式 1.十进制小数形式 十进制小数形式由数码0~ 9和小数点组成。如0.123,.123, 0.0,0.1,-267.8230,0.,.0等。 2.十进制指数形式 由十进制数码,“e”或“E”(代表×10)组成。如1e5, 139.5E2,-1.99e-3(代表1×105,139.5×102,-1.99×10-3)等。 格式如下: 小数或整数e(或E)+(或-)整数

《C语言程序设计教程》(第三版)李凤霞 主编——第二章习题答案

《C语言程序设计教程》(第三版)李凤霞 主编——第二章习题答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

C语言程序设计第二章

C语言程序设计第二章

2.2 理论知识
运行结果:
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串常量是用一对双引号括起来的零个或多个字符
如"","Hello,world!","123"等
双引号仅起定界作用,本身并不是字符串中的内容
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串的长度 指一个字符串中所包含的字符个数 C语言规定在存储字符串常量时,由系统在字符串的末 尾自动加一个'\0'作为结8.539815
2.2 理论知识
符号常量的两个好处
1. 修改程序方便 2. 见名知意,便于理解程序
符号常量的使用
1. 其值在它的作用域内不能改变,也不能再被赋值 2. 符号常量名用大写,变量名用小写,以示区别
2.2 理论知识
举例:
#define PI 3.1415
void main() { int PI; PI=3.1415; PI=3.14159; }
指针类型 构造类型 空类型
数组类型
结构体类型
共用体类型
2.2 理论知识
C语言的基本数据类型 整数类型
数据类型 有符号整型
短整型 长整型
int a,b,sum; a=32768;
数据类型符 int
short long [int] [int]
占用字节数 2
2 4




-215~(215-1) 即-32768~32767
2.2 理论知识
常量和变量 变量的赋值
在定义变量时赋值 float data1=1.5,data2=2.6;
“先定义后赋值
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

功能:
从键盘上读入一个字符,但后两个函数输入后无需回车。getch( )还有一个功能,即不把读入的
字符回显到屏幕上,常用于密码输入或菜单选择。getchar( )包含在 stdio.h 中,getche( )和 getch( )
包含在 conio.h 中。
第二章作业
一、填空
① C 程序都是从 函数开始执行。
l 长整型及双精度 注:long 型的数据宜用%ld,double 型宜用%lf
h 表示短整型 如 %hd %hx 六、数据的输入和输出
格式字符(规定了输出的数据形式): %d 输出十进制整数 %x 以十六进制无符号形式输出整数 %o 以八进制无符号形式输出整数 %u 以无符号十进制数形式输出整数 %f 输出小数形式浮点数(double 型用%lf ) %s 输出字符串 %c 输出单字符
‘A’
‘?’
(只能单字符单引号)
错误:‘ABC’ “A” ‘’’ ‘”’ ‘\’
转义字符
如回车符、单引号、反斜杠等
在程序中这些符号用表 3.3 所示的“转义字符”表示。
字符串(用双引号括起)
“A” “?” (以‘\0’为字符串结束标志)
注意:用 char 定义的字符变量只能接受字符常量,而不能接受字符串常量(C 语言中无字符串
五、算术运算符和算术表达式(续) 五、算术运算符和算术表达式(续) ⑥逻辑运算
逻辑运算符: &&(与运算符) 运算符两边均为真时,结果为真
||(或运算符) 运算符两边均为假时,结果为假 !(非运算符) 将运算符右边真假倒置 逻辑运算符的任一端如果为非 0 数,则视为¡°真¡±,为 0 则视为假。 【例】printf(“%d”, !3+5) 结果为 5
●类型标识符; ●一个表达式 五、算术运算符和算术表达式(续) 六、数据的输入和输出 一、数据输出 1、字符输出函数 格式:
putchar(c) 其中 c 为字符型或整型的常量、变量及其表达式 功能: 每次向屏幕输出一个字符供显示。 六、数据的输入和输出 2.格式输出函数 printf( ) 格式: printf( “¡­¡­”,输出项 1,输出项 2,¡­ ,输出项 n );
三、变量
赋值
例: b=(a=3+5) a=b=c=d=3+5
(结果均为 8)
例:int a=b=c=d=3+5
(语法错误,除非 b,c,d 定义过)
正确:int a, b=a=3+5;
例: c=3+(a=5)*6
结果:c=33,a=5(一个语句可以有几个赋值运算)
变量必须先定义后使用
变量名必须符合标识符命名规则
printf(“%d”, !0+5) 结果为 6 注意:! 优先于关系运算符,与++、--同级。
常用优先级: !、++、-- >算术运算符 >关系运算符 >&& >|| >赋值>逗号
五、算术运算符和算术表达式(续) 五、算术运算符和算术表达式(续) 五、算术运算符和算术表达式(续) 五、算术运算符和算术表达式(续) ⑧sizeof 运算符 sizeof 运算符是一个单目运算符,用以计算操作数在内存中占用的字节数。它的操作数可以是以 下两种情况:
(出错)
五、算术运算符和算术表达式(续)
②自反算术赋值运算符(复合的赋值运算符)
+= -= *= /= 等
解法:将 b*=…看作 b=b*(…),其余类推
例: c=b*=a+3
相当于(1)a+3 (2)b=b*(a+3) (3)c=b
例:若 i 、j 的初值分别为 3 和 4,则执行
j+=i- =1 后 i 、j 的值为多少?
五、算术运算符和算术表达式(续) 关于优先级和结合方向:
C 语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次 序执行。如果在一个运算对象两侧的运算符的优先级别相同,则按规定的结合方向处理。
(各种运算符的优先级和结合性见 P375 附录Ⅲ) 【例】设 i、j 初值分别为 3 和 4,则执行 j+=i-=1;后 i ,j 的值为多少? 【例】若 x=7;则 x+=x-=x+x 的值是多少?
八进制数
012
-012l
十六进制数 0x12 -0x12l
实型常量
十进制形式 123.45
2.0
( 必有小数点)
指数形式
2.45e-4 1.13E3 (e 或 E 前为数,后为整数)
实型常量本身无单或双精度,其机内精度取决于赋给那类变量(影响有效数字位数。)
字符常量/字符串常量
字符常量
普通字符(可显示字符)

printf(“You’re a \”a bad egg!\” ” );
C 程序中需要打印或显示 ASCII 表中非键盘字符时

printf(“ Look \16 and \x80 !”);
字符串常量有关问题
‘A’与“A”的区别
问题(判断正误):
char c=“China”;
char c=‘China’; “China”占几个字节?‘\141’占几个字节?
main()
{
float i=3,j=4;
printf(“%d\n”,sizeof(i+j) );
}
/*结果为 8(双精度)*/
两个整型数相除,其值也一定是整型数(取商之整数部分)。
3/2 的值为 1 而非 1.5
强制类型转换
例一:
(int)符(13 类)
尾数的位数决定数的精度 阶码的位数决定数的范围
注意事项
整型和字符型均可为 unsigned (无符号型)
即将符号位亦作为数值位(默认为 signed)
此时 int 的范围 0~65535
char 的范围 0 ~255
Let’s try¡­
二、常量
整型常量
十进制数
12
-12l 或 -12L
700000ul
实型¡ª单精度(float)
4 字节 6~7 位有效数字
双精度(double)
8 字节 15~16 位有效数字
注意事项 整型≠整数
int 的范围: - 32768~+32767 Example:
#include <stdio.h> #include <conio.h>
main() { int a ;
复习: 二进制数的定点和浮点表示
浮点表示法——小数点位置是“浮动的”。 在计算机中一个浮点数由两部分组成:阶码和尾数,阶码是指数,尾数是纯小数。浮点表
示法可用于表示带小数的数。
(110.011)B=1.10011×2+10=11001.1 × 2-10 =0.110011 × 2+11
即: N=数符×尾数×2 阶符×阶码
四、数据间的转换(混合运算)
数据的类型级别
基本规则
不同类型运算量参加运算,遵守“向高看齐”的类型一致化规则:将长度较短的运算量转换为长
度较长的运算量,以保证不丢失信息。
将实型常量赋给整型变量,将被自动取整
int a=7.999999 ;
等效于 int a=7;
float 型只要参加运算,均自动转为 double。

a+(int)(b/3*(int)(a+c)/2)%4
⑧ 若 a 是 int 型变量,且 a=6,则计算表达式 a+=a-=a*a 后,a 的值为

⑨ 假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为

⑩ 判断 char 型变量 c1 是否为小写字母的正确表达式是

A) 'a'<=c1<='z'
变量)
char a=‘U’ ;
char b=“U”; (b 被置为某随机值)
转义字符例题分析
什么时候要使用转义字符?
转义字符只在特殊情况下才使用:
C 程序中需要实现某些特写打印或显示动作时

printf(“123\t56\n”);
C 程序中需要打印或显示以下三个字符时
\ (斜杠) " (双引号) ' (单引号)
个数字(每个数字之间用三个空格分开)。例如用户输入了 42339,屏幕输出结果为:
clrscr( );
printf(“Input :”); scanf(“%d”,&a);
printf(“a=%d\n”,a); }
注意事项 数据存储形式
字符型按 ASCII 码存储,其余以补码存储 复习: 二进制数的定点和浮点表示 定点表示法——小数点位置是“固定的”
定点数可用于表示整数。整数在机器中用补码表示。 对于 int a=8,b=-8;
② C 程序的语句都是用
结束。
③ 用来在屏幕上显示信息的库函数是

④ 用来从键盘读取数据的库函数是

⑤ C 程序中
用来提高程序的可读性。
⑥ 若 x 和 n 均是 int 型变量,且 x 和 n 的初值均为 5,则计算表达式 x+=n++后,x 的值为 ,
n 的值为 。
⑦ 若有定义:int b=7; float a=2.5,c=4.7;则以下表达式的值为
int i =5; i ++; y= i ;
(
五、算术运算符和算术表达式(续)
i =6, y=6)
五、算术运算符和算术表达式(续)
④逗号运算
C 语言中逗号可作分隔符使用,将若干变量隔开
相关文档
最新文档