《简单程序》PPT课件.ppt_第1页
《简单程序》PPT课件.ppt_第2页
《简单程序》PPT课件.ppt_第3页
《简单程序》PPT课件.ppt_第4页
《简单程序》PPT课件.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

,第四章,最简单的c程序设计,主要内容,4.1 C语句概述 4.2 赋值语句 4.3 数据输入输出的概念及在c语言中的实现 4.4 字符数据的输入输出 4.5 格式输入与输出 4.6 顺序结构程序设计举例, 4.1 C语句概述, 4.1 C语句概述,一个c程序可以由若干个源程序文件组成 一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成 一个函数由函数首部和函数体组成 函数体由数据声明和执行语句组成 C语句分为, 4.1 C语句概述,(一)控制语句完成一定的控制功能 1 if() else 条件语句 2 for() 循环语句 7 switch() 开关语句 3 while() 循环语句 8 goto 转向语句 4 do while() 循环语句 9 return 返回语句 5 continue 结束本次循环 6 break 终止switch语句或循环, 4.1 C语句概述(续), 4.1 C语句概述(续),a = 2b * 3c -2 ;, 4.1 C语句概述(续), 4.1 C语句概述(续), 4.2 赋值语句,赋值语句是由赋值表达式加上一个分号构成 例:a=100 赋值表达式 a=100; 赋值语句 条件不能是赋值表达式,但是赋值表达式 可以包含于条件表达式中 例:if(a=b) t=a; 并不是判断a=b if(a=b)0) t=a; 正确, 4.3 数据输入输出的概念及在C语言中的实现,(一).输入输出是以计算机主机为主体而言的 输出:从计算机向外部输出设备(显示器,打印机) 输出数据 输入:从输入设备(键盘,鼠标,扫描仪)向计算机 输入数据., 4.3 数据输入输出的概念及在C语言中的实现,(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的 例如: 字符输入函数: getchar 字符输出函数:putchar 格式输入函数: scanf 格式输出函数: printf 字符串输入函数:gets 字符串输出函数:puts, 4.3 数据输入输出的概念及在C语言中的实现,(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中. 例如:在调用标准输入输出库函数时,文件开头应该有: #include “stdio.h” 或: #include ,头文件, 4.4 字符数据的输入输出,(一).字符输出函数 一般形式:putchar(c) 函数作用:向终端输出一个字符,字符型变量或整型变量, 4.4 字符数据的输入输出(续),运行结果:BO Y,#include void main() char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(n); putchar(c); ,#include void main() putchar(103); putchar(015); putchar(x42); ,ASCII值 代码: 42 * 66 B 67 C 103 q 13 CR(回车,但不换行),8 进制 十进制 十六进制: 15 13 D 42 34 22 102 66 42 103 67 43, 4.4 字符数据的输入输出(续),(二).字符输入函数 一般形式:getchar() 函数作用:从终端(或系统隐含指定的输入设备)输入一个字符。 函数值: 从输入设备得到的字符。, 4.4 字符数据的输入输出(续),例4.2 输入单个字符 #include void main() char c; c=getchar(); putchar(c); putchar(n); , 4.5 格式输入与输出,(一).格式输出函数 函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。 一般格式:printf(格式控制,输出表列),%d:以带符号的十进制形式输出整数 %o:以八进制无符号形式输出整数 %x:以十六进制无符号形式输出整数, 4.5 格式输入与输出(续),%u:以无符号十进制形式输出整数 %c:以字符形式输出,只输出一个字符 %s:输出字符串 %f:以小数形式输出单,双精度数,隐含输出六位小数 %e:以指数形式输出实数 %g:选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0, 4.5 格式输入与输出(续),几种常见的格式符的修饰符:,L:用于长整型整数,可加在格式符d,o,x,u前面 用于double型浮点数,可加在格式符f,e前面 M(代表一个正整数):数据最小宽度 N(代表一个正整数):对实数,表示输出n位小数; 对字符串,表示截取的字符个数 :输出的数字或字符在域内向左靠,课堂练习:写出以下程序的执行结果,#include void main() long a ; a=65536; printf(“%dn“, a); printf(“%ldn“, a); printf(“%8ldn“, a); printf(“%-8ldn“, a); ,:为指定的输出字段的宽度。如果数据的位数小于, 则左端补以空格,若大于,则按实际位数输出 - , 左对齐,#include void main() double a ; a=1234.12345678; printf(“%fn“, a); printf(“%lfn“, a); printf(“%8.2lfn“, a); printf(“%-8.2lfn“, a); , 4.5 格式输入与输出(续),格式符。用来输出十进制整数。 几种用法: :按十进制整型数据的实际长度输出。 :为指定的输出字段的宽度。如果数据的位数小于, 则左端补以空格,若大于,则按实际位数输出。 :输出长整型数据。 例: ;/* 定义a为长整型变量*/ (,);, 4.5 格式输入与输出(续),(2) 格式符。以八进制整数形式输出。 输出的数值不带符号,符号位也一起作为八进制数的一部分输出。 不会输出带负号的八进制整数。对长整数(型)可以 用“”格式输出。还可以指定字段宽度, 例:(“,); 输出为: 177777。 (数字前有2个空格), 4.5 格式输入与输出(续),(3)格式符。以十六进制数形式输出整数。同样不会出 现负的十六进制数。 例: ; (,); 输出结果为: ffff, 可以用“”输出长整型数,也可以指定输出字段的宽度 例: “”, 4.5 格式输入与输出(续),(4)格式符,用来输出 unsigned int 型数据. 一个有符号整数(int型)也可以用格式输出; 一个unsigned型数据也可以用格式输出。 unsigned型数据也可用或格式输出。,#include void main() int a=-1; printf(“(d): %d n“, a); printf(“(x): %x n“, a); printf(“(o): %o n“, a); printf(“(u): %u n“, a); ,o, x ,u 参数,输出的数值不带符号,符号位也一起作为进制数的一部分输出。,课堂练习:写出以下程序的执行结果,-1 写成原码: 1 000 0000 0000 0001 反码: (负数:除符号位外,其它位取反) 1 111 1111 1111 1110 补码 (负数:,反码+1) 1 111 1111 1111 1111 = FFFF (h) = 177777 (o) = 65535 (d),正数: 原码 = 反码 =补码,负数反码:除符号位外,其它位取反 补码:反码+1,补码的知识,#include void main() int a=-1; printf(“(d): %d n“, a); printf(“(x): %x n“, a); printf(“(o): %o n“, a); printf(“(u): %u n“, a); ,执行结果: (d) : -1 (x) : ffff (o) : 177777 (u) : 65535,(5)格式符,用来输出一个字符。 如: d; (,d); 输出字符. 一个整数,只要它的值在范围内,可以用 “”使之按字符形式输出,在输出前,系统会将该整数 作为ASCII码转换成相应的字符;一个字符数据也可以用 整数形式输出。, 4.5 格式输入与输出(续),例4.4 字符数据的输出。 #include void main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i); ,运行结果: a,97 a,97,#include void main() int a=97; printf(“(c): %3c n“, a); printf(“(x): %3x n“, a); printf(“(o): %3o n“, a); printf(“(u): %3u n“, a); ,课堂练习:写出以下程序的执行结果,(6)s格式符 输出字符串. s。例如: (,) 输出字符串“”(不包括双引号)。 %ms,输出的字符串占m列,若串长大于m,则全部输出,若串长 小于m,则左补空格。 %-ms,若串长小于m,字符串向左靠,右补空格。 %m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的 右侧,左补空格。 %-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自 动取n值。, 4.5 格式输入与输出(续),(7)格式符。用来以小数形式输出实数(包括单双精度) 有以下几种用法: 。不指定字段宽度,由系统自动指定字段宽度,使整数 部分全部输出,并输出位小数。应当注意,在输出的数字中 并非全部数字都是有效数字。单精度实数的有效位数一般为位。 .。指定输出的数据共占列,其中有位小数。如果 数值长度小于,则左端补空格。 .与.基本相同,只是使输出的数值向左端 靠,右端补空格。, 4.5 格式输入与输出(续),例4.6 输出实数时的有效位数(7位)。 #include void () ,; ; (,); ,运行结果: ., 4.5 格式输入与输出(续),例4.7输出双精度数时的有效位数(16位)。 #include void () ,; x=1111111111111.111111111; y=2222222222222.222222222; printf(“%f”,x+y); ,运行结果: 3333333333333.333010, 4.5 格式输入与输出(续),(8)格式符,以指数形式输出实数。 可用以下形式: 。不指定输出数据所占的宽度和数字部分的小数位数. 例: (,); 输出: 6列 5列 所输出的实数共占列宽度。(注:不同系统的规定略有不同),(9)格式符,用来输出实数. 它根据数值的大小,自动选格式或格式(选择输出时占宽度 较小的一种),且不输出无意义的零。,#include “stdio.h“ void main() double a=12345678.456; printf(“a=12345678.456n“); printf(“(f):%lf,n“, a); printf(“(e):%e,n“, a); printf(“(g):%g,nn“, a); a=123.468; printf(“a=123.468n“); printf(“(%f):%f,n“, a); printf(“(%E):%E,n“, a); printf(“(%G):%G,n“, a); , 4.5 格式输入与输出(续),说明: 除了X,E,G外,其他格式字符必须用小写。 可以在printf函数中的“格式控制”字符串中包含转义字符。 一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。 想输出%,则应该在格式控制字符串中用连续两个%表示, 4.5 格式输入与输出(续),(一).格式输入函数 函数作用:按照变量在内存的地址将变量值存 进去。 一般格式:scanf(格式控制,地址表列),同printf函数,是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址,例4.9:,#include “stdio.h“ void main() int a, b, c; scanf(“%d %d %d“, ,a在内存中的地址 &是地址运算符, 4.5 格式输入与输出(续),说明: 对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。 可以指定输入数据所占的列数,系统自动按它截取所需数据。 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 输入数据时不能规定精度。,使用函数时应注意的问题 : (1)函数中的“格式控制”后面应当是变量地址,而不应 是变量名。 (2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符, 则在输入数据时在对应位置应输入与这些字符相同的字符。 (3) 在用“”格式输入字符时,空格字符和“转义字符”都作为 有效字符输入 (4) 在输入数据时,遇以下情况时认为该数据结束。 遇空格,或按“回车”或“跳格”(Tab)键; 按指定的宽度结束,如“”,只取列; 遇非法输入。,#include “stdio.h“ void main() int a, b, c; scanf(“%da%d“, , 4.6 顺序结构程序设计举例,例4.10 输入三角形的三边 长,求三角形面积。 假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s=(a+b+c)*0.5, 4.6 顺序结构程序设计举例(续),#include #include void main() float a,b,c,s,area; scanf(“%f,%f,%f“, ,例:4.11从键盘输入一个大写字母,要求改用小写字母输出,#include “stdio.h“ void main() char c1, c2; puts(“请输入一个大写字母“); c1=getchar(); printf(“%d, %cn“, c1,c1); c2=c1+32; printf(“%d, %c“, c2,c2); , 4.6 顺序结构程序设计举例(续),例4.12 求x2方程的根。 a,b,c由键盘输入,设 。 众所周知,一元二次方程式的根为 x1= x2= 可以将上面的分式分为两项: p= , q= x1=p+q, x2=p-q,例4.12 求方程ax +bx+c=0的根,#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; scanf(“a=%f,b=%f,c=%f“, ,2,练习:简易进制转换工具,要求: 1、提示输入一个指定的十进制数 2、从键盘中输入一个数。 3、将这个数转变成八进制,及十六进制并输出结果。,编程练习:,从键盘中输入火车到达本站时间及火车开到下一站所需时间,计算后输入火车到达下一站的时间。 要求:从键盘中输入火车到达本站的时间(小时和分钟),及及火车开到下一站所需时间(小时和分钟),执行后输入结果,如果该时间超过超过24小时,则从零点开始。例,如输入22:10,经过3:15,计算后结果为25:25,则显示为1:25 执行程序后,显示结果需与下图一致。其中21:18和 4:55为输入的数据,#include “stdio.h“ void main() int h, m, t1,t2, h2,m2,h3,m3; printf(“请输入火车到达本站的时间(如3:20)=“); scanf(“%d:%d“, ,二进制数的补码表示方法:,假设有一 int 类型的数,值为5, 5转换成二制是101 B,那么,它在计算机中如何表示呢: 我们知道:int类型的数占用2字节(TC2.0标准,16位),所以要在它的有效位前面填上一堆0,补足16位。 写成: 00000000 00000101 写成十六进制就是: 00 05 long int 则是:00000000 00000000 00000000 00000101 十六进制就是:00 00 00 05,-5在计算机中如何表示呢? 在计算机中,负数以其正数的补码形式表达。 什么叫补码呢?这得从原码,反码说起。,原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。其最高位为符号位。 如 0000 0000 0000 0101 是十进制数5的原码。 最高位是符号位(正数符号位为0) -5的原码: 1000 0000 0000 0101 负数符号位为1,反码:正数的反码是其本身。 负数的反码: 符号位不变,将其余二进制数按位取反,所得的新二进制数为原二进制数的反码。 取反操作指:原数为1,取反后得0;原为0,得1。(1变0; 0变1),如:将 1000 0000 0000 0101 (-5) 除符号位外每一位取反, 得 1111 1111 1111 1010 称:1111 1111 1111 1010 是 1000 0000 0000 0101 的反码。 反码是相互的,所以也可称: 11111111 11111010 和 10000000 00000101 互为反码。,补码:正数:补码 = 反码 = 原码 负数的补码求法: 求出反码,再加1,(补码加法,如果进位到符号位,会连符号位一起加。) 也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。,比如: 10000000 00000101 的反码是: 11111111 111110

温馨提示

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

评论

0/150

提交评论