目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
    • 3.1 第一节  关系表达式和逻辑表达式
    • 3.2 第二节  if单分支语句
    • 3.3 第四节  if双分支语句
    • 3.4 第五节  if多分支语句
    • 3.5 第六节  case多分支语句
    • 3.6 第七节  分支结构程序设计实例
    • 3.7 本章小结
    • 3.8 本章单元测试
    • 3.9 书中本章习题答案
  • 4 第四章  循环结构程序设计
    • 4.1 第一节  为什么需要循环控制
    • 4.2 第一节  while循环
    • 4.3 第二节  do ... while循环
    • 4.4 第三节  for循环
    • 4.5 第四节  多重循环
    • 4.6 第五节  break语句和continue语句
    • 4.7 第六节  循环结构程序设计实例
    • 4.8 本章小结
    • 4.9 书中本章习题答案
  • 5 第五章 数组
    • 5.1 第一节  一维数组的定义和使用
    • 5.2 第二节  二维数组的定义和使用
    • 5.3 第三节  字符数组的定义和使用
    • 5.4 第四节  数组的应用举例
  • 6 第六章  函数
    • 6.1 第一节  函数的定义
    • 6.2 第二节  函数的调用
    • 6.3 第三节 数组作为函数参数
    • 6.4 第四节  变量的作用域
    • 6.5 第五节 变量的存储类别
    • 6.6 第六节 函数应用实例
  • 7 第七章 结构体和共用体
    • 7.1 第一节  概述
    • 7.2 第二节  定义结构体变量的方法
    • 7.3 第三节 结构体变量的引用
    • 7.4 第四节 结构体数组
    • 7.5 第五节 共用体
    • 7.6 第六节  结构体和共用体应用实例
  • 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 第五节  文件应用实例
  • 10 附录
    • 10.1 附录A  基本字符ASCII码表(0~127)
    • 10.2 附录B  运算符优先级表
    • 10.3 附录C 常用C库函数表
    • 10.4 附录D  编译常见错误提示
    • 10.5 附录E  常见C语言英语单词
    • 10.6 附录F  如何从十进制转换为二进制
    • 10.7 附录G  如何把二进制数转化为十进制数
    • 10.8 附录H  什么是编译器
    • 10.9 附录I  与编译器相关的几个知识点
第六节 数据输入
  • 1 文字讲解
  • 2 视频讲解
  • 3 过关测试

数据的输入一般是以键盘为处理对象的,从键盘接收字符和数值

字符输入函数 getchar( )和输出函数 putchar( )是以一个字符为单位来完成输入/输出过程的。在程序中,使用这两个函数时,要求在程序开头包含头文件 stdio.h

          #include   <stdio.h>

2.5.1  字符输getchar入函数()

1、函数 getchar( )的常用格式

      常用格式:字符型变量 = getchar(  );

      说明:getchar函数没有参数,使用简单,getchar函数执行完后有返回值,是键盘上一个按键的ASCII值,可以存放到字符型变量中。

2、函数 getchar( )的功能

函数 getchar( )的功能:接收从键盘上输入的字符。

3、函数 getchar( )应用示例一

    类似代码如下:

      char  ch;

      ch = getchar(  );

      在程序中使用这个函数输入字符时,可以用一个变量来接收读取的字符。

      执行上面的语句时,程序等待用户输入,当用户按下某个键时,变量c就得到了该键的代码值。

      在进行数据输入时有一个特殊的字符,就是从键盘输入(表示将Cu键与Z键同时按下),Z称为文件尾标,表示输入过程结束,这个特殊字符的值为-1。

4、函数 getchar( )应用示例二

      类似代码如下:getchar(  );

      说明:不存储从键盘输入的字符,暂停程序执行,可应用于程序调试中。

例2-10   使用字符输入函数 getchar( )完成如下功能:

       从键盘上输入任意一个字符,输出这个字符与它相对应的ASCII码。

程序分析:从键盘上输入:A,输出:ch=A,ch=65

