第五次课:
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

2.12 数据的输出 PowerPoint PPT Presentation


  • 46 Views
  • Uploaded on
  • Presentation posted in: General

第五次课:. 2.12 数据的输出. 输入输出是以计算机内存为文体的 , 数据由计算机传到外部输出设备称为输出 ; 数据由外部输入设备传到计算机称为输入。 C 语言本身不提供输入输出语句 , 是由函数来实现的。 C 提供的函数以库的形式存放在系统。. 标准输入输出库函数 putchar( 输出字符 ) getchar ( 输入字符 ) printf (格式输出) scanf (格式输入) puts (输出字符串) gets (输入字符串) 标准输入输出库函数 stdio.h

Download Presentation

2.12 数据的输出

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


2 12

第五次课:

2.12 数据的输出

  • 输入输出是以计算机内存为文体的,数据由计算机传到外部输出设备称为输出;数据由外部输入设备传到计算机称为输入。

  • C语言本身不提供输入输出语句,是由函数来实现的。C提供的函数以库的形式存放在系统。


2 12

  • 标准输入输出库函数

    putchar(输出字符) getchar(输入字符)

    printf(格式输出)scanf(格式输入)

    puts(输出字符串) gets(输入字符串)

    标准输入输出库函数 stdio.h

    #include <stdio.h> 或 #include “stdio.h”


2 12

  • 在头文件中包含了与用到的函数有关的信息,# include <文件名>命令都是放在程序的开头,因此这类文件称为“头文件”。

  • Stdio.h是standard input & output的缩写,它包含了与标准I/O库有关的变量定义和宏定义。

    数学函数 “math.h”

    字符函数 “ctype.h”

    字符串函数 “string.h”


2 12

一、字符数据的输入输出

1、字符输出函数

格式:

putchar(c)

其中c为字符型或整型的常量、变量及其表达式

功能:

每次向屏幕输出一个字符供显示。

该函数可以输出控制字符和转义字符.

如:putchar(‘\”’);

【例】求以下程序运行结果

#include <stdio.h>

main()

{

char x='a';

putchar(x);

putchar('b');

putchar(x+2);

putchar('b'+2);

}

结果:abcd


2 12

  • 例 # include <stdio.h>

    main()

    {

    char ch1,ch2;

    ch1=‘A’;

    putchar(‘*’);

    putchar(‘\n’);

    putchar(ch1);

    ch2= putchar(ch1+2);

    putchar(ch2);

    }

字符常量的输出

控制字符的输出

字符变量的输出

表达式值的输出

返回值的输出

结果:*

ACC


2 12

【例一】

#include <stdio.h>

main()

{ char a,b;

a=getchar();b=getchar();

printf(“a=%c,b=%c\n”,a,b);

}

运行时,如果——

输入:Student

输出结果为 a=S,b=t

2.字符输入函数

格式:

getchar( )

功能:

从键盘上读入一个字符,

getchar( )包含在stdio.h中;

该函数没有参数;

该函数一次只应读取一个字符;

该函数得到的字符可以赋值给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分

如:printf(“%c”,getchar());

putchar(getchar());


2 12

例 从终端输入一个字母以大写字母输出。

main()

{

char ch,c;

ch=getchar();

c=ch>=‘a’&&ch<=‘z’?ch-32:ch;

putchar(c);

}

运行情况:

输入:a

输出结果:

A


2 12

二、格式输出

  • 格式输出函数

    格式:printf(“格式控制字符串”,输出表列)

    其中f为“格式(format)”的意思。

    功能:按指定格式向显示器输出数据

    • 输出表列:要输出的数据(可以没有,多个时以“,”分隔)

    • 格式控制字符串:包含两种信息

      • 格式说明:%[格式字符],用于指定输出格式

      • 普通字符或转义序列:原样输出

        一般形式为:

        Printf(参数1,参数2,……参数n);

    • 格式字符


2 12

格式字符:

十进制整数

d,i

十六进制无符号整数

x,X

八进制无符号整数

o

不带符号十进制整数

u

单一字符

c

字符串

s

指数形式浮点小数

e,E

小数形式浮点小数

f

e和f中较短一种

G,g

百分号本身

%%

int a=567;printf ( “%d”,a);

567

int a=255;printf(“%x”,a);

ff

int a=65;printf(“%o”,a);

101

int a=567;printf(“%u”,a);

567

char a=65;printf(“%c”,a);

A

printf(“%s”,“ABC”);

ABC

float a=567.789;printf(“%e”,a);

5.677890e+002

float a=567.789;printf(“%f”,a);

567.789000

float a=567.789;printf(“%g”,a);

567.789

printf(“%%”);

%

  • 说明

    • 除x、e、g外,其它格式字符要用小写

    • 格式字符与输出项个数应相同,按先后顺序一一对应

      格式字符与输出项类型不一致,自动按指定格式输出


2 12

修饰符

功 能

m

输出数据域宽,数据长度<m,左补空格;否则按实际输出

对实数,指定小数点后位数(四舍五入)

对字符串,表示截取字符个数

.n

输出数据在域内左对齐(缺省右对齐)

-

指定在有符号数的正数前显示正号(+)

+

输出数值时指定左面不使用的空位置自动填0

0

#

在八进制和十六进制数前显示前导0,0x

在d,o,x,u前,指定输出精度为long型

在e,f,g前,指定输出精度为double型

l

  • 附加格式说明符(修饰符)


2 12

例题:

例 int a=1234;

float f=123.456;

printf(“%08d\n”,a);

printf(“%010.2f\n”,f);

printf(“%+08d\n”,a);

printf(“+010.2f\n”,f);

main()

