第四讲 逗号表达式、赋值语句和输入输出函数
1、 逗号表达式
● 逗号表达式的一般形式
表达式1,表达式2,……,表达式n
● 逗号表达式的值
– 从左向右,依次对表达式求值,最后得到表达式n 的值就是逗号表达式的值
例如:⑴ a=5, a++, a* 3 表达式值为 18,且a=6
⑵ t=1, t+5, t++ 表达式值为 1,且t=2
⑶ x=(a=3*5, a*4 )
2、赋值语句
在赋值表达式的后面,加上一个语句结束符“;”,就形成了一个赋值语句。其一般格式是:
<变量> = <表达式>;
功能是计算出赋值运算符“=”右边表达式的值,然后将该值赋予左边的变量。
3、 输入输出函数
3.1字符输出函数
● 函数调用的一般形式
putchar(ch)
● 功能:
– 在标准输出设备(即显示器屏幕)上输出一个字符。
● 例如:
putchar('b');
putchar('\n');
putchar('\101');
putchar(st);
说明
● putchar是C语言的标准库函数,使用时必须加编译预处理命令:
#include "stdio.h" 或 #include <stdio.h>
【例】利用putchar函数输出字符。
#include "stdio.h"
main( )
{ char c1,c2;
c1='a' ; c2='b' ;
putchar(c1);putchar(c2); putchar('\n');
putchar(c1-32);putchar(c2-32);
putchar('\n');
}
3.2 格式输出函数
● 函数调用的一般形式
printf(格式控制, 参数2,…,参数n)
● 功能:按格式控制所指定的格式,在标准输出设备上输出参数2、…、参数n的值。
● 例如有程序段 :
int a=123,b=100;
printf("%d %d %d\n",a,b,a+b);
printf ("c = %d + %d = %d\n",a,b,a+b );
格式控制
● 用双引号括起的字符串,用于指定输出数据的类型、格式、个数
● 包括:普通字符和格式说明符
输出格式说明符
整型 数据 | %d | 以有符号十进制形式输出整型数 |
%o | 以无符号八进制形式输出整型数 | |
%x | 以无符号十六进制形式输出整型数 | |
%u | 以无符号十进制形式输出整型数 | |
实型 数据 | %f | 以小数形式输出实型数 |
%e | 以指数形式输出实型数 | |
%g | 按数值宽度最小的形式输出实型数 | |
字符型 数据 | %c | 输出一个字符 |
%s | 输出字符串 | |
其他 | %% | 输出字符 % 本身 |
● 在%和格式符之间可以使用附加说明符
附加格式说明符
l | 输出长整型数(只可与d、o、x、u结合用) |
m | 指定数据输出的宽度(即域宽) |
.n | 对实型数据,指定输出 n 位小数; 对字符串,指定左端截取n 个字符输出 |
+ | 使输出的数值数据无论正负都带符号输出 |
- | 使数据在输出域内按左对齐方式输出 |
%ld —— 输出十进制长整型数
%m.nf —— 右对齐,m位域宽,n位小数或n个字符
%-m.nf —— 左对齐
注意:
● printf函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。
● 格式说明符的 % 和后面的描述符之间不能有空格。除 %X、%E、%G外类型描述符必须是小写字母。
● 长整型数应该用%ld(或%lo、%lx、%lu)格式输出,否则会出现输出错误。
● printf函数的参数可以是常量、变量或表达式。在计算各参数值时,Turbo C采用从右至左的顺序求值。
3.3 字符输入函数
● 函数调用的一般形式
getchar( )
● 功能:
– 从标准输入设备(即键盘)上交互输入一个字符。
● 例如:
getchar( ) ;
c = getchar( );
printf("%c \n",getchar( ));
例如:
【例】getchar函数的应用。
#include "stdio.h"
main( )
{ char ch;
ch=getchar( );
printf("%c %d\n",ch,ch);
printf("%c %d\n\n",ch-32,ch-32);
}
说明:
● getchar是C语言的标准库函数,使用时必须加编译预处理命令:
#include "stdio.h" 或 #include <stdio.h>
● getchar函数需要交互输入,接收到输入字符之后才继续执行程序。
● 连续使用getchar函数时,要注意字符的输入形式 ,例如执行如下程序段:
char ch1,ch2;
ch1=getchar( );
ch2=getchar( );
必须连续输入两个字符,中间不能有其他字符
3.4格式输入函数
● 函数调用的一般形式
scanf(格式控制, 地址参数2…,地址参数n);
● 功能:按格式控制指定的格式,从标准输入设备(即键盘)交互输入数据,并依次存放到对应地址参数指定的变量中(即将输入值赋给变量)。
● 例如:
scanf ("%d%f",&a, &f);
scanf ("%o, %f ", &b,&x);
scanf ("a=%d, b=%d",&a,&b);
格式控制
● 用双引号括起的字符串,用于指定输入数据的类型、格式、个数以及输入的形式
● 包括:普通字符和格式说明符
输入格式说明符
整型 数据 | %d | 输入十进制整型数 |
%u | 输入无符号的十进制整型数 | |
%o | 输入八进制整型数 | |
%x | 输入十六进制整型数 | |
实型 数据 | %f | 输入小数形式的单精度实型数 |
%e | 输入指数形式的单精度实型数 | |
字符型 数据 | %c | 输入单个字符 |
%s | 输入一个字符串 | |
在%和格式符之间可以使用附加说明符
附加格式说明符
l | 与d、o、x、u结合输入长整型数 |
与 f 结合输入double型数 | |
m | 指定数据输入的宽度(即域宽) |
* | 忽略读入的数据 (即不将读入数据赋给相应变量) |
例如:
%ld、%lo——输入十进制、八进制长整型数
%lf、%le——输入双精度实型数
%mf——输入m位数(域宽)
%*d——忽略输入的一个整型数
例如:
● scanf ("%d%d%d", &a, &b, &c);
输入3个整型十进制数,以空白符
(空格、tab键或回车键)分隔
● scanf ("%d, %o, %f ", &a, &b, &x);
输入3个数,以“,”分隔
● scanf ("a=%d, b=%d", &a, &b);
输入的形式是:a=32, b=28
使用scanf函数应注意:
● 要求在程序运行中输入数据,输入的数据个数和类型必须与格式说明符一一对应。
● 地址参数形式:&变量名(除数组或指针变量)
● 格式控制中有普通字符时,必须照原样输入。
● 格式控制中无普通字符时,输入的数值型数据和字符串用空白符分隔,字符型数据不必分隔。
● double型数据输入时,必须用%lf或%le格式
● 实型数输入时域宽不能用m.n形式的附加说明
● 为了减少不必要的输入量,除了逗号、分号、空格符以外,格式控制中尽量不要出现普
通字符,也不要使用 '\n' 、'\t' 等转义字符
● 格式符之间若无普通字符,则:
● 输入的数值型数据用空白符分隔
● 输入的 char型数据不必分隔
● scanf ("%c%c%c", &ch1, &ch2, &ch3);
要输入:abc
不能输入:abcc语言中逗号表达式的用法
● 注意数值型数据与char型数据的混合输入
例如:
scanf ("%d%d", &m, &n);
scanf ("%c", &ch);
正确输入:32 28a
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论