目录

  • 1 第一章 C语言简介
    • 1.1 C语言前世今生
    • 1.2 主流开发环境介绍
    • 1.3 第一个小程序解析
    • 1.4 常见编译错误
    • 1.5 章节知识点小结
  • 2 算法基础
    • 2.1 算法-程序的灵魂
    • 2.2 算法的描述-流程图
  • 3 数据类型与运算符
    • 3.1 数据描述
    • 3.2 运算符和表达式1
    • 3.3 运算符和表达式2
    • 3.4 章节知识点小结
  • 4 顺序结构程序设计
    • 4.1 输入和输出
    • 4.2 顺序结构程序设计
    • 4.3 章节知识点小结
  • 5 选择结构程序设计
    • 5.1 关系运算符和关系表达式
    • 5.2 逻辑运算符和逻辑表达式
    • 5.3 if语句
    • 5.4 条件运算符
    • 5.5 switch语句
    • 5.6 章节知识点小结
  • 6 循环结构程序设计
    • 6.1 while循环结构
    • 6.2 do_while循环结构
    • 6.3 for循环结构
    • 6.4 循环的嵌套
    • 6.5 break语句和continue语句
    • 6.6 章节知识点小结
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组
    • 7.4 章节知识点小结
  • 8 函数
    • 8.1 子程序设计
    • 8.2 函数定义
    • 8.3 函数的调用
    • 8.4 局部变量和全局变量
    • 8.5 参数传递
    • 8.6 函数递归调用
    • 8.7 章节知识点小结
  • 9 指针
    • 9.1 指针的基本概念
    • 9.2 指针变量的定义及引用
    • 9.3 通过指针引用数组元素
    • 9.4 指向多维数组的指针和指针变量
    • 9.5 用指向数组的指针作函数参数
    • 9.6 指针与字符串
    • 9.7 函数指针和指针函数
    • 9.8 章节知识点小结
  • 10 用户自己建立数据类型
    • 10.1 定义和使用结构体变量
    • 10.2 使用结构体数组
    • 10.3 结构体指针
    • 10.4 章节知识点小结
  • 11 编译预处理
    • 11.1 宏定义预处理
    • 11.2 文件包含预处理
    • 11.3 条件编译预处理
    • 11.4 章节知识点小结
  • 12 文件
    • 12.1 文件的基本知识
    • 12.2 文件的基本操作
    • 12.3 章节知识点小结
输入和输出


几乎每一个程序都包含输入和输出。因为要进行运算,就必须给出数据,而运算的结果当然需要输出,没有输出的程序是没有意义的。当然,这里的输出并不仅仅是输出到屏幕,在涉及到输入输出时要注意以下几点:

(1) 输入输出的概念

 输出:从计算机向外部输出设备输出数据。

 输入:从输入设备向计算机输入数据。

(2)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现。

(3)在使用输入输出函数时,要在程序文件的开头使用如下预编译指令:

    #include<stdio.h>

一、格式输出函数——printf

1.printf函数的一般格式

printf(格式控制,输出表列)

格式控制:由双引号引起来的字符串,主要包括格式声明和普通字符。

输出表列:需要输出的数据,可以是常量、变量或表达式。

例:printf函数的具体例子:




2.常用格式字符

(1)d格式符。 用来输出一个有符号的十进制整数

%d:输出int型数据

%md(%-md):指定输出数据的域宽。如:   printf(%5d\n%5d\n,12,-345);

%ld:输出long型数据

思考 以下程序的运行结果为?  

#include <stdio.h>

void main( )

{printf("%10d  %-10d\n",1,1);

printf("%10d  %-10d\n",12,21);

printf("%10d  %-10d\n",123,321);

printf("%10d  %-10d\n",1234,4321);

return;}

(2)c格式符:用来输出一个字符

char ch='a';      

printf("%c",ch);

(3)%s格式符:  用来输出一个字符串

printf("%s","CHINA"); 

(4)f格式符:用来输出实数,以小数形式输出

①不指定数据宽度和小数位数,用%f

    printf("%f\n",1.0/3);

②指定数据宽度和小数位数。用%m.nf

    printf("%10.2f\n",1.0/3);

③输出的数据向左对齐,用%-m.nf

例:输出实数时的有效位数。阅读程序,分析程序的运行结果。

  #include <stdio.h>

  void main( )

  { floata,b;

   a=11111.11111;

   b=22222.22222;

   printf("%f\n",a+b);

       printf("a+b=%10.2f\n",a+b);

    return;

  }

(5)e格式符:以指数形式输出实数

%e: 小数位数占6列,指数部分占5列,小数点前必须有且只有1位非零数字

      printf("%e",123.456);

      输出:1.234560e+002

表4.1 printf函数的格式字符


表4.2 printf函数的附加格式字符(%-m.nf)


二、格式输入函数——scanf

1.scanf函数的一般形式

   scanf(格式控制,地址表列)

格式控制:含义和printf函数相同,以%开始,以一个格式字符结束,还可以插入普通的字符,如:

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

地址列:该部分需要变量的地址,地址就是在变量名前加上地址操作符”&”。

【例】用scanf函数输入数据。

 #include<stdio.h>

 void main()

 { 

   int a,b,c;

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

   printf("%d,%d,%d\n",a,b,c);

 }

程序运行时可以用空格或回车分隔数据,运行结果如下图的示;


注意:格式声明中可插入其他字符,输入时需对应。

思考要使abc的值分别为123,以下程序运行时,该如何输入数据。

 #include<stdio.h>

 void main()

 {

   int a,b,c;

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

   printf("%d,%d,%d\n",a,b,c);

 }

2.使用scanf函数时应注意的问题

scanf("%f%f%f",a,b,c);     错

scanf("%f%f%f",&a,&b,&c);     对

3. 连续输入字符时,不以空格结束

 #include<stdio.h>

 void main()

 { 

   char c1,c2,c3;

   scanf("%c%c%c",&c1,&c2,&c3);

   printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);

 }                                  

三、字符数据的输入输出


1.用putchar函数输出一个字符

功能:从计算机向显示器输出一个字符 

形式:

       putchar(c) 

2. 用getchar函数输入一个字符

功能:向计算机输入一个字符

形式:

              c=getchar( )