编辑推荐
"“C语言程序设计”课程是高等学校计算机类专业的专业基础课,也是很多非计算机专业理科学生的必修课,是大多数本科生接触计算机程序设计的第一门语言。本书作为“计算机系统能力课程群”重点建设项目教材,在工程教育专业认证背景下,重新整合教学内容、设计新的编写体例、全程案例驱动、设计了全新教学模式和考核方法,以更好地支撑毕业目标,努力达到“金课”建设标准。
本书是高等学校教改工程项目“面向成果导向教育的混合式立体金课建设研究”成果,配备符合工程教育专业认证的教学大纲,对内容进行了精心的选择和组织,以满足不同学校﹑不同专业和不同层次学习者的要求。
本书特色如下:
(1)本书是针对大学计算机程序设计第一门教学语言编写的教材,同时兼顾广大计算机用户和自学爱好者,适合教学和自学。
(2)重视良好的编程风格和习惯的养成。
(3)采用“章-节-知识单元”的体例结构编写﹐知识点划分合理,深入浅出。
(4)本书全程以案例驱动教学,配备大量案例拓展问题,使课程具有“高阶性和创新性”,便于对所学知识的理解和检验。
(5)本书配套提供“理论-案例-翻转”结合的教学大纲,适合案例教学和翻转课堂设计,帮助教师实现以PBL导向和OBE导向的教学目标。
(6)本书所有案例程序和案例拓展均已实现在线评测,学生可以在PTA平台上在线提交程序代码。使用本教材进行教学,可以更好地实现培养应用型人才的目标,不仅有利于学生学习程序设计的基本概念和方法,掌握编程的技术,更重要的是有利于培养学生针对生产实际分析问题和解决问题的能力和创新能力。
本书通过大量程序案例,让学生在编程实践中理解知识点,实现“做中学”的教学理念。同时,又给出一定数量的拓展和习题,以培养学生程序设计的能力。
本书努力体现以下特色:
(1)本书是针对大学计算机程序设计第一门教学语言编写的教材,同时兼顾广大计算机用户和自学爱好者,适合教学和自学。
(2)重视良好的编程风格和习惯的养成。
(3)采用“章-节-知识单元”的体例结构编写﹐知识点划分合理,深入浅出。
(4)本书全程以案例驱动教学,配备大量案例拓展问题,使课程具有“高阶性和创新性”,便于对所学知识的理解和检验。
(5)本书配套提供“理论-案例-翻转”结合的教学大纲,适合案例教学和翻转课堂设计,帮助教师实现以PBL导向和OBE导向的教学目标。
(6)本书所有案例程序和案例拓展均已实现在线评测,学生可以在PTA平台上在线提交程序代码。使用本教材进行教学,可以更好地实现培养应用?"
摘要
第3章
顺序结构
本章首先介绍C语言的语句,之后详细讨论C语言中输入输出函数的使用
方法和规则,通过程序案例使读者理解什么是顺序结构程序。
本章学习目标
(1)了解输入输出函数的使用方法。
(2)掌握输入输出格式控制方法。
(3)掌握应用顺序结构程序解决问题的方法。
第3章案例代码
3.1 顺序结构简介
●1.语句
C语言程序是以函数为基本单位的,函数是由一个一个的C语句构成。C语句必须
以分号结束。
C语言的语句主要分为以下6类。
(1)说明语句。说明语句一般用来定义变量数据类型等。例如:
int a=5,b;
float f1,f2;
(2)表达式语句。表达式语句是指由一个C表达式加上分号构成的语句。例如:
a=b+1; /*赋值表达式a=b+1 加上分号*/
i=1,j=2; /*逗号表达式i=1,j=2 加上分号*/
i++; /*表达式i++加上分号*/
(3)函数调用语句。函数调用语句是由一个函数调用加上分号。例如:
printf("\n");
srand(time(NULL));
这类语句也可以归属于表达式语句,因为函数调用本身也是一个表达式。
(4)空语句。空语句是仅由一个分号构成的语句,没有任何动作。例如:
;
(5)复合语句。复合语句是指将一组语句用大括号({})括起来,从而使整个大括号
变成一个整体(复合语句)。整体上看,复合语句是一个语句。例如:
{
a=5;
b=6;
c=7;
}
复合语句在C语言程序中的用处很大,在以后的学习中大家会逐渐体会到。有的书
中也将复合语句称为分程序或语句块。
(6)控制语句。控制语句完成一定的控制功能,实现程序流程的跳转。C语言提供
的控制语句有:
·56·
goto 无条件转向语句
if( ) … else … 选择语句
switch( ){ } 多分支选择语句
while( ) 循环语句
for( ) 循环语句
do{ }while() 循环语句
break 循环控制语句
continue 循环控制语句
return 从函数返回语句
●2.顺序结构案例
顺序结构是最简单的程序结构,也是最常见的程序结构。顺序结构程序的执行顺序
是自上而下,依次执行。之前章节中编写的所有程序都是顺序结构。
案例03-01-01 考考你
案例代码03-01-01.c
#include
#include
#include
int main(){
int a,b,c,d,r;
srand((unsigned)time(NULL));
printf("*********两位数四则运算测试*********\n");
printf("请输入以下算式的结果:\n");
a=rand()%89+11;
b=rand()%89+11;
c=rand()%4+1;
(c==1)? ( printf("%d+%d=",a,b),d=a+b):1;
(c==2)? ( printf("%d-%d=",a,b),d=a-b):1;
(c==3)? ( printf("%d*%d=",a,b),d=a*b):1;
(c==4)? ( printf("%d/%d=",a,b),d=a/b):1;
scanf("%d",&r);
printf(d==r? "答对了,你真棒!":"真对不起,你答错了!");
return 0;
}
程序分析:
此例程序是顺序结构的程序,程序从第一条语句开始,依次向下一条一条语句执行,
直到最后一个语句。请运行并分析此程序的功能。
案例拓展考考计算机numbers:");
scanf("%d%d%d",&num1,&num2,&num3); /* 输入三个整数 */
sum=num1+num2+num3; /* 求和 */
aver=sum/3.0; /* 求平均值 */
printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); /* 输出结果*/
printf("sum=%d,aver=%lf\n",sum,aver);
return 0;
}
执行程序,在提示信息后输入:
Please input three numbers:11 12 13 ↙
输出:
num1=11,num2=12,num3=13
sum=36,aver=12.000000
案例03-03-02 三角形面积
输入三角形的三边长a、b、c,输出其面积s(假设用户输入的a、b、c 可以构成三
角形)。
已知三角形的三边长,可以利用海伦公式计算它的面积。设三角形的三边长分别为a、
b 和c,p=(a+b+c)
2 ,则计算该三角形面积的海伦公式为s= p(p-a)(p-b)(p-c)。
由此,就能得到以下程序。
案例代码03-03-02.c
#include
#include
int main(){
·66·
double a,b,c,p,s;
scanf("%lf%lf%lf",&a,&b,&c);
p=(a+b+c)/2.0;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("s=%lf",s);
return 0;
}
执行程序,输入:
3 4 5 ↙
输出:
s=6.000000
再次执行程序,输入:
6 8 10 ↙
输出:
s=24.000000
因为在程序中使用了开平方的函数sqrt(),所以要在程序开始处加上预处理命令#
include。 案例03-03-03 一元二次方程的两个根
输入一元二次方程的三个系数a、b、c 的值,输出其两个根(假设方程有实根)。
一元二次方程的求根公式大