vlambda博客
学习文章列表

【C语言】04-C程序设计——顺序程序设计



C语句概述


一、C程序结构:

1.一个C程序可以由多个源程序文件构成 

2.一个源程序文件由若干函数、预编译命令及全局变量声明部分构成

3.函数包括数据定义部分和执行部分,执行部分是C语言语句,完成对数据的操作  

【C语言】04-C程序设计——顺序程序设计

二、C语句分为5类

1.控制语句:共9种

 ⊙完成一定的控制功能,这些语句能够根据一定的测试条件决定某些语句是否被执行,如分支、循环、跳转等语句。

【C语言】04-C程序设计——顺序程序设计

 2.函数调用语句:由函数加“ ; ”组成

 ⊙   printf(“This is a C program”);


 3.表达式语句:由表达式加“ ; ”组成

 ⊙典型的是赋值语句,由赋值表达式加分号构成,如:y=x+1是表达式,而y=x+1;则是赋值语句。实际上函数调用语句也属于表达式语句。


a=3 ;

 i++  ;



4.空语句:只有一个“ ; ”,什么也不做

for(i=0;i<100;i++)

       ; 

}


5.复合语句:

 ⊙用 {…}括起来的一组语句,也称作程序块。

 ⊙一般形式:

int i=0,sum=0;

while(i<=100)

sum=sum+i;

i=i+1;     

}

*说明

     ⊙复合语句“ } ”后不加分号

     ⊙语法上和其它语句相同

     ⊙复合语句可嵌套

赋值语句

一、基本格式: 

1.赋值表达式 + ;

赋值表达式可以包含在其它表达式中,而赋值语句不可以。

【C语言】04-C程序设计——顺序程序设计


表达式中允许出现运算符号、变量、数值、函数

【C语言】04-C程序设计——顺序程序设计



二、另一种形式的赋值语句

     <变量><运算符> = <表达式>;

  我们可以理解为:

    <变量>=<变量><运算符><表达式>;

【C语言】04-C程序设计——顺序程序设计

三、连续赋值语句

【C语言】04-C程序设计——顺序程序设计

【C语言】04-C程序设计——顺序程序设计

数据输入输出的概念及在C语言中的实现

一、所谓数据的输入输出是从计算机角度出发的。


二、C语言本身没有I/O语句,所有I/O都由函数来实现。


三、C语言的标准库函数

  1.由编译系统提供的一系列函数,以库形式存放在系统中,不是C语言文本的组成部分。

   2.库函数已编译成目标文件(.obj),在连接阶段才与源程序编译成的目标文件相连接,生成可执行文件。

   3.调用形式:函数名(参数表)

   4.注意在调用C语言库函数时,需要使用编译预处理命令#include <相关的头文件>,使相应的头文件包含到用户源程序中。

  常用头文件:     

     stdio.h   定义输入输出函数

     string.h 定义字符串操作函数

     math.h  定义sin、cos等数学函数


四、标准输入输出函数

     putchar 输出字符, scanf  格式输入,puts 输出字符串

     getchar  输入字符, printf 格式输出,gets  输入字符串

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

注:Turbo C 2.0可以不加#include命令

字符数据的输入输出

 一、putchar 函数(单字符输出函数)

⊙格式:  putchar( ‘字符’);  

         或 putchar( 字符变量); 

强调:被输出的单个字符必须被‘ ’括起来

1.输出一个字符:

/* 例 :putchar(字符变量) */

#include <stdio.h>

void main()

{  char a,b,c;

    a='B'; b=‘O'; c=‘Y';

    putchar(a); putchar(b); putchar(c);

}

运行结果:BOY


2.输出控制字符:

/* 例    putchar(‘控制字符’) */

#include <stdio.h>

void main()

{  char a,b;

    a=‘O'; b=‘k'; 

    putchar(a); putchar(‘\n’); putchar(b);

}

运行结果:O K

3.输出转义字符:

/*例    putchar( )  含有转义符* /

#include <stdio.h>

void main()

{  char a;

    a='B';

    putchar('\101'); putchar(a);

}

运行结果:AB


二、getchar 函数(单字符输入函数) 。

1.格式:  getchar( ) ;          

2.强调:输入单个字符后,必须按一次回车,计算机才接受输入的字符。

/*例 */

#include <stdio.h>

void main()

{  char  c;

    c=getchar( );

    putchar(c);

}

运行结果:

【C语言】04-C程序设计——顺序程序设计

注:# include <stdio.h>不能少!

格式输入与输出


一、printf函数(格式输出函数)

    1.printf函数的一般格式

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

        *格式控制:用双引号括起来的字符串,包含两种信息

            ∞格式说明:%[修饰符]格式字符,指定输出格式

            普通字符:原样输出

         *输出表列:要输出的数据,可以是变量或表达式,可以没有,多个时以“,”分隔)

【C语言】04-C程序设计——顺序程序设计

