第3章顺序程序设计教学文稿_第1页
第3章顺序程序设计教学文稿_第2页
第3章顺序程序设计教学文稿_第3页
第3章顺序程序设计教学文稿_第4页
第3章顺序程序设计教学文稿_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章顺序程序设计延边大学师范学院于茂春C程序设计

第三章顺序程序设计3.1常量与变量3.2

C的数据类型3.3整型数据3.4字符型数据3.5

浮点型数据3.6运算符和算表达式3.7

C语句概述3.8赋值语句3.9数据的输入输出3.10逗号运算符和逗号表达式3.1常量与变量1.常量:在程序运行过程中,其值不能改变的量称为常量也可以用一个标识符代表一个常量

#include<stdio.h>#definePRICE30intmain(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);return0;}#include<stdio.h>intmain(){inta,b;charx,y;a=1;b=2;x=‘c’;y=‘s’;printf(“%d=%c”,a,x);printf(“%d=%c”,b,y);return0;}2.变量其值可以改变的量称为变量。例:#include<stdio.h>

intmain(){inta,b;a=3;b=4;printf(“%d”,a);a=a+b;printf(“%d”,a);

return0;}用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。(关键字、预定义、用户标识符)标识符:只能由字母、数字、下划线三种字符组成,且第一个字符必须为字母或下划线合法标识符:first,stu_1_1,_tea,a1,FIRST,First非法标识符:a.m,ab&c,1stu,$56,a>b*注意:C程序中的变量必须先定义后使用3.2C的数据类型

整型字符型基本类型实型(浮点型)单精度型枚举类型双精度型

数组类型数据类型构造类型结构体类型共用体类型指针类型空类型回第三章3.3整型数据1.整型常量的表示方法十进制整数。如123,-456,0等。八进制整数。以0开头,如0123,-011等。十六进制整数。以0x开头。如0x123,-0x12等。2.整型变量(1)整型数据在内存中的存放形式(以补码方式表示)inti;i=10;i10i0101000000000000(2)整型变量的分类

基本整型,以int表示。如:inta,b;

短整型,以shortint或short表示。如:shorta,b;

长整型,以longint或long表示。如:longa,b;

无符号数。加上修饰符unsigned。整型数据的取值范围:[signed]int16位-32768~32767%d

unsigned[int]16位0~65535%u[signed]short[int]16位-32768~32767%d

unsignedshort[int]16位0~65535%ulong[int]32位-2147483648~2147483647%ldunsignedlong[int]32位0~4294967295%lu*[signed]longlong[int]unsigned]longlong[int]*

VC++中short2个字节,

int、longint4个字节,32位(3)整型变量的定义与使用

对程序中的变量要先定义后使用。定义方式:

inta;longa,b;unsignedlongc,d,e;

对变量的定义,一般放在函数开头的声明部分。#include<stdio.h>intmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d;b+u=%d\n”,c,d);return0;}#include<stdio.h>intmain(){inta,b;a=32767;b=a+1;printf(“%d,%d”,a.b);return0;}运行结果:a+u=22;b+u=143.4字符型数据1.字符常量:用单撇号括起来的一个字符。如:‘a’,’?’,’D’。特殊形式的字符常量(转义字符):\n,\r,\005,\x2e。2.字符变量:用来存放字符常量,一个字符变量只能存放一个字符。charc1,c2;c1=‘a’;c2=‘b’;ac1bc2c19798c2c1=97;c2=98;intc1;charc2;c1=‘a’;c2=97;10000110c1c201000110c1c210000110100001100000000048页表3.3例:#include<stdio.h>intmain(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);return0;}例:#include<stdio.h>intmain(){charc1,c2;c1=‘a’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);return0;}运行结果:

ab9798运行结果:

AB字符串常量:是用一对双撇号括起来的字符序列。

“china”,“a”,“$123.45”

字符串常量printf(“Howdoyoudo”);‘a’

“a”\0aacharc;c=‘a’;c=“a”;X\0anihc“china”\054.321

$“$123.45”3.5实型数据实型常量的表示方法十进制小数形式。由数字和小数点组成,如:.123,123.,0.3,123.0(必须要有小数点)指数形式。如123e3,123E3都代表123X103

。字母e或E之前必须有数字,e后面的指数必须为整数。2.实型变量1)实型变量的分类:分为单精度型(float)、双精度型

(double)、长双精度型(longdouble)。(46页表3.2)2)定义方式:

floatx,y;doublez;longdoublet;3)实型数据的舍入误差#include<stdio.h>intmain(){floata,b;a=123456.789e5;b=a+20;printf(“%f”,b);return0;}运行结果:12345678848.000000实型常量的类型:

f=2.45678*4523.65f=2.45678f*4523.65ffloata;doubleb;a=111111.111;b=111111.111;Float型:7位有效位3.6运算符和表达式基本的算术运算符:+,-,*,/,%3+5,5-2,3*5,5/3,5.0/3,5%3,-17%3,19%-4(%两侧必须为整数)算术表达式:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子。

a*b/c-1.5+’a’运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行。

a-b*c

