C程序设计讲义届.docx

上传人:b****3 文档编号:26511271 上传时间:2023-06-20 格式:DOCX 页数:100 大小:74.46KB
下载 相关 举报
C程序设计讲义届.docx_第1页
第1页 / 共100页
C程序设计讲义届.docx_第2页
第2页 / 共100页
C程序设计讲义届.docx_第3页
第3页 / 共100页
C程序设计讲义届.docx_第4页
第4页 / 共100页
C程序设计讲义届.docx_第5页
第5页 / 共100页
点击查看更多>>
下载资源
资源描述

C程序设计讲义届.docx

《C程序设计讲义届.docx》由会员分享,可在线阅读,更多相关《C程序设计讲义届.docx(100页珍藏版)》请在冰豆网上搜索。

C程序设计讲义届.docx

C程序设计讲义届

C程序设计

引入:

冯·诺依曼原理

文件存储位置:

磁盘、文件夹

1、关于C语言

功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、有高级语言的优点、有低级语言的特点。

可以编写系统软件、应用软件。

2、面向过程的程序设计语言。

3、以编程为主线,要求能读程序和编程。

4、本课程内容:

1)程序设计和C语言;

2)算法;

3)顺序程序设计;

4)选择结构程序设计;

5)循环结构程序设计;

6)数组;

7)函数;

8)指针;

9)建立数据类型;

10)文件输入输出;

11)错误分析。

第一章程序设计和C语言

1.1计算机程序

计算机最主要的特点:

存储程序和程序控制

每个操作都根据人们事先指定的指令进行。

程序:

一组计算机能识别和执行的指令。

1.2什么是计算机语言

人机交流的语言。

1、机器语言

0和1组成的指令,称为机器指令。

机器指令的集全称为机器语言。

难学、难写、难记、难检查、难修改

执行效率高,可移植性差。

2、符号语言(汇编语言)

英文字母和数字表示指令,如ADD,A,B

由汇编程序转换为机器指令。

可移植性差。

前两种语言称为低级语言。

3、高级语言

第一个高级语言:

FORTRAN语言。

语句和指令用英文单词表示,运算符用数学式子表示,输出为英文和数字。

不依赖机器,可移植性好。

源程序:

高级语言编写的程序。

目标程序:

源程序通过编译程序转换成的机器指令程序。

三个发展阶段:

(1)非结构化语言。

(2)结构化语言,如C:

顺序、分支、循环结构。

(3)面向对象的语言。

处理大规模的问题。

C++,Java等。

BCPL、B、C语言。

1989:

公布第一个C语言标准,C89;

C99:

C语言特点:

(1)语言简洁、紧凑,使用方便灵活。

只有37个关键字,主要用小写字母表示。

(2)运算符丰富。

共有34种运算符。

+-*/^

<=,<>

(3)数据类型丰富。

整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型、复数浮点类型、超长整型、布尔类型等。

(4)具有结构化控制语句:

if…else,while,do…while,switch,for语句。

(5)语法限制不太严格,程序设计自由度大。

(6)允许直接访问物理地址,可直接对硬件操作。

(7)程序可移植性好。

(8)目标代码质量高,程序执行效率高。

1.4最简单的C语言程序

核心:

阅读程序,编写程序。

1.4.1最简单的C语言程序举例

例1.1屏幕显示一行信息。

#include

intmain()

{

printf(“ThisisaCProgram!

\n”);

return0;

}

操作步骤:

1、安装C++;

2、打开程序;

3、文件/新建,在“文件”选项卡选“C++sourceFile”,选择文件存放位置(不要使用默认文件夹),输入文件名,确定;

4、编辑程序;

5、组建/编译;

6、组建/组建;

7、组建/运行。

编程,原样显示“我叫李灵慧!

#include

intmain()

{

printf(“我叫李灵慧!

\n”);

return0;

}

standard

rand()

#include

intmain()

{

printf("*****************************\n\n");

printf("Verygood!

\n\n");

printf("*****************************\n\n");

return0;

}

作业:

编程:

显示字符串”我是奉新技工班的学生!

程序分析:

#include编译预处理指令

stdio.h标准输入输出函数的头文件

#include提供输入输出函数的声明和宏的定义、全局量的定义等。

intmain()int整型main()主函数

执行主函数后得到一个函数值,“return0”,主函数返回0值,每个程序必须有一个main()函数,以{}为分隔符。

printf():

输出函数,””原样输出。

\n换行符,可以连用多个

每个语句以;结束

注释:

1)块式注释:

以/*开始,以*/结束,可以包含多行,也可以单独一行。

2)单行注释

