编程解决问题之程序设计语言c语言.docx
《编程解决问题之程序设计语言c语言.docx》由会员分享,可在线阅读,更多相关《编程解决问题之程序设计语言c语言.docx(42页珍藏版)》请在冰豆网上搜索。
编程解决问题之程序设计语言c语言
《编程解决问题之程序设计语言(c语言)》
张海峰孙然
课程内容介绍:
本课程主要是介绍如何利用c程序设计语言,编写程序,解决实际问题。
目的是提高学生利用计算机快速、高效、智能地解决问题的能力,培养学生解决实际问题的综合素养。
该书既可以作为信息技术课程内容的补充,也可以作为编程爱好者的自学用书,还可以作为信息学奥赛的辅导用书。
本书内容共分十章和一个附录,前八章是学习的重点,后几章是对学有余力的同学的知识的扩充,教师授课时或者学生自学时,使用者可以酌情处理。
目录:
第一章初识编程
1.1、为什么要编程
在信息技术教材(上交、必修本)中,我们曾经了解到——计算机具有强大的功能,利用软件,计算机可以高效地解决各种问题。
不过,有的软件已经存在了,有的可能还没有,对于后者这种情况,我们就需要自己动手编写程序,制作软件。
这就是我们信息技术教材上所提到的“自己编制计算机程序,让计算机为自己服务”。
1.2、一个简单的c语言程序
要编程,我们先要学习一种程序设计语言,比如c语言、basic语言、pascal语言等,了解其语法规范、程序结构以及如何利用相应的编译软件生成程序这一系列的过程。
下面,我们先来看一个简单c程序语言的实例,了解程序的一般结构组成和c语言的简单的语法规范。
这段程序的功能是:
根据输入的半径r,计算圆的周长c和面积s。
C语言程序代码如下:
a)#include
b)#include
c)main(){
d)floatr,p,c,s;
e)p=3.14;
f)printf("intputR:
\n");
g)scanf("%f",&r);
h)c=2*p*r;
i)s=p*r*r;
j)printf("c=%f,s=%f\n",c,s);
k)system(“pause”);
l)}
程序解读:
按照语句的功能,程序可以解读如下:
1)语句a、b、c、k、l构成了程序的基本框架,为程序的顺利执行提供必要的功能准备。
⏹stdio.h和stdlib.h称为库文件,里边包含了程序所需的一些函数命令。
输出命令printf()、输入命令scanf()包含在stdio.h文件库中;屏幕停留命令system(“pause”)包含在stdlib.h文件库中,它使输出屏幕短暂停留,方便查看输出结果。
⏹main(){}是程序主体,每个程序只能有一个主函数。
问题求解过程就放在大括号内。
2)语句d、e、f、g、h、i、j是问题的处理过程。
用程序解决问题可以分为如下四个阶段:
⏹定义变量:
语句d定义四个变量,分别存储程序运行中的半径r、π、周长c和面积s四个变量数据。
程序中所用到的数据(包括临时数据),必须事先定义变量,且先定义后使用。
⏹数据输入:
语句f是提示用户输入,语句g是获得用户的输入数据。
⏹数据处理:
语句e是给π的变量p赋初识值,语句h、i利用公式计算周长和面积。
⏹数据输出:
语句j是将计算结果输出到屏幕上。
1.3、程序的编制
在对程序有了一个简单的认识后,我们再来了解一下如何通过编译软件将这段代码生成在我们计算机系统中可以直接运行的可执行程序。
在此,我们介绍实例程序在全国信息学奥赛中指定的c语言编译环境(该软件可以直接从官方网站下载)中编制的过程。
步骤1:
打开devc软件,窗口组成如下:
常用工具栏
菜单栏
工程管理区
调试区
编辑区
编译按钮
运行按钮
编译运行按钮
步骤2:
在编辑区,书写程序代码,注意字符区分大小写,每条语句以英文“;”结尾。
步骤3:
点编译按钮调试程序。
如果在代码中出现错误,调试区会有出错提示,及时修正,再次编译调试,直至成功。
编译过程中会生成可执行程序。
步骤4:
点击运行按钮,运行可执行程序。
(调试和运行也可以一次点击编译运行按钮完成)
通过以上的过程,我们就制作了一个软件。
以上,是我们对编程过程的一个简单认识,随着我们对编程语言学习的深入,我们会对编程有一个更深入和更全面的了解,进而掌握这种解决问题的方法,提高我们解决问题的效率和能力。
上机实践
在devc软件中调试运行示例程序。
第二章顺序结构程序设计
程序从控制流程的角度来看,可以分为三种基本结构:
顺序结构、分支结构和循环结构,其它复杂程序都可以用这三种结构实现。
上一章,我们所接触的实例程序就是一个典型的顺序结构的程序。
对编程语言的学习,我们就先从顺序结构开始。
2.1、变量定义
在程序中,如果涉及到了数据处理,就需要事先定义变量,确定数据的类型和所需存储空间的大小。
在c语言中,有如下几种数据变量的定义形式,它们也被称为c语言的基本数据类型。
2.1.1、基本数据类型
基本数据类型
表示的数据范围
变量定义
标识符
变量定义示例
输入输出
格式标识符
变量的可能取值
整型
-32768—32767
int
inta,b,…
%d
-100,10000…
实数
-1038—1038
float
floata1
%f
1.2934….
双精度
-10308—10308
double
doubled2
%lf
10100….
字符型
单个字符
char
charch
%c
A,2,*…
其它数据类型:
shortint,longint,unsignedint,string……
2.1.2、运算符
C语言包括了“+(加)、—(减)、*(乘)、/(除)、%(取余)、自加1(++)、自减1(--)”等多种运算符,可以实现相关运算操作。
此处,需要注意,如果两个运算数a、b都是整数(int类型),/是指整除,%是指取余数。
示例:
inta,b,c;
a=6;b=4;
a++;//a的值自加1,变成7,
b--;//b的值自减1变为3;
c=a/b;//此处为整除,c的结果为2
c=a%b;//此处为取余数,c的结果为1
此示例,同学们可以加入输出语句,验证运算的结果。
2.2、赋值操作
赋值就是将数值赋值给相应的变量,操作由“=”完成。
charch1,ch2;
ch1=’a’;
ch2=’A’
inta,b;
a=8;
b=10000;
示例1:
示例2:
2.3、输出语句
C语言经常用到的一条输出语句是printf()语句,其又被称为格式化输出函数,即可以按照规定的格式输出内容。
具体语法如下:
printf(“格式控制字符串”,输出表列)
其中格式控制字符串中包含以%开头的格式字符,和以非%开头的原样输出字符两种。
以%开头的格式字符是输出列表中的各变量依次对应的格式字符,如%d、%c等。
示例1:
printf(“Hellocworld!
\n”);
功能:
在屏幕上直接输出“Hellocworld!
”,“\n”表示内容输出后,输出光标换到下一行。
示例2:
inta=48;
charb=’A’;
printf(“变量a的内容为%d,变量c的内容为%c!
”,a,b);
功能:
在屏幕上输出“变量a的内容为48,变量c的内容为A!
”,%d用变量a的内容48替换,%c用变量b的内容A替换。
此处,格式字符必须与输出列表的数据类型相对应,否则,输出内容可能不会是预期结果,甚至可能是错的。
示例3:
inta=50;
floatd=3.14;
printf("a=%f,d=%d\n",a,d);
输出的可能结果是:
“a=2680,d=1074339512”,也有可能是其它结果,不过都不正确。
另外,格式字符串中也可以加入加入相应的整数,来控制变量输出的位置。
示例4:
inta=50;
floatd=3.14;
printf("a=%8d,d=%6.3f\n",a,d);
输出结果为:
2.4、输入语句
C语言中的常用输出语句是scanf()语句,其被被称为格式输入函数,即可以按用户指定的格式从键盘上把输入数据读入到指定的变量中。
scanf函数的一般形式为:
scanf(“格式控制字符串”,地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。
地址表列中给出各变量的地址,即变量名前加取地址符“&”。
示例4:
inta,b,c;
printf("inputa,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
在scanf()语句中,如果变量是整型,或者是实型时,屏幕输入的数据间用空格隔开;如果是字符型,要注意,输入时空格和换行也被看作是一个字符。
这两条,初学者要注意。
2.5、应用实例
实例2.1:
“welcomtoCworld!
”
#include
#include
main(){
printf(“WelcomtoCworld!
\n”);
system(“pause”);
}
实例2.2、用给定的字符在屏幕上输出三角形
#include;
#include;
main(){
charch;
printf("intputachar:
\n");
scanf("%c",&ch);
printf("%20c\n",ch);
printf("%17c%6c\n",ch,ch);//
printf("%14c%12c\n",ch,ch);
printf("%11c%3c%3c%3c%3c%3c%3c\n",ch,ch,ch,ch,ch,ch,ch);
system(“pause”);
}
实例2.3、输入四个整数(-5000——5000)计算他们的和
#include"stdio.h"
#include
main(){
inta,b,c,d,s;
printf("pleaseinput4number:
\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
s=a+b+c+d;
printf("sum=a+b+c+d=%d\n",s);
system(“pause”);
}
实例2.4、已知圆的半径,编程求解圆的周长和面积。
#include;
#include;
main(){
floatr,c,s,p;
p=3.14;
printf("intputR:
\n");
scanf("%f",&r);//
c=2*p*r;
s=p*r*r;
printf("c=%f,s=%f\n",c,s);
system(“pause”);
}
知识扩展:
本章的相关内容,可以参考参考书目1中的第三、四章,在这些章节中关于各变量、运算有更深入的描述,另外还有其它的一些输入输出语句的介绍。
同学们,可以深入阅读,加深认识和理解。
上机实践
练习实例2.1-2.4。
第三章分支控制语句——if语句
在实际编程中,常会遇到一些需要先判断再求结果的问题,这时就要用到分支结构。
C语言常用的分支结构控制语句有if语句(二分支控制语句)和switch语句(多分支控制语句)。
本章,我们先来学习if语句。
3.1、关系运算符及其优先级
程序中做判断时,经常需要列出一