算术运算符的结合方向为自左至右。

a-b+c

注意:如果一个运算符的两侧的数据类型不同,则先进行类型转换,再进行运算。a-b+c*d()、+、-、*、/、%、+、-单目双目高低同级同级同级算术运算符的优先级:4.自增、自减运算符++i,--i

intj,i=3;j=++i;i++,i--intj,i=3;j=i++;inti=3,j=4;printf(“%d,%d”,++i,j++):Printf(“%d,%d”,i,j);4,44,5注意:1)自增运算符和自减运算符只能用于变量,而不能用于常量或表达式i++,++i5++(i+j)++i2)++和--的结合方向是“自右至左”#include<stdio.h>intmain(){intk,i=232;k=-i++;printf(“%d,%d”,k,i);return0;}-232,233#include<stdio.h>intmain(){intk,i=232;k=-++i;printf(“%d”,k);return0;}-233i=i+1;j=i;j=i;i=i+1;5.各类数值型数据间的混合运算doublefloatlongunsignedintchar,shortfloata;a=1.3+3.73;charc1,c2=‘A’;c1=c2+’0’;longa,b=123;intc=5;a=b+c;doublea=3.4416;intb,c=3;b=a*c;10+‘a’+i*f-d/ei:intf:floatd:doublee:long3/1.06.强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。

(double)a(int)(x+y)(float)(5%3)一般形式:(类型名)(表达式)

(int)(x+y)(int)x+y例1:#include<stdio.h>intmain(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);return0;}运行结果:x=3.600000,i=33.7C语句概述C语句可以分为以下5类:控制语句,完成一定的控制功能:if()~else~,for()~…2)函数调用语句:printf(“ThisisaCprogram”);3)表达式语句:a=3;x=a+b;空语句:;5)复合语句:可用{}把一些语句括起来成为复合语句。

#include<stdio.h>intmain(){inti=1,j=0,a[6];for(;i<=5;i++){scanf(“%d”,&a[i]);j=j+a[i];}printf(“%d”,j);return0;}

回第三章3.8赋值语句1.赋值运算符:=a=3a=3+52.复合的赋值运算符:在赋值符“=”之前加上其他运算符。

a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%33.赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。一般形式:<变量><赋值运算符><表达式>a=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a+=a-=a*a

a=12a=a+(a-=a*a)a=a+(a=a-(a*a))printf(“%d”,a=3+5);4.赋值过程中的类型转换。若赋值运算符两侧的类型不一致,都是算数类型时,在赋值时要进行类型转换。1)将浮点型数据赋给整型变量时,舍弃小数部分。

a=3.56;将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中

f=23将一个double型数据赋给float变量时,先将double型数据转换成float,只取6~7位有效数字。

f=23.20242628202426

将一个float型数据赋给double变量时,数值不变,有效位数扩展到15位。4)字符型数据赋给整型变量时,将字符数据的ASCII码放到整型变量中。c=‘\003’

11000000i=c;11000000000000005)将一个int、short、long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量。inti=289;charc;c=i;i=2891000010010000000c=i10000100#include<stdio.h>intmain(){inta=2,b=7;a*=b*5-3;printf(“%d”,a);return0;}a=a*(b*5-3)运行结果:645变量赋初值#include<stdio.h>intmain(){inta,b;charx,y;a=1;b=2;x=‘c’;y=‘s’;printf(“%d=%c”,a,x);printf(“%d=%c”,b,y);return0;}intx1=3;

intx1;x1=3;

inta=1,b=2;charx=‘c’,y=‘s’;floata,b,c=5;

floata,b,c;c=5;练习:1、指出程序中的错误#include<stdio.h>intmain();floatr,s;r=5.0;S=3.14159*r*r;printf(“%d\n”,s)return0;2、以下选择中,正确的赋值语句是:Aa=1,b=2Bi++;Ca=b=5Dy=int(x)#include<stdio.h>intmain(){floatr,s;r=5.0;s=3.14159*r*r;printf(“%f\n”,s);}3.9数据的输入输出

所谓输入输出是以计算机主机为主体而言的。(2)C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。

printf(),scanf(),putchar(),getchar()……(3)在使用C语言库函数时,要用预编译命令“#include”将有关的头文件包括到用户源文件中。#include<stdio.h>,#include<string.h>……#include<math.h>#include<stdio.h>intmain(){floata;a=sin(0.52);printf("%f",a);return0;}回第三章3.9.1

printf与scanfprintf函数(格式输出函数)该函数的作用是向终端输出若干个任意类型的数据。

1)printf函数的一般格式:

printf(格式控制,输出表列)

printf(“a=%d,a+b=%d\n”,a,a+b);a=3,a+b=7

printf函数的一般形式:

printf(参数1,参数2,参数3,……参数n)

printf函数的功能是将参数2~参数n按参数1给定的格式输出。

printf(“x=%f,i=%d”,x,i);2)格式字符常用的格式字符:(1)d格式符。用来输出十进制整数。

%d按整型数据的实际长度输出。

printf(“%d,%d”,a,b)123,456%mdm为指定的输出字段的宽度。

