您好,欢迎访问三七文档
最简单C程序设计C语句概述赋值语句数据输出数据输入4第四章简单的C程序设计1、掌握数据输入、输出函数及其格式控制;2、掌握顺序结构程序设计的基本思想。3、学会使用头文件;本章要求:从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、选择结构、循环结构。这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。本章介绍这些基本语句及其在顺序结构中的应用,使读者对C程序有一个初步的认识,为后面各章的学习打下基础。•程序的三种基本结构–结构化程序设计•基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)•结构化程序:由三种基本结构反复嵌套构成的程序叫~•优点:结构清晰,易读,提高程序设计质量和效率–三种基本结构顺序结构ABAB流程图N-S图PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki......二分支选择结构多分支选择结构选择结构当型循环结构直到型循环结构PA假真当P为真AAP真假A直到P为真注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构循环结构一、C语句概述C程序结构如图:C程序的执行部分每一个源文件由预编译命令和若干函数组成C程序由许多源文件组成(分别编译,然后连接)每个函数由说明部分和语句部分组成C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句有以下五类:控制语句函数调用语句表达式语句空语句复合语句1、控制语句,完成程序流程控制(九种控制,分成三类)if()~else~条件语句for()~循环语句while()~循环语句do~while()循环语句continue结束本次循环语句break中止switch或循环语句switch多分支选择语句goto转向语句return从函数返回语句()表示条件,~表示内嵌的语句1)条件判断语句:if语句、switch语句2)循环执行语句:dowhile语句、while语句、for语句3)转向语句:break语句、goto语句、continue语句、return语句2、函数调用语句;例:printf(“ThisisaCstatement.”);/*该语句调用函数printf()*/函数调用语句:由函数名、实际参数加上分号“;”组成。一般形式为(有参调用):函数名(实际参数表);执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值3、表达式语句:在表达式后面加分号构成;例:a=3;/*后面有分号,是语句*/i++;/*语句*/y+z;加法运算语句,但计算结果不能保留,无实际意义;x=y+z;/*赋值语句*/;执行表达式语句就是计算表达式的值4、空语句:仅包含一个分号的语句;例:;5、复合语句:由大括号{}括起来的语句序列。例:{z=x+y;t=z/100;printf(%f,t);}注:C语言允许一行写多个语句,也允许一个语句写多行。赋值语句是由赋值表达式加上一个分号构成的。如:a=5;注意:1、C语言中的“=”作为赋值运算符,不是“等于”;2、赋值语句和赋值表达式是不同的概念,赋值表达式使C语言非常灵活,它可以包括在其他表达式中。例:if((a=b)0)t=a;if((a=b;)0)t=a;二、赋值语句赋值表达式顺序结构程序的基本操作•如何在程序中给变量赋值?赋值语句是由赋值表达式加上一个分号构成的。如:a=5;–赋值表达式语句:Total=m*pow(1+r,n);–赋值表达式:Total=m*pow(1+r,n)•如何进行数据的输入输出?–输入:从标准输入设备上输入数据到计算机内存–输出:将计算机内存中的数据送到标准输出设备–C语言中输入输出操作通过调用标准库函数来实现执行表达式语句就是计算表达式的值赋值操作和输入输出操作是顺序结构中最典型的结构三、数据输入输出的概念及在C语言中的实现1、所谓输入输出是以计算机主机为主体而言的;在C语言中,所有的数据输入/输出都是由库函数完成的。因此都是函数语句。输出:从计算机向外部设备(如显示屏、打印机、磁盘等)输出数据;输入:从外部通过输入设备(如键盘、磁盘、光盘、扫描仪)向内存输入数据。2、C语言本身不提供输入输出语句,输入输出操作是由开发系统提供的函数实现的。C语言函数库中有一批“标准输入输出函数”,其中有:putchar()、getchar()printf()、scanf()puts()、gets()头文件名作用stdio.h定义输入输出函数string.h定义字符串操作函数math.h定义sin、cos等数学函数3、函数的原型(函数名、返回值类型、形式参数)在文件stdio.h中定义,因此,使用输入输出函数时,应在源程序的开头使用如下语句:#includestdio.h说明:#include是一个预编译命令。stdio.h放在程序的开头,因此称为“头文件”;又由于使用#include(包含)命令,又称为“包含文件”。注意:开发系统提供很多函数,它们的原型在不同的头文件中定义,因此,在程序开头,总是包含需要的头文件。最常用的头文件:4、考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加#includestdio.h或#include”stdio.h”•#includestdio.h则一般是系统到存放C库函数头文件所在的目录中寻找要包含的文件,即–在由TC系统指定的文件目录中找该文件–标准方式赋值操作和输入输出操作是顺序结构中最典型的结构•#includestdio.h先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找,即在当前目录和TC系统指定的目录中找该文件(一)putchar()函数四、数据输出格式:putchar(c)参数:c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;a='B';b='O';c='Y';#includestdio.hmain(){chara,b,c;putchar(a);putchar(b);putchar(c);}程序输出:BOY【例4-1】对控制字符则执行控制功能,不在屏幕上显示。如:putchar('\n');putchar('\t');putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);程序输出:BOYputchar('\n');输出换行符putchar('\101');输出字符'A‘(八进制101=65=0x41)putchar('\'');输出单引号'putchar('\015');输出回车(八进制015=13=0xD)例:注意:若没有#include“stdio.h”,出现错误信息:LinkerError:Undefinedsymbol‘_putchar’inmoduleT1.C(T1.C是程序文件名)表示putchar符号(函数名前加下划线)未定义,因为开发系统不知道putchar()的原型。程序中有了#include“stdio.h”后,开发系统把程序中出现的putchar()与stdio.h中的定义进行比较,它们是相同的,从而开发系统知道了putchar()的定义(原型)。(二)printf()函数作用:格式化输出任意数据列表,其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上1、printf()的一般格式:printf(“格式控制字符串”,输出列表)用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成main(){inta,c,e;a=c=30;e=32;printf(“a+3=%d\n”,a+=3);printf(“c*3=%d\n”,c*=3);printf(“e%%3=%d\n”,e%=3);}运行结果:a+3=33c*3=90e%3=2其关键字最末一个字母f即为“格式”(format)之意printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。•输出表:要输出的数据(可以没有,多个时以“,”分隔)•格式控制串:包含三种信息–(1)格式说明:%[修饰符]格式字符,用于指定输出格式,修饰符的一般形式如下:%[标志][宽度][精度][类型]%mld、%-m.ns–(2)转义序列:按字符含义原样输出–(3)普通字符──除格式指示符和转义字符之外的其它字符。格式字符串中的普通字符,原样输出。inti=3;doublef=4.56;printf(i=%d,f=%f\n,i,f);例:printf(“格式控制字符串”,输出列表)2、格式字符%d输出数字长度为变量数值的实际长度%md输出m位(不足补空格,大于m位时按实际长度输出)%ld,%mldl(小写字母l)表示输出“长整型”数据注:%后面的m(位数控制)对于其他格式符也适用。格式字符串和各输出项在数量和类型上应该一一对应格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等1)d格式符:按十进制格式输出;main(){unsignedinta=65535;intb=-2;printf(a=%d,%o,%x,%u\n,a,a,a,a);printf(“b=%d,%o,%x,%u\n,b,b,b,b);}运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,655342)o(字母)格式符:按八进制格式输出;(不会出现负数格式)3)x格式符:按十六进制格式输出;(不会出现负数格式)4)u格式符:用于输出unsigned类型数据;【例4-2】以无符号形式输出5)c格式符:以字符形式输出main()charc='a';inti=97;printf(%c,%d\n,c,c);printf(%c,%d\n,i,i);{}运行结果为:a,97a,97一个整数,若其值在0~255范围内,也可以用字符形式输出,在输出前,将该整数转换为对应的ASCII字符。反之,一个字符数据也可以用整数形式输出。【例4-3】6)s格式符:以字符串格式输出%s例:printf(%s,“CHINA”);%msm指定宽度(不足时左补空格,大于时按实际宽度输出)%-ms左对齐,不足m时右补空格%m.ns输出占m个字符位置,其中字符数最多n个,左补空格%-m.ns同上,右补空格7)f格式符:按实数格式输出%f按实数格式输出,整数部分按实际位数输出,6位小数%m.nf总位数m(含小数点),其中n位小数%-m.nf同上,左对齐【例4-4】main(){floatx,y;x=111111.111;y=222222.222;printf(%f,x+y);}程序输出:333333.328152(实数运算中误差不可避免)main(){doublex,y;doublex2,y2;x=1111111111111.111111111;y=2222222222222.222222222;x2=1111111111111.111;y2=2222222222222.222;printf(“%f%f”,x+y,x2+y2);}程序输出:3333333333333.3330103333333333333.333010【例4-5】{floatf=123.456;printf(%f□□%10f□□%10.2f□□%.2f□□%-10.2f,f,f,f,f,f);}输出结果:123.455994□□123.455994□□□□□□123.46□□123.46□□123.46□□□□从[例4-4]和[例4-5]可以看出:1)实数运算中误差不可避免。2)double(例4.5)比float(例4.4)精度高。3)float实数(单精度)的有效位数是7位。double实数(双精度)的有效位数是16位,超过有效位数的输出和输入均无意义。【例4-6】main()8)e格式符:以指数形式输出实数%e输出13位
本文标题:最简单C程序设计
链接地址:https://www.777doc.com/doc-4894047 .html