源代码如下:

  1. #include  <stdio.h>

  2. main( )

  3. {

  4.    char ch;

  5.    ch=getchar( );

  6.    printf("ch=%c, ch=%d \n", ch, ch);

  7. }

执行此程序,当执行到语句:

      ch=getchar( );

时,计算机就会等待用户按键(等待输入)。此时,若用户按了A键,就会在屏幕上显示如图2-8所示内容。


      图2-8中的65是大写字母A的ASC码值。

2.5.2  格式化输入函数scanf( )

1、函数 scanf( ) 的常用格式

       格式:scanf("格式串",地址表);

       说明:① 地址表由需要接受存储数据变量的地址组成,中间用逗号隔开,获取一般各种类型变量的地址采用&(取地址)运算符,如&a,&b。

       ② 与printf( )函数一样,“格式串”中既可以含格式符,也可以含非格式符。 scanf( )中格式符的意义同 printf( ),如表2-5所示。 


2、函数 scanf( ) 的功能

       功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束。

        输入时,只要遇到非格式符,就要求原样输入,只要遇到格式符,就要按指定格式输入数据,输入的数据存入对应地址的存储空间中。

       当 scanf( )函数有多个输入项时,键盘输入的各项信息之间可以用空格、Tab键或回车键作为分隔符。

输入分隔符的指定

      ⚫ 一般以空格、TAB或回车键作为分隔符

     ⚫ 输入数据时,遇非法输入则认为数据结束

      ⚫ 其它字符做分隔符:格式串中两个格式符间有其它字符,则输入时对应位置也要有相同的字符。

例如: scanf(“%d:%d:%d”,&h,&m,&s);

      输入 12:30:45

      则12 --> h, 30 --> m, 45 --> s

例如:

  1. #include  <stdio.h>

  2. main( )

  3. {

  4.    int  h,m,s;

  5.    scanf("%d:%d:%d",&h,&m,&s);

  6.    printf("时间为:%d:%d:%d\n", h, m, s);

  7. }

        输入1234a123o.26  //o 非法字符

        则 1234 --> a, ‘a’--> b, 123 --> c

3、函数 scanf( ) 的常用示例一

部分代码如下:

       int   x, y;

       scanf("x=%d,y=%d", &x, &y );

       printf("x=%d, y=%d", x, y);

       说明:这种用法在格式串中有格式符与非格式符。

       scanf函数运行示意图如下:


       这里,若执行该语句后x=3,y=4, 则可按下面的格式输入:

              x=3,y=4

      按回车键后结束输入。此时,3和4分别写入x和y所在的存储单元中。

4、函数 scanf( ) 的常用示例二

     部分代码如下:

           int   x, y;

           scanf("%d%d", &x, &y );

           printf("x=%d, y=%d", x, y);

      说明:这种用法格式串中只有格式符。

      数据输入方法1:采用空格作为分隔符

           123  500

       数据输入方法2:采用回车符作为分隔符

           123

            500

注意:此时逗号、分号等标点符号不能作为分隔符,因为它们未出现在格式串中,只能用空格、Tab键或回车键作为分隔符

例2-11  从键盘上输入直径的值,然后计算圆的面积和周长。

  1. #include  <stdio.h>

  2. #define PI  3.1415926

  3. main( )

  4. {

  5.      float d, r;

  6.     double len, area;

  7.     printf("请输入直径的值:");

  8.     scanf("%f", &d);

  9.     r=d/2;

  10.     area=PI*r*r;

  11.      len=2*PI*r;

  12.      printf("半径R=%f,面积S=%f,周长L=%f\n", r, area, len);

  13. }

 该程序的运行结果如图2-9所示。


图2-9  例2-11运行结果



语义错误通过程序调试来发现

断点:breakpoint

release:正式版

debug:调试

如何调试:

1、请将源程序文件保存到某一目录中

2、编译器选择debug调试版

3、打开调试器面板

4、调试

提示性语句:表示友好,能让用户看明白

运行scanf语句时,等待你从键盘上输入数据

蓝色表示下一条将执行的语句

红色表示断点,程序运行时遇到红色会暂停

添加查看,可以了解程序运行过程中变量的值