第3章基本输入输出和顺序程序设计
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
c语言第03章

活期存款一年后本息和为: p1=p0(1+r1) 一年期定期存款,一年后本息和为: p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
r3 r3 p3 = p0(1 + )(1 + ) 2 2
6
3.1顺序程序设计举例
算法:
输入p0,r1,r2,r3的值 计算p1=p0(1+r1) 计算p2=p43; r 3 )
2 2
输出p1,p2,p3
7
3.1 顺序程序设计举例
#include <stdio.h> 定义变量同时赋予初值 int main ( ) {float p0=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); return 0; }
\„ \ddd \“ 单引号 例 void main() { printf(“Y\b=\n”);\xhh 3位8进制数代表的字符 aaa }
转义字符:反斜线后面跟一个字符或一个代码值表示
<
双引号 运行结果: 2位16进制数代表的字符 屏幕显示:= 15 打印机输出:¥
C语言程序设计
第3章 最简单的C程序设计
19
C语言程序设计
第3章 最简单的C程序设计
3.2.3不同类型数据间的转换
1.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式
第3章 最简单的C程序设计[详版课资]
![第3章 最简单的C程序设计[详版课资]](https://img.taocdn.com/s3/m/44edddb04afe04a1b071defb.png)
说明
➢ 两个整数相除的结果为整数
如5/3的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结 果为-1,在有的系统中则得到结果为-2
VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠拢
➢ % 运算符要求参加运算的运算对象(即操作数) 为整数,结果也是整数。如8%3,结果为2
p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3);
return 0;
}
课堂优质
8
3.2 数据的表现形式及其运算
3.2.1 常量和变量
3.2.2 数据类型
3.2.3 整型数据
3.2.4 字符型数据
3.2.5 浮点型数据
课堂优质
11
3.2.1 常量和变量
3.常变量:const int a=3; 4.标识符:一个对象的名字大小写字母是不同的字符 ➢ C语言规定标识符只能由字母、数字和下划线3
种字符组成,且第一个字符必须为字母或下划线 ➢ 合法的标识符:如sum,average, _total,
Class, day, BASIC, li_ling ➢ 不合法的标识符:M.D.John,¥123,#33
(2) 如果int型与float或double型数据进行运算, 先把int型和float型数据转换为double型,然 后进行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
课堂优质
30
3.2.7 运算符和表达式
计算机二级C语言课件第3章最简单的C程序设计1-改

例3.2
解题思路:确定计算本息和的公式。
从数学知识可知:若存款额为p0,则: 活期存款一年后本息和为:
p1=p0(1+r1) 一年期定期存款,一年后本息和为:
p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
p3 = p0(1+ r3)(1+ r3 ) 22
例3.2
#include <stdio.h> int main ( )
一个字符变量在内存中占一个字节。
字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,, 而是将该字符的相应的ASCII代码放到存 储单元中。例如字符‘a’的ASCII代码为 97,‘b’为98,在内存中变量c1、c2的值如图
(a)所示。实际上是以二进制形式存放的,如 图(b)所示。P48
[signed ] int unsigned int
注意: 取值范围 举例P47
例:
#include<stdio.h>
void main( )
运行结果:
{int a,b,c,d;
a十u=22,b+u=-14
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d ,b+u=%d”,c,d);
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
• 字符常量如的值‘:a’该字‘A符’ 的‘?’ASC‘I\nI’码值‘\101’
• 转转义义字字如符符:反及‘‘斜其A0’’线含——后义——面:6458跟P,4,一0表‘‘个\n3a字’.’——1符——或190一7,个代码值表示
重庆出版,李勇主编的大一C语言课程第3章

第3章 顺序结构程序设计
C语言中有如下三条语句可以构成循环结构:while语 句、do while语句、for语句
while
do while
第3章 顺序结构程序设计
• 3.3 数据的输入输出
C语言所有的输入和输出操作都是通过多种输入输出函数来实现的。 3.3.1 数据输出语句
printf函数 是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特 例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的 一般形式为: printf(“格式控制字符串”,输出表列)其中格式控制字符串 用于指定输出格式。 格式控制串可由格式字符串和非格式字符串两种组 成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说 明输出数据的类型、形式、长度、小数位数等。如“%d”表示按十进制整 型输出,“%ld”表示按十进制长整型输出,“%c”表示按字符型输出等。
第3章 顺序结构程序设计
例: 单步执行程序。
第一步:输入程序代码,程序代码如下:
main() { printf("I am a student,\n"); printf("And you?\n"); }
第二步:单步执行程序。按功能键F7
第3章 顺序结构程序设计
顺序结构的流程图
图3.1 顺序结构传统流程图
– 2、标志
» 标志字符为 -、+、#、空格四种,其意义下表所示:
标志格式字符
标志意义
+ 空格
结果左对齐,右边填空格 输出符号(正号或负号) 输出值为正时冠以空格,为负时冠以负号
#
对c,s,d,u类无影响;对o类,
第03章 最简单的C程序设计—顺序程序设计

