谭浩强C语言-04
4 最简单的C 程序设计—顺序程序设计
4.1 C语句概述
C程序的结构:
C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。
1)
2)
3)
4)
5)
1.
其一般形式为:
执行表达式语句就是计算表达式的值。
例如:
2.
其一般形式为:
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值
例如:
3.
1)
2)
3)
4.
在程序中应把复合语句看成是单条语句,而不是多条语句。
例如:
是一条复合语句。
复合语句内的各条语句都必须以分号“
5.
例如
本语句的功能是,只要从键盘输入的字符不是回车则重新输入。
这里的循环体为空语句。
4.2 赋值语句
赋值语句是由赋值表达式再加上分号构成的表达式语句。
其一般形式为:
赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。
在赋值语句的使用中需要注意以下几点:
1.
因此,下述形式
是成立的,从而形成嵌套的情形。
其展开之后的一般形式为:
例如:
按照赋值运算符的右接合性,因此实际上等效于:
2.
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
例如:
3.
如下述说明是错误的:
必须写为
而赋值语句允许连续赋值。
4.
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的:
语句的功能是,若表达式x=y+5大于
下述语句是非法的:
因为x=y+5;是语句,不能出现在表达式中。
4.3 数据输入输出的概念及在C语言中的实现
1) 所谓输入输出是以计算机为主体而言的。
2)
3)
4)
将有关“头文件”包括到源文件中。
使用标准输入输出库函数时要用到 “
#include<stdio.h >
或
#include
stdio是
5)
或
4.4 字符数据的输入输出
4.4.1 putchar 函数(字符输出函数)
putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。
其一般形式为:
例如:
putchar(
putchar('\n');
对控制字符则执行控制功能,不在屏幕上显示。
使用本函数前必须要用文件包含命令:
#include<stdio.h>
或
#include
【例4.1】输出单个字符。
#include<stdio.h>
main(){
char a='B',b='o',c='k';
putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');
putchar(a);putchar(b);
putchar('\n');
putchar(b);putchar(c);
4.4.2 getchar 函数(键盘输入函数)
getchar函数的功能是从键盘上输入一个字符。
其一般形式为:
通常把输入的字符赋予一个字符变量,构成赋值语句,如:
【例4.2】输入单个字符。
#include<stdio.h>
void main(){
char c;
printf("input a character\n");
c=getchar();
putchar(c);
}
使用getchar函数还应注意几个问题:
1)
2)
3)
4)
putchar(getchar());
printf(
4.5 格式输入与输出
4.5.1 printf 函数(格式输出函数)
1.
printf函数调用的一般形式为:
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以
“%d
“%ld
“%c
非格式字符串在输出时原样照印,在显示中起提示作用。
输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。
【例4.3】
main()
{
int a=88,b=89;
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
}
本例中四次输出了
的a,b值之间加了一个逗号。第六行的格式串要求按字符型输出
2.
在
各项的意义介绍如下:
1)
| 格式字符 | 意 义 |
| d | 以十进制形式输出带符号整数(正数不输出符号) |
| o | 以八进制形式输出无符号整数(不输出前缀0) |
| x,X | 以十六进制形式输出无符号整数(不输出前缀Ox) |
| u | 以十进制形式输出无符号整数 |
| f | 以小数形式输出单、双精度实数 |
| e,E | 以指数形式输出单、双精度实数 |
| g,G | 以%f或%e中较短的输出宽度输出单、双精度实数 |
| c | 输出单个字符 |
| s | 输出字符串 |
2)
| 标 志 | 意 义 |
| - | 结果左对齐,右边填空格 |
| + | 输出符号(正号或负号) |
| 空格 | 输出值为正时冠以空格,为负时冠以负号 |
| # | 对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 |
3)
4)
5.长度
【例4.4】
main()
{
int a=15;
float b=123.1234567;
double c=12345678.1234567;
char d='p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
使用printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。
【例4.5】
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}
【例4.6】
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i--);
}
这两个程序的区别是用一个printf语句和多个
但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右,因此得到的结果是上述输出结果。
4.5.2 scanf 函数 (格式输入函数)
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
scanf函数是一个标准库函数,它的函数原型在头文件
scanf函数的一般形式为:
其中,格式控制字符串的作用与
例如:
分别表示变量
这个地址就是编译系统在内存中给
变量的地址和变量值的关系如下:
在赋值表达式中给变量赋值,如:
但在赋值号左边是变量名,不能写地址,而
【例4.7】
main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
在本例中,由于
或
格式字符串的一般形式为:
其中有方括号[]的项为任选项。各项的意义如下:
1)
| 格式 | 字符意义 |
| d | 输入十进制整数 |
| o | 输入八进制整数 |
| x | 输入十六进制整数 |
| u | 输入无符号十进制整数 |
| f或e | 输入实型数(用小数形式或指数形式) |
| c | 输入单个字符 |
| s | 输入字符串 |
2)
当输入为:
3)
例如:
输入:
只把
又如:
输入:
将把
4)
使用
1)
2)
3)
4)
例如:
输入为:
则把
只有当输入为:
时,才能把
如果在格式控制中加入空格作为间隔,
如
scanf ("%c%c %c",&a,&b,&c);
则输入时各数据之间可加空格。
【例4.8】
main(){
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("%c%c\n",a,b);
}
由于scanf函数
【例4.9】
main(){
char a,b;
printf("input character a,b\n");
scanf("%c %c",&a,&b);
printf("\n%c%c\n",a,b);
本例表示scanf格式控制串
5)
scanf("%d,%d,%d",&a,&b,&c);
又如:
则输入应为:
6)
【例4.10】
main(){
int a;
printf("input a number\n");
scanf("%d",&a);
printf("%ld",a);
}
【例4.11】
main(){
}
运行结果为:
1234567890
当输入数据改为长整型后,输入输出数据相等。
【例4.12】
main(){
char a,b,c;
printf("input character a,b,c\n");
scanf("%c %c %c",&a,&b,&c);
printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);
【例4.13】
main(){
}
4.6 顺序结构程序设计举例
【例4.14
已知三角形的三边长a,b,c
其中s =(a+b+c)/2
源程序如下:
#include<math.h>
main()
{
}
【例4.15
求根公式为:
则
源程序如下:
#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);
printf(“\nx1=%5.2f\nx2=%5.2f\n”,x1,x2);
}
文章来自 : 谭浩强C语言-04

浙公网安备 33010602011771号