第4章 清华大学 最简单的c程序设计.ppt_第1页
第4章 清华大学 最简单的c程序设计.ppt_第2页
第4章 清华大学 最简单的c程序设计.ppt_第3页
第4章 清华大学 最简单的c程序设计.ppt_第4页
第4章 清华大学 最简单的c程序设计.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 C语句概述 3.2 程序的三种基本结构 3.3 赋值语句 3.4 数据输入输出的概念及在语言中的实现 3.5 字符数据的输入输出 3.6 格式输入与输出 3.7 顺序结构程序设计举例 习题,第3章 最简单的c程序设计顺序程序设计,图3.1,C语句可以分为以下5类: 控制语句,完成一定的控制功能。 if()else(条件语句) for() (循环语句) while() (循环语句) dohile() (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句

2、),(2) 函数调用语句。 由一次函数调用加一个分号构成一个语句, 例如:printf(this is a c statement);,(3) 表达式语句。由一个表达式构成一个语句,最典型的是,由赋值表达式构成一个赋值语句。 a=3 是一个赋值表达式,而 a=3; 是一个赋值语句。 i=i+1(是表达式,不是语句) i=i+1;(是语句),(4) 空语句。下面是一个空语句: ; 即只有一个分号的语句 (5) 可以用 把一些语句括起来成为复合语句,又称分程序。 z=x+y; t=z/100; printf(%f,t); ,3.2 程序的三种基本结构 三种基本结构: 顺序结构 (2) 选择结构 (

3、3) 循环结构,3.3 赋值语句 赋值语句是由赋值表达式加上一个分号构成。 (1) C语言中的赋值号“=”是一个运算符,在其他大多数语言中赋值号不是运算符。 (2) 关于赋值表达式与赋值语句的概念,其他多数高级语言没有“赋值表达式”一概念。作为赋值表达式可以包括在其他表达式之中,例如: if(a=b)0)t=a;,3.4 数据输入输出的概念及在C语言中的实现 (1) 输入输出概念 (2) C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。在c标准函数库中提供了一些输入输出函数,例如: putchar(输出字符) getchar(输入字符) printf(格式输出) scanf(格式

4、输入) (3) 在使用c语言库函数时, 文件开头应有以下预编译命令: #include 或#include studio.h,3.5 字符数据的输入输出 3.5.1 putchar函数(字符输出函数) 作用:输出一个字符 例如: char a,b,c; a=b; b=o; c=y; putchar(a); putchar(b); putchar(c); putchar(n); putchar(u); putchar(n); 括号里可以是:字符变量,字符常量,控制字符,若正常输出,还能返回该字符的ASCII码 char c; int m; c=a; m=putchar(c); putchar(n

5、); printf(“%dn”,m);,3.5.2 getchar函数(字符输入函数) 作用:读取用户从终端(键盘)输入一个字符。 一般形式为:getchar() 例如: char c1=getchar(); char c2=getchar(); char c3=getchar(); printf(%cn,c1); printf(%cn,c2); printf(%cn,c3);,3.6.1 printf函数(格式输出函数) 作用:输出若干个任意类型的数据 格式:printf(格式控制,输出表列) 如:printf(%d%cn,i,c),3.6 格式输入与输出,2. 格式字符 d格式符。用来输出

6、十进制整数。 %d按整型数据的实际长度输出。 int a; a=123; printf(12345678901234567890n); printf(%dn,a);, %md m为指定的输出字段的宽度。 如果数据的位数小于m,则左端补以空格, 若大于,则按实际位数输出。 int a,d; a=123; d=12345; printf(12345678901234567890n); printf(%4dn,a); printf(%4dn,d);, %ld 输出长整型数据。 long int c; c=135790; printf(12345678901234567890n); printf(%l

7、dn,c); printf(%4ldn,c); printf(%8ldn,c);,(2) o格式符,以八进制数形式输出整数。由于是将内存单元中的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如: int a; a=-1; printf(12345678901234567890n); printf(%on,a); long b; b=-1; printf(%lon,b); 10000000 00000000 00000000 00000001(原) 11111111 11111111 11111111 11111110(反) 111111

8、11 11111111 11111111 11111111(补) 37777777777,(3) x格式符,以十六进制数形式输出整数。 同样不会出现负的十六进制数。 int a; a=-1; printf(12345678901234567890n); printf(%xn,a); printf(%10 xn,a); 10000000 00000000 00000000 00000001(原) 11111111 11111111 11111111 11111110(反) 11111111 11111111 11111111 11111111(补) ffffffff,(4) u格式符,用来输出无

9、符号数,以十进制形式输出。 一个有符号整数(int型)也可以用%u格式输出; 反之,一个unsigned型数据也可以用%d格式输出。 unsigned型数据也可用%o或%x格式输出。 unsigned int a=4294967295; signed int b=-2; printf(%dn,a); printf(%on,a); printf(%xn,a); printf(%un,a); printf(%dn,b); printf(%on,b); printf(%xn,b); printf(%un,b); 11111111 11111111 11111111 11111111 10000000

