您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 求职简历 > 第4讲 顺序结构和常用语句
第四讲顺序结构和常用语句一、C语言语句二、格式输入输出1、格式输出:printf()函数2、格式输入:scanf()函数三、字符输入输出1、字符输出:putchar()函数2、字符输入:getchar()函数C程序的语句有五种,分号“;”是C语句结束的标志。•表达式语句:任何表达式加上分号构成如:x=1;y=x+y;--x;y+1;一、C语言语句•函数调用语句:由一次函数调用加上分号构成如:printf(“VeryGood!\n);•复合语句:用{}括起来组成的一个语句如:if(a>b){x=0;b=b+1;x=a;}•空语句:仅由一个分号构成的语句•控制语句:控制程序的流程如:if…else语句,while语句,return语句等。C语言对数据的输入、数据的输出是通过函数实现的。存在于C所在目录的子目录include中的头文件内。其中最基本的有:printf()(格式输出)scanf()(格式输入)putchar()(字符输出)getchar()(字符输入)在调用上述基本库函数时,应在程序开始处使用文件包含命令,即:#include“stdio.h•功能:通过标准输出设备(如显示器)输出一组数据。输出形式由“格式控制”字符串规定。1、格式输出:printf()函数•格式:printf(“格式控制”,输出表列);二、格式输入输出•格式控制:由双引号括起来的字符串,用于指定要输出的数据的格式。2)格式说明:用来指定需输出数据的输出格式的,其形式为:%[修饰符]格式字符格式字符用以说明输出数据的类型,形式,长度,小数位数等。它包括:1)普通字符:按原样输出的字符;•输出表列:需要输出的数据列表,彼此间用逗号分隔。它可是任意合法的表达式。修饰符功能l用于长整型、双精度型数据可加在格式符d、o、x、u、f前m数据的最小宽度n对实数,表示输出n位小数对字符串,表示从左端截取的n个字符-输出的数字或字符左对齐,右边填补空格用于输出的修饰符用于输出的格式字符格式符功能形式d输出十进制整数%d、%md、%ld、%mldo以八进制形式输出整数%o、%mo、%lox以十六进制形式输出整数%x、%mx、%lxu以十进制形式输出一个无符号的数%uc输出一个字符%cs输出一个字符串%s、%ms、%m.nsf以小数的形式输出实数%f、%m.nf、%lfe以标准指数的形式输出实数%e、%m.neg根据实数的大小自动按f或e的形式选择输出格式%g例:格式输出:printf()函数printf(a+b=%5.2f,c);附加格式符格式符输出表列普通字符格式说明符格式控制说明:1、d格式字符%d:按整型数据的实际长度输出%md:m为指定的输出长度。如果数据位小于m,则左端补以空格;大于m,则按实际位输出。例:printf(“%4d,%4d”,a,b);若a=12,b=12345,则输出12,12345%ld:输出长整型数据。%d的输出范围为-32768~32767,输出超过该范围的整型数就会出错,此时用%ld输出。其输出格式和功能与%d相同,如:%8ld2、o格式字符以八进制数形式输出整数,且不带符号。对于长整数可用“%lo”输出。功能同十进制输出。3、x格式字符以十六进制数形式输出整数,且不带符号。对于长整数可用“%lx”输出。功能同十进制输出。4、u格式字符用来输出unsigned型数据,即无符号数,输出十进制数。用%o,%x输出负数时会发生错误。5、c格式字符一个整数,如果在0~255之间,也可用字符形式输出,系统会将该整数转换成相对应的ASCII码字符;同时,一字符也可以用整数形式输出。例:charc=‘a’;printf(“%c”,c);•用来输出一个字符。inta=65;printf(“%c”,a);intc=‘A’;printf(“%d”,c);输出A输出65如:printf(“%3c”,c),则输出•c格式字符也可以指定输出字数宽度A6、s格式字符%s:用来输出一个字符串例:printf(“%s”,“Hello!”);输出Hello!,不包括“”%ms:输出的字符串占m列。如果字符串长度小于m,则左端补以空格;长度大于m,则输出整个字符串。%-ms:如果串长小于m,则字符串向左靠,右补空格,其余同上。%m.ns:输出的字符串占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右侧,左端补空格。%-m.ns:其他意义同%m.ns,右补空格。7、f格式字符%f:不指定字段宽度,整数部分全部输出,小数部分输出6位。%m.nf:指定输出数据占m列,其中有n位小数。若数值长度小于m,则左端补以空格。%-m.nf:功能同上,右端补以空格。8、e格式字符%e:不指定字段宽度,系统自动给出6位小数,指数部分占4位。其中“e”占1位,指数符号占1位,指数占2位。例:printf(“%e”,123.456);输出:1.234560e+026位小数部分4位指数部分%m.ne,%-m.ne,%me:中m,-的意义和前相同,n是指数据的小数部分输出的位数。9、g格式字符用来输出实数,根据数值大小,自动选f或e格式,且不输出无意义的零。main(){inta=1234;floatf1=12.34567,f2=678.9;printf(1)%d,%6d,%-6d,%2d;\n,a,a,a,a);printf(2)%f,%10.4f,%3.2f;\n,f1,f1,f1);printf(3)%e,%e;\n,f1,f2);printf(4)%8e,%14e;\n,f1,f1);printf(5)%10.7e,%10.3e;\n,f1,f1);}实例:程序运行结果:1)1234,1234,1234,1234;2)12.345670,12.3457,12.35;3)1.23457e+01,6.78900e+02;4)1.23457e+01,1.23457e+01;5)1.234567e+01,1.23e+01;2、格式输入:scanf()函数•功能:从终端输入任何类型的多个数据•格式:scanf(格式控制,地址表列);•格式控制:由双引号括起来的字符串,用于指定要输入的数据的格式。1)普通字符:按原样输入的字符;2)格式说明:用来指定需输入数据的输入格式的,其形式为:%[修饰符]格式字符•地址表列:由若干个变量地址组成的表列。地址是由”&”运算得到的。“&”是取址运算符,单目运算符,右结合性。例:&a,&chr,&i,分别表示变量a,chr,i的地址,该地址是在编译连接时系统分配给变量a,chr,i的地址。用于输入的修饰符修饰符功能l用于长整型、双精度型数据可加在格式符d、o、x、f、e前h用于短整型数据可加在格式符d、o、x前m(域宽)指定输入数据所占的宽度(列数)*表示本输入项在读入后不赋给相应的变量用于输入的格式字符格式符功能形式d输入十进制整数%d、%ld、%hd%md、%mldo输入八进制整数%o、%mo、%lox输入十六进制整数%x、%mx、%lxc输入一个字符%cs输入一个字符串%s、%msf%f、%mf、%lfe%e、%me、%le以小数或指数的形式输入实数两者功能相同,可互换格式输入的使用与注意:输入数据时采用的分隔符应与格式控制中的分隔符一致。例1:scanf(%d%f%d,&a,&b,&c);格式符中无普通字符时,可用空格、Tab键、回车键作分隔符。如:123.45678↙或12(Tab)3.45(Tab)678↙例2:scanf(%d,%f,%d,&a,&b,&c);必须采用格式:12,3.45,678↙例3:scanf(a=%d,b=%d,&a,&b);必须采用格式:a=12,b=345↙•无符号数可用%d、%o、%x格式输入。•输入格式符带有*:表示该数据不赋值。例:scanf(%d%*d%d,&a,&c);键入:1234567则a=12,c=567,34未赋值。•数据输入时不可规定精度,但可确定宽度。例:scanf(”%3f%3c”,&a,&b);合法。例:scanf(”%3.2f%3c”,&a,&b);非法。•用c格式符输入字符时,空格、转义字符均为有效字符。例scanf(%c%c%c,&a,&b,&c);若键入ABC则a=A,b=B,c=C若键入ABC则a=A,b=,c=B若键入AB则C未送,结果已出为:a=A,b=,c=B•在下列情况下可认为数据输入结束:–遇空格、回车、跳格键(Tab)时;–遇宽度结束;–非法输入。main(){inta;floatb;charc;printf(按格式%%d%%f%%c送数:);scanf(%d%f%c,&a,&b,&c);printf(a=%d,b=%f,c=%c,\n,a,b,c);printf(按格式%%d,%%f,%%c送数:);scanf(%d,%f,%c,&a,&b,&c);printf(a=%d,b=%f,c=%c,\n,a,b,c);printf(按格式%%6d%%6f%%6c送数:);scanf(%6d%6f%6c,&a,&b,&c);printf(a=%d,b=%f,c=%c,\n,a,b,c);}程序运行结果:按格式%d%f%c送数:23◇4.5pa=23,b=4.500000,c=p,按格式%d,%f,%c送数:23,4.5,pa=23,b=4.500000,c=p,按格式%6d%6f%6c送数:◇◇◇◇23◇◇◇◇4.5p◇◇◇◇◇a=23,b=4.500000,c=p,程序实例1:main(){chara,b,c,d,e;scanf(%c%c%c,&a,&b,&c);scanf(%3c%3c,&d,&e);printf(%c,%c,%c\n,a,b,c);printf(%c,%c\n,d,e);}程序实例2:程序运行结果:1234◇◇5◇◇1,2,34,5程序运行结果(错误):1234◇◇5◇◇1,2,3,二、字符输入输出1、字符输出:putchar()函数•格式:putchar();•功能:向终端输出一个字符。•C为形式参数,它可以是字符型变量、整型变量,字符型常量或转义字符。#includestdio.hmain(){chara;intb;a='b';b=111;putchar(a);putchar(b);putchar('y');putchar('\n');}例:运用putchar()函数程序运行结果:boy“o”的ASCII码为1111、字符输入:getchar()函数•格式:getchar();•功能:从终端输入一个字符。•getchar()只能接收一个字符,该字符可赋给字符变量、整型变量或作为表达式的一部分。例:#includestdio.hmain(){charc;c=gethar();putchar(c);}输入一个字符,再将该字符输出例:鸡兔同笼问题。已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只?分析:依题意设鸡有x只,兔有y只。FyxHyx42则方程:)2()4(2121HFyFHx解得:定义变量x,y,h,f输入h,fx=(4*h-f)/2y=(f-2*h)/2输出x,ymain(){inth,f,x,y;/*x为鸡的数量,y为兔的数量*/printf(请输入鸡兔的总头数h,);printf(总脚数f,格式:%%d%%d\n);scanf(%d%d,&h,&f);x=(4*h–f)/2;y=(f-2*h)/2;printf(笼中有鸡%d只,有兔%d只。\n,x,y);}例:将十进制数407转换为八进制数。main(){intm,n1,n2,n3;m=407;n1=m%8;/*n1为个位*/n2=m/8%8;/*n2为十位*/n3=m/8/8%8;/*n3为百位*/printf(407=0%d\n,n3*100+n2*10+n1);}
本文标题:第4讲 顺序结构和常用语句
链接地址:https://www.777doc.com/doc-3969658 .html