当前位置:编程学习 > C/C++ >>

C语言顺序程序设计详解(scanf,printf,getchar,putchar等函数)

一、C语言语句概述:

C语句分为以下五类:
<1>:表达式语句->表达式语句由表达式加上分号“;”组成。
<2>:函数调用语句->由函数名、实际参数加上分号“;”组成。
<3>:控制语句->
条件判断语句:if语句、switch语句;
循环执行语句:do while语句、while语句、for语句;
转向语句:break语句、goto语句、continue语句、return语句。
<4>:复合语句:把多个语句用括号{}括起来组成的一个语句称复合语句
例如:{ x=y+z;
      a=b+c;
      printf(“%d%d”,x,a);
     }
<5>:空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如:while(getchar()!='\n');

1、C语言赋值语句详解:
变量=(变量=表达式)
[cpp] 
a=b=c=d=e=10 

按照赋值运算符的右结合性,因此实际上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;
2、putchar 函数(字符输出函数)
      putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。
     其一般形式为:
     putchar(字符变量)
3、getchar函数(键盘输入函数)
       getchar函数的功能是从键盘上输入一个字符。
      其一般形式为:
        getchar();
       通常把输入的字符赋予一个字符变量,构成赋值语句,如:
        char c;
        c=getchar();
4、C语言格式输出函数printf()详解
       printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为:
    printf(“格式控制字符串”,输出表列)
      
格式字符串
在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型。其中方括号[]中的项为可选项。
各项的意义介绍如下:
类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:
格式字符  意            义
d  以十进制形式输出带符号整数(正数不输出符号)
o  以八进制形式输出无符号整数(不输出前缀0)
x,X  以十六进制形式输出无符号整数(不输出前缀Ox)
u  以十进制形式输出无符号整数
f  以小数形式输出单、双精度实数
e,E  以指数形式输出单、双精度实数
g,G  以%f或%e中较短的输出宽度输出单、双精度实数
c  输出单个字符
s  输出字符串
 
标志:标志字符为-、+、#、空格四种,其意义下表所示:
标 志  意         义
-  结果左对齐,右边填空格
+  输出符号(正号或负号)
空格  输出值为正时冠以空格,为负时冠以负号
#  对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
5、C语言格式输入函数scanf()详解
      scanf(“格式控制字符串”,地址表列);
     其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。
   
[cpp] 
scanf("%d%d%d",&a,&b,&c); 
格式字符串的一般形式为:%[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项。各项的意义如下:
类型:表示输入数据的类型,其格式符和意义如下表所示。
格式  字符意义
d  输入十进制整数
o  输入八进制整数
x  输入十六进制整数
u  输入无符号十进制整数
f或e  输入实型数(用小数形式或指数形式)
c  输入单个字符
s  输入字符串
 
“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:scanf("%d %*d %d",&a,&b);。当输入为:1   2   3时,把1赋予a,2被跳过,3赋予b。
宽度:用十进制整数指定输入的宽度(即字符数)。
例如:
       scanf("%5d",&a);
输入12345678只把12345赋予变量a,其余部分被截去。

又如:
        scanf("%4d%4d",&a,&b);
输入12345678将把1234赋予a,而把5678赋予b。
长度:长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。
使用scanf函数还必须注意以下几点:
scanf函数中没有精度控制,如:scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数为2位的实数。
scanf中要求给出变量地址,如给出变量名则会出错。如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。
在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
例如:
              scanf("%c%c%c",&a,&b,&c);
输入 d   e   f 则把'd'赋予a, ' ' 赋予b,'e'赋予c。只有当输入为 def 时,才能把'd'赋于a,'e'赋予b,'f'赋予c。

如果在格式控制中加入空格作为间隔,如:
scanf ("%c %c %c",&a,&b,&c);
则输入时各数据之间可加空格。


作者:grassroots2011
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,