1.语句概述
程序应该包括数据描述(由声明部分来实现)和数据操作(由语句来实现)。数据描述包括定义数据结构和在需要时对数据赋予初值。数据操作的任务是对已提供的数据进行加工。
c语句分为以下5类:
1. 控制语句 :控制语句用于完成一定的控制功能。如:
if()…else… (条件语句)
for()… (循环语句)
while() (循环语句)
do…while() (循环语句)
continue (结束本次循环语句)
break (中止执行 switch 或循环语句)
switch (多分支选择语句)
goto (转向语句)
return (从函数返回语句)
2.函数调用语句:函数调用语句由一个函数调用加一个分号构成;
3.表达式语句:表达式语句由一个表达式加一个分号构成;如:a =3;
4.空语句:只有一个分号的语句;如 ;
5.复合语句:可以用{}把一些语句括起来成为复合语句;
2.数据输入输出的概念
(1)所谓输人输出是以计算机主机为主体而言的。从计算机向外部输出设备(如显示器、打印机等)输出数据称为输出,从输人设备(如键盘、鼠标、扫描仪等)向计算机输入数据称为输人。
(2)C语言本身不提供输人输出语句,输人和输出操作是由C函数库中的函数来实现的。
(3)在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。在头文件中包含了调用函数时所需的有关信息。
3.字符数据的输入输出
1.putchar函数
putchar函数的作用是向终端输出一个字符,其一般形式为:
putchar(c)
他输出字符变量c的值,c可以是字符型变量也可以是整型变量。
putchar函数也可以输出控制字符。
2.getchar函数
getchar 函数(字符输人函数)的作用是从终端(或系统隐含指定的输入设备)输人一个字符。 getchar函数没有参数,其一般形式为:
getchar()
函数的值就是从输人设备得到的字符。
注意:getchar函数只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。
输入字符时,会先进缓冲区,遵循先进先出的原则。
a | b | c | d | e | f |
4.格式输入与输出
1.printf函数
printf的一般格式为
printf(格式控制,输出表列)
括号内包括两部分:
(1)“格式控制”是用双撒号括起来的字符串,也称“转换控制字符串”,它包括两种信息。
①格式说明。格式说明由“%”和格式字符组成,如%d、%f等。它的作用是将输出的数据转 换为指定的格式输出。格式说明总是由“%”字符开始的。
②普通字符。普通字符即需要原样输出的字符。例如上面printf函数中双撒号内的逗号、空格和换行符。
(2)“输出表列"是需要输出的一些数据,可以是表达式。
格式字符
%d :按十进制整型数据的实际长度输出。
%md : 为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld :输出长整型数据。
%o :以八进制的整数形式输出。
对长整数(long型)可以用“%lo”格式输出。
%x :以十六进制数形式输出整数,不会出现负的十六进制数。
可以用“%lx”输出长整型数,也可以指定输出字段的宽度,如“%12x”。
%u : 用来输出unsigned 型数据,即无符号数,以十进制整数形式输出。
一个有符号整数(int型)也可以用%u格式输出;反之,一个unsigned 型数据也可以用%d格式输出。
%c : 用来输出一个字符。
注:一个整数,只要它的值在0~255范围内,也可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。
%s : 用来输出一个字符串。
%ms,输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符
串全部输出。若串长小于m,则左补空格。
%-ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns,其中 m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。
%f :用来输出实数(包括单、双精度),以小数形式输出,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为7位。
%m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于 m,则左端补空格。
%-m.nf 与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
%e : 以指数形式输出实数。
%g : 用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。
%% : 输出字符“%”。
2.scanf函数
一般形式 scanf(格式控制,地址表列)
“格式控制”的含义同 printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
输入数据时,在两个数据之间以一个或多个空格间隔,也可以用 Enter 键、Tab键。
可以指定输人数据所占的列数,系统自动按它截取所需数据。
如果在%后有一个“*”附加说明符,表示跳过它指定的列数,输人数据时不能规定精度。
使用scanf函数时应注意的问题
(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。
(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输人数据时在对应位置应输入与这些字符相同的字符。
(3)在用“%c"格式输入字符时,空格字符和“转义字符”都作为有效字符输人。
(4)在输人数据时,遇以下情况时认为该数据结束,
①遇空格,或按“回车”或“跳格”(Tab)键;
②按指定的宽度结束,如“%3d”,只取3列;
③ 遇非法输人。
输入任意一个三位数,将其各位数字反序输出(如输入123,输出321)