计算机软件基础自考本科程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机软件基础自考 本科程序设计
第二章 顺序结构、选择结构和 循环结构的程序设计
1、顺序结构——用来表示一个操作系列,它的执行 过程是按顺序执行各序列。 2、选择结构——也称分支结构,根据假定条件,选 择执行某个分支操作。 3、循环结构——根据条件重复执行某些操作。
一、顺序结构程序设计
顺序结构程序是最简单,最基本的程序设计,它由 简单的语句组成,程序的执行是按照程序员书写的 顺序进行的,没有分支、转移、循环,且每条语句 都将被执行。顺序结构的程序是从上到下依次执行 的,其执行流程如图所示。
图 顺序结构执行流程
一、顺序结构程序设计
【实例2.1】求三角形的周长和面积。 程序分析:
①输入三条边a、b、C; ②计算周长:l=a+b+c; ③计算面积:根据海伦公式,半周长hl=(a+b+c)/2; 三角形面积:s=sqrt(hl*(hl—a)*(hl -b)*(h1一c)); ④输出三角形的面积和周长。
二、选择结构程序设计 单if语句说明(续):
(3)常量、变量和函数也是表达式,它们是表达式 的特列。
(4)实型运算中,常量尽可能写成小数,如10写成 10.0。
二、选择结构程序设计
例2-7 铁路上托运行李规定,行李重量小于等于20kg时免费,超20kg时超 过部分每kg 0.5元,试编写根据行李重量计算运费的C程序。
二、选择结构程序设计
由于顺序结构程序是顺序执行的,无分支、无转 移、无循环,因此它不可能处理复杂的问题,而在数 据处理过程中,通常需要根据不同的条件进行判断, 然后选择程序进行处理,由此可见,顺序结构无法满 足要求,而选择结构就是为了解决这类问题而设定的。
一般而言,C语言中选择语句包括两种:if语句和 switch语句。所谓选择语句就是通过判断条件来选择 执行哪一条语句,进而达到编程目的。
二、选择结构程序设计
逻辑运算符说明 :
(1)逻辑运算、算术运算和关系运算的优先级由高到 低排列的顺序为:
! *,/,% +,- >,>=,< ,<= ==,!= && ||
(2)对于逻辑与,只有当运算符左边的值为真时,才 计算运算符右边的表达式。如:
int a=1,b=2,c=3;执行(a>b) && (c=b)后,c的值仍为3。
设行李重量用P,运费用W表示,它们都按实型对待,其数学式为:
W (p20..0 0 0)*0.5
P2.0 0 P2.0 0
程序一:
void main()
{float P,W; scanf("%f",&P); if (P<=20.0) W=0.0; if (P>20.0) W=(P-20.0)*0.5; printf("P=%f,W=%f\n",P,W); }
/*输入行李重量P*/ /*输出重量P和运费W*/
程序二(只写运算部分): W=(P-20.0)*0.5; If (P<=20.0) W=0.0;
二、选择结构程序设计
3.2双分支if语句
Y
表达式
N
语句1
语句2
if语句的下一个语句
二、选择结构程序设计
3.3嵌套的if语句
Y 表达式1
N
Y 表达式2 N
例2-3输入一个字符,输出它的ASCII代码值,反过来输入一个
字符的ASCII代码值,输出这个字符。
#include<stdio.h> /*程序中使用了字符输入,输出系统函数*/
main( ) {int x;char ch;
ch=getchar();
printf("%d\n",ch);
scanf("%d",&x);
}
二、选择结构程序设计
m{ ain(嵌) 套if语句编程(2): main()
int x,y;
{
scanf("%d",&x);
int x,y;
if(x<=0)
scanf("%d",&x);
{
if(x<0)
if(x<0)
y=-1;
y=-1;
else
else
{
y=0;
if(x==0)
}
y=0;
else
scanf("%d",&a); /*键入十进制数到a中*/ printf("%o\n",a); /*输出a的八进制数*/ printf("%x\n",a); /*输出a的十六进制数*/ }
一、顺序结构程序设计
例2—5输入一个小写字母,输出相应的大写字母。
#include "stdio.h" void main() {char ch1; scanf("%c",&ch1); /*输入小写字母*/ printf("%c",ch1-32); /*输出表达式chl一32相应的字符*/ }
一、顺序结构程序设计
编写程序如下:
#include <stdio.h>
#include <math.h>
//添加数学函数所需头文件
void main()
{
float a,b,c,l,h1,s;
printf("请输入能组成三角形的三条边:\n"); //输出提示文字
scanf("%f,%f,%f",&a,&b,&c);
一、顺序结构程序设计
二、字符输入与输出函数 例2-2 #include "stdio.h" void main() {int x=97;char y='a';
putchar('a'); putchar(y); putchar(97); putchar(x); putchar('c'-2); }
一、顺序结构程序设计
一、顺序结构程序设计
二、字符输入与输出函数 1.getchar( )函数 getchar( )函数是字符输入函数,它的功能是从键盘上 输入一个字符。一般形式为:getchar( )
Char ch; “ch= getchar( );” 2.putchar( )函数 putchar( )函数为字符输出函数,它的作用是在显示器 上输出一个字符。其一般形式为:putchar(c);
二、选择结构程序设计
1.关系运算符和关系表达式
二、选择结构程序设计 关系运算符说明 :
(1)关系运算符的优先级低于算术运算符,但高于赋 值运算符;
(2)关系表达式对象类型可以是整数、实数或字符型;
(3)同级运算,自左向右,如: (3>4) != 5的值为真。
二、选百度文库结构程序设计
2.逻辑运算符和逻辑表达式
Y 表达式3 N
语句1
语句2 语句3
语句4
二、选择结构程序设计
3.4条件运算符(?)和条件表达式
真 表达式1
假
取表达式2的值
取表达式3的值
二、选择结构程序设计
例题2-8 有如下分段函数: -1
(x<0)
y= 0
(x=0)
1
(x>0)
试编写通过输入x值,求y值的程序。
二、选择结构程序设计
单分支if语句编程:
一、顺序结构程序设计
2.格式输出函数printf (续)
一、顺序结构程序设计
2.格式输入函数scanf
一、顺序结构程序设计
格式输入函数scanf注意事项 :
(1)输入实型数据时不能规定精度。 如:scanf (“ %3.2f “ ,&a) ; 是错误的。
(2)格式控制字符串后面对应的是“变量地址”,而 不是“变量名”。
putchar(x);
/*从键盘上键入一个字符到变量ch*/ /*将ch的十进制ASCII码输出*/ /*从键盘键入一个十进制整数*/ /*输出X这个整数所代表的字符*/
}
一、顺序结构程序设计
例2-4输入一个十进制整数,输出它的八进制、十六进制数。 程序如下:
#include "stdio.h" void main() {int a;
#include "stdio.h"
void main()
{int x,i;char ch;
scanf("%d",&x); /*输入成绩x*/
i=x/10;
/*确定分数段*/
switch(i)
二、选择结构程序设计
3.5多分支结构的switch语句
二、选择结构程序设计
例2-9输入一个学生某门课百分制成绩,输出其成绩等级。等级规定如下: 100分——’A’级, 90~99分——’8’级, 80—89分——’C’级, 70~79分——’D’级, 60~69分——’E’级, 60分以下为’F’级。
main() {
int x,y; scanf("%d",&x); if (x<0)
y=-1; if (x==0)
y=0; if (x>0)
y=1; printf("x=%d,y=%d\n",x,y); }
二、选择结构程序设计
嵌套if语句编程(1): main()
{ int x,y; scanf("%d",&x); if(x<=0) { if(x<0) y=-1; else y=0; } else y=1; printf("x=%d,y=%d\n",x,y);
一、顺序结构程序设计
例2-6编写求任意半径圆的周长和面积的程序,要求周长四 舍五入精确到小数点后第2,面积到第3位。
#include "stdio.h" void main() {float r, c,s,pi=3.14159;
scanf("%f",&r); /*键入半径值r*/ c=2.0*pi*r; /*计算周长C*/ s=pi*r*r; /*计算面积s*/ printf("r=%f,c=%6.2f,s=%7.3f\n",r,c,s); /*按要求输出结果*/ }
else
y=1;
y=1;
printf("x=%d,y=%d\n",x,y);
}
}
printf("x=%d,y=%d\n",x,y);
}
二、选择结构程序设计
条件表达式编程:
main() {
int x,y; scanf("%d",&x); y=x<0?-1:(x==0?0:1); printf("x=%d,y=%d\n",x,y); }
//输入a、b、c的值
printf("a=%f,b=%f,c=%f\n",a,b,c);
//输入a、b、c的值
l=a+b+c;
//计算三条边的和
h1=l/2;
//为h1赋值
s=sqrt(h1*(h1-a)*(h1-b)*(h1-c));
//计算三角形的面积
printf("三角形的周长和面积分别为:\n"); //输出面积的值
三、格式输入与输出函数 1.格式输出函数printf
一、计算机语言、算法、程序的概念
格式输出函数printf注意事项 : printf (“格式控制字符串” , 输出对象列表)
1. 格式控制字符串包含两部分内容: (1)格式说明符,如%d,%f,%c等; (2)照原样输出的字符。
2. 输出数据表列是需要输出的数据(也可以是表达 式),多于一个时用逗号分开。
二、选择结构程序设计
3.1单分支if语句
表达式
N
Y 语句s
下一语句
单if语句说明:二、选择结构程序设计
(1)语句s可以是一个语句,也可以是若干语句,如果 是若干语句,必须用“{}”将这些语句括起来。如:
if ( a<b ) { m=a; a=b; b=m;} (2)注意“=”(赋值)和“==”(相等)的区别。
如:scanf (“ %f%f “ ,&a , &b) ; 是正确的; scanf (“ %f%f “ , a , b) ; 是错误的;
(3)”%c”格式输入时只能接受一个字符。 如:scanf (“ %c“ ,&a) ; 若输入a,则ch=a;若输入 abc,则输出仍然为a。
一、顺序结构程序设计
下面哪个代码段不能正确输出一个“*”号()。 A. int a ; if ( a=1) printf ( “*”); B. int a ; if ( a==1) printf ( “*”); C. int a=1 ; if ( a=1) printf ( “*”); D. int a=1 ; if ( a==1) printf ( “*”);
printf("l=%4.2f,s=%4.2f",l,s);
//输出l和s的值
}
一、顺序结构程序设计
一、赋值语句 1.语句书写形式 变量名=表达式; 2.功能 赋值语句的功能是把表达式值算出后赋给变量。 注意,赋值语句就是赋值表达式后加上一个分号,分号作为
语句的结束标志。 例2-1写出a、b两变量交换值的语句。 方法一: m=a;a=b;b=m;
二、选择结构程序设计 逻辑运算符说明(续) :
(3)对于逻辑或,只有当运算符左边的值为假时,才 计算运算符右边的表达式。如:
int a=1,b=2,c=3;执行(a<b) || (c=b)后,c的值仍为3。 (4)设x是一个整数,如果!x的值为0,则x的值为非 0,不能简单的说x的值为1,因为非0的数不仅仅是1.
第二章 顺序结构、选择结构和 循环结构的程序设计
1、顺序结构——用来表示一个操作系列,它的执行 过程是按顺序执行各序列。 2、选择结构——也称分支结构,根据假定条件,选 择执行某个分支操作。 3、循环结构——根据条件重复执行某些操作。
一、顺序结构程序设计
顺序结构程序是最简单,最基本的程序设计,它由 简单的语句组成,程序的执行是按照程序员书写的 顺序进行的,没有分支、转移、循环,且每条语句 都将被执行。顺序结构的程序是从上到下依次执行 的,其执行流程如图所示。
图 顺序结构执行流程
一、顺序结构程序设计
【实例2.1】求三角形的周长和面积。 程序分析:
①输入三条边a、b、C; ②计算周长:l=a+b+c; ③计算面积:根据海伦公式,半周长hl=(a+b+c)/2; 三角形面积:s=sqrt(hl*(hl—a)*(hl -b)*(h1一c)); ④输出三角形的面积和周长。
二、选择结构程序设计 单if语句说明(续):
(3)常量、变量和函数也是表达式,它们是表达式 的特列。
(4)实型运算中,常量尽可能写成小数,如10写成 10.0。
二、选择结构程序设计
例2-7 铁路上托运行李规定,行李重量小于等于20kg时免费,超20kg时超 过部分每kg 0.5元,试编写根据行李重量计算运费的C程序。
二、选择结构程序设计
由于顺序结构程序是顺序执行的,无分支、无转 移、无循环,因此它不可能处理复杂的问题,而在数 据处理过程中,通常需要根据不同的条件进行判断, 然后选择程序进行处理,由此可见,顺序结构无法满 足要求,而选择结构就是为了解决这类问题而设定的。
一般而言,C语言中选择语句包括两种:if语句和 switch语句。所谓选择语句就是通过判断条件来选择 执行哪一条语句,进而达到编程目的。
二、选择结构程序设计
逻辑运算符说明 :
(1)逻辑运算、算术运算和关系运算的优先级由高到 低排列的顺序为:
! *,/,% +,- >,>=,< ,<= ==,!= && ||
(2)对于逻辑与,只有当运算符左边的值为真时,才 计算运算符右边的表达式。如:
int a=1,b=2,c=3;执行(a>b) && (c=b)后,c的值仍为3。
设行李重量用P,运费用W表示,它们都按实型对待,其数学式为:
W (p20..0 0 0)*0.5
P2.0 0 P2.0 0
程序一:
void main()
{float P,W; scanf("%f",&P); if (P<=20.0) W=0.0; if (P>20.0) W=(P-20.0)*0.5; printf("P=%f,W=%f\n",P,W); }
/*输入行李重量P*/ /*输出重量P和运费W*/
程序二(只写运算部分): W=(P-20.0)*0.5; If (P<=20.0) W=0.0;
二、选择结构程序设计
3.2双分支if语句
Y
表达式
N
语句1
语句2
if语句的下一个语句
二、选择结构程序设计
3.3嵌套的if语句
Y 表达式1
N
Y 表达式2 N
例2-3输入一个字符,输出它的ASCII代码值,反过来输入一个
字符的ASCII代码值,输出这个字符。
#include<stdio.h> /*程序中使用了字符输入,输出系统函数*/
main( ) {int x;char ch;
ch=getchar();
printf("%d\n",ch);
scanf("%d",&x);
}
二、选择结构程序设计
m{ ain(嵌) 套if语句编程(2): main()
int x,y;
{
scanf("%d",&x);
int x,y;
if(x<=0)
scanf("%d",&x);
{
if(x<0)
if(x<0)
y=-1;
y=-1;
else
else
{
y=0;
if(x==0)
}
y=0;
else
scanf("%d",&a); /*键入十进制数到a中*/ printf("%o\n",a); /*输出a的八进制数*/ printf("%x\n",a); /*输出a的十六进制数*/ }
一、顺序结构程序设计
例2—5输入一个小写字母,输出相应的大写字母。
#include "stdio.h" void main() {char ch1; scanf("%c",&ch1); /*输入小写字母*/ printf("%c",ch1-32); /*输出表达式chl一32相应的字符*/ }
一、顺序结构程序设计
编写程序如下:
#include <stdio.h>
#include <math.h>
//添加数学函数所需头文件
void main()
{
float a,b,c,l,h1,s;
printf("请输入能组成三角形的三条边:\n"); //输出提示文字
scanf("%f,%f,%f",&a,&b,&c);
一、顺序结构程序设计
二、字符输入与输出函数 例2-2 #include "stdio.h" void main() {int x=97;char y='a';
putchar('a'); putchar(y); putchar(97); putchar(x); putchar('c'-2); }
一、顺序结构程序设计
一、顺序结构程序设计
二、字符输入与输出函数 1.getchar( )函数 getchar( )函数是字符输入函数,它的功能是从键盘上 输入一个字符。一般形式为:getchar( )
Char ch; “ch= getchar( );” 2.putchar( )函数 putchar( )函数为字符输出函数,它的作用是在显示器 上输出一个字符。其一般形式为:putchar(c);
二、选择结构程序设计
1.关系运算符和关系表达式
二、选择结构程序设计 关系运算符说明 :
(1)关系运算符的优先级低于算术运算符,但高于赋 值运算符;
(2)关系表达式对象类型可以是整数、实数或字符型;
(3)同级运算,自左向右,如: (3>4) != 5的值为真。
二、选百度文库结构程序设计
2.逻辑运算符和逻辑表达式
Y 表达式3 N
语句1
语句2 语句3
语句4
二、选择结构程序设计
3.4条件运算符(?)和条件表达式
真 表达式1
假
取表达式2的值
取表达式3的值
二、选择结构程序设计
例题2-8 有如下分段函数: -1
(x<0)
y= 0
(x=0)
1
(x>0)
试编写通过输入x值,求y值的程序。
二、选择结构程序设计
单分支if语句编程:
一、顺序结构程序设计
2.格式输出函数printf (续)
一、顺序结构程序设计
2.格式输入函数scanf
一、顺序结构程序设计
格式输入函数scanf注意事项 :
(1)输入实型数据时不能规定精度。 如:scanf (“ %3.2f “ ,&a) ; 是错误的。
(2)格式控制字符串后面对应的是“变量地址”,而 不是“变量名”。
putchar(x);
/*从键盘上键入一个字符到变量ch*/ /*将ch的十进制ASCII码输出*/ /*从键盘键入一个十进制整数*/ /*输出X这个整数所代表的字符*/
}
一、顺序结构程序设计
例2-4输入一个十进制整数,输出它的八进制、十六进制数。 程序如下:
#include "stdio.h" void main() {int a;
#include "stdio.h"
void main()
{int x,i;char ch;
scanf("%d",&x); /*输入成绩x*/
i=x/10;
/*确定分数段*/
switch(i)
二、选择结构程序设计
3.5多分支结构的switch语句
二、选择结构程序设计
例2-9输入一个学生某门课百分制成绩,输出其成绩等级。等级规定如下: 100分——’A’级, 90~99分——’8’级, 80—89分——’C’级, 70~79分——’D’级, 60~69分——’E’级, 60分以下为’F’级。
main() {
int x,y; scanf("%d",&x); if (x<0)
y=-1; if (x==0)
y=0; if (x>0)
y=1; printf("x=%d,y=%d\n",x,y); }
二、选择结构程序设计
嵌套if语句编程(1): main()
{ int x,y; scanf("%d",&x); if(x<=0) { if(x<0) y=-1; else y=0; } else y=1; printf("x=%d,y=%d\n",x,y);
一、顺序结构程序设计
例2-6编写求任意半径圆的周长和面积的程序,要求周长四 舍五入精确到小数点后第2,面积到第3位。
#include "stdio.h" void main() {float r, c,s,pi=3.14159;
scanf("%f",&r); /*键入半径值r*/ c=2.0*pi*r; /*计算周长C*/ s=pi*r*r; /*计算面积s*/ printf("r=%f,c=%6.2f,s=%7.3f\n",r,c,s); /*按要求输出结果*/ }
else
y=1;
y=1;
printf("x=%d,y=%d\n",x,y);
}
}
printf("x=%d,y=%d\n",x,y);
}
二、选择结构程序设计
条件表达式编程:
main() {
int x,y; scanf("%d",&x); y=x<0?-1:(x==0?0:1); printf("x=%d,y=%d\n",x,y); }
//输入a、b、c的值
printf("a=%f,b=%f,c=%f\n",a,b,c);
//输入a、b、c的值
l=a+b+c;
//计算三条边的和
h1=l/2;
//为h1赋值
s=sqrt(h1*(h1-a)*(h1-b)*(h1-c));
//计算三角形的面积
printf("三角形的周长和面积分别为:\n"); //输出面积的值
三、格式输入与输出函数 1.格式输出函数printf
一、计算机语言、算法、程序的概念
格式输出函数printf注意事项 : printf (“格式控制字符串” , 输出对象列表)
1. 格式控制字符串包含两部分内容: (1)格式说明符,如%d,%f,%c等; (2)照原样输出的字符。
2. 输出数据表列是需要输出的数据(也可以是表达 式),多于一个时用逗号分开。
二、选择结构程序设计
3.1单分支if语句
表达式
N
Y 语句s
下一语句
单if语句说明:二、选择结构程序设计
(1)语句s可以是一个语句,也可以是若干语句,如果 是若干语句,必须用“{}”将这些语句括起来。如:
if ( a<b ) { m=a; a=b; b=m;} (2)注意“=”(赋值)和“==”(相等)的区别。
如:scanf (“ %f%f “ ,&a , &b) ; 是正确的; scanf (“ %f%f “ , a , b) ; 是错误的;
(3)”%c”格式输入时只能接受一个字符。 如:scanf (“ %c“ ,&a) ; 若输入a,则ch=a;若输入 abc,则输出仍然为a。
一、顺序结构程序设计
下面哪个代码段不能正确输出一个“*”号()。 A. int a ; if ( a=1) printf ( “*”); B. int a ; if ( a==1) printf ( “*”); C. int a=1 ; if ( a=1) printf ( “*”); D. int a=1 ; if ( a==1) printf ( “*”);
printf("l=%4.2f,s=%4.2f",l,s);
//输出l和s的值
}
一、顺序结构程序设计
一、赋值语句 1.语句书写形式 变量名=表达式; 2.功能 赋值语句的功能是把表达式值算出后赋给变量。 注意,赋值语句就是赋值表达式后加上一个分号,分号作为
语句的结束标志。 例2-1写出a、b两变量交换值的语句。 方法一: m=a;a=b;b=m;
二、选择结构程序设计 逻辑运算符说明(续) :
(3)对于逻辑或,只有当运算符左边的值为假时,才 计算运算符右边的表达式。如:
int a=1,b=2,c=3;执行(a<b) || (c=b)后,c的值仍为3。 (4)设x是一个整数,如果!x的值为0,则x的值为非 0,不能简单的说x的值为1,因为非0的数不仅仅是1.