【C语言】04-C程序设计——顺序程序设计
C语句概述
一、C程序结构:
1.一个C程序可以由多个源程序文件构成
2.一个源程序文件由若干函数、预编译命令及全局变量声明部分构成
3.函数包括数据定义部分和执行部分,执行部分是C语言语句,完成对数据的操作
二、C语句分为5类
1.控制语句:共9种
⊙完成一定的控制功能,这些语句能够根据一定的测试条件决定某些语句是否被执行,如分支、循环、跳转等语句。
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语言中的实现
一、所谓数据的输入输出是从计算机角度出发的。
二、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);
}
运行结果:
注:# include <stdio.h>不能少!
格式输入与输出
一、printf函数(格式输出函数)
1.printf函数的一般格式
⊙格式:printf( 格式控制,输出表列);
*格式控制:用双引号括起来的字符串,包含两种信息
∞格式说明:%[修饰符]格式字符,指定输出格式
∞ 普通字符:原样输出
*输出表列:要输出的数据,可以是变量或表达式,可以没有,多个时以“,”分隔)
/*从最简单的学起 */
#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
2.%md格式:m指定输出字段的宽度
⊙数据位数小于m,左端补空格,反之按实际输出。
3.%ld格式:输出长整型数据
⊙可以用%mld格式指定输出列宽
注:135790 > 32767 ( int 型数据的最大值)
4.o格式符:八进制输出整数
⊙是将内存中的二进制位整个按八进制输出,所以输出值没有符号。
⊙可以指定输出宽度%mo,长整型可以用%lo格式输出。
5.x格式符:十六进制输出整数
⊙同o格式符,无符号,即无负十六进制数。
⊙可以指定输出宽度%mx ,长整型可以用%lx格式输出
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五种用法
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.格式字符表:
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) ;
}
二、输入分隔符的指定
⊙一般以空格、TAB或回车键作为分隔符
⊙输入数据时,遇非法输入则认为数据结束
⊙其它字符做分隔符:格式串中两个格式符间有其它字符,则输入 ⊙时对应位置也要有相同的字符。
顺序结构程序举例
例:从键盘输入大写字母,用小写字母输出
引致:教材
C程序设计 (第二版)
谭浩强 编著 清华大学出版社
内容:提供更好的学习资源