第3章 最简单的C程序设计.docx

上传人:b****3 文档编号:12634554 上传时间:2023-04-21 格式:DOCX 页数:20 大小:24.07KB
下载 相关 举报
第3章 最简单的C程序设计.docx_第1页
第1页 / 共20页
第3章 最简单的C程序设计.docx_第2页
第2页 / 共20页
第3章 最简单的C程序设计.docx_第3页
第3页 / 共20页
第3章 最简单的C程序设计.docx_第4页
第4页 / 共20页
第3章 最简单的C程序设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第3章 最简单的C程序设计.docx

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

第3章 最简单的C程序设计.docx

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

第3章顺序程序设计

教学时数:

9

教学目的:

了解基本类型及其常量的表示法;掌握变量的定义及初始化方法;3.掌握运算符与表达式的概念。

了解C语句的概念及种类;掌握C语言常用的输入输出方式

教学方法和手段:

启发式、讨论式、引导式、训练式教学,在多媒体教室采用课件教学,在机房进行上机辅导。

教学过程:

(1)回顾旧课。

(2)讲授新课。

(2)课后练习。

教学内容:

3.1顺序程序设计举例

例3.1有人用温度计测量出用华氏法表示的温度(如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

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

#include

intmain()

{floatp0=1000,r1=0.0036,r2=0.0225,

r3=0.0198,p1,p2,p3;

p1=p0*(1+r1);

p2=p0*(1+r2);

p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);

return0;

}

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

3.2.1常量和变量

1.常量:

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

整型常量:

如1000,12345,0,-345

实型常量:

十进制小数形式:

如0.34-56.790.0

指数形式:

如12.34e3(代表12.34103)

字符常量:

如’?

转义字符:

如’\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数据类型

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

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

3.2.2数据类型

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

基本类型、枚举类型、空类型、派生类型、指针类型、数组类型、结构体类型、共用体类型、函数类型

3.2.3整型数据

1.整型数据的分类

最基本的整型类型:

基本整型(int型):

占2个或4个字节

短整型(shortint):

VC++6.0中占2个字节

长整型(longint):

VC++6.0中占4个字节

双长整型(longlongint):

C99新增的

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字符集

字母:

A~Z,a~z

数字:

0~9

专门符号:

29个:

!

”#&‘()*等

空格符:

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

不能显示的字符:

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

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

字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节,整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节。

2.字符变量

用类型符char定义字符变量

charc=’?

’;

系统把“?

”的ASCII代码63赋给变量c

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

输出结果是:

63?

3.2.5浮点型数据

浮点型数据是用来表示具有小数点的实数,float型(单精度浮点型),编译系统为float型变量分配4个字节,数值以规范化的二进制数指数形式存放。

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

float型(单精度浮点型)

double型(双精度浮点型)

编译系统为double型变量分配8个字节

15位有效数字

longdouble(长双精度)型

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之前,先使i的值加(减)1

i++,i--:

在使用i之后,使i的值加(减)1

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

用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式,运算对象包括常量、变量、函数等,C语言规定了运算符的优先级和结合性

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

(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语句的作用和分类

1.控制语句:

控制语句完成一定的控制功能。

C语言只有9条控制语句,又可细分为三种:

(1)if()…else…

(2)switch()…

(3)do…while()

(4)for()…,

(5)while()…,

(6)break,

(7)continue

(8)goto

(9)return

2.函数调用语句

函数调用语句由一次函数调用加一个分号(语句结束标志)构成。

例如:

printf("ThisisaCProgram.");

3.表达式语句

表达式语句由表达式后加一个分号构成。

表达式能构成语句是C语言的一大特色。

最典型的表达式语句是在赋值表达式后加一个分号构成的赋值语句。

例如,“num=5”是一个赋值表达式,而“num=5;”却是一个赋值语句。

4.空语句

空语句仅由一个分号构成。

显然,空语句什么操作也不执行。

5.复合语句

复合语句由大括号括起来的一组(也可以是一条)语句构成。

注意:

1)在{}内说明的变量只在{}内有效;

2){}后不加分号;

3){}中最后一个语句中最后的分号不能忽略不写。

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

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

赋值语句、输入输出语句、其中最基本的是赋值语句。

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

解题思路:

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

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

#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;

}

(2008.9)填6

设变量a和b已正确定义并赋初值。

请写出与a-=a+b等价的赋值表达式【6】。

(2009.9)15

若有定义语句:

intx=10;,则表达式x-=x+x的值为()

A)-20

B)-10

C)0

D)10

变量赋值中的类型转化

如果赋值运算符左右两边数据类型不同,系统将自动的进行类型装换,即把赋值号右边的类型转换成左边的类型。

例:

main()

{inta,b=97,m;floatx,y=3.66;charc1=‘A’,c2;

a=y;m=c1;c2=b;x=b;

printf(“x=%f,a=%d,m=%d,c2=%c\n”,x,a,m,c2);

}

输出结果:

x=97.00000,a=3,m=65,c2=a

3.4数据的输入输出

3.4.1输入输出举例

解题思路:

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

#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有关数据输入输出的概念

几乎每一个C程序都包含输入输出,输入输出是程序中最基本的操作之一。