/*从最简单的学起  */

#include <stdio.h>

void main()

{

    printf(“Hello World !” );

}

运行结果:Hello World!

注:调用 printf( ) 时可以省略# include 命令!


二、格式字符

1.d格式符:输出十进制整数,有3种用法

    ⊙%d格式:按数据实际长度输出,数据范围 -32768~32767

/* %d 格式的 printf( ) 函数使用 */

#include <stdio.h> 

void main()

     {  

          int a=3  ,  b=4;

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

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

      }

运行结果:3 4  a=3,b=4

【C语言】04-C程序设计——顺序程序设计


2.%md格式:m指定输出字段的宽度

   ⊙数据位数小于m,左端补空格,反之按实际输出。

【C语言】04-C程序设计——顺序程序设计

3.%ld格式:输出长整型数据

  ⊙可以用%mld格式指定输出列宽

【C语言】04-C程序设计——顺序程序设计

注:135790 > 32767 ( int 型数据的最大值)


4.o格式符:八进制输出整数

   ⊙是将内存中的二进制位整个按八进制输出,所以输出值没有符号。

   ⊙可以指定输出宽度%mo,长整型可以用%lo格式输出。


5.x格式符:十六进制输出整数

  ⊙同o格式符,无符号,即无负十六进制数。

  ⊙可以指定输出宽度%mx ,长整型可以用%lx格式输出

【C语言】04-C程序设计——顺序程序设计


6.u格式符:十进制输出unsigned型数据

  ⊙int型可以用%u格式输出,unsigned型也可以用%d、%o和%x格式输出。

例: 无符号数据的输出

 #include <stdio.h>

 void main()

 { unsigned int a=65535;

    int b= -2;

    printf(“a=%d , %o , %x , %u\n ”,a,a,a,a); 

    printf(“b=%d , %o , %x , %u\n” ,b,b,b,b);

 }

运行结果:

    a= - 1 , 177777 , ffff , 65535

    b= - 2 , 177776 , fffe , 65534


7.c格式符:输出一个字符

  ⊙值在0~255的整数,可以用%c形式输出为字符

例: 字符数据的输出

 #include <stdio.h>

 void main()

 { char c=‘a’;

    int i=97;

    printf(“%c , %d\n ”,c,c); 

    printf(“%c , %d\n” ,i ,i);

 }

运行结果:a,97

              a,97


8.s格式符:输出一个字符串

  ⊙有%s,%ms,% -ms,%m.ns,% -m.ns五种用法

【C语言】04-C程序设计——顺序程序设计


9.f格式符:输出实数

⊙%f格式:整数部分全部输出,小数6位。可以有非有效数字输出,因为单精度有效位7位,双精度16位。

%m.nf格式:占m列,其中n位小数,左补空格。

% -m.nf格式:右补空格

例1:  %f格式输出实数时的有效位数

 #include <stdio.h>

 void main()

 { flot x,y;

    x=111111.111;y=222222.222;

    printf(“%f\n”,x+y); 

 }

运行结果:333333.328125


例2: %f格式输出双精度实数时的有效位数

 #include <stdio.h>

 void main()

 { double x,y;

    a=1111111111111.111111111;

    b=2222222222222.222222222;

    printf(“%f\n”,x+y); 

}

运行结果:3333333333333.333010


 例3:   %f格式输出实数时指定小数位数

 #include <stdio.h>

 void main()

 { flot f=123.456; 

   printf(“%f  %10f  %10.2f  %.2f  %-10.2f\n”,f,f,f,f,f);

 }

运行结果:123.456001_ _123.456001_ _ _ _ _ _123.46_ _123.46_ _123.46_ _ _ _


10.e格式符:指数形式输出实数

   ⊙%e格式:不指定m和n,小数6位,指数部分共5位,

                      其中e和指数符号各1位,指数值3位。

   %m.ne和% -m.ne格式:m、n、-的含义同前面。

                                              没有n时,自动=6


11.g格式符:输出实数

  可以自动根据数值大小选择 f 或 e 格式(选列少的)

  ⊙不输出无意义的零


12.格式字符表:

【C语言】04-C程序设计——顺序程序设计

scanf 函数(格式输入函数) 

一、一般形式

        单元中,并按回车键结束

格式控制:含义同printf函数

例:用scanf函数输入数据

#include <stdio.h>

voidmain()

{   int a , b , c ;

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

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

}

【C语言】04-C程序设计——顺序程序设计

【C语言】04-C程序设计——顺序程序设计


二、输入分隔符的指定

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

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

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

【C语言】04-C程序设计——顺序程序设计


顺序结构程序举例

【C语言】04-C程序设计——顺序程序设计

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

【C语言】04-C程序设计——顺序程序设计

 引致:教材

 C程序设计 (第二版)

          谭浩强  编著 清华大学出版社


内容:提供更好的学习资源