10、 00000000 00000000 00000010(原) 11111111 11111111 11111111 11111101(反) 11111111 11111111 11111111 11111110(补),(5) c格式符,用来输出一个字符。 一个整数,只要它的值在0255范围内,也可以用字符形式输出,在输出前,系统会将该整数作为ascii码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。 char w=a; int i=97; int y=256+97; printf(%c%dn,w,w); printf(%c%dn,i,i); printf(%c%dn,y,y); p

11、rintf(%3c%dn,w,w); 00000000 00000000 00000001 00000000(256) 00000000 00000000 00000001 01100001(97) 00000000 00000000 00000001 01100001(353),(6) s格式符,用来输出一个字符串。有几种用法: %s,例如:printf(%s,china) 输出“china”字符串(不包括双引号)。 %ms,输出的字符串占列,如字符串本身长度大于m,则突破的限制,将字符串全部输出。若串长小于m,则左补空格。 %-ms,如果串长小于,则在列范围内,字符串向左靠,右补空格。 %

12、mns,输出占列,但只取字符串中左端n个字符。这n个字符输出在列的右侧,左补空格。 %-mns,其中、n含义同上,n个字符输出在列范围的左侧,右补空格。如果n,则自动取n值,即保证n个字符正常输出。,printf(12345678901234567890n); printf(%sn,china); printf(%8sn,china); printf(%-8s|n,china); printf(%3sn,china); printf(%7.2sn,china); printf(%-7.2s|n,china); printf(%.4sn,china);,(7) f格式符,用来输出实数(包括单、双

13、精度) %f,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。应当注意,并非全部数字都是有效数字。单精度实数的有效位数一般为7位。 printf(12345678901234567890n); float x,y; x=111111.111; y=222222.222; printf(%fn,x+y);,双精度数可用%lf格式输出,它的有效位数一般为16位,给出小数6位。 printf(12345678901234567890n); double x,y; x=1111111111111.111111111; y=2222222222222.222222222; pri

14、ntf(%lfn,x+y);,%nf指定输出的数据共占列,其中有n位小数。如果数值长度小于,则左端补空格。 %-nf 使输出的数值向左端靠,右端补空格。 printf(12345678901234567890n); float f; f=123.456; printf(%fn,f); printf(%12fn,f); printf(%12.2fn,f); printf(%.2fn,f); printf(%-12.2f|n,f);,(8) e格式符,以指数形式输出实数。 %e 6位小数, 5位指数 %m.ne和%-m.ne。此处n表示小数位数。 printf(123456789012345678

15、90n); float f; f=123.456; printf(%en,f); printf(%10en,f); printf(%15en,f); printf(%15.2en,f); printf(%.2en,f); printf(%-15.2e|n,f);,(9) g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出尾随的无意义的零。 printf(12345678901234567890n); float f; f=123.456; printf(%fn,f); printf(%en,f); printf(%gn,f);,3.6.2 s

16、canf函数(格式输入函数)4-6 1. 一般形式 scanf(格式控制,地址表列) int a,b,c; scanf(%d%d%d, 输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键、跳格键tab。,2. 格式说明 (1) 对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 (2) 可以指定输入数据所占列数,系统自动按它截取所需数据。 int a,b; scanf(%3d%3d, 123456,此方法也可用于字符型: scanf(“%3c”, sdfghj,(3) 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 int a,b; scanf(%

17、2d %*3d %2d, 12 345 67,(4) 输入数据时不能规定精度,例如, scanf(%72f, char b; float c; scanf(%d%c%f, 若输入 1234 a 123o.26 a b c 字母o,3.7 顺序结构程序设计举例,下面介绍几个顺序程序设计的例子。 例3.10输入三角形的三边长,求三角形面积。 为简单起见,设输入的三边长a、b、c能构成三角形。从数学知识已知求三角形面积的公式为 其中s=(a+b+c)/2 据此编写程序如下: include ain() ,float a,b,c,s,area; scanf(%f,%f,%f, c1=getchar()

18、; printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); 运行情况如下: A A,65 a,97,用getchar函数得到从键盘上输入的大写字母a,赋给字符变量c1。将c1分别用字符形式(a)和整数形式(65)输出。再经过运算得到小写字母a, 赋给字符变量c2,将c2分别用字符形式(a)和整数形式(97)输出。 例3.12求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac0。 众所周知,一元二次方程式的根为 可以将上面的分式分为两项:,据此编写程序如下: include ain(); float a,b,c,disc,x1

19、,x2,p,; scanf(a=%f,b=%f,c=%f, 运行情况如下: a=1,b=3,c=2 x1=-100 x2=-200 注意程序中用了预处理命令include 。,3.8习题 3.1 C语言中的语句有哪几类?C语句与其他语言中的语句有哪些异同? 3.2 怎样区分表达式和表达式语句?C语言为什么要设表达式语句?什么时候用表达式,什么时候用表达式语句? 3.3 C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?,3.4 若a=3,b=4,c=5,x=12,y=24,z=-36,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下: a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=a or 97(ascii) c2=b or 98(

温馨提示

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

评论

0/150

提交评论