(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(格式控制,输出表列)

例如:

printf(”i=%d,c=%c\n”,i,c);

2.常用格式字符

d格式符。

用来输出一个有符号的十进制整数,可以在格式声明中指定输出数据的域宽

printf(”%5d%5d\n”,12,-345);

%d输出int型数据,%ld输出long型数据

main()

{intnum1=123;

longnum2=123456;

/*用3种不同格式,输出int型数据num1的值*/

printf("num1=%d,num1=%5d,num1=%-5d,

num1=%2d\n",num1,num1,num1,num1);

/*用3种不同格式,输出long型数据num2的值*/

printf("num2=%ld,num2=%8ld,num2=%5ld\n",

num2,num2,num2);

printf("num1=%ld\n",num1);

}

c格式符。

用来输出一个字符

main()

{charc='A';

inti=65;

printf("c=%c,%5c,%d\n",c,c,c);

printf("i=%d,%c",i,i);

}

程序运行结果如下:

c=A,□□□□A,65

i=65,A

s格式符。

用来输出一个字符串

(1)%s

(2)%ms:

输出的字符串占m列,若实际长度大于m,则突破限制,将字符全部输出,若小于m,则左补空格。

(3)%-ms:

右补空格。

(4)%m.ns:

输出占m列,但只取字符串左端n个字符,不足左补空格。

(5)%-m.ns:

右补空格。

main()

{printf("%s,%5s,%-10s",

"Internet","Internet","Internet");

printf("%10.5s,%-10.5s,%4.5s\n",

"Internet","Internet","Internet");

}

程序运行结果如下:

Internet,Internet,Internet□□,□□□□□Inter,Inter□□□□□,Inter

注意:

系统输出字符和字符串时,不输出单引号和双引号。

f格式符。

用来输出实数,以小数形式输出

①不指定数据宽度和小数位数,用%f

例3.6用%f输出实数,只能得到6位小数。

doublea=1.0;

printf(”%f\n”,a/3);

②指定数据宽度和小数位数。

用%m.nf

printf("%20.15f\n",1/3);

printf("%.0f\n”,10000/3.0);

floata;

a=10000/3.0;

printf("%f\n",a);

③输出的数据向左对齐,用%-m.nf

e格式符。

指定以指数形式输出实数

%e,VC++给出小数位数为6位

指数部分占5列

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

printf(”%e”,123.456);

输出:

1.234560e+002

%m.ne

printf(”%13.2e”,123.456);

输出:

1.23e+002(前面有4个空格)

(2009.3)15

程序段:

intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是()

A)123.141593

B)123.141593

C)12,3.141593

D)123.1415930

(2009.3)填7

若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y);

补充完整,使其输出的计算结果形式为:

x/y=11。

(2008.9)填7

若整型变量a和b中的值分别为7和9,

要求按以下格式输出a和b的值:

a=7

b=9

请完成输入语句:

printf(“【7】”,a,b);

(2009.9)16有以下程序段

有以下程序

#include

main()

{inta=1,b=0;

printf(“%d,”,b=a+b);

printf(“%d\n”,a=2*b);

}

程序运行后的输出结果是()

A)0,0B)1,0

C)3,2D)1,2

(2008.4)16有以下程序段

charch;intk;ch=‘a’;k=12;

printf(“%c,%d,”,ch,ch);

printf(“k=%d\n”,k);

已知a的ASCII十进制代码是97,则执行上述程序段后输出结果是

A)因变量类型与格式描述符的类型不匹配,输出无定值;

B)输出项与格式描述符个数不符,输出零值或不定值;

C)a,97,12k=12

D)a,97,k=12

(2010.3)22

有以下程序,其中k的初值为八进制数

#include

main()

{intk=011;

printf("%d\n",k++);

}

程序运行后的输出结果是

(A)12(B)11(C)10(D)9

3.4.4用scanf函数输入数据

1.scanf函数的一般形式

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

2.scanf函数中的格式声明

与printf函数中的格式声明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符,scanf("a=%f,b=%f,c=%f",&a,&b,&c);

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

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

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↙错

(2007.9)填6

执行以下程序时输入1234567,则输出结果是________

#include

main()

{

inta=1,b;

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

printf(“%dٮ%d\n”,a,b);}

}

(2008.9)19有以下程序段

若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是(ㄩ代表一个空格符)()

A)ㄩㄩㄩ1,2,3<回车> 

B)1ㄩ2ㄩ3<回车>

C)1,ㄩㄩㄩ2,ㄩㄩㄩ3<回车>

D)1,2,3<回车>

(2007.9)18有以下程序段

intj;floaty;charname[50];

scanf(“%2d%f%s”,&j,&y,name);

当执行上述程序,从键盘上输入555667777abc

后,y的值为_______

A)5556.0

B)566.0

C)7777.0

D)5667777.0

(2007.4)16

设变量均已正确定义,若想通过

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋值10和20,为变量c1和c2赋字符X和Y,以下所示的输入形式中正确的是(注:

□代表空格符)

A)10□X□20□Y<回车>

B)10□X20□Y<回车>

C)10□X<回车>

20□Y<回车>

D)10X<回车>

20Y<回车>

(2009.3)23有以下程序

#include 

main()

{ int a1,a2; char c1,c2;

  scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

  printf("%d,%c,%d,%c",a1,c1,a2,c2);

}

若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,

程序输出结果是:

12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)

A)12a34bB)12_a_34_b

C)12,a,34,bD)12_a34_b

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函数输入一个字符

向计算机输入一个字符

ge

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1