当前位置:天才代写 > tutorial > C语言/C++ 教程 > C语言进修教程第三章-C语言措施设计劈头(2)

C语言进修教程第三章-C语言措施设计劈头(2)

2017-11-04 08:00 星期六 所属: C语言/C++ 教程 浏览:398

二、名目字符串

在Turbo C中名目字符串的一般形式为: [符号][输出最小宽度][.精度][长度]范例 个中方括号[]中的项为可选项。各项的意义先容如下:
1.范例范例字符用以暗示输出数据的范例,其名目符和意义下表所示:
暗示输出范例的名目字符 名目字符意义
d 以十进制形式输出带标记整数(正数不输出标记)
o 以八进制形式输出无标记整数(不输出前缀O)
x 以十六进制形式输出无标记整数(不输出前缀OX)
u 以十进制形式输出无标记整数
f 以小数形式输出单、双精度实数
e 以指数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
2.符号
符号字符为-、+、#、空格四种,其意义下表所示:
符号名目字符 标 志 意 义
– 功效左对齐,右边填空格
+ 输出标记(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
# 对c,s,d,u类无影响;对o类, 在输出时加前
缀o 对x类,在输出时加前缀0x;对e,g,f 类当功效有小数时才给出小数点
3.输出最小宽度
用十进制整数来暗示输出的最少位数。 若实际位数多于界说的宽度,则按实际位数输出, 若实际位数少于界说的宽度则补以空格或0。
4.精度
精度名目符以“.”开头,后跟十进制整数。本项的意义是:假如输出数字,则暗示小数的位数;假如输出的是字符, 则暗示输出字符的个数;若实际位数大于所界说的精度数,则截去高出的部门。
5.长度
长度名目符为h,l两种,h暗示按短整型量输出,l暗示按长整型量输出。
void main(){
int a=15;
float b=138.3576278;
double c=35648256.3645687;
char d=’p’;
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
} a<–15
b<–138.3576278
c<–35648256.3645687
d<–‘p’

main()
{
int a=29;
float b=1243.2341;
double c=24212345.24232;
char d=’h’;
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
}
本例第七行中以四种名目输出整型变量a的值,个中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种名目输出实型量b的值。个中“%f”和“%lf ”名目标输出沟通,说明“l”符对“f”范例无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度高出5故应该按实际位数输出,小数位数高出4位部门被截去。第九行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了高出4位的部门。第十行输出字符量d,个中“%bc ”指定输出宽度为8故在输出字符p之前补加7个空格。

利用printf函数时还要留意一个问题, 那就是输出表列中的求值顺序。差异的编译系统不必然沟通,可以从左到右, 也可从右到左。Turbo C是按从右到左举办的。如把例2.13改写如下述形式:
void main(){
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,–i,i–,i++,-i–);
} i<–8

这个措施与例2.13对比只是把多个printf语句改一个printf 语句输出。但从功效可以看出是差异的。为什么功效会差异呢?就是因为printf函数对输出表中各量求值的顺序是自右至左举办 的。在式中,先对最后一项“-i–”求值,功效为-8,然后i自减1后为7。 再对“-i++”项求值得-7,然后i自增1后为8。再对“i–”项求值得8,然后i再自减1后为7。再求“i++”项得7,然后I再自增1后为8。 再求“–i”项,i先自减1后输出,输出值为7。 最后才求输出表列中的第一项“++i”,此时i自增1后输出8。可是必需留意, 求值顺序虽是自右至左,可是输出顺序照旧从左至右, 因此获得的功效是上述输出功效。

字符输出函数

putchar 函数

putchar 函数是字符输出函数, 其成果是在显示器上输出单个字符。其一般形式为: putchar(字符变量) 譬喻:
putchar(‘A’); 输出大写字母A
putchar(x); 输出字符变量x的值
putchar(‘\n’); 换行 对节制字符则执行节制成果,不在屏幕上显示。 利用本函数前必需要用文件包括呼吁:
#include<stdio.h>
void main(){
char a=’B’,b=’o’,c=’k’;
putchar(a);putchar(b);putchar(b);putchar(c);putchar(‘\t’);
putchar(a);putchar(b);
putchar(‘\n’);
putchar(b);putchar(c);
}

数据输入语句

#p#分页标题#e#

C语言的数据输入也是由函数语句完成的。 本节先容从尺度输入设备—键盘上输入数据的函数scanf和getchar。 scanf函数 scanf函数称为名目输入函数,即按用户指定的名目从键盘上把数据输入到指定的变量之中。

一、scanf函数的一般形式

scanf函数是一个尺度库函数,它的函数原型在头文件“stdio.h”中,与printf函数沟通,C语言也答允在利用scanf函数之前不必包括stdio.h文件。scanf函数的一般形式为: scanf(“名目节制字符串”,地点表列); 个中,名目节制字符串的浸染与printf函数沟通,但不能显示非名目字符串, 也就是不能显示提示字符串。地点表列中给出各变量的地点。 地点是由地点运算符“&”后跟变量名构成的。譬喻,&a,&b别离暗示变量a和变量b 的地点。这个地点就是编译系统在内存中给a,b变量分派的地点。在C语言中,利用了地点这个观念,这是与其它语言差异的。 应该把变量的值和变量的地点这两个差异的观念区别开来。变量的地点是C编译系统分派的,用户不必体贴详细的地点是几多。 变量的地点和变量值的干系如下: &a—>a567 a为变量名,567是变量的值,&a是变量a的地点。在赋值表达式中给变量赋值,如: a=567 在赋值号左边是变量名,不能写地点,而scanf函数在本质上也是给变量赋值,但要求写变量的地点,如&a。 这两者在形式上是差异的。&是一个取地点运算符,&a是一个表达式,其成果是求变量的地点。
void main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
留意&的用法!
在本例中,由于scanf函数自己不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,则退出TC屏幕进入用户屏幕期待用户输入。用户输入7、8、9后按下回车键,此时,系统又将返回TC屏幕。在scanf语句的名目串中由于没有非名目字符在“%d%d%d”之间作输入时的隔断, 因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的隔断。
如: 7 8 9

7
8
9

 

    关键字:

天才代写-代写联系方式