《C语言程序设计教程》课件--第7章

合集下载

C程序设计课件第7章

C程序设计课件第7章

{ rational r;
r.den=a.den*b.den;
r.num=a.num*b.den+a.den*b.num;
r.optimi();
return r; }
16
rational operator-(rational a, rational b) //定义作为友元函数的重载
函数
{ rational r;
载运算符“-”用于求两段5时.2间的向差上。 类型转换
#include<iostream.h> class Time { public:
Time(); Time(int h,int m=0); friend Time operator+( Time &t1,Time &t2); friend Time operator-(Time &t1,Time &t2); void Show(); private:
4
【例7-1】对“+”运算符进行重载来实现两个Complex类对象的加法运算。
#include <iostream>
#include <string> using namespace std;
5.2 向上类型转换
class Complex
{public:
Complex(double r=0,double i=0){ real=r; imag=i; }
第7章运算符重载
本章学习要点
❖ 为什么要进行运算符重载 ❖ 运算符重载的方法 ❖ 重载运算符的规则 ❖ 运算符重载函数作为类成员函数和友元函数 ❖ 重载双目运算符 ❖ 重载单目运算符 ❖ 重载流插入运算符和流提取运算符 ❖ 不同类型数据间的转换

c语言程序设计第7章(谭浩强)PPT版本

c语言程序设计第7章(谭浩强)PPT版本

如 int a[5]; static int a[5]={6,2,3}; int a[]={1,2,3,4,5,6}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 等价于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a[4]=0; 如 编译系统根据初值个数确定数组维数 int a[3]={6,2,3,5,1}; ()

38 49 49 38 65 76 97 13 97 76 97 27 13 30 97 27 97 30 初 始 关 键 字 n=8
38 49 65 13 76 27 76 13 30 76 27 76 30 97 第 一 趟
38 49 13 65 27 65 13 30 65 27 65 30
程序举例
#include <stdio.h> #define SIZE 10 例 读10个整数存入数组,找出其中最大值和最小值 main() { int x[SIZE],i,max,min; printf("Enter 10 integers:\n"); for(i=0;i<SIZE;i++) 步骤: { printf("%d:",i+1); 1. 输入:for循环输入10个整数 scanf("%d",&x[i]); 2. 处理: } (a) 先令max=min=x[0] max=min=x[0]; (b) 依次用x[i]和max,min比较(循环) for(i=1;i<SIZE;i++) 若max<x[i],令max=x[i]{ if(max<x[i]) max=x[i]; 若min>x[i],令min=x[i] if(min>x[i]) min=x[i]; 3. 输出:max和min } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); }

c#程序设计教程 课件第7章

c#程序设计教程 课件第7章

7.2 目录管理
7.2.2 目录的创建和删除
C#程序设计教程——蒙祖强编著
例如,下面代码用于删除由 指定的目录, 例如,下面代码用于删除由path指定的目录,并在删除过程中给 指定的目录 出相关的提示信息: 出相关的提示信息: string path = @"D:\VS2008\第7章\Files\dir1"; 第 章 if (Directory.Exists(path) == true) { if (MessageBox.Show("确认要删除该目录及其子目录吗?", " 确认要删除该目录及其子目录吗? 确认要删除该目录及其子目录吗 删除目录", 删除目录 MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { Directory.Delete(path, true); } }
7.1 一个简单的文件读写程序
C#程序设计教程——蒙祖强编著
//【列出目录下的文本文件】按钮 【列出目录下的文本文件】 private void button1_Click(object sender, EventArgs e) { TreeNode node = new TreeNode(textBox2.Text, 0, 0); treeView1.Nodes.Clear(); treeView1.Nodes.Add(node); TreeNode topnode = treeView1.TopNode; //获取指定目录下的所有文件 获取指定目录下的所有文件 string[] Files = Directory.GetFiles(textBox2.Text,"*.txt"); for (int i = 0; i < Files.Length; i++) { string s = Files[i].Substring(Files[i].LastIndexOf('\\')+1); node = new TreeNode(s, 1, 2); topnode.Nodes.Add(node); } topnode.Expand(); }

C语言程序设计ppt-第7章PPT学习教案

C语言程序设计ppt-第7章PPT学习教案
{int x=150,y=250,step, num,i,gdriver,gmode;
printf("input step and number please!\n");
scanf("%d%d",&step,&nu m);
gdriver=DETECT;
initgraph(&gdriver,&gmode, "c:\\tc20"); setcolor(3); setbkcolor(GREEN);
解决方法
初始化前用Turbo C的自动检测显示器硬件函数
void far detectgraph(int far *gdriver, int far *gmode) 完成对适配器的检查, 得到显示器类型号和相应的最高分辨率模式
第6页/共57页
2021/6/19
华中科技大学计算机学院
7
图形模式初始化例子
用于返回到文本方式,但不关闭图形系统
即图形函数所占用的内存不被释放
和setgraphmode交互使用,在图形和文本之间来回切 换。
第8页/共57页
2021/6/19
华中科技大学计算机学院
9
例7.1 一个能独立运行 的简单C图形程序
1.
#include<stdio.h>
2.
#include<graphics.h>
setcolor(3); setbkcolor(GREEN); for(x=x0;x<x1;x++){
y=y0+k*x; putpixel(x,y,RED); } getch(); closegraph(); } 思考:将画线程序改为函数: void myline(int int int int);

C语言程序设计教程第7章

C语言程序设计教程第7章

C语言程序设计教程第7章《C语言程序设计教程》第7章是关于数组和指针的内容。

本章从数组的定义、初始化、访问等基础知识开始讲解,然后介绍了二维数组、多维数组和字符数组,并通过具体的示例代码进行讲解。

此外,本章还讲解了指针的概念和用法,包括指针的定义、指针的运算、指针与数组的关系等内容。

首先,本章介绍了数组的定义和初始化的方法。

数组是由相同类型的数据元素组成的有序集合,使用方括号来定义数组的长度。

数组可以通过下标来访问和修改元素的值。

此外,本章还介绍了数组初始化的方法,包括静态初始化和动态初始化。

然后,本章详细讲解了二维数组和多维数组的概念和使用方法。

二维数组可以看作是由多个一维数组组成的,可以通过两个下标来访问和修改元素的值。

多维数组与二维数组类似,只是多维数组可以有更高维度的数组。

本章通过示例代码演示了如何定义和使用二维数组和多维数组。

接下来,本章介绍了字符数组的概念和使用方法。

字符数组是由字符组成的一维数组,可以用于存储和处理字符串。

本章通过示例代码演示了如何定义、初始化和使用字符数组,包括字符串的输入、输出和处理。

最后,本章详细讲解了指针的概念和用法。

指针是一种特殊的变量,可以存储变量的地址。

本章介绍了指针的定义和初始化的方法,以及指针的运算,包括指针的加法、减法和比较操作。

本章还讲解了指针与数组的关系,包括指针与一维数组的关系、二维数组的关系和字符数组的关系。

本章通过示例代码演示了指针的使用方法,包括指针与数组的遍历、指针与字符串的处理等。

总之,第7章《数组和指针》是《C语言程序设计教程》中比较重要和基础的章节。

通过学习本章的内容,读者可以了解数组和指针的概念和用法,掌握数组和指针的定义、初始化、访问等基本操作,以及掌握二维数组、多维数组和字符数组的使用方法。

通过本章的学习,读者可以更好地理解和运用C语言的数组和指针特性,提高自己的编程技能。

c语言程序设计第7章PPT课件

c语言程序设计第7章PPT课件
(4)只有left参数是必须的。但是,要指定任 何其他的参数,必须先指定出现在语法中该参数
第13页/共34页
7.3 窗体的常用方法
• 【例7-1】 在窗体上分别用4个命令按钮上、下、左、右移动一个标签。
第14页/共34页
7.3 窗体的常用方法
Private Sub Command1_Click() Label1.Move Label1.Left, Label1.Top - 10 ' 上移
当用户的应用程序在工具条上最小化或
Icon
窗体图标 在Windows桌面上变为一个独立应用程序
时,该属性决定将采用何种图标,窗体
控制框里的图标也由它决定
第7页/共34页
7.2 窗体的常用属性
属性
名称
说明
Left 、 Height Width
To、p 、左顶高 度
边距 边距 度、
、 、 宽
决定窗体在屏幕上的位置及窗体大 小
• 3. MouseMove事件 移动鼠标时触发的事件称为MouseMove事件。语法如下:
Private Sub Form_MouseMove([Index As Integer] Button As Integer, Shif t As Integer, X As Single, Y As Single)
7.3 窗体的常用方法
• 4. Print 方法
• 作用:在指定对象上显示文本。
• 格式:[对象.]Print[{Spc(n)|Tab(n)}][表达式列 表][;|,]
• 说明:
(1)对象:可以是窗体、图形框或打印机,缺省 对象在窗体上输出。
(2)Spc(n)函数:在当前位置插入n个空格,允

c程序设计 谭浩强 第07章课件

c程序设计   谭浩强 第07章课件

7.2.3 二维数组的初始化
可以用下面的方法对二维数组初始化:
(1) 按行分段赋值。如 int a[3][4]={{1,2,3,4},{5,6,7,8},{9, 10,11,12}}; 这种赋初值方法比较直观,把第1个花括弧内的数据给 第1行的元素,第2个花括弧内的数据赋给第2行的元 素……即按行赋初值。
//输出源数组,并转换成目标数组 printf("source array:\n"); for (i=0;i<2;i++) {
for (j=0;j<3;j++) {
printf("%5d",arrSource[i][j]); arrDest[j][i]=arrSource[i][j]; } printf("\n"); }
在实际问题中有很多量是二维的或多维的, 因此C语言 允许构造多维数组。多维数组元素有多个下标, 以标识 它在数组中的位置。 本小节只介绍二维数组,多维数组 可由二维数组类推而得到。
7.2.1 二维数组的定义 一般形式:
类型说明符 数组名[常量表达式][常量表达式]; 例如:int a[3][4],b[5][10]; 定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数
int i; int f[20]={1,1}; for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) {
if(i%5==0) printf("\n"); printf(“%10d",f[i]); } }
运行结果如下:
1

c语言第七章PPT课件

c语言第七章PPT课件

{ float z;
z=x+y;
return (z);
共 71 页 第 21 页
}
第21页/共70页
3. 函数声明和函数定义的区别
函数声明的作用是把函数的名字、函数类型以 及形参的类型、个数和顺序通知编译系统,以便在调 用该函数时系统按此进行对照检查。
函数定义是指对函数功能的确立,包括指定函 数名、函数值类型、形参及其类型、函数体等,它是 一个完整的、独立的函数单位。
[例7-2]
}
形参变量的说明
(现代形式) int max ( x, y)
int max (int x,int y) { int z; z=x>y?x : y; return z; }
int x,y; { int z;
形参变量的说明 (传统形式)
z=x>y?x : y;
return z;
}
共 71 页 第 7 页
用户定义函数: 形式
无参函数 有参函数 空函数
共 71 页 第 2 页
第2页/共70页
函数示例
[7-1] 输入三个整数,计算它们的和并输出运算结果。
main( )
{ int a, b, c, sum ;
scanf("%d,%d,%d",&a,&b,&c);
sum=add(a,b,c); printf(" sum= %d\n",sum); }
}
形参:通知系统 要预留内存位置.
把函数的 结果赋给函数名
实参:在运行时把 值传给函数.
共 71 页 第 14 页
第14页/共70页
数据在函数间的传递
main()
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型省略时 默认为int 类型
8
例如:求两个数的最大值。 int max(int x,int y) { int z; 没有形式参数 z = x > y ? x : y; 为无参函数 return( z ); }
2005x(x,y) int x,y; { int z; z = x > y ? x : y; return( z ); }
2005年3月
【例7.3】求1~100的累加和。
int sum100( ) { int i,t=0; for (i=1; i<=100; i++) t+=i; return (t);} main( ) { int s; s=sum100( ); printf("%d\n", s); } 程序输出结果: 5050 int sum ( int x ) 思 { int i,t=0; 考: for (i=1; i<=x; i++) 两 t+=i; 个 return (t); 程 } 序 main( ) 有 { int s; 何 s=sum (100); 不 printf("%d\n", s); 同 } 程序输出结果: 5050
2005年3月
⑵ 函数的返回值
函数的返回值是通过return语句带回到主调函数的 return 语句格式: return (表达式); 或 return 表达式 ; 或 return; 功能:终止函数的运行,返回主调函数,若有返 回值,将返回值带回主调函数。 说明: ① 若函数没有返回值,return语句可以省略。 ② return语句中的表达式类型一般应和函数的类 型一致,如果不一致,系统自动将表达式类型转 换为函数类型。
2005年3月
18
对被调函数进行声明的一般形式
函数类型 函数名(参数类型1 参数名1,…); 或 函数类型 函数名(参数类型1,参数类型2,…); 第二种形式省略了参数名,此种形式也称为函数的原型。
19
思考: 以下哪种情况需要在主调函数中对被调函数声明
被调函数定义在前,主调函数定义在后。
主调函数定义在前,被调函数定义在后,且被调 函数的类型不是整型的。 被调函数定义在后,但被调函数的类型是整型。
2005年3月
21
F
程序如下:
22
可以在main函数的前面对prime #include "math.h" 函数进行声明。实际上,该声 int prime(int n); 明可以省略,为什么? main( ) { int a,b,c,n; /* 穷举法判断素数 */ scanf("%d",&n); int prime(int n) for (a=6; a<=n; a+=2) { int i; for (i=2; i<=sqrt(n); i++) for (b=3; b<=a/2; b+=2) if (n%i==0) return 0; if (prime(b)) return 1; { c=a-b; } if (prime(c)) { printf("%d=%d+%d\n",a,b,c); break; } } } 2005年3月
5
2005年3月
⑷ 函数的种类
从使用的角度看: ① 标准函数(库函数) 库函数是由系统提供的。 如:getchar( )、sin(x)等。 在程序中可以直接调用 它们。附录A列出了C的 部分库函数。 ② 用户自定义函数。 如:例7.1中的cube函数。
6
从函数定义形式分:
① 有参函数: 在主调(用)函数和被调 (用)函数之间通过参数 进行数据传递, 如: int cube (int x) { … } ② 无参函数: 如:getchar( ) 在调用无参函数时,主调 函数不需要将数据传递给 无参函数。
1
C 语言程序设计
第7章 函数与预处理命令
北京科技大学 计算机系
第7章 函数与预处理命令
7.1 概述 7.2 函数的定义与调用 7.3 数组作函数参数 7.4 函数的嵌套调用和递归调用 7.5 局部变量和全局变量及其作用域 7.6 变量的存储类别及变量的生存期 7.7 函数的存储分类 7.8 编译预处理
2005年3月

7.2.2 函数的调用
函数调用的一般形式:
10
函数名(实参表列)
在C语言中,把函数调用也作为一个表达式。 因此凡是表达式可以出现的地方都可以出现函数 调用。例如:
① welcome( ); ② if (iabs (a)>max) max=iabs(a); ③ m=max(c,max(a,b));
2005年3月
16
【例7.8】计算并输出圆的面积。
s(int r) { return 3.14*r*r;} 自动转换 main( ) 为int型 { int r,area; 程序运行情况如下: scanf("%d",&r); 2 printf("%d\n",s(r)); 12 }
思考: 若要得到单精度实型的圆面积,程序应如何修改
2005年3月
【例7.10】 哥德巴赫猜想之一是任何一个大于5的偶 数都可以表示为两个素数之和。验证这一论断。
输入n的值 for (a=6; a<=n; a+=2) for(b=3;b<=a/2;b+=2) b是素数 ? T c=a-b c是素数? T F 输出: a、b、c的值 break;
图 7.2 验证哥德巴赫猜想
2005年3月
11
7.2.3 函数参数与函数的返回值
1.函数的形式参数与实际参数
【例7.4】编一程序,将主函数中的两个变量的值传 递给swap函数中的两个形参,交换两个形参的值。
void swap(int x, int y) 形式参数(形参) { int z; z=x; x=y; y=z; printf("\nx=%d,y=%d",x ,y); } 实际参数(实参) main( ) 单向值传递 { int a= 10,b=20; 程序输出结果: swap(a,b); x=20,y=10 printf("\na=%d,b=%d\n",a,b); a=10,b=20 }
7.3 数组作函数参数
程序的输出结果如下: ********************************* Welcome to China *********************************
2005年3月
7
7.2.1 函数的定义
函数定义的一般形式 函数类型 函数名(类型名 形式参数1,… ) { 说明语句 执行语句 }
14
2005年3月
2.函数的类型与函数的返回值
15
【例7.6】输出两个数中的大数。 ⑴ 函数的类型 max(int x,int y) 说明: { int z; ①函数的类型 z=x>y?x:y; 决定了函数返 return (z); /* 返回z的值 */ 回值的类型。 } 若省略函数的 main( ) 类型,系统默 { int a,b,c; 认其为int型。 scanf("%d,%d",&a,&b); ②无返回值的 c=max(a,b); 函数应将其类 printf("max is %d\n",c); 型定义为void } (空)类型。
int cube (int x) /* 函数定义 */ { return (x * x * x); } main( ) 程序的执行总是 { int f, a; 从main函数开始 printf("\nEnter an integer number:"); scanf("%d", &a); 函数调用 f = cube (a); printf("%d * %d * %d = %d\n", a, a, a, f); 程序运行情况如下: } Enter an integer number:2 2*2*2=8
2005年3月
12
有关形参和实参的说明:
① 当函数被调用时才给形参分配内存单元。调用结 束,所占内存被释放。 ② 实参可以是常量、变量或表达式,但要求它们有 确定的值。 ③ 实参与形参类型要一致,字符型与整型可以兼容 。 ④ 实参与形参的个数必须相等。在函数调用时,实 参的值赋给与之相对应的形参。“单向值传递” 。
2005年3月
【例7.2】无参函数的定义与调用。
void welcome ( ) { printf("*********************************\n"); printf(" Welcome to China \n"); printf("*********************************\n"); } main( ) { welcome( );}
2005年3月
17
7.2.4 对被调函数的声明和函数原型
变量要先定义后使用, 函数也如此。即被调函数的 定义要出现在主调函数的定 义之前。如swap函数: 允许整型函数(且参数 也是整型)的定义出现在主 调函数之后。如max函数: 如果非整型函数在主调 函数之后定义,则应在主调 函数中或主调函数之前对被 调函数进行声明。 void swap(int x, int y) { …} main( ) {… swap(a,b); } main( ) {… c=max(a,b); } max(int x,int y) { …}
2
7.9 多文件程序的调试方法
2005年3月
7.1 概述
C程序
3
相关文档
最新文档