最简单的C程序设计顺序程序设计.docx

上传人:b****1 文档编号:14899915 上传时间:2023-06-28 格式:DOCX 页数:20 大小:80.46KB
下载 相关 举报
最简单的C程序设计顺序程序设计.docx_第1页
第1页 / 共20页
最简单的C程序设计顺序程序设计.docx_第2页
第2页 / 共20页
最简单的C程序设计顺序程序设计.docx_第3页
第3页 / 共20页
最简单的C程序设计顺序程序设计.docx_第4页
第4页 / 共20页
最简单的C程序设计顺序程序设计.docx_第5页
第5页 / 共20页
最简单的C程序设计顺序程序设计.docx_第6页
第6页 / 共20页
最简单的C程序设计顺序程序设计.docx_第7页
第7页 / 共20页
最简单的C程序设计顺序程序设计.docx_第8页
第8页 / 共20页
最简单的C程序设计顺序程序设计.docx_第9页
第9页 / 共20页
最简单的C程序设计顺序程序设计.docx_第10页
第10页 / 共20页
最简单的C程序设计顺序程序设计.docx_第11页
第11页 / 共20页
最简单的C程序设计顺序程序设计.docx_第12页
第12页 / 共20页
最简单的C程序设计顺序程序设计.docx_第13页
第13页 / 共20页
最简单的C程序设计顺序程序设计.docx_第14页
第14页 / 共20页
最简单的C程序设计顺序程序设计.docx_第15页
第15页 / 共20页
最简单的C程序设计顺序程序设计.docx_第16页
第16页 / 共20页
最简单的C程序设计顺序程序设计.docx_第17页
第17页 / 共20页
最简单的C程序设计顺序程序设计.docx_第18页
第18页 / 共20页
最简单的C程序设计顺序程序设计.docx_第19页
第19页 / 共20页
最简单的C程序设计顺序程序设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

最简单的C程序设计顺序程序设计.docx

《最简单的C程序设计顺序程序设计.docx》由会员分享,可在线阅读,更多相关《最简单的C程序设计顺序程序设计.docx(20页珍藏版)》请在冰点文库上搜索。

最简单的C程序设计顺序程序设计.docx

最简单的C程序设计顺序程序设计

第3章最简单的C程序设计-顺序程序设计

•教学要求:

要求学生掌握C语言的三种基本数据类型(整型、浮点型、字符型)的特点以及它们之间的相互联系;掌握各种数据类型间的混合运算及其转换规则;掌握算术表达式、赋值表达式和逗号表达式。

•教学重点、难点:

重点是C语言的三种基本数据类型(整型、浮点型、字符型)的特点以及它们之间的相互联系,算术表达式、赋值表达式和逗号表达式;难点是C语言的三种基本数据类型(整型、浮点型、字符型)的定义和用法。

教学内容:

C的三种基本数据类型(整型、浮点型、字符型)数据的特点,各类型数据的常量、变量的表示以及各类型数据间的混合运算规则;算术表达式、赋值表达式和逗号表达式。

§3.1顺序程序设计举例

例3.1有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。

解题思路:

找到二者间的转换公式f代表华氏温度,c代表摄氏温度

输入f的值

输出c的值

#include

intmain()

{

floatf,c;

f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);

return0;

}

算法:

 

例3.2计算存款利息。

有1000元,想存一年。

有三种方法可选:

(1)活期,年利率为r1

(2)一年期定期,年利率为r2

(3)存两次半年定期,年利率为r3

请分别计算出一年后按三种方法所得到的本息和。

解题思路:

确定计算本息和的公式。

从数学知识可知:

若存款额为p0,则:

活期存款一年后本息和为:

p1=p0+p0×r1=p0(1+r1)

一年期定期存款,一年后本息和为:

p2=p0(1+r2)

两次半年定期存款,一年后本息和为:

算法:

输入p0,r1,r2,r3的值

计算p1=p0(1+r1)

计算p2=p0(1+r2)

计算p3=p0(1+r3/2)(1+r3/2)

输出p1,p2,p3

§3.2数据的表现形式及其运算

3.2.1常量和变量

1.常量:

在程序运行过程中,其值不能被改变的量

整型常量:

如1000,12345,0,-345

实型常量

十进制小数形式:

如0.34-56.790.0

指数形式:

如12.34e3(代表12.34⨯103)

字符常量:

普通字符:

如’?

’,’k’

转义字符:

如’\n’

字符串常量:

如”boy”

符号常量:

#definePI3.1416

2.变量:

在程序运行期间,变量的值是可以改变的

变量必须先定义,后使用

