第四章C语言课件
合集下载
C语言程序设计第4章选择结构程序设计ppt课件
8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。
C语言程序设计课件 第四章
4.8 变量的作用域和生存期
4.8.2 变量的作用域和存在期
4.8.2.2 局部变量的作用域和存在期 2. register 变量 寄存器变量也是自动变量,它与自动变量的区别仅在于:用register说 明的变量建议编译程序将变量的值保留在CPU的寄存器中,而不象一 般变量那样,占内存单元。局部变量的定义必须放在函数体或复合体 中所有可执行语句之前。 讨论寄存器变量的特点和使用注意事项 。 3. static变量 在函数体(或复合体)内部用static说明的变量,称静态局部变量。静 态局部变量的作用域和自动变量、寄存器变量一样,但其存在期与它 们有本质的区别,要一直延长到程序运行结束。 静态局部变量在静态存储区占据永久性的存储单元,函数退出后下次再 进入该函数,静态局部变量仍使用原来的存储单元。 讨论静态变量的特点和使用注意事项
4.8 变量的作用域和生存期
4.8.2 变量的作用域和存在期
变量的作用域:源程序中的某一部分,在这个范围里,变量定义 是有效的,可以使用该变量的名字进行与该变量有关的操作 每个变量都有一个确定“作用域”,由变量定义出现的位置确定。 作用域讲变量的作用范围,一个定义的作用域是源程序中的一段, 可以从源程序正文中把有关的一段划出来。因此作用域是静态 概念。与程序执行过程无干。 存在期:变量在程序中存在的那段时期称为该变量的“”。 存在期是动态概念。讲的是程序执行的一段时期,在一个变量的 存在期里,它所占的存储单元一直保持,只要不对变量重新赋 值,单元中的值就保持不变。 内存中供程序使用的存储空间分为三部分: 程序区、静态存储区和动态存储区。
4.6 递归函数
递归函数是指在函数执行过程中,直接或间接调用函数本身的函 数。前者称简单递归,后者称间接递归。 递归程序的执行过程 递归函数的特点:有一个明确的结束递归的条件。 递归函数的效率 递归与递推的关系
c语言基础 ppt第4章
mymdl: power()
14/42
模块化设计与应用 函数 • 库函数、自定义函数 • 函数的定义
一般形式: 函数运行完毕后返回值
的类型,无加void 参数表
函数类型 函数名(数据类型 参数1,数据类型 参数2, …) { 函数的唯一标识符合标 函数体 识符命名规则 }
!!函数定义不允许嵌套
15/42
26/42
模块化设计与应用 函数参数的传递方式 值传递方式 – 方式:函数调用时,为形参分配单元,并将实 参的值复制到形参中;调用结束,形参单元 被释放,实参单元仍保留并维持原值 – 特点: »形参与实参占用不同的内存单元 »单向传递
27/42
模块化设计与应用 注意: (1) 在函数没有被调用时,函数中的形参只是一个符 号,系统并不为之分配内存空间,只有该函数被调用时 ,才会为之分配存储空间,并且在调用结束后,形参所 占的内存也被释放。 (2) 在内存中,实参单元与形参单元是不同的单元。 (3) 实参可以是常量、变量或表达式,但要求它们有 确定的值,也就是说,在调用函数时必须给形参赋以确 定的值。 (4) 在被定义的函数中,必须指定形参的类型,并且 实参与形参的类型应一致,否则将发生类型“不匹配的 错误”。 (5) 形参在获得值之后便与实参相脱离,此后无论形 参发生了怎样的改变,都不会影响到实参。 28/42
模块化设计与应用
函数
分析:
• •
c
5 9
( x 32)
确定形参:求 c 必须知道 x 的大小,设形参为x 确定函数:函数的返回值即为 c 的值,设为实型 程序2: float ftoc (float x) { float c ; c =(5.0/9.0)*(x – 32 ); return c ; } 程序1: float ftoc ( void) { float c, x ; x=50.5; c =(5.0/9.0)*( x– 32 ); return c ; }
C语言电子课件第4章
语句n+1;
在使用switch语句时还应注意以下几点:
(1)在case后的各常量表达式的值不能相同,否则
会出现错误。
(2)在case后,允许有多个语句,可以不用{}括起来。 (3)各case和default子句的先后顺序可以变动,而 不会影响程序执行结果。
(4)default子句可以省略不用。
(5)switch语句与if语句使用场合:当条件是常量比较 时,此时使用switch语句或if语句都可以,但当条件是 在某个范围时,此时使用if语句更方法些。
(2)为了避免这种二义性,C语言规定,else 总是
与它前面最近的if配对。
PPT DESIGN
二、条件运算符和条件表达式 由条件运算符组成条件表达式的一般形式为: 表达式1 ? 表达式2: 表达式3
PPT DESIGN
使用条件表达式时,还应注意以下几点: (1)条件运算符的运算优先级低于关系运算符和算术 运算符,但高于赋值符。 (2)条件运算符?和:是一对运算符,不能分开单独 使用。
一、if语句 1、if (表达式)语句;
2、if (表达式) 语句1;else 语句2; 3、if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; …… else 语句n+1;
PPT DESIGN
PPT DESIGN
4、if语句的嵌套 (1)在嵌套内的if语句可能又是if-else型的,这将会 出现多个if和多个else重叠的情况,这时要特别注意if 和else的配对问题。
PPT DESIGN
4.3.2、关系表达式
关系表达式的一般形式为: 表达式 关系运算符 表达式 注意:关系表达式的值是真”和4.4 逻辑运算符和逻辑表达式 4.4.1、逻辑运算符及其优先次序
《C语言程序设计》课件——第四章
25
(5) 使用显示分隔符。在格式说明符中还可以有其它字符,在输入 字符时应输入与这些字符相同的字符。 scanf("%d,%d,%d",&a,&b,&c); 输入数据 3,4,5 scanf(”a=%d,b=%d,c=%d",&a,&b,&c); 输入数据 a=3,b=4,c=5 (6)用“%c”格式输入字符时,空格字符和转义字符都作为有效字 符输入: scanf("%c%c%c",&c1,&c2,&c3); 如果输入a b c 则字符‘a‟送给c1,空格送给c2,字符’b‟送给c3
22
2、格式输入函数 formatted input
格式控制与printf 函数中的含义相同。
– 格式:scanf(格式控制,地址表列) – scanf(format, varible1,varible2) – 功能:scanf函数可以从标准输入设备输入 任意类型的多个数据(一般为显示器)。 – 注意:输入数不能规定精度
24
(3) 用隐含的分隔符。在输入数据中用空格或换行符分隔数据。 scanf("%d%d%d",&a,&b,&c); 输入数据 3 4 5 或输入 3 4(回车) 5(回车) 则a=3,b=4,c=5 (4) %后的“*”附加说明符,用来表示跳过它相应的数据。 scanf("%d,%*d,%d",&a,&b); 如果输入 3,4,5 则 a=3,b=5,第二个数据跳过不赋给任何变量。
a)0
b)1
c)3
d)不确定
6) C语言中-8的存储形式()
《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
C语言课件第四章PPT
break; case 1: printf (“**2**\n”);
break; }
case 2: printf (“**3**\n”); } 运行结果为:**1**
5) case语句的嵌套。
**3**
else if (s<2000) d=.08;
else if (s<3000) d=.1;
else
d=.15;
f=p*w*s*(1-d); printf("\n w=%-f s=%-f f=%-f ",w,s,f);
}
条件运算符及条件表达式
条件运算符要求有三个运算量,这是一个三 目运算符,其表达式的一般格式:
流程图
程序如下: (c507)
main()
{ float f,p,w,s,d;
printf("input p,w,s : "); scanf("%f,%f,%f",&p,&w,&s);
if (s<250.) d=0.;
else if (s<500.) d=.02;
else if (s<1000.) d=.05;
。根
先程
看序
一,
下考
流虑
程系
图数
例:
程序c506:
#include <math.h> main() { float a,b,c,p,q,t,x1,x2;
printf("input a,b,c: "); scanf("%f,%f,%f",&a,&b,&c); if (a==0.) printf("a==0!!! return."); else { p=-b/(2.*a); t=b*b-4*a*c; q=sqrt(fabs(t))/(2.*a);
break; }
case 2: printf (“**3**\n”); } 运行结果为:**1**
5) case语句的嵌套。
**3**
else if (s<2000) d=.08;
else if (s<3000) d=.1;
else
d=.15;
f=p*w*s*(1-d); printf("\n w=%-f s=%-f f=%-f ",w,s,f);
}
条件运算符及条件表达式
条件运算符要求有三个运算量,这是一个三 目运算符,其表达式的一般格式:
流程图
程序如下: (c507)
main()
{ float f,p,w,s,d;
printf("input p,w,s : "); scanf("%f,%f,%f",&p,&w,&s);
if (s<250.) d=0.;
else if (s<500.) d=.02;
else if (s<1000.) d=.05;
。根
先程
看序
一,
下考
流虑
程系
图数
例:
程序c506:
#include <math.h> main() { float a,b,c,p,q,t,x1,x2;
printf("input a,b,c: "); scanf("%f,%f,%f",&a,&b,&c); if (a==0.) printf("a==0!!! return."); else { p=-b/(2.*a); t=b*b-4*a*c; q=sqrt(fabs(t))/(2.*a);
c语言 第四章 选择结构课件
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-4 26
printf()函数格式的进一步说明:
printf( ―„„‖,输出项1,输出项2,„ ,输出项n ); 例:printf( ―x=%d,y=%f\n‖ , x , x+3 );
格式控制 (转换控制字符串)
输出表列 (用逗号分隔的数据组,可选项)
格式控制分为两个部分: 格式说明—%+格式字符 (替换输出) 普通字符—原样输出(转义字符按表3.3输出)
Learning is not attained by chance, it must be sought for with ardor and attended to with diligence. ------Abigail Adams 学问不是随随便便就来的,必须热 情地去追求,努力地去获得。
------阿比盖尔· 亚当斯
2013-8-4 1
第四章 最简单的C程序设计
顺序程序设计
内容提要:
C语句概述 赋值语句
基本的数据输入/输出函数
简单的C程序设计
2013-8-4 2
4.1 C语句概述
一、语句
用来对数据进行加工(完成操作任务)。 语句是构成程序的基本单位。 通常,C程序由若干个函数(系统函数、 用户自编函数)组成。 每一个函数由若干条语句组成。每条语 句总是以分号;结束。
2013-8-4 14 stderr:标准错误输出(standard error output)
二、数据输入输出在C语言中的实现 1.调用输入输出函数实现输入输出操作
C语言本身不提供输入输出语句,输入和输 出操作是通过调用C语言库函数中的输入输 出函数来实现的。
putchar:输出单个字符 putchar(‗A‘);
不能加“;‖
不能省略
① 复合语句中的每一个语句还可以是复合语句;
② 复合语句尽管可由多个语句组合,但它只相当 于一个语句,在任何单一语句可以存在的地方, 复合语句都可以存在。 2013-8-4 10
4.2 赋值语句
即赋值表达式后面跟一个分号;构成赋值语句
要注意区分赋值表达式与赋值语句
如: if ((a = b)>0) 赋值表达式 t = a; 赋值语句
2013-8-4 3
C程序的基本结构
C程序 源程序文件1 源程序文件2
• • • •
源程序文件n
• • • •
预处理命令
全局变量声明
函数首部
函数1
函数n
函数体
局部变量声明
2013-8-4
执行语句
4
二、C语句的分类 1. 2. 3. 4. 5. 控制语句 函数调用语句 表达式语句 空语句 复合语句
2013-8-4 27
printf()函数格式的进一步说明: %为引导符号,d为格式符号 main( ) { 格式说明(格式字符) int a=3,b=4; printf(―a=%d b=%d\n ‖, a, b ); }
普通字符 转义字符 输出表列
输出结果: a=3 b=4
2013-8-4 28
putchar 函数(字符输出函数)实例
#include <stdio.h> /*必须有头文件*/ #include <stdio.h> /*必须有头文件*/ main() { main() { char a,b,c; putchar(‗B‘); /*字符型常量*/ a=‗B‘; putchar(‗O‘); /*字符型常量*/ b=‗O‘; putchar(‗Y‘); /*字符型常量*/ c=‗Y‘; putchar(‗\n‘); /*转义字符*/ putchar(a); /*a为字符型变量*/ putchar(‗\101‘); /*转义字符*/ putchar(b); /*b为字符型变量*/ putchar(‗\‘‘);/*c为字符型变量*/ /*转义字符*/ putchar(c); putchar(65); /*整型常量*/ 输出结果: BOY } putchar(‗A‘+(‗f‘-‗a‘+2)); /*表达式*/ BOY 输出结果: } A‘AH
注意: getchar()函数得到的字符可以赋给 一个字符变量或者整型变量,也可以不赋给 任何变量,而作为表达式的一部分。
#include<stdio.h> main() { char c; c = getchar() + 32; putchar(c); }
2013-8-4
A a
24
4.5 格式输入输出函数
其执行过程是:先进行赋值运算(将b的值赋给a), 然后判断a是否大于0,如大于0,执行t=a。
2013-8-4 11
4.2 赋值语句
C语言中的赋值号“ = ‖是一个运算符。
赋值表达式和赋值语句不同,赋值表达式 可以被包含在其它表达式之中,而赋值语句 则不行。
(a=b)>0是一个关系表达式 如: if ( ( a=b )>0 ) t=a; a=b是一个赋值表达式 如果写成: if ((a=b ; )>0) t=a;
2013-8-4 29
printf()函数格式的进一步说明:
【例二】求运行结果。 结果: 格式字符(规定了输出的数据形式): main() -30,177742,ffe2,65506,Γ { %d 输出十进制整数 int a= -30; %x 以十六进制无符号形式输出整数 printf("%d,%o,%x,%u,%c",a,a,a,a,a); %o 以八进制无符号形式输出整数 }
%u %f %s %c
以无符号十进制数形式输出整数 【例一】求运行结果。 输出小数形式浮点数(double型用%lf) main() 结果: { 输出字符串 30,36,1e,30,▲ int a=30; 输出单字符printf("%d,%o,%x,%u,%c",a,a,a,a,a);
}
2013-8-4
2013-8-4 22
二、getchar函数(字符输入函数)
注意: 当输入多个字符时,多余字符作废 (按回车后才开始接收字符)
#include<stdio.h> main() { char c; c = getchar(); putchar(c);
aaa a
23
}
2013-8-4
二、getchar函数(字符输入函数)
getchar:输入单个字符
printf:格式输出函数 scanf:格式输入函数 puts:输出字符串
2013-8-4 gets:输入字符串
getchar();
printf(―%c‖, ‗A‘); scanf(―%d‖,&radius); puts(―Hello!‖); gets();
15
C语言库函数已被编译成目标文件(二进制形 式)
源程序必须先编译成目标文件(.OBJ),源程 序中的输入输出函数等库函数,在编译时并 不被翻译成目标指令。
生成好的目标文件(.OBJ )必须与与系统的函 数库(以及其他的目标文件)进行连接,形成 可执行文件(EXE ) 运行EXE文件时,调用已被连接的函数库中 的系统函数。 2013-8-4 16
2013-8-4
8
4.空语句
由一个 “ ; ‖构成。 即: ;
作用:①程序转向点; ②什么也不做的循环体(待开 发)。 while (i<=11); for( i = 0;i<100;i++);
2013-8-4 9
5.复合语句
用 { } 括起的一组语句 。 如:if (x1>x2) { y=x1*x1+x2 ; printf("y=%d",y) ; }
系统函数库 main()
printf()的目标代码
{ int a,b;
a=10; b=20; printf(―a=%d,b=%d‖,a,b); }
2013-8-4
…………… ….
17
2.文件开头应有“#include‖命令
在调用标准输入输出库函数时,文件开头应有 预编译命令: #include <stdio.h> 或 #include ―stdio.h‖ stdio.h是“头文件”,包含了与用到的标准输 入输出函数有关的信息。 系统允许在使用 printf 和 scanf 两个函数时可 以不加“#include‖命令。
30
#include<stdio.h>
main() { char c1=‗a‘, c2=‗b‘, c3=‗c‘, c4=‗\101‘, c5=‗\116‘; printf(―a%c□b%c\tc%c\tabc\n‖,c1,c2,c3); printf(―\t\b%c□%c‖,c4,c5); }
错了。在if的条件中不能包含赋值语句a=b;
2013-8-4 12
4.2 赋值语句
赋值语句只能作为一条单独的语句, 或者放在复合语句中。 赋值语句用途很广。
2013-8-4
13
4.3 数据输入输出的概念及在C语言中的实现 一、数据输入输出的概念
计算机的输入输出是以计算机主机为主体而言 输入:从外部通过输入设备(键盘,磁盘,光盘, 扫描仪等)向计算机输入数据。 输出:从计算机向外部设备(显示屏,打印机, 磁盘等)输出数据。 stdin:标准输入(standard input) stdout:标准输出(standard output)
2.函数调用语句 由一次函数调用加一个“ ; ‖构成。
如:printf(“Hello World!”) ;
函数调用 分号
2013-8-4
7
3.表达式语句
由表达式加上“ ; ‖构成。
x+4*y; /*算术表达式语句*/ 4*7,4+8; /*逗号表达式语句*/ x=4*7; /*赋值表达式语句*/
printf()函数格式的进一步说明:
printf( ―„„‖,输出项1,输出项2,„ ,输出项n ); 例:printf( ―x=%d,y=%f\n‖ , x , x+3 );
格式控制 (转换控制字符串)
输出表列 (用逗号分隔的数据组,可选项)
格式控制分为两个部分: 格式说明—%+格式字符 (替换输出) 普通字符—原样输出(转义字符按表3.3输出)
Learning is not attained by chance, it must be sought for with ardor and attended to with diligence. ------Abigail Adams 学问不是随随便便就来的,必须热 情地去追求,努力地去获得。
------阿比盖尔· 亚当斯
2013-8-4 1
第四章 最简单的C程序设计
顺序程序设计
内容提要:
C语句概述 赋值语句
基本的数据输入/输出函数
简单的C程序设计
2013-8-4 2
4.1 C语句概述
一、语句
用来对数据进行加工(完成操作任务)。 语句是构成程序的基本单位。 通常,C程序由若干个函数(系统函数、 用户自编函数)组成。 每一个函数由若干条语句组成。每条语 句总是以分号;结束。
2013-8-4 14 stderr:标准错误输出(standard error output)
二、数据输入输出在C语言中的实现 1.调用输入输出函数实现输入输出操作
C语言本身不提供输入输出语句,输入和输 出操作是通过调用C语言库函数中的输入输 出函数来实现的。
putchar:输出单个字符 putchar(‗A‘);
不能加“;‖
不能省略
① 复合语句中的每一个语句还可以是复合语句;
② 复合语句尽管可由多个语句组合,但它只相当 于一个语句,在任何单一语句可以存在的地方, 复合语句都可以存在。 2013-8-4 10
4.2 赋值语句
即赋值表达式后面跟一个分号;构成赋值语句
要注意区分赋值表达式与赋值语句
如: if ((a = b)>0) 赋值表达式 t = a; 赋值语句
2013-8-4 3
C程序的基本结构
C程序 源程序文件1 源程序文件2
• • • •
源程序文件n
• • • •
预处理命令
全局变量声明
函数首部
函数1
函数n
函数体
局部变量声明
2013-8-4
执行语句
4
二、C语句的分类 1. 2. 3. 4. 5. 控制语句 函数调用语句 表达式语句 空语句 复合语句
2013-8-4 27
printf()函数格式的进一步说明: %为引导符号,d为格式符号 main( ) { 格式说明(格式字符) int a=3,b=4; printf(―a=%d b=%d\n ‖, a, b ); }
普通字符 转义字符 输出表列
输出结果: a=3 b=4
2013-8-4 28
putchar 函数(字符输出函数)实例
#include <stdio.h> /*必须有头文件*/ #include <stdio.h> /*必须有头文件*/ main() { main() { char a,b,c; putchar(‗B‘); /*字符型常量*/ a=‗B‘; putchar(‗O‘); /*字符型常量*/ b=‗O‘; putchar(‗Y‘); /*字符型常量*/ c=‗Y‘; putchar(‗\n‘); /*转义字符*/ putchar(a); /*a为字符型变量*/ putchar(‗\101‘); /*转义字符*/ putchar(b); /*b为字符型变量*/ putchar(‗\‘‘);/*c为字符型变量*/ /*转义字符*/ putchar(c); putchar(65); /*整型常量*/ 输出结果: BOY } putchar(‗A‘+(‗f‘-‗a‘+2)); /*表达式*/ BOY 输出结果: } A‘AH
注意: getchar()函数得到的字符可以赋给 一个字符变量或者整型变量,也可以不赋给 任何变量,而作为表达式的一部分。
#include<stdio.h> main() { char c; c = getchar() + 32; putchar(c); }
2013-8-4
A a
24
4.5 格式输入输出函数
其执行过程是:先进行赋值运算(将b的值赋给a), 然后判断a是否大于0,如大于0,执行t=a。
2013-8-4 11
4.2 赋值语句
C语言中的赋值号“ = ‖是一个运算符。
赋值表达式和赋值语句不同,赋值表达式 可以被包含在其它表达式之中,而赋值语句 则不行。
(a=b)>0是一个关系表达式 如: if ( ( a=b )>0 ) t=a; a=b是一个赋值表达式 如果写成: if ((a=b ; )>0) t=a;
2013-8-4 29
printf()函数格式的进一步说明:
【例二】求运行结果。 结果: 格式字符(规定了输出的数据形式): main() -30,177742,ffe2,65506,Γ { %d 输出十进制整数 int a= -30; %x 以十六进制无符号形式输出整数 printf("%d,%o,%x,%u,%c",a,a,a,a,a); %o 以八进制无符号形式输出整数 }
%u %f %s %c
以无符号十进制数形式输出整数 【例一】求运行结果。 输出小数形式浮点数(double型用%lf) main() 结果: { 输出字符串 30,36,1e,30,▲ int a=30; 输出单字符printf("%d,%o,%x,%u,%c",a,a,a,a,a);
}
2013-8-4
2013-8-4 22
二、getchar函数(字符输入函数)
注意: 当输入多个字符时,多余字符作废 (按回车后才开始接收字符)
#include<stdio.h> main() { char c; c = getchar(); putchar(c);
aaa a
23
}
2013-8-4
二、getchar函数(字符输入函数)
getchar:输入单个字符
printf:格式输出函数 scanf:格式输入函数 puts:输出字符串
2013-8-4 gets:输入字符串
getchar();
printf(―%c‖, ‗A‘); scanf(―%d‖,&radius); puts(―Hello!‖); gets();
15
C语言库函数已被编译成目标文件(二进制形 式)
源程序必须先编译成目标文件(.OBJ),源程 序中的输入输出函数等库函数,在编译时并 不被翻译成目标指令。
生成好的目标文件(.OBJ )必须与与系统的函 数库(以及其他的目标文件)进行连接,形成 可执行文件(EXE ) 运行EXE文件时,调用已被连接的函数库中 的系统函数。 2013-8-4 16
2013-8-4
8
4.空语句
由一个 “ ; ‖构成。 即: ;
作用:①程序转向点; ②什么也不做的循环体(待开 发)。 while (i<=11); for( i = 0;i<100;i++);
2013-8-4 9
5.复合语句
用 { } 括起的一组语句 。 如:if (x1>x2) { y=x1*x1+x2 ; printf("y=%d",y) ; }
系统函数库 main()
printf()的目标代码
{ int a,b;
a=10; b=20; printf(―a=%d,b=%d‖,a,b); }
2013-8-4
…………… ….
17
2.文件开头应有“#include‖命令
在调用标准输入输出库函数时,文件开头应有 预编译命令: #include <stdio.h> 或 #include ―stdio.h‖ stdio.h是“头文件”,包含了与用到的标准输 入输出函数有关的信息。 系统允许在使用 printf 和 scanf 两个函数时可 以不加“#include‖命令。
30
#include<stdio.h>
main() { char c1=‗a‘, c2=‗b‘, c3=‗c‘, c4=‗\101‘, c5=‗\116‘; printf(―a%c□b%c\tc%c\tabc\n‖,c1,c2,c3); printf(―\t\b%c□%c‖,c4,c5); }
错了。在if的条件中不能包含赋值语句a=b;
2013-8-4 12
4.2 赋值语句
赋值语句只能作为一条单独的语句, 或者放在复合语句中。 赋值语句用途很广。
2013-8-4
13
4.3 数据输入输出的概念及在C语言中的实现 一、数据输入输出的概念
计算机的输入输出是以计算机主机为主体而言 输入:从外部通过输入设备(键盘,磁盘,光盘, 扫描仪等)向计算机输入数据。 输出:从计算机向外部设备(显示屏,打印机, 磁盘等)输出数据。 stdin:标准输入(standard input) stdout:标准输出(standard output)
2.函数调用语句 由一次函数调用加一个“ ; ‖构成。
如:printf(“Hello World!”) ;
函数调用 分号
2013-8-4
7
3.表达式语句
由表达式加上“ ; ‖构成。
x+4*y; /*算术表达式语句*/ 4*7,4+8; /*逗号表达式语句*/ x=4*7; /*赋值表达式语句*/