《简单C程序设计》PPT课件.ppt
《《简单C程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《简单C程序设计》PPT课件.ppt(42页珍藏版)》请在装配图网上搜索。
第四章最简单的C程序设计,本章重点、难点:1、getchar(),putchar()函数2.printf()函数及输出格式3.scanf()函数及输入格式,第四章最简单的C程序设计,41C语句概述,41C语句概述,C语句可以分为以下五类:1控制语句:完成一定的控制功能,C只有9种控制语句if()else(条件语句)for()(循环语句)while()(循环语句)dowhile()(循环语句)continue(结束本次循环语句)break(中止执行switch或循环语句)switch(多分支选择语句)goto(转向语句)return(从函数返回语句),41C语句概述,C语句可以分为以下五类:2函数调用语句:由一次函数调用加一个分号构成一个语句,例如:printf(”thisisaCstatement”);c=max(a,b);3表达式语句:由一个表达式构成一个语句。最典型的是:由赋值表达式构成一个赋值语句。a=3是一个赋值表达式,而a=3;是一个赋值语句。可以看到一个表达式的最后加一个分号就成了一个语句。一个语句必须在最后出现分号,分号是语句中不可缺少的一部分。例如:i=i十1(是表达式,不是语句)iil;(是语句)表达式能构成语句是C语言的一个特色。,41C语句概述,C语句可以分为以下五类:4空语句。下面是一个空语句:;即只有一个分号的语句,它什么也不做。有时用来作被转向点,或循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。5复合语句:C语言可以用包括一系列的语句。一对所包含的内容称为一个复合语句。其中可以包含0到多条C语言语句。如下面是一个复合语句。z=x+y;tZ100;printf(”%f”,t);注意:复合语句中最后一个语句中最后的分号不能忽略不写。,41C语句概述,5复合语句:,#includevoidmain(void)inta,b;scanf(“%d,%d”,复合语句,复合语句,复合语句可以嵌套,凡是可以出现单一语句的地方都可以使用复合语句。,复合语句的作用:,作为分支和循环的块。,作为标识符的作用域。,42赋值语句,赋值语句:由赋值表达式加上一个分号构成.C语言的赋值语句的特点和功能:C语言中的赋值号“=”作为赋值运算符关于赋值表达式与赋值语句的概念,其它多数高级语言没有“赋值表达式”这一概念。作为赋值表达式可以被包括在其它表达式之中,例如if(ab)0)ta;按语法规定if后面的()内是一个条件,例如可以是:“if(x0)”。现在在x的位置上换上一个赋值表达式“a=b”,其作用是:先进行赋值运算(将b的值赋给a),然后判断a是否大于,如大于是,执行t=a。在if语句中的“a=b”不是赋值语句而是赋值表达式,这样写是合法的。如果写成if(ab;)0)ta;C把赋值语句和赋值表达式区别开来,增加了表达式的种类,使表达式的应用几乎“无孔不入”,能实现其它语言中难以实现的功能。,错!赋值语句,对!赋值表达式,43数据输入输出的概念,C语言没有输入输出语句,输入输出是通过系统定义的标准函数来实现的。,I/O函数的原型定义在stdio.h头文件中,在引用I/O函数时,应在程序开始处加预处理语句包含头文件。#include,输入输出的概念,输入输出指的是内存变量或程序和外部设备间的数据交换。,内存,外设,输入,输出,输入输出函数要描述:输入输出的量;输入输出的格式;输入输出的设备。,43数据输入输出的概念,几点说明:printf,scanf不是C的关键字,而是函数的名字;printf函数在编译时并不把它翻译成目标指令,而在执行阶段中调用已被连接的函数库中的printf函数;在使用C函数库时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。在头文件中包含了与用到的函数有关的信息.(4)考虑到printf,scanf函数使用频繁,系统允许在使用它们时不加#include命令.,44字符数据的输入输出,441putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符:例如putchar(c);输出字符变量c的值。c可以是字符型变量或整型变量。在使用标准IO库函数时,要用预编译命令“include”将“stdio.h文件包括到用户源文件中。即include“stdio.h”或#includestdio.h是standardinputputchar(ch1);putchar(ch2);putchar(ch3);/*输出*/putchar(n);putchar(ch1);putchar(n);/*输出ch1的值,并换行*/putchar(E);putchar(n);/*输出字符E,并换行*/putchar(ch3);putchar(n);,44字符数据的输入输出,442getchar函数(字符输入函数)此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符,getchar函数没有参数,其一般形式为:getchar()函数的值就是从输入设备得到的字符。例如:include“stdio.h”main()charc:cgetchar();putchar(c);运行结果:在运行时,如果从键盘输入字符a;a(输入a后,按“回车”键,字符才送到内存)a(输出变量c的值a),44字符数据的输入输出,442getchar函数(字符输入函数)/*功能:说明getchar()函数的格式和作用。*/*A2.c*/#includestdio.h/*文件包含*/main()charch;printf(Pleaseinputtwocharacter:);ch=getchar();/*输入1个字符并赋给ch*/putchar(ch);putchar(n);putchar(getchar();/*输入一个字符并输出*/putchar(n);,45格式输入输出函数,4.5.1输出函数printf(),1、格式:printf(“输出格式字符串”,输出项列表);,格式描述。,用,分隔的常量、变量、表达式表。,输出格式字符串可包含以下内容:,普通字符,如:a=,转义字符,如:n,对于普通字符和转义字符在相应位置原样输出,其中%用%。printf(“nabcd%”);输出结果:abcd%,格式说明符组,说明输出项列表中的各项的输出格式。格式说名符组用%为开始标志。内容包含对一项输出对象的格式说明。,45格式输入输出函数,4.5.1输出函数printf(),格式说明类型表,格式说明符应和输出的列表项对应,产生相应的输出。其中输出的表项应与格式说明符类型一致。,printf(“a=%dnb=%f”,2+3,5.34);,45格式输入输出函数,4.5.1输出函数printf(),格式说明串的一般形式和意义,%-m.nl格式类型字符,格式说明标志,对齐方式:缺省为右对齐,-为左对齐。,宽度.精度(位数),宽度:输出总列数,精度:小数位数(或字符位数)。,整型长度,缺省短整型,l长整型。,#includemain()floata;a=1.232326;printf(“a=%10.4f”,a),45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,对不同类型的数据用不同的格式字符。有以下几种格式字符:(1)d格式符。用来输出十进制整数。有以下几种用法:d,按整型数据的实际长度输出。md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出,如printf(“4d,4d”,a,b)若a123,d=12345,则输出结果为:_123,12345ld,输出长整型数据。如1onga=135790;printf(”ld,a);,?将“%ld”改为“%d”,一个int型数据可以用d或ld格式输出。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,O格式符以8进制数形式输出整数。由于是将内存单元中的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如,-在内存单元中(以补码形式存放)如下:inta-1;printf(”d,o”,a,a);输出为:1,177777不会输出带负号的八进制整数。对长整数(1ong型)可以用“1o。”格式输出。同样可以指定字段宽度,如printf(”8o”,a)输出数据为177777。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(3)X格式符:以16进制数形式输出整数,同样不会出现负的十六进制数。例如:inta一1;printf(”x,0,d”,a,a,a);输出结果为:ffff,177777,-1同样可以用“lx”输出长整型数,也可以指定输出字段的宽度,如“12x”(4)u格式符:用来输出unsigned型数据,即无符号数,以十进制形式输出。一个有符号整数(int型)也可以用u格式输出;反之,一个unsigned型数据也可以用d格式输出。按相互赋值的规则处理。unsigned型数据也可用o或x格式输出。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(4)u格式符(举例):main()unsignedinta=65535;intb=-2;printf(”a=%d,%o,%x,%un”,a,a,a,a);printf(”b=%d,%o,%x,%un”,b,b,b,b);运行结果为:a一1,177777,ffff,65535b一2,177776,fffe,65534,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(5)c格式符:用来输出一个字符charca;prinft(”c”,c);输出字符a,请注意:“c”中的c是格式符,逗号右边的c是变量名,不要搞混。一个整数,只要它的值在0255范围内,也可以用字符形式输出,在输出前,将该整数转换成相应的ASCII字符;反之,一个字符数据也可以用整数形式输出。main()/*a3.c*/charc=a;inti=97;printf(”c,dn”,c,c);printf(“c,dn”,i,i);,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(6)s格式符:用来输出一个字符串s:例如printf(”%s”,”CHINA”)输出“CHINA”字符串(不包括双引号)。ms:输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出。若串长小于m,则左补空格。-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果nm,则m自动取n值即保证n个字符正常输出。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,例1:,chara=b;printf(“%5c,%-5c,%c”,a,a-32,s+1);,输出结果:b,B,t,例2:,#includevoidmain(void)charchString=China;printf(%s,%6s,%-6sn,chString,chString,chString);printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei);,China,China,China,HefeiHeHe,宽度不够,原样输出。,m.n,m为总输出列数,n截取输出字符数。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(7)f格式符:用来输出实数(包括单、双精度),以小数形式输出,有以下几种用法:f:不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。应当注意,并非全部数字都是有效数字.单精度实数的有效位数一般为7位。main()floatx,y;x111111111;y222222222;printf(”f”,x十y);运行结果为:333333328125显然,只有前7位数字是有效数字。千万不要以为凡是打印出来的数字都是准确的。双精度数也可用f格式输出,它的有效位数一般为16位,给出小数6位。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(7)f格式符:main()/*a4.c*/doublex,y;x=11111111111111111111;y=2222222222222.22222222;printf(”f”,x十y);输出结果为:3333333333333.333010,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(7)f格式符:m.nf:指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。一m.nf:基本相同,只是使输出的数值向左端靠,右端补空格。main()floatf=123456;printf(”%f,%10f,%10.2f,%.2f,%-10.2fn”,f,f,f,f,f);输出结果如下:123.455994,123.455994,123.46,123.46,123.46,f的值应为123456,但输出为123455994,这是由于实数在内存中的存储误差引起的.,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(8)e格式符:以指数形式输出实数。e:不指定输出数据所占的宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002,e+02),其中“e”占1位,指数符号占1位,指数占3位。数值按标准化指数形式输出(即小数点前必须有而且只有一位非零数字)。例如:printf(”%e”,123.456);输出:1.234560e002,(1.23456e+02)。也就是说用e格式输出的实数共占13列宽度。,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(8)e格式符:m.ne和-m.ne:m,n和“-”字符含义与前相同。此处n指数据的小数部分(又称尾数)的小数位数。若f123.456,则printf(“%e,%10e,%10.2e,%.2e,%-10.2e,”,f,f,f,f,f);输出如下:1.234560e+002,1.234560e+002,1.23e002,1.23e002,1.23e十002,45格式输入输出函数,4.5.1输出函数printf(),2、格式字符:,(9)g格式符:用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。例如,若:f=123.468,则printf(”%f,%e,%g”,f,f,f);输出如下:123.468000,1.234680e+002,123.468本例用f格式输出占10列,用e格式输出占13列,用g格式时,自动从上面两种格式中选择短者(今为f格式为短),故占7列,且按%f格式用小数形式输出,最后三个小数位“0”为无意义的0,不输出,g格式用得较少。,45格式输入输出函数,4.5.1输出函数printf(),printf格式字符,45格式输入输出函数,4.5.1输出函数printf(),printf的附加格式字符,45格式输入输出函数,4.5.1输出函数printf(),在使用printf函数时,还有几点要说明:除了X,E,G外其他用小写,如d不能写成D。上面介绍的d,o,x,c,s,f,e,g等字符,如用在“”后面就作为格式符号。一个格式说明以“”开头,以上述9个格式字符之一为结束,中间可以插入附加格式字符(也称修饰符)。例如:printf(“c=%cf=%fs=%s”,c,f,s);如果想输出字符“”,则应该在“格式控制”字符串中用连续两个表示,如:printf(”f”,103);输出0.333333,45格式输入输出函数,4.5.2输入函数scanf(),格式:scanf(“格式说明字符串”,输入变量地址列表);,说明:输入时不能使用%u;m域宽可自动截取,空格可以作为数据分隔符。,voidmain(void)inti,j;scanf(%3d%3d,123456,实型变量输入时不能规定精度;,scanf(“%7.2f”,ERROR!,数据输入用SPACE分隔,当格式字符用其他字符隔离,输入时也应在对应位置上输入相同的字符;,voidmain(void)inti,j;scanf(i=%d,j=%d,输入项只能是变量,且必须用地址形式。,45格式输入输出函数,4.5.2输入函数scanf(),main()/*no.c*/inta,b,c;scanf(”%d%d%d”,printf(inputnumber1,number2:);scanf(%f,%f,46顺序结构程序设计举例,求一元二次方程ax2+bx+c=0的根,#include#includemain()/*a5.c*/floata,b,c,x1,x2;scanf(“%f,%f,%f”,b*b-4.*a*c0,C语言常用数学函数(补充),为方便用户使用,C语言系统定义了大量函数。数学函数主要目的是求解常用数学函数,如sinX等。数学函数的原型定义在系统的math.h头文件中。在使用此类函数时,应在程序的开始出加如下语句:#include,使用方法:,作为一个运算项参加表达式运算。,函数的参数(自变量)、函数的值都是double类型。,y=sqrt(sin(x)*sin(x)+cos(x)*cos(x),- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单C程序设计 简单 程序设计 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文