定义变量时指定该变量的名字和类型

变量名和变量值是两个不同的概念

变量名实际上是以一个名字代表的一个存储地址

从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据

3.常变量:

constinta=3;

注意:

常变量与符号常量的区别

4.标识符:

一个对象的名字

C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线

合法的标识符:

如sum,average,_total,Class,day,BASIC,li_ling

不合法的标识符:

M.D.John,¥123,#33,3D64,a>b

3.2.2数据类型

Ø所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式

Ø不同的类型分配不同的长度和存储形式

C语言允许使用的数据类型:

Ø基本类型

◆整型类型

●基本整型

●短整型

●长整型

●双长整型

●字符型

●布尔型

◆浮点类型

●单精度浮点型

●双精度浮点型

●复数浮点型

Ø枚举类型

Ø空类型

Ø派生类型

◆指针类型

◆数组类型

◆结构体类型

◆共用体类型

◆函数类型

3.2.3整型数据

1.整型数据的分类

基本整型(int型):

占2个或4个字节

短整型(shortint):

占2个字节

长整型(longint):

占4个字节

双长整型(longlongint):

8BC99新增

2.整型变量的符号属性(P45)

整型变量的值的范围包括负数到正数

可以将变量定义为“无符号”类型

扩充的整形类型:

整型数据在内存中的存放形式

在内存中是以二进制形式存放的。

如:

inti;/*定义为整型变量*/

i=10;/*给i赋以整数10*/

实际上,数值是以补码(complement)存储的。

一个正数的补码和其原码的形式相同。

如上图就是用补码形式表示的。

(1)非负数X的补码和其原码的形式相同[X]补=X

(2)求一个负数X的补码:

方法一:

[X]补=M+X其中M称为“模”,等于28,216…

方法二:

按位取反再加1。

例:

求-10的补码

[-32768]补=216+(-215)=215=(1000000000000000)2

扩充的整型类型:

Ø有符号基本整型[signed]int;

Ø无符号基本整型unsignedint;

Ø有符号短整型[signed]short[int];

Ø无符号短整型unsignedshort[int];

Ø有符号长整型[signed]long[int];

Ø无符号长整型unsignedlong[int]

Ø有符号双长整型[signed]longlong[int];

Ø无符号双长整型unsignedlonglong[int]

3.2.4字符型数据

Ø字符是按其代码(整数)形式存储的;

ØC99把字符型数据作为整数类型的一种;

Ø字符型数据在使用上有自己的特点.

1.字符与字符代码

大多数系统采用ASCII字符集(P377)

◆字母:

A~Z,a~z

◆数字:

0~9

◆专门符号(29个):

!

”#&‘()*等

◆空格符:

空格、水平制表符、换行等

◆转义字符:

不能显示字符,以“\”开头的特殊字符。

例如,空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等。

转义字符的含义及作用

\n换行

\t横向跳格

\r回车

\b退格

\\反斜杠

\dddddd表示1到3位八进制数字

\xhhhh表示1到2位十六进制数字

Ø字符’1’和整数1是不同的概念:

◆字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节

◆整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节

00000000

00000001

2.字符变量

Ø用类型符char定义字符变量

◆charc=’?

’;

系统把“?

”的ASCII代码63赋给变量c

◆printf(”%d%c\n”,c,c);

◆输出结果是:

63?

3.2.5浮点型数据

浮点型数据是用来表示具有小数点的实数

float型(单精度浮点型)6-7位有效数字

编译系统为float型变量分配4个字节

数值以规范化的二进制数指数形式存放

与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。

把一个浮点型数据分成小数部分和指数部分分别存放。

double型(双精度浮点型)

编译系统为double型变量分配8个字节15位有效数字

longdouble(长双精度)型(P50)

3.2.6怎样确定常量的类型

Ø字符常量:

由单撇号括起来的单个字符或转义字符

Ø整型常量:

不带小数点的数值

◆系统根据数值的大小确定int型还是long型等

Ø浮点型常量:

凡以小数形式或指数形式出现的实数

◆C编译系统把浮点型常量都按双精度处理

◆分配8个字节

3.2.7运算符和表达式

1.基本的算术运算符:

+:

正号运算符(单目运算符)

-:

负号运算符(单目运算符)

*:

乘法运算符

/:

除法运算符

%:

求余运算符

+:

加法运算符

-:

减法运算符

说明

Ø两个整数相除的结果为整数

◆如5/3的结果值为1,舍去小数部分

◆如果除数或被除数中有一个为负值,舍入方向不固定。

例如,-5/3,有的系统中得到的结果为-1,在有的系统中则得到结果为-2