//可以在程序右侧,也可以单独占一行,以//开始,以换行符结束,一行写不下可以写多行。

#include

intmain()

{

inta,b,sum;

a=123;

b=456;

sum=a+b;

printf(“sumis%d\n”,sum);

return0;

}

简单编辑练习:

1、求两个整数的差。

2、求两个整数的积。

3、从键盘输入两个整数,求他们的平均值。

ave

4、求两整数的较小值。

5、求三个整数的最大值。

6、根据输入的身高(cm)和体重(kg)数值判断体型:

如果身高-体重>100,显示“瘦”,如身高-体重<80,显示“胖”,否则显示“标准”。

#include

intmain()

{

intsg,tz,sub;

scanf("%d,%d",&sg,&tz);

sub=sg-tz;

if(sub>100)

printf("瘦!

\n");

else

if(sub<80)printf("胖!

\n");

else

printf("标准!

\n");

return0;

}

1参考答案:

1)

#include

intmain()

{

inta,b;

intc;

scanf("%d,%d",&a,&b);

c=(a+b)/2.0;

printf("平均值是:

%f\n",c);

return0;

}

2)

#include

intmain()

{

floata,b;

floatc;

scanf("%f,%f",&a,&b);

c=(a+b)/2.0;

printf("平均值是:

%f\n",c);

return0;

}

求三个数的较大值.

#include

intmain()

{

intmax(intx,inty,intz);

inta,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("max=%d\n",d);

return0;

}

intmax(intx,inty,intz)

{

intu,v;

if(x>y)v=x;

else

v=y;

if(v>z)u=v;

else

u=z;

return(u);

}

简单程序1.2分析:

第4行:

声明,定义a,b,sum为整型变量

第5、6行:

赋值语句

第7行:

求和

第8行:

sumis%d\n,输出格式字符串,%d指定输出格式,d表示十进制整数,第二个参数“sum”的值取代%d,\n换行符。

例:

1.3

#include

intmain()

//主程序

{

intmax(intx,inty);

inta,b,c;

scanf(“%d,%d”,&a,&b);

c=max(a,b);

printf(“max=%d\n”,c);

return0;

}

//子函数

intmax(intx,inty)

{

intz;

if(x>y)z=x;

elsez=y;

return(z);

}

程序分析:

两个函数

(1)主函数main

(2)被调用函数max(子函数),取x、y中较值赋给变量z,其返回值通过函数名max返回主程序调用处。

scanf:

输入函数

&:

地址符,&a指定量a的地址

练习:

求两个数中的最小值。

#include

intmain()

//主程序

{

intmin(intx,inty);

inta,b,c;

scanf(“%d,%d”,&a,&b);

c=min(a,b);

printf(“min=%d\n”,c);

return0;

}

//子函数

intmin(intx,inty)

{

intz;

if(x

elsez=y;

return(z);

}

练习:

从键盘输入三个整数,求最大数并输出。

#include

intmain()

{

intmax(intx,inty,intz);

inta,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("max=%d\n",d);

return0;

}

intmax(intx,inty,intz)

{

intu,v;

if(x>y)v=x;

elsev=y;

if(v>z)u=v;

elseu=z;

return(u);

作业:

从键盘输入三个整数,求最小的数并输出。

我国例:

求三个整数中最大的数并显示.

#include

intmain()

//主函数

{

intmax(intx,inty,intz);

inta,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("最大数是:

%d\n",d);

return0;

}

//子函数

intmax(intx,inty,intz)

{

intm,n;

if(x>y)m=x;

elsem=y;

if(m>z)n=m;

elsen=z;

return(n);

练习及讲解:

1、求两个数的商。

float%f

#include

intmain()

{

floata,b,c;

scanf(“%f,%f”,&a,&b);

c=a/b;

printf(“c=%f\n”,c);

return0;

}

2、讲述作业:

求三个数中最小值并输出。

#include

intmain()

{

intmin(intx,inty,intz);

inta,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=min(a,b,c);

printf("min=%d\n",d);

return0;

}

intmin(intx,inty,intz)

{

intu,v;

if(x

elsev=y;

if(v

elseu=z;

return(u);

}

3.10上机要求:

1、显示字符串,课本15页第5题编程。

(有空行)

2、求两个数中的最大值和最小值。

3、求两数的和、差、积、商、平均值。

%f、float

4、根据输入身高和体重值判断体型:

d>120,显示“瘦”;d<70,显示“胖”,其它显示“标准”。

if…else嵌套。

5、从键盘上输入三个整数,判断最大数和最小数。

1.4.2C语言程序的结构

(1)一个程序由一个或多个源程序文件组成。

一个源程序文件有一个或多个函数。

1)预处理指令。

如#include,#include,

预处理得到的结果与程序其他部分一起组成一个完整的,可以用来编译的最后的源程序,再由编译程序对源程序进行编译,得到目标程序。

2)全局声明

全局变量:

在函数外面声明的变量。

局部变量:

在函数中声明的变量。

3)函数定义

如main(),max()

(2)函数是C程序的主要组成部分

函数是C程序的基本单位,C编程就是编写函数,函数分为库函数和自定义函数。

(3)一个函数包括两个部分

1)函数首部

函数的第1行,包括函数名,函数类型,函数属性,函数参数(形式参数)名,参数类型。

例:

intmax(intx,inty)

函数名后面必须跟一对圆括号,括号内写参数名及类型,无参数可写void或为空括号。

2)函数体。

{}中的部分。

声明部分:

变量声明,inta,b,c;

对调用函数声明:

intmax(intx,inty);

执行部分:

由若干语句组成。

空函数:

无声明和执行部分,如:

voiddump()

(4)程序总是从main()函数开始执行;

(5)程序中对计算机的操作是由函数中C语句完成的;

(6)在各个数据声明和语句最后必须有一个分号;

(7)C语言本身不提供输入输出语句,由函数完成输入和输出;

(8)程序应当包含注释.

1.5运行C程序的步骤与方法

(1)上机输入和编辑源程序.

生成源程序文件:

.c

注意保存位置

(2)对源程序进行编译

先用C编译系统提供的”预处理器”对程序中的预处理指令进行编译预处理,再与程序其他部分一起,组成一个完整的,可用来正式编译的源程序,并进行编译,得到目标程序,.obj。

(3)进行连接处理

一个程序可能包括若干个源程序文件,编译时各源程序文件得到相应的目标文件,将这些目标模块连接装配起来,再与函数据库连接成一个整体,生成一个计算机可执行的目标程序称为可执行程序。

.exe

(4)运行可执行程序,得到结果。

f.c→f.obj→f.exe

编译:

连接、运行C程序要有编译系统,现在很多使用集成环境的(IDE)。

VisualC++6.0可编译C程序。

练习:

输入一个任意数,显示它的绝对值。

思考1:

输入一个长方体的边长,求体积。

思考2、输入两个数,将他们的值互换。

思考3:

根据三根小棍的长度判断能否构成一个三角形.(CX4)

方法一:

#include

intmain()

{

inta,b,c,d;

printf("输入a,b,c的值(整数):

\n");

scanf("%d,%d,%d",&a,&b,&c);

if(a>b)

;

else

{

d=a;

a=b;

b=d;

}

if(a>c)

;

else

{

d=a;

a=c;

c=d;

}

if(a<(b+c))

printf("可以构成三角形!

\n");

else

printf("不能构成三角形!

\n");

return0;

}

方法二:

(CX5)

#include

intmain()

{

inta,b,c,d;

printf("输入a,b,c的值(整数):

\n");

scanf("%d,%d,%d",&a,&b,&c);

if(a<(b+c))

{

if(b<(a+c))

{

if(c<(a+b))

printf("可以构成三角形!

\n");

else

printf("不能构成三角形!

\n");

}

else

printf("不能构成三角形!

!

\n");

}

else

printf("不能构成三角形!

!

\n");

return0;

}

练习:

对两个变量交换数据。

#include

intmain()

{

printf(“输入两个整数a,b的值:

\n”);

inta,b,c;

scanf(“%d,%d”,&a,&b);

c=b;

b=a;

a=c;

printf(“a=%d,b=%d\n”,a,b);

return0;

}

如果输入a,b的值是6,5,则显示的结果是什么?

a=5,b=6

1.6程序设计的任务

程序设计:

从确定任务到得到结果、写出文档的全过程。

(1)问题分析

建立模型。

(2)设计算法

设计解题方法和具体步骤。

(3)编辑写程序

用高级语言写源程序。

(4)编辑、编译、连接

得到可执行程序。

(5)运行程序、分析结果

调试:

通过上机发现和排除程序中的故障。

测试:

设计多组数据,检查程序的运行情况,尽量发现漏洞,并修改程序,使之适应各种情况。

(6)编写程序文档

包括:

程序名称、功能、运行环境、程序装入和启动、需要输入的数据,使用注意事项等。

软件:

计算机程序和程序文档的总称。

#include

intmain()

{

inta,b;

printf("a=,b=\n");

scanf("%d,%d",&a,&b);

a=b;

b=a;

printf("a=%d,b=%d",a,b);

return0;

}

练习:

从键盘输入两个变量x,y的值(可以是小数),进行变量值的互换。

本部分编程练习:

1、输入两个变量的值,将它们的值互换并显示。

2、从键盘上输入任意一个数(可以是小数),显示其绝对值。

3、输入三个边长,求长方体的体积。

4、已知三条线段的长度,判断它们能否构成三角形。

方法一:

先找出最大长度,判断是否小于另两条线段的和。

方法二:

条件的嵌套,连续判断三次两边之和大于第三边。

思考:

从键盘输入a,b,c的值,解一元二次方程ax2+bx+c=0,显示它的解。

sqrt

#include

从键盘输入a,b,c的值,解一元二次方程ax2+bx+c=0,显示它的解。

#include

#include

intmain()

{

floata,b,c,d,x1,x2;

scanf("%f,%f,%f",&a,&b,&c);

d=b*b-4*a*c;

if(d>0)

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("x1=%f,x2=%f\n",x1,x2);

}

else

{

if(d==0)

{

x1=(-1*b)/(2*a);

printf("x1=x2=%f\n",x1);

}

else

printf("无解!

\n");

}

return0;

编程练习:

根据用户的用电量计算电费:

如果月用电量不多于400度,每度0.6元,如果多于400少于800度,每度0.7元,如果高于800度,每度0.9元。

#include

intmain()

{

floata,b;

scanf("%f",&a);

if(a<=400)

{

b=a*0.6;

printf("b=%f\n",b);

}

else

{

if(a<=800)

{

b=400*0.6+(a-400)*0.7;

printf("b=%f\n",b);

}

else

{

b=520.0+(a-800)*0.9;

printf("b=%f\n",);

}

}

return0;

}

练习:

1、求两个数中最小数;

2、从键盘输入两个数,求它们的商;

3、编程,在屏幕上显示一个图形(星号构成,形状为三角形。

4、根据身高和体重判断体型:

身高-体重>130时显示“体型瘦,加强营养;如果身高-体重<60则显示“体型胖,注意控制饮食!

”.

思考:

编程序,从键盘输入一个整数,判断它能否同时被3和5整除,显示结果.

x%3==0

第二章算法—程序的灵魂

1)数据结构

2)算法

程序设计员应具备的知识:

卡尔·马克思

1)算法;

2)数据结构;X1,X2……Xn

3)程序设计方法;

4)语言工具

2.1什么是算法

算法分类:

1)数值运算算法;

2)非数值运算算法。

第二章算法----程序的灵魂

一个程序主要包括两方面信息:

(1)对数据的描述:

数据的类型和组织形式,即数据的结构.

(2)对操作的描述:

要求计算机进行操作的步骤,即算法.

算法+数据结构=程序

程序设计员应具备的知识:

1)算法;

2)数据结构;

3)程序设计方法;

4)语言工具.

循环结构:

求1+2+3+……+100的结果。

#include

intmain()

{

ints=0;//s是累加器

inti=1;

while(i<=100)

{

s=s+i;

i=i+1;

}

printf("s=%d\n",s);

return0;

}

判断平年和闰年:

#include

intmain()

{

intyear,leap=0;

printf(“enteryear:

\n”);

scanf(“%d”,&year);

if(year%4==0)

{

if(year%100==0)

{

if(year%400==0)

leap=1;

else

leap=0;

}

else

leap=1;

}

else

leap=0;

if(leap==1)

printf(“%disaleapyear!

\n”);

else

printf(“%disnotaleapyear!

\n”);

return0;

}

2.2简单的算法举例

例2.1求1*2*3*4*5的值.

方法一:

直接计算;

方法二:

利用算法计算,设p为被乘数,i为乘数.

S1:

1p;

S2:

2i;

S3:

p*ip;

S4:

i+1i;

S5:

i不大于5返回s3,否则结束,输出p的值.

相关例题:

求5+10+15+20+…+1000的值。

例2.2有50个学生,输出80分以上学生学号和成绩。

学号:

ni,成绩:

gi。

例2.3判定2000-2500年中每年是否为闰年,输出结果。

#include

intmain()

{

intyear=2000,leap;

while(year<=2500)

{

if(year%4==0)

if(year%100==0)

if(year%400==0)

leap=1;

else

leap=0;

else

leap=1;

else

leap=0;

if(leap==1)

printf("%d是闰年!

",year);

else

printf("%d是平年!

",year);

year++;

}

return0;

}

思考:

如果税收标准为:

收入3500元/月以下的不交税,3500-5000交1%,如果在5000-10000的交5%,大于10000的交10%。

#include

intmain()

{

intgz;

floatss;

printf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1