——顺序程序设计
(3) 表达式语句。 由一个表达式构成一个语句,最典 型的是,由赋值表达式构成一个赋值语句。 a=3 是一个赋值表达式,而 a=3; 是一个赋值语句。可以看到一个表达式的最后加一个 分号就成了一个语句。一个语句必须在最后出现分号, 分号是语句中不可缺少的一部分(而不像pascal语言那样, 分号只是语句间的分隔符号)。例如: i=i+1 (是表达式,不是语句) i=i+1; (是语句)
选择奥翔 成就梦想
——顺序程序设计
#include <stdio.h> main() { char a,b,c; a='b';b='o';c='y'; putchar(a);putchar(b);putchar(c); } 运行结果: boy 也可以输出控制字符,如putchar(‘\n’)输出一个换 行符,使输出的当前位置移到下一行的开头。如果将 例3.1程序最后一行改为
选择奥翔 成就梦想
——顺序程序设计
它们在连接阶段与由源程序经编译而得到的目标 文件相连接,生成一个可执行的目标程序。如果在 源程序中有printf函数,在编译时并不把它翻译成目 标指令,而是在执行阶段中调用已被连接的函数库 中的printf函数。由于c编译系统与c函数库是分别进 行设计的,因此不同的计算机系统所提供函数的数 量、名字和功能是不完全相同的。不过,有些通用 的函数(如printf和scanf等),各种计算机系统都提供, 成为各种计算机系统的标准函数。c语言函数库中有 一批‚标准输入输出函数‛ ,它是以标准的输入输 出设备(一般为终端设备)为输入输出对象的。
选择奥翔 成就梦想
——顺序程序设计
第3章顺序结构程序设计
第3章顺序结构程序设计第3章最简单的C程序设计——顺序程序设计本章要求1、掌握程序的三种基本结构特点及其控制语句的使⽤。
2、重点掌握数据输⼊、输出函数及其格式控制。
3、熟悉Turbo C环境的使⽤,头⽂件,帮助系统的使⽤(Ctrl+F1)。
3.1程序的三种基础结构顺序、选择、循环。
3.2 C语句概述C程序结构如图:⼀个C程序可以由多个源程序⽂件构成,Turbo C⽤“⼯程⽂件”(prj:Project)来描述该程序由那些源程序⽂件构成。
所有这些源程序⽂件经过分别编译后形成各⾃的⽬标⽂件,经连接程序LINK后形成⼀个EXE⽂件。
⼀个源程序⽂件由若⼲函数和“预编译命令”构成。
函数包括数据定义部分(变量定义)和执⾏部分,执⾏部分是C语⾔语句,完成对数据的操作。
C语句有以下五类:1、控制语句,完成程序流程控制。
if()~else~条件语句for()~循环语句while()~循环语句do~while() 循环语句continue 结束本次循环语句break 中⽌switch或循环语句switch 多分⽀选择语句goto 转向语句return 从函数返回语句( )表⽰条件,~表⽰内嵌的语句,若有多个语句既复合语句⽤{}括起来。
2、函数调⽤语句。
例、printf("This is a C statement."); /* 该语句调⽤函数printf() */3、表达式语句:在表达式后⾯加分号构成。
例:a = 3 /* 后⾯⽆分号,是表达式 */a = 3; /* 后⾯有分号,是语句 */i++; /* 语句 */4、空语句:仅包含⼀个分号的语句,例、;5、复合语句:由⼤括号{ }括起来的语句序列。
例、{ z = x + y;t = z / 100;printf("%f",t);}注:C语⾔允许⼀⾏写多个语句,也允许⼀个语句写多⾏。
3.3 赋值表达式和赋值语句⼀、赋值表达式1。
第三章 输入输出函数与顺序结构程序设计
3.1格式化输出函数printf( )
案例3-1 计算三个学生的平均成绩 存放三个学生的考试成绩 显示三个学生的成绩 计算平均分后显示该信息
程序代码
/*代码文件名:code3_1.c*/ #include <stdio.h> main() { int score1=12,score2=23,score3=25; /*定义并初始化三个学生成绩 */ float avg; /*输出三个学生成绩*/ printf("score1=%d, score2=%d, score3=%d\n", score1, score2, score3); avg=( score1+ score2+ score3)/3.0;/*计算平均分*/ printf("平均分avg=%f\n",avg); /*输出平均分*/ }
非格式字符
如果格式控制串中有非格式字符则输入时也要 输入该非格式字符。 例如: scanf("%d,%d,%d",&a,&b,&c); 其中用非格式符“ , ”作间隔符,故输入 时应为: 5,6,7 又如: scanf("a=%d,b=%d,c=%d",&a,&b,&c); 则输入应为: a=5,b=6,c=7
尽量不要在输出语句中改变输出变量的值,因 为可能会造成输出结果的不确定性。例如:int k=8;printf(“%d,%d\n”,k,++k);输出结果不是8, 9,而是9,9。这是因为调用函数printf时,其 参数是从右至左进行处理的,将先进行++k运 算。 输出数据时的域宽可以改变。若变量m、n、i 和f都已正确定义并赋值,则语句 printf(%*.*f,m.n,f);将按照m和n指定的域宽 输出浮点型变量f的值,并不输出m、n的值。
四川大学《c语言程序设计》课件-第3章 键盘输入与屏幕输出
Please input a and b: 123456↙ a=12, b=56, a+b = 68
30/44
输入数据的格式控制——例3.9
#include <stdio.h> main() {
int a, b;
12 34↙
scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); }
%d decimal 以带符号十进制整数输出
%f float 以小数形式输出浮点数(6位小数)
%e exponent 以标准指数形式输出(6位小数)
%g
选用%f,%e中输出宽度较小的一种格式
%o octal 以八进制无符号整数输出(无前导0)
%x hex
以十六进制无符号整数输出(无前导0x)
%u unsigned 以十进制无符号整数输出
例:
printf("Value is:%10f", 32.6784728);
6 digits (default) Value is: 32.678473
10 个字符长度
19/44
printf 函数 – 浮点数输出
例:
printf("Value is:%10.5f", 32.6784);
5 digits Value is: 32.67840
break
do~while() return
变量定义语句
int a, b, c; 表达式语句
c = a + b; 函数调用语句
printf("Hello World!"); 复合语句 空语句
C语言电子教案第3章 输入输出及顺序结构
o
o
o
在%与格式符之间插入一个整数表示指定输出的宽度.若 指定的输出宽度大于实际数据的宽度,那么数据向右靠齐, 左边补空格;若指定的宽度小于实际数据的宽度,那么按 实际数据的宽度输出. 可以采用"m.n"的格式修饰格式符来输出一个实数,这里m 和n是两个整数. 对于字符串,采用"m.n"的附加格式符来修饰格式符表示 指定字符串的总宽度为m,不足m则向右靠齐,左补空格.n 表示指定截取实际字符串的前n个字符输出.也可以省略m, 不指定总宽度. 可以在宽度之前加一个""来指定输出的数据向左靠齐.
输出表列 o 输出表列是需要输出的数据,可以是变量,常量或表达 式.输出表列可以是零项,一项或多项,若多于一项则 各项之间用逗号分隔. o 输出表列和格式说明符在个数与类型上应相匹配. 例如,printf("\n x = %d , y = %f ", x , y+1);
3.2 常用输出与输入函数 printf的格式说明符
3.2 常用输出与输入函数
程序的运行结果是: 57 5 7 67.856400,-789.124023 67.856400,-789.124023 67.86,-789.12,67.856400,789.124023,67.856400,-789.124023 6.785640e+01,-7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER,COM
3.2 常用输出与输入函数
printf函数在使用时的注意事项
printf函数可以输出常量,变量和表达式的值.但 格式控制中的格式符必须按从左到右的顺序,与 输出项表中每个数据在类型上一一匹配,否则将 导致数据输出错误. 类型转换字符x,e,g可以用小写字母,也可以用大 写字母.使用大写字母时,输出数据中包含的字 母也要大写.除x,e,g外,其他类型转换字符必须 用小写字母,例如%f不能写成%F. 在输入long整型数据时,一定要使用格式%ld.如 果只用了%d,将输出错误数据. 若需要输出百分号"%",则应在格式串中用连续 的两个百分号"%%"表示. 类型转换字符紧跟在"%"后面时作为类型转换字 符,否则将作为普通字符处理. printf函数的返回值通常是本次调用中输出字符的 个数.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.格式说明 一般格式为:%[<修饰符>]<格式字符> 格式字符规定了输出项的输出格式,常用格式字符见表3-2
表3-2输出格式字符
格式字符 d o 或O x 或X u c s f e g 意义 按十进制整数输出 按八进制整数输出 按十六进制整数输出 按无符号整数输出 按字符型输出 按字符串输出 按浮点型小数输出 按科学计数法输出 按e和f格式中较短的一 种输出 举 例 printf("%d",a) printf("%o",a) printf("%x",a) printf("%u",a) printf("%c",a) printf("%s","aba") printf("%f",x) printf("%e",x) printf("%g",x) 65 101 41 65 A abc 3.141593 3.141593e+00 3.141593 输出结果
3.1
数据输入输出的概念
所谓输入输出是指以计算机的输入设备(键盘、磁盘、光 盘和扫描仪等)向计算机输入数据称为“输入”;从计算 机向外部输出设备(显示器、磁盘、打印机等)输出数据 称为“输出”。 在C语言中,不提供专门的输入输出语句,所有的输入 输出操作都是通过对标准库函数的调用来实现的(例 如:printf函数和scanf函数),因此都是函数语句。在使用 库函数时,不要将它们误认为是C语言提供的输入和输出语 句,特别是printf和scanf并不是C语言的关键字,它们只是 函数的名字。C语言提供的函数以库的形式存放在系统中, 它们不是C语言文本中的组成部分。因此在使用C语言库函 数时,要使用预编译命令#include 将相关的头文件(*.h) 包含到用户源文件中。 使用形式: #include ―头文件” 或 #include <头文件>
字符输入函数——getchar() getchar()函数的格式:getchar();
getchar()函数的作用:从系统的输入设备键盘输入一个字符。
从功能角度来看,scanf()函数可以完全代替getchar()函数。 例:char c1; 则c1=getchar(); 可使用等价语句: scanf("%c",&c1);
例如:scanf(―%d%*d%d‖,&x,&y,&z);执行该语句,若输入为“123 ”
结果为x=1,y=3,z未赋值,2被跳过。
2.普通字符 普通字符包括空格、转义字符和可打印字符。 (1)空格
在有多个输入项时,一般用空格或回车作为分隔符,若以空格作分隔 符,则当输入项中包含字符类型时,可能产生非预期的结果,例如: scanf("%d%c",&a,&ch); 输入32 q
期望a=32,ch=q,但实际上,分隔符空格被读入并赋给ch。
(2)可打印字符
例如:scanf("%d,%d,%c",&a,&b,&ch);
当输入为:1,2,q
即:a=1,b=2,ch=q
若输入为1 2 q 除a=1正确赋值外,对b与ch的赋值都不能正确赋值。 这些不打印字符应是输入数据分隔符,scanf在读入时自动去除与可打印 字符相同的字符。
putchar() 函数的格式和使用方法举例:
[例3-1] 输出单个字符。 #include "stdio.h" /*编译预处理命令:文件 包含*/ main() { char ch1='N', ch2='E', ch3='W'; putchar(ch1);putchar(ch2);putchar(ch3); /*输出*/ putchar('\n');putchar(ch1);putchar('\n'); /*输出ch1的值, 并换行*/ putchar('E');putchar('\n'); /*输出字符'E',并换行*/ putchar(ch3); putchar(‗\n'); } 程序运行后,先输出字符NEW,然后换行分别输出单个字符 N、E、和W('\n'是转义字符表示换行输出)。
}
程序运行的输出结果如下:
3.3.2 数据格式输入——scanf()函数
scanf()的功能:从键盘上输入数据,该输入数据按指 定的输入格式被赋给相应的输入项。 函数一般格式为: scanf("控制字符串",输入项地址列表); 控制字符串规定数据的输入格式,其内容由格式说明和 普通字符两部分组成。 输入项地址列表由一个或多个变量地址组成,各变量地 址之间用逗号“,‖分隔。 scanf()中各变量要加地址操作符,表示如下: &变量名
getchar()函数的格式和使用举例: #include<stdio.h> /*文件包含*/ main() { char ch; printf("Please input two character: "); ch=getchar(); /*输入1个字符并赋 给ch */ putchar(ch); putchar('\n'); putchar(getchar()); /*输入一个字符并输出*/ putchar('\n'); }
3.3.1 数据格式输出——printf()函数
(3)长度修饰符 l和h 可以与输出格式字符d、 f、u等连用,以说明是 用long型或short型格式 输出数据,如: %hd 短整型 %lf 双精度型 %ld 长整型 2.普通字符 普通字符包括可打印字符和转义 字符。 可打印字符是一些说明字符, 这些字符按原样显示在屏幕上
控制字符串的两个组成部分:格式说明和普通字符。
1. 格式说明
格式说明规定输入项中的变量以何种类型的数据格式被输入, 形式是:
格式字符 d o x f e c s
%[<修饰符>]<格式字符>
意义 输入一个十进制整数 输入一个八进制整数 输入一个十六进制整数 输入一个小数形式的浮点数 输入一个指数形式的浮点数 输入一个字符 输入一个字符串
printf("%2d, %2.1f\n",a,x);
} 程序的运行结果如下:
(2)对齐方式修饰符 一般的输出数据为右对齐格式,加“-‖号,变为“左对齐”方 式。 例如:void main() { int i=123;
float a=12.34567;
printf("%6d%10.4f\n",i,a); printf("%-6d%10.4f\n",i,a); printf("%6d%-10.4f\n",i,a); }程序运行结果如图所示:
M 0m m.n
%md %0md %m.nf
例如: void main() { int a=123; float x=12.345678; printf("%5d, %5.2f\n",a,x); 说明: 当指定宽度小于数据 的实际宽度时,对整 数,按该数的实际宽 度输出。 对浮点数,相应小数 位的数四舍五入。若 度宽小于等于浮点数 整数部分的宽度,则 该浮点数按实际位数 输出,但小数位数仍 遵守宽度修饰符给出 的值。
(1) 字段宽度修饰符 该修饰符用于确定数据输出的宽度、精度、小数位数、对齐 方式等,用于产生更规范整齐的输出,表3-3列出了字段宽度修 饰符。 表3-3 字段宽度修饰符
修饰符 格式 说明意义 以宽度m输出整型数,不足m时,左补空格 以宽度m输出整型数,不足m时,左补零 以宽度m输出实型小数,小数位为n位
表3-5输入格式字符
各修饰符是可选的,这些修饰符是:
(1)字段宽度
例:scanf("%3d",&a);输入123456,按宽度3输入一个整数123赋给变量a
(2) l和h
可与d、o、x一起使用,l表示输入数据为长整数,h表示输入数据 为短整数,例:scanf("%ld%hd",&x,&i);x按长整型读入,i按短整数读入。 (3)字符* 表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。
printf()
putchar() getch()
scanf()
getchar() getche()函数 等
3.2 字符数据的输入输出
C语言标准I/O库函数中最简单的、也是最容易理解的字符输 入输出函数putchar()函数(字符输出函数)和getchar() 函数(字符输入函数) 字符输出函数——putchar( ) putchar()函数的格式: putchar(ch); 该函数的功能是向显示器终端输出一个字符。其中,ch可以是一 个字符变量或常量,也可以是一个转义字符。 说明: (1)putchar()函数只能用于单个字符的输出,且一次只能输出 一个字符。 (2)从功能角度printf()函数可以完全代替putchar()函数,其等 价形式:printf("%c",ch)。
ቤተ መጻሕፍቲ ባይዱ
等输入xy后就是上述结果 说明: (1) getchar()函数用于单个字符的输入,一次输入一个字符; 即使输入的是数字也按字符处理。当输入多个字符时,只能接 收第一个字符。 (2)在使用本函数前必须包含文件”stdio.h‖。 (3)当运行程序时,系统会进入用户屏幕,提示并等待用户输 入字符xy。在输入完毕分两行显示运行结果。
各个格式字符及其意义见表3-5
举例 scanf("%d",&a) scanf("%o",&a) scanf("%x",&a) scanf("%f",&x) scanf("%e",&x) scanf("%c",&ch) scanf("%s",ps) 输入形式 15 015 0x15 35680 3.568e+3 A ABCD