◆VC++采取“向零取整”的方法如5/3=1,-5/3=-1,取整后向零靠拢

Ø%运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。

如8%3,结果为2

2.自增、自减运算符:

Ø作用是使变量的值1或减1

◆++i,i++:

使i的值加1

◆--i,i--:

使i的值减1

注意:

(1)自增运算符(++),自减运算符(--),只能用于变量,而不能用于常量或表达式。

5++、(a+b)++(×)

2)自增(减)运算符常用于循环语句中使循环变量自动加1。

也用于指针变量,使指针指向下一个地址.

(3)难以区分若干个+、-组成的运算符时,C语言规定从左→右尽可能多的组成运算符。

例:

a+++b(a++)+b

3.算术表达式和运算符的优先级与结合性:

Ø算术表达式:

用算术运算符和括号将常量、变量、函数连接起来的、符合C语法规则的式子,称为C算术表达式

ØC语言规定了运算符的优先级和结合性(378)

4.不同类型数据间的混合运算:

整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。

在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.

(1)+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。

系统将float型数据都先转换为double型,然后进行运算.

(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型.

(3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算.

例3.3给定一个大写字母,要求用小写字母输出。

#include

intmain()

{charc1,c2;

c1=’A’;

c2=c1+32;

printf("%c\n",c2);

printf(”%d\n”,c2);

return0;

}

5.强制类型转换运算符

将一个表达式的值转换成其他类型。

Ø强制类型转换运算符的一般形式为

(类型名)(表达式)

◆(double)a(将a转换成double类型)

◆(int)(x+y)(将x+y的值转换成int型)

◆(float)(5%3)(将5%3的值转换成float型)

Ø有两种类型转换

◆系统自动进行的类型转换

◆强制类型转换

6.C运算符

(1)算术运算符(+-*/%++--)

(2)关系运算符(><==>=<=!

=)

(3)逻辑运算符(!

&&||)

(4)位运算符(<<>>~|∧&)

(5)赋值运算符(=及其扩展赋值运算符)

(6)条件运算符(?

(7)逗号运算符(,)

(8)指针运算符(*和&)

(9)求字节数运算符(sizeof)

(10)强制类型转换运算符((类型))

(11)成员运算符(.->)

(12)下标运算符([])

(13)其他(如函数调用运算符())

3.3C语句

3.3.1C语句的作用和分类

C语句分为以下5类:

(1)控制语句:

if、switch、for、while、do…while、continue、break、return、goto等

(2)函数调用语句

(3)表达式语句

(4)空语句

(5)复合语句

3.3.2最基本的语句----赋值语句

Ø在C程序中,最常用的语句是:

◆赋值语句

◆输入输出语句

Ø其中最基本的是赋值语句

Ø例3.4给出三角形的三边长,求三角形面积

Ø解题思路:

假设给定的三个边符合构成三角形的条件

Ø关键是找到求三角形面积的公式

Ø

公式为:

其中s=(a+b+c)/2

#include

#include

intmain()

{doublea,b,c,s,area;

a=3.67;

b=5.43;

c=6.21;

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f\tb=%f\t%f\n",a,b,c);

printf("area=%f\n",area);

return0;

}

Ø归纳总结:

1.赋值运算符

◆“=”是赋值运算符

◆作用是将一个数据赋给一个变量

◆也可以将一个表达式的值赋给一个变量

2.复合的赋值运算符

◆在赋值符“=”之前加上其他运算符,可以构成复合的运算符

◆a+=3等价于a=a+3

3.赋值表达式

◆一般形式为:

变量赋值运算符表达式

◆对赋值表达式求解的过程:

◆求赋值运算符右侧的“表达式”的值

◆赋给赋值运算符左侧的变量

◆赋值表达式的值等于运算符左端变量的值如:

表达式a=3*5的值为15

a=(b=5)和a=b=5等价

“a=b”和“b=a”含义不同

4.赋值过程中的类型转换

◆两侧类型一致时,直接赋值

◆两侧类型不一致,但都是算术类型时,自动将右侧的类型转换为左侧类型后赋值

◆定义变量时要防止数据溢出

5.赋值表达式和赋值语句

◆赋值表达式的末尾没有分号,而赋值语句有分号

◆一个表达式可以包含赋值表达式,但决不能包含赋值语句

6.变量赋初值

inta=3,b=3,c;

inta=3;相当于inta;a=3;

3.4数据的输入输出

3.4.1输入输出举例

例3.5求方程的根。

a、b、c由键盘输入,设>0。

Ø解题思路:

首先要知道求方程式的根的方法。

Ø

由数学知识已知:

如果≥0,则一元二次方程有两个实根:

#include

#include

intmain()

{doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);

disc=b*b-4*a*c;

p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

x1=p+q;x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);

return0;

}

3.4.2有关数据输入输出的概念

(1)输入输出是以计算机主机为主体而言的

Ø输出:

从计算机向输出设备(如显示器、打印机等)输出数据。

Ø输入:

从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据。

(2)C语言本身不提供输入输出语句

Ø输入和输出操作是由C标准函数库中的函数来实现的

Øprintf和scanf不是C语言的关键字,而只是库函数的名字

Øputchar、getchar、puts、gets

(3)在使用输入输出函数时,要在程序文件的开头用预编译指令

#include或#include″stdio.h″

3.4.3用printf函数输出数据

Ø在C程序中用来实现输出和输入的,主要是printf函数和scanf函数

Ø这两个函数是格式输入输出函数

Ø用这两个函数时,必须指定格式

1.printf函数的一般格式

按指定格式在标准输出设备上输出若干个各种类型的数据。

printf(“格式控制字符串”,输出列表)

①格式字符%d、%c、%f

②普通字符

③转义字符

 

注意:

格式符数要与输出列表的项数一致。

2.常用格式字符

(1)d格式符——输出整数十进制形式

几种用法:

①%d:

按实际长度输出。

②%md:

按m位输出。

③%ld:

输出长整型数据。

④%mld:

按m位输出长整型数据。

(2)c格式符——输出一个字符printf("%3c%3d",’2’,’2’);

(3)s格式符——输出字符串printf(”%s”,”CHINA”);

(4)f格式符——输出实数(包括单双精度)

%f(单精度)

%lf(双精度)

%m.nf(%m.nlf)n:

指定小数位数m:

数据总宽度:

整数部分.小数部分

注意:

printf()中,单双精度都用%f

scanf()中,单精度用%f,双精度用%lf

例输出实数时的有效位数。

#include

voidmain()

{floatx,y;

  x=111111.111;y=222222.222;

  printf(″%f″,x+y);

(5)e格式符。

指定以指数形式输出实数%e

●VC++:

小数位数为6位

指数部分占5列

小数点前必须有而且只有1位非零数字

printf(”%e”,123.456);

输出:

1.234560e+002

●%m.ne

printf(”%11.2e”,123.456);

输出:

__1.23e+002(前面有2个空格)

●o格式符——以八进制整数形式输出(不带符号)

例:

intx=10,a=-1;

printf("%d,%o,%d,%o",x,x,a,a);

输出为:

10,12,-1,177777(或37777777777)

●x格式符——以十六进制数形式输出整数(不带符号)

例:

inta=-1;

printf("%x",a);

输出为:

ffff

●u格式符——输出无符号十进制整数(不带符号)

3.4.4用scanf函数输入数据

1.scanf函数的一般形式

scanf(格式控制,地址表列)

例:

scanf(“%d%d%d”,&a,&b,&c);

例:

scanf(“%d,%d,%d”,&a,&b,&c);1,2,3

例:

scanf(“a=%db=%dc=%d”,&a,&b,&c);a=1┖┘b=2┖┘c=3或a=1Tabb=2

c=3

2.使用scanf函数时应注意的问题

scanf(”%f%f%f”,a,b,c);错

scanf(”%5.3f”,&a);错

scanf(”%f%f%f”,&a,&b,&c);对

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

132↙错

a=1,b=3,c=2↙对

a=1b=3c=2↙错

对于scanf(”%c%c%c”,&c1,&c2,&c3);abc↙对abc↙错

对于scanf(”%d%c%f”,&a,&b,&c);若输入1234a123s.26

3.4.5字符数据的输入输出

1.用putchar函数输出一个字符

从计算机向显示器输出一个字符

putchar函数的一般形式为:

putchar(c)

例3.8先后输出BOY三个字符。

Ø解题思路:

定义3个字符变量,分别赋以初值B、O、Y

用putchar函数输出这3个字符变量的值

#include

intmain()

{

chara='B',b='O',c='Y';

putchar(a);

putchar(b);

putchar(c);

putchar('\n');

return0;

}

2.用getchar函数输入一个字符

向计算机输入一个字符,形式为:

getchar()

例3.9从键盘输入BOY三个字符,然后把它们输出到屏幕。

Ø解题思路:

◆用3个getchar函数先后从键盘向计算机输入BOY三个字符

◆用putchar函数输出

#include

intmain()

{chara,b,c;

a=getchar();

b=getchar();

c=getchar();

putchar(a);putchar(b);putchar(c);

putchar('\n');

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

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

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