目录

  • 1 C语言概述及简单程序设计
    • 1.1 C语言程序设计基础
    • 1.2 程序结构和规范
    • 1.3 字符串的应用
    • 1.4 经典例题1
    • 1.5 经典例题2
    • 1.6 经典例题3
    • 1.7 C语言概述课件
    • 1.8 数据类型与运算课件
    • 1.9 顺序结构程序设计课件
  • 2 分支程序设计
    • 2.1 简单if语句
    • 2.2 三个数排序
    • 2.3 多分支、嵌套
    • 2.4 经典例题
    • 2.5 选择结构程序设计课件
  • 3 循环程序设计
    • 3.1 while循环及应用
    • 3.2 do while循环及应用
    • 3.3 for循环及应用
    • 3.4 循环嵌套的应用
    • 3.5 经典例题
    • 3.6 循环结构程序设计课件
  • 4 函数
    • 4.1 模块化编程
    • 4.2 函数的嵌套调用与递归调用
    • 4.3 C语言中的变量与作用域
    • 4.4 经典例题
    • 4.5 函数课件
  • 5 数组
    • 5.1 一维数组及应用
    • 5.2 二维数组
    • 5.3 一维数组排序
    • 5.4 字符数组与字符串
    • 5.5 数组作为函数参
    • 5.6 经典例题
    • 5.7 数组课件
  • 6 指针
    • 6.1 指针与一维数组
    • 6.2 指针与函数
    • 6.3 经典例题
    • 6.4 指针课件
  • 7 结构体与共用体
    • 7.1 结构体及应用
    • 7.2 共用体与枚举及应用
    • 7.3 经典例题
    • 7.4 结构体、共用体和枚举课件
  • 8 位运算
    • 8.1 位运算
    • 8.2 经典例题
    • 8.3 位运算课件
  • 9 文件
    • 9.1 经典例题
    • 9.2 文件课件
程序结构和规范
  • 1
  • 2 第二章 数据...


标准的输出函数

  算法特点之一,任何一个算法可以有0个或多个输入,但必须有一个或多个输出,以反映对输入数据加工后的结果。

  C语言程序中没有输入输出语句,用户与计算机进行数据交流是通过基本输出函数printf()和输入函数scanf()完成的。

在具有输入或输出要求的程序中,必须在程序的开头使用编译预处理命令“#include<stdio.h>”C语言中scanf输入函数与printf输出函数包含进来。这就是为什么每个程序的第一行要有头文件“#include<stdio.h>”的原因。

1. 格式输出函数printf()

一般形式:

printf("格式控制字符串", 输出表项 );

功能:格式化输出函数的作用是按格式控制字符串中指定的格式向标准输出设备(即显示器)输出指定的输出项。

2.相关规则

1)格式控制字符串:用一对双撇号括起来,它用于说明输出表项所采用的输出格式。它包括两种符号:

①格式说明符:用于说明输出数据格式的符号,总是以%开头,后面紧跟如dfc这样的字母。如%d%f%c等。

 普通字符:在格式控制字符串中除格式说明符外若还有其它字符,这些字符统称为普通字符,输出时按原样输出。

如:printf(" a=%d,b=%f,c=%c", a,b,c);

"a=%d,b=%f,c=%c" 称为格式控制字符串,其中的%d%f%c是格式控制符,控制输出项a,b,c的输出格式,其余符号为普通字符。

    常用的几种输出格式字符                                          

格式字符

 

  意义

格式字符 

  意义

  %d

按十进制整型数输出

  %c

按字符型输出

%ld%Ld

 

按十进制长整型数输出 

  %s

 

按字符串输出

 

  %u 

按无符号整型数输出 

  %e

按科学计数法输出 

 

%lu%Lu

 

按无符号长整型数输出

  %o

按八进制整数输出

 

%f

 

按浮点型小数输出,默认保留6位小数 

  %x

 

按十六进制整数输出

 

 

%lf%Lf

 

按双精度浮点数输出

 

 

  %g

 

ef格式中较短的一种输出

③修饰符:若格式字符中含有修饰符时,其作用是确定数据输出的宽度、精度、小数位数、对齐方式等,使得输出更加规范整齐,当没有修饰符时,按系统默认形式输出。

 修饰符                

 

修饰符

 

 

格式说明

 

 

  

 

 

实例

 

 

m

 

 

%md

 

 

以宽度m输出整型数,数据宽度大于m时,按实际数值输出。数据宽度小于m时,右对齐,左补齐空格。

 

  

输出:

 

123,123,□□123,123□

 

 

-m

 

 

%-md

 

 

同上,不足m列左对齐,右补齐空格。

 

 

m.n

 

 

%m.nf

 

 

指定输出的数据共占m列(包括整数部分、小数点和小数位部分),其中小数位为n位。如果数值长度小于m,则左端补齐空格。即右对齐。如果数值长度大于m,则按实际数值输出。

 

 

输出:

 

125.738205,125.74, □□125.74,125.74□□

 

 

-m.n

 

 

%-m.nf

 

 

同上,不足m列,左对齐,右端补齐空格。

 

 

m

 

 

%ms

 

 

m列输出字符串。如果字符串的长度大于m,则将字符串全部输出。若字符串长度小于m,则在m列范围内,左补齐空格,即右对齐。

 

 

  

printf("s1=%s,s2=%3s,s3=%6s,s4=%5.2s,s5=%-5.2s","abcd","abcd","abcd","abcd","abcd");

 

输出:

 

s1=abcd,s2=abcd,s3=□□abcd,

 

s4=□□□   ab,s5=ab□□□

 

 

m.n

 

 

%m.ns

 

 

左起截取指定字符串中前n个字符输出,共占m列。不足m列,左端补齐空格,右对齐。

 

 

-m.n

 

 

%-m.ns

 

 

同上。不足m列,右端补齐空格,左对齐。

 


3. 格式输入函数scanf()                                  

一般形式:      

scanf("格式控制字符串", 地址表列);       

如:scanf( "%d%d%d",&a,&b,&c);

其中,"%d%d%d"为格式控制字符串,&a,&b,&c为地址表列。

4. 相关规则

(1) 格式控制字符串无任何普通字符:在程序运行中输入非字符型数据时,各数据项之间通常以一个或多个空格间隔,也可以用回车键、制表键(Tab)间隔。

    int a,b,c;

    scanf("%d%d%d",&a,&b,&c);      

以下方式都是正确的输入方式:

3<空格>4<空格>5<回车>       /*用空格间隔,常用格式*/

3<回车>4<回车>5<回车>           /*用回车间隔,不常用*/

3<Tab>4<空格>5<回车>           /*用空格、Tab键、回车间隔*/

(2) 格式控制字符串有普通字符:在输入时必须按照普通字符的原样从键盘输入。如果输入的内容与格式控制字符串的普通字符内容不一致,则scanf函数立即结束,变量不能正确获得数据,这种错误属逻辑错误,编译时不会报错,但程序运算时结果异常。

   int a,b,c;

   scanf("%d,%d,%d",&a,&b,&c);

则从键盘上输入数据时,不能再用空格隔开数据,而必须原样输入格式符中的逗号。这里的逗号属普通字符。

即 3,4,5<回车>      /*也是常用格式,符号我们的习惯*/。