顺序结构程序设计(一)
说明
本章内容
1.C语言的基本语句
2.简单的C程序结构
3.字符数据的输入输出___getchar与putchar函数
举例说明
重点
1.C语言的基本语句
2.getchar与putchar与函数
难点
getchar与putchar函数
问题提出
C语言本身不提供输入输出语句,输入和输出操作都是由函数来实现的。那么函数如何来实现输入输出操作呢?
详细内容
注意
一、C语言的基本语句
C语言的语句用来向计算机系统发出操作指令。一个语句经编译后产生若干条机器指令。一个实际的程序应当包含若干语句。一个C程序由声明部分和执行部分组成,声明部分的内容不应称为语句。
一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行语句组成。
C语句可以分为以下5类:
(1)控制语句类 完成一定的控制功能。C只有9种控制语句,它们是:
①if( )~ else~ (条件语句)
②for( ) ~〈循环语句〉
③while( )~(循环语句)
④do~while ( ) (循环语句)
⑤continue (结束本次循环语句)
⑥break (中止执行switch或循环语句)
⑦switch (多分支选择语句)
⑧goto(转向语句)
⑨return (从函数返回语句)
上面9种语句中的括号。表示其中是一个条件,~表示内嵌的语句。例如,if()~else~” 的具体语句可以写成 if (x>y) z=x ; else z=y ;
(2)函数调用语句 由一次函数调用加一个分号构成一个语句,例如:
getchar() ;
(3)表达式语句 由一个表达式构成一个语句,最典型的是,由赋值表达式构成一个赋值语句。
X=3 是一个赋值表达式,而不是一个赋值语句。
X=3 ; 是一个C语言赋值语句。
表达式能构成语句是C语言的一个重要特色。由于C程序中大多数语句是表达式语句(包括函数调用语句),所以有人把C语言称作“表达式语言”。
(4)空语句下面是一个空语句:;
即只有一个分号的语句,它什么也不做。有时用来做被转向点,或循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
(5) 复合语句 可以用{ }把一些语句括起来成为复合语句,又称语句块或分程序。如下面是一个复合语句。
复合语句中最后一个语句中最后的分号不能忽略不写。
C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求。
二、简单的C程序结构先举一个简单的C程序实例,看看C程序是什么样子。从实例出发,介绍C程序的一些基本要素,并从具体到一般,最后给出C 程序的一般组织形式。
C语言程序的主要结构特点:
(1)所有的C程序都是由一个或多个叫做"函数"的程序模块构成的。C程序从总体上看,它是函数的集合体。
(2)在多个函数中,必须有一个而且只能有一个叫做main( )的函数。
(3)各个函数在程序中的位置并不十分重要,不是说主函数main( )一定要放在其它函数之前,也可以放在别的位置,但程序总是从main( )函数的第一条语句开始执行。
有关语句说明:
可以看到一个表达式的最后加一个分号就成了一个语句。一个语句必须在最后出现分号,分号是C语句中不可缺少的一部分。任何表达式都可以加上分号而成为语句。
复合语句举例:
{ p=p+1 ;
s=s+p ;}
举例说明
(4)函数是组成C程序的主要构件,其一般格式如下面所示。
函数类型 函数名(形参说明)
{ 内部变量说明;
执行语句部分;}
三、字符数据的输入输出
1.putchar函数(字符输出函数)
作用:putchar()函数的作用是向终端输出一个字符。
格式,putchar(c) ;
说明:它输出字符变量C的值。C可以是字符型变量或整型变量。
也可以输出控制字符,如putchar(‘\n')输出一个换行符,使输出的当前位置移到下一行的开头。也可以输出其他转义字符,如:
putchar('\101') (输出字符'A’)
putchar(‘\’ ’) (输出单引号字符 ’)
putchar('\015') (输出回车,不换行,使输出的当前位置移到本行开头)
2.getchar函数(字符输入函数)
作用:此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数。
格式,getchar()
说明:函数的返回值就是从输入设备得到的字符。
如果在一个函数中要调用getchar函数,应该在该函数的前面(或本文件开头)加上“包含命令” #include 〈stdio.h〉。
本讲主要介绍了C语言的基本语句;简单的C程序结构及字符数据的输入输出——putchar与getchar函数;并且该内容也是需要重点掌握内容。
举简例说明:输出单个字符。
顺序结构程序设计(二)
说明
内容
1.格式输出函数 printf()
2.格式输入函数 scanf()
3.顺序结构程序设计应用举例
举例说明:
printf("a=%d,b=%d",a,b) ;
重点
1.格式输出函数 printf()
2.格式输入函数 scanf()
难点
输入输出函数的使用,其中“格式字符串”的正确使用学生较难理解和使用。
问题提出
上讲所讲述的字符数据的输入输出函数仅能解决单个字符的输出与输入问题,对于多个字符数据以及其它类型数据的输入输出如何实现呢?
详细内容
一、输出函数printf()
1.输出函数printf()的一般形式功能:向终端输出若干个任意类型的数据。
格式:printf(“格式控制串”,输出列表) ;
说明(括弧内包括两部分):
⑴“格式控制串” 是用双引号括起来的字符串,也称“转换控制字符串”。它包括“格式说明”和“普通字符”两种信息。
①格式说明由“%”和格式字符组成,指定输出的数据按指定的格式输出。格式说明总是由“%”字符开始的。
②普通字符,即按照原样输出的字符。
⑵“输出列表” 是需要输出的一些数据,可以是表达式。
printf函数的一般形式可以表示为:
printf(参数1,参数2,参数3……参敏n)
printf函数的功能是将参数2…参数n 按参数1 给定的格式输出。
2.printf函数的格式说明
格式说明的一般形式是:%[-][l]m..n格式说明符
printf函数常用的格式字符:
d,以带符号的十进制形式输出整数(正数不输出符号)
O:以八进制形式输出整数
x:以十六进制元符号形式输出整数(不输出前导符Ox),用x则输出十六进制数的a~f
u:以无符号十进制形式输出整数
c:以字符形式输出,只输出一个字符
s:输出字符串
说明
f:以小数形式输出单、双精度数,隐含输出6位小数
E,e:指数形式输出,用E时指数以"E"大写表示,用e 则以小写形式表示
printf函数常用的附加符号在printf函数的格式说明中,在%和上述格式字符间可以插入以下几种附加符号(又称修饰符)。
字母l:用于长整型,可加在格式符d、o、x、u前面
m(代表一个正整数):数据最小宽度
n(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数
-,输出的数字或字符在域内向左靠在使用printf函数时,还有几点要说明:
(1)除了X,E 其他格式字符必须用小写字母,如%d不能写成%D。
(2)可以在printf函数中的“格式控制”字符串内包含“转义字符”,如“\n”、“\t”、“\b”、“\r”、“\f”、“\377”等。
(3)上面介绍的d、u、c、e等字符,如用在"%"后面就作为格式符号。一个格式说明以"%"开头,以上述几个格式字符之一为结束,中间可以插人附加格式字符(也称修饰符)。
(4)如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
二、scanf函数(格式输入函数)
1.scanf函数的格式作用:按格式控制所指的格式从标准输入设备(键盘)输入数据给指定的变量。
格式,scanf(格式控制,地址列表)
说明:"格式控制"的含义同printf函数,“地址列表”是由若干个地址组成的列表,可以是变量的地址,或字符串的首地址。
2.格式说明和printf函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插人附加的字符。
scanf用到的格式字符:
d:用来输人有符号的十进制整数
u:用来输入无符号的十进制整数
o:用来输人无符号的八进制整数
X,x:用来输入无符号的十六进制整数(大小写作用相同)
c:用来输入单个字符
说明:务必注意数据类型应与格式说明匹配,否则将会出现错误。
举例:
printf("c=%c,f=%f,s=%s”,c,f,s) ;
举例:
printf("%f%%”,1.0/3);
输出:0.333333 %
注:
地址表列是变量的地址,而非变量名。
举例说明
说明
总结:
s:用来输入字符串,将字符串送到一个字符数组中,在输人时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志'\0'作为其最后一个字符
f:用来输人实数,可以用小数形式或指数形式输入
scanf的附加格式说明字符:
L,l:用于输人长整型数据(可用%ld,%lo,%lx)及double型数据(用%lf)
h:用于输人短整型数据(可用%hd,%ho,%hx)
域宽:指定输人数据所占宽度(列数),域宽应为正整数
*:表示该输入项在读人时不赋给相应的变量
●对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。
●可以指定输入数据所占列数,系统自动按它截取所需数据。
如:
scanf(“%3d %3d,,&a,&b) ;
输入123456
系统自动将123赋给a,456赋给b。此方法也可用于字符型.
●使用scanf()函数时应注意格式控制串和输入数据格式的一致。比如格式串以“,”分割数据项,输入的数据必须以“,”分割。
三、顺序结构程序设计应用举例例1,求两数和算术平方根
#include<stdio.h>
#include<math.h>
main()
{ float x,y,sum;
scanf(“%f,%f”,&x,&y);
sum=x+y;
sum=sqrt(sum);
printf(“%7.2f”,sum);
}
例2,交换两个变量的值
#include <stdio.h>
main()
{ int a,b,t;
scanf(“%d,%d”,&a,&b);
printf(“a=%d,b=%d\n”,a,b);
t=a;a=b;b=t;
printf(“a=%d,b=%d,t=%d\n”,a,b,t);
}
本节通过讲述格式输入输出函数printf函数与scanf函数来实现对对于多个字符数据以及其它类型数据的输入输出。这也是本节的一个重点和难点。
举例说明输入函数的格式使用。