{printf(“\n*s1=%15s*”,”chinabeijing”);

printf(“\n*s2=%-5s*”,”chi”);

printf(“\n*s3=%15.3s*”,”chinabeijing”);

printf(“\n*s4=%.4s*”,”chinabeijing”);

printf(“\n*s5=%-15.3s*”,”chinabeijing”);

}

例 int a=123;

printf(“%o,%#o,%X,%#X\n”,a,a,a,a);

main()

{float a=123.444;

printf(“%f\n”,a);

printf(“%14.3f\n”,a);

printf(“%6.4f\n”,a);

printf(“%.4f\n”,a);

}

int x=-1;

printf(“%x,%o,%d,%12x”,x,x,x,x);

int x=1,y=3;

printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y);

int x=7281;

printf(“x=%3d,x=%6d”,x,x);

long a=135790;

printf(“%ld,%8ld”,a,a);


2 12

课后分析:

  • 对于格式输出函数printf()函数,不同的数据使用的格式符不同,规则比较多,课上要通过大量的练习让学生对比掌握。


2 12

第六次课:

目的要求:

  • 掌握格式输入函数scanf()函数的使用

  • 学习顺序结构程序设计方法

    重点难点:

  • 地址的含义及取地址符号&的用法

  • 算法的概念及几个简单算法的表示


2 12

2.13 格式输入函数

  • 格式输入函数

  • 格式: scanf(“格式控制字符串”,地址表列)

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

  • 地址表列:由若干个变量的地址组成,地址常用取地址运算符&和变量名组成&

  • 格式字符:d,i,o,x,u,c,s,f,e


2 12

修饰符

功 能

h

用于d,o,x前,指定输入为short型整数

用于d,o,x前,指定输入为long型整数

l

用于e,f前,指定输入为double型实数

m

指定输入数据宽度,遇空格或不可转换字符则结束

抑制符,指定输入项读入后不赋给变量

*

  • 附加格式说明符(修饰符)


2 12

  • 输入分隔符的指定

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

    • 其它字符做分隔符:格式串中两个格式符间字符,输入时应原样输入

  • 例:“%d%d%d”格式控制

  • 3_ _ 4 _ _ 5

  • 3

    4 _ 5

  • 3(tab)_ _ 4

    5

  • scanf(“%d,%d”,&a,&b);

    scanf(“%d:%d”,&a,&b);

    scanf(“%d_ _%d”,&a,&b);

    scanf(“a=%d,b=%d”,&a,&b);


    2 12

    • 可以指定输入数据的列数,系统自动按它截

      取所需数据

    scanf(“%3d%3d”,&a,&b);

    scanf(“%3c”,&ch);

    123456

    c

    • 若%后有一个“*”,表示跳过指定列数

    scanf(“%2d_ %*3d_ %2d”,&a,&b);

    12_345_67

    • 输入时不能规定精度

    scanf(“%7.2f ”,&a);

    • Scanf函数至少有一个输入项,输入项必须用地址表示


    2 12

    • 说明:

      • 用“%c”格式符时,空格和转义字符作为有效字符输入

    scanf(“%c%c%c”,&c1,&c2,&c3);

    • 输入数据时,遇以下情况认为该数据结束:

      • 遇空格、TAB、或回车

      • 遇宽度结束

      • 遇非法输入

    scanf(“%d%c%f”,&a,&b,&c);


    2 12

    • 目的要求:

    • 了解C的语句组成及分类

    • 难点:

    • c程序的顺序结构


    2 12

    第三章 顺序程序设计

    • 程序

      数据描述:定义数据类型和数据初值

      数据操作:对数据进行加工,由语句

      实现


    2 12

    • if( )~else~

    • switch

    • for( )~

    • while( )~

    • do~while( )

    • continue

    • break

    • goto

    • return

    分支

    循环

    辅助控制

    • 3.1C语句概述

      • C语句:以“;”作分隔符,编译后产生机器指令.

      • C语句分类

        • 控制语句


    2 12

    • 表达式语句:表达式加分号构成。

      赋值语句:可包含在其他表达式中,

      如:if ((x=y)>0) z=x; 在if的条件中不能包含赋值语句

    • 函数调用语句:函数调用语句由一次函数调用加一个分号(语句结束标志)构成.

      如:printf(“This is a C program.\n”);

    • 空语句:仅由一个分号构成。显然,空语句什么操作也不执行。有时用来做被转向点,或用在循环体中


    2 12

    • 复合语句:用 {…}括起来的一组语句

      • 一般形式: { [数据说明部分;]

        执行语句部分;

        }

      • 说明:

        • “}”后不加分号

        • 语法上和单一语句相同

        • 复合语句可嵌套


    2 12

    文件包含预处理命令

    变量定义

    输入数据

    输出数据

    例 输入三角形边长,求面积

    #include <math.h>

    #include <stdio.h>

    main()

    { float a,b,c,s,area;

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

    s=1.0/2*(a+b+c);

    area=sqrt(s*(s-a)*(s-b)*(s-c));

    printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);

    printf("area=%7.2f\n",area);}

    输入:3,4,6 

    输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50

    area= 5.33


    2 12

    例 从键盘输入大写字母,用小写字母输出

    #include "stdio.h"

    main()

    { char c1,c2;

    c1=getchar();

    printf("%c,%d\n",c1,c1);

    c2=c1+32;

    printf("%c,%d\n",c2,c2);

    }

    输入:A 

    输出:A,65

    a,97


    2 12

    #include <stdio.h>

    #include <math.h>

    main()

    { float a,b,c,disc,x1,x2,p,q;

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

    disc=b*b-4*a*c;

    p=-b/(2*a); q=sqrt(disc)/(2*a);

    x1=p+q; x2=p-q;

    printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);

    }

    输入:a=1,b=3,c=2 

    输出:x1=-1.00

    x2=-2.00


  • Login