printf(“%8d,%2d”,a,b)

123,456%ld输出长整型数据。

longa=135790;printf(“%ld”,a);printf(“%8ld”,a)135790

13579074页(2)o格式符。以八进制数形式输出整数。%o%lo%mointa=-1;printf(“%d,%o”,a,a);1111111111111111a-1,177777x格式符。以十六进制数形式输出整数。%x%lx%mxinta=-1;printf(“%x,%d,%o”,a,a,a);ffff,-1,177777(4)u格式符。用来输出无符号数,以十进制形式输出。#include<stdio.h>intmain(){unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%o,%x,%u\n”,b,b,b,b);return0;}

运行结果:

a=-1,177777,ffff,65535b=-2,177776,fffe,655341111111111111111a0111111111111111bc格式符。用来输出一个字符。%c#include<stdio.h>intmain(){charc=‘a’;inti=97;printf(“%c,%d\n”,c,c);printf(“%3c,%3d\n”,i,i);return0;}

运行结果:

a,97

a,

97(6)s格式符。用来输出一个字符串。%sprintf(“%s”,”CHINA”)%ms输出的字符占m列。

printf(“%8s”,”CHINA”);printf(“%2s”,”CHINA”);

CHINACHINA%-ms如果串长小于m,则在m列范围内,字符串向左靠,右补空格。(6)s格式符。用来输出一个字符串。printf(“%-8sc1”,”CHINA”)CHINA

c1

%m.ns输出占m列,但只取字符串中左端n个字符。左补空格printf(“%8.2s”,”CHINA”)

CH%-m.ns输出占m列,只取字符串中左端n个字符。右补空格若n>m,则m自动取n值。printf(“%-3.4s”,”CHINA”)CHINprintf(“%-8.3sc1”,”CHINA”)CHI

c1例.字符串的输出#include<stdio.h>intmain(){printf(“%3s,%7.2s,%.4s,%-5.3sc\n”,”CHINA”,”CHINA”,”CHINA”,”CHINA”);return0;}CHINA,

CH,CHIN,CHI

c(7)f格式符。用来输出实数,以小数形式输出。%f整数部分全部输出,并输出6位小数。单精度数的有效位一般为7为,双精度一般为16位。#include<stdio.h>intmain(){floatx,y;x=111111.111;y=222222.222;printf(“%f”,x+y);return0;}运行结果:

333333.328125#include<stdio.h>intmain(){doublex,y;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%lf”,x+y);return0;}运行结果:3333333333333.333010#include<stdio.h>intmain(){floata=123456789.23;printf(“%f”,a);return0;}123456792.000000%m.nf指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。(7)f格式符。用来输出实数,以小数形式输出。main(){floatf=123.456;printf(“%f,%10f,%10.2f,%.2f,%-10.2fc\n”,f,f,f,f,f,);}123.456001,123.456001,

123.46,123.46,123.46

ce格式符。以指数形式输出实数。

%eprintf(“%e”,123.456);1.23456e+02%m.ne%-m.neg格式符。用来输出实数。它根据数值的大小,自动选f格式或e格式。注意:1.格式字符x,e,g大小写均可,其他格式字符必须用小写。

2.格式说明以%开头,以上述格式字符之一结束。

printf(“c=%cf=%fd=%d”,c,f,d);3.连续两个%输出字符%printf(“%f%%”,1.0/3);0.333333%回第三章2.scanf函数(格式输入函数)1)一般形式:scanf(格式控制,地址表列)例.用scanf函数输入数据#include<stdio.h>intmain(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d”,a,b,c);return0;}3453,4,5scanf(“%d,%d,%d”,&a,&b,&c);3,4,5scanf(“%da%da%d:,&a,&b,&c);3a4a52)格式说明同fe,E,g,G实数。可用小数形式或指数形式f字符串s单个字符c无符号十六进制整数x,X无符号八进制整数o无符号十进制整数u有符号十进制整数d,i

说明格式字符例.scanf格式字符

#include<stdio.h>intmain(){longa;charc1;floatf;scanf(“%ld%c%f”,&a,&c1,&f);printf(“%ld,%cf=%f%%”,a,c1,f);return0;}12a123.4512,af=123.449997%

scanf格式字符说明

对unsigned型变量所需的数据,可用%u,%d或%o,%x

格式输入。(2)可以指定输入数据所占列数,系统自动截取所需数据。

scanf(“%3d%3d”,&a,&b);输入:123456a=123b=456

如果在%后面有一个“*”附加说明符,表示跳过它指定的列数

scanf(“%2d%*3d%2d”,&a,&b);1234567(4)输入数据时不能规定精度

scanf(“%7.2f”,&a);χ12345673)使用scanf函数时应注意的问题scanf函数中“格式控制”后面是变量地址,而不是变量名

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

在“格式控制”字符串中除格式说明外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。

scanf(“%d,%d”,&a,&b);3,4scanf(“%d%d”,&a,&b);34scanf(“a=%d,b=%d”,&a,&b);a=3,b=4(3)在用“%c”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论