c语言第六章练习题PPT教学课件

合集下载

C语言全国计算机二级等级考试教程第六章字符(章节带习题)(ppt文档)

C语言全国计算机二级等级考试教程第六章字符(章节带习题)(ppt文档)

12 3<CR> 1 2 3<CR> 1 2 3<CR>
⊙ 如下的语句为数值数据和字符数据进行混合输入:
int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2, &c2); 正确的读入形式: 10A 20B<CR> A和20之间必须有间隔符,间隔符的个数不限 此时变量a1接受的是10,c1接受的是‘A’, a2接受的是20,c2接受的是‘B’,
输出:putchar() 输入:getchar()
例如: char ch=‘A’; putchar(ch);
A
putchar(‘Y’); Y
例如: char ch; ch=getchar();
给字符变量接受字符
6.4 程序举例
例6.1 以下程序输出26个大写字母和它们的ASCII代码,每行输出两组数据。
第6章 字符型数据
6.1 字符型常量 6.2 字符变量 6.3 字符的输入和输出 6.4 程序举例
6.1 字符型常量
6.1.1 字符常量
字符常量:是用单引号括起来的一个字符。
例如
‘A’ ‘C’ ‘t’ ‘!’ ‘?’
说明
‘B’ ‘b’
是不同的字符常量
‘ ’ 单引号内是空格,也是合法的字符常量
例如
‘\n’ 回车换行符
‘\t’ 横向跳格符
‘\v’ 竖向跳格符
‘\r’ 回车符
‘\f’ 换页符
‘\b’ 退格符
‘\0’ 空值
‘\\’ 表示反斜杠
‘\‘’ 表示单引号
‘\“’ 表示双引号
‘\ddd’ 三位八进制数所代表的字符

c语言基础 ppt第6新章

c语言基础 ppt第6新章

20/51
函数的递归调用 例4 求n!
问题分析:计算n!的公式可写成如下形式
1 n 0,1 n! n *(n 1)! n 1
显然,这是一个递归形式的公式,在描述“阶乘”算法 时又用到了“阶乘”的概念。
递归结束的条件是n = 0或1。
21/51
函数的递归调用 例4 求n!

for j=0 to 6 输出结果
结 束
10/51
#include <stdio.h> #define N 7 void main() { int nCardArray[N]={13,8,6,1,2,3,4}; int t,i,j; for(i=0;i<N-1;i++) for(j=0;j<N-1-i;j++) if(nCardArray[j]>nCardArray[j+1]) { t=nCardArray[j]; nCardArray[j]=nCardArray[j+1]; nCardArray[j+1]=t; } for(i=0;i<N;i++) printf("%d ", nCardArray[i]); printf("\n"); 11/51 }
开 始 开 始 开 始
输入累加数 和指数
设定循环控制变量、初始 化、接收传入累加数和指数
设定循环控制变量、初始 化、接收传入底数和指数
调用Add(累加 数,指数)
for i=0 to 累加数
for i=0 to 指数
lSum+=Power (i, 指数) 输出结果
lPowerVal=lPowerVal*底数值

C语言程序设计第六章PPT课件

C语言程序设计第六章PPT课件
char str[20]; scanf(“%s”,str); /*str是地址 */ 2. printf的s格式串可以实现字符串的输出,例: printf(“%s”,str); /*str是地址 */ 3. gets从终端输入字符串行 形式:gets(str); str是存放字符串的起始地址。可以是字符数组名、字符数组
第3页/共16页
6.2 二维和多维数组
6.2.2 二维数组的引用
引用二维数组元素时必须带有两个下标,形式如下: 数组名[下标1][下标2]
6.2.3 二维数组存储
二维数组在内存中占据一系列连续的存储单元,数组元素按 行顺序存放,先放行下标是0的元素,再放行下标是1的元 素 , . . . a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]
第11页/共16页
6.3 字符数组和字符串
6.3.4.1字符串输入输出 --包含头文件stdio.h 4.puts向终端输出字符串 形式:puts(str); str是输出字符串的起始地址,从这一地址开始,依次输出存
储单元中的字符,直到遇到第一个‘\0’为止。并自动输出 一个换行符。 str是存放字符串的起始地址。可以是字符数组名、字符数组 元素地址或下一章将要介绍的字符指针。 6.3.4.2字符串处理函数 -- 包含头文件string.h 1.字符串复制函数strcpy。调用形式如下:
第7页/共16页
6.3 字符数组和字符串
6.3.2 字符串
C语言中没有字符串变量,通过字符数组可以实现相关的功能, 字符串是字符数组最普通的具体应用。
当要用字符数组存储(可能变化的)字符串时,应考虑: (1)定义变量时,考虑可能存储的最长字符串的长度。 (2)在字符数组中顺序存放字符串的每一个字符,最后加上

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

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

/*ch5_1.c*/ #include <stdio.h> main() { int i,sum=0; 循环初值 i=1; loop: if(i<=100) { sum+=i; 循环变量增值 i++; goto loop; } printf("%d",sum); }
循环条件 sum=0+1 sum==1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
例:#include<stdio.h> main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); }
例:#include<stdio.h> 例:#include<stdio.h> 运行结果:abcdefghij main( main( ) ) { {intint i=0; i=0; for(;i<10;) for(;i<10;putchar(‘a’+i),i++) ; putchar(‘a’+(i++)); } }
while 假(0) expr 真(非0) …… break; …… 真(非0)
do
…… break; …... while expr
假(0)
for expr1 switch 假(0) expr2 真(非0) …… break; …... const 1 语句组1 break; expr case const 2 语句组2 break; …... const n 语句组n break; default 语句组 break;

C语言程序设计--第六章(适于清华谭浩强版)PPT优秀课件

C语言程序设计--第六章(适于清华谭浩强版)PPT优秀课件

*/
printf("\n");
for (i=2;i<20;i++)
fib[i]=fib[i-1]+fib[i-2];
for (i=1;i<=20;i++)
{ printf("%10d",fib[i-1]);
if (i%5==0) printf("\n");
/*换行,每行输出5个
*/
}
}
15
例6.3 输入100个整数,求出最小的数以及第一个 最小的数在数组中的下标。
例如,int data[5]=1;
13
6.2.4 程序举例 例6.2用数组方式解决Fibonacci数列问题,求出 Fibonacci数列的前20项存储在数组中,并将数 组内容输出。
14
#include "stdio.h"
void main() { int i,fib[20]={1,1};
/*初始化
例6.4 输入100个整数,从小到大排列并输出 。 选择排序
例6.5 输入100个学生的“C程序设计”课程的期 中和期末成绩,算出总评成绩,总评成绩为 “30%×期中成绩+70%×期末成绩”,计算总
评 成绩的分Leabharlann 段情况。本题要使用三个平行的数组才能解决问题。 这三个数组的第i个元素记录了一个学生的期中
但不能是浮点型的变量或浮点型表达式;并且 下标不能大于[数组长度-1],因为超过部分没 有被定义过,是不能正确使用的。
图。 例如:data[4]、data[i+j]、data[i++]都是 合法的引用方式。
9
例6.1用数组方式读入5个整数,并求和。

C语言程序设计实用教程 第6章.ppt

C语言程序设计实用教程 第6章.ppt

for(i=0;i<N;i++)
if(score[i]>aver) n++;
printf(“average=%.2f \n ”,aver);
printf(“n=%d”,n);
}
6.1.2 数组中的相关概念
1.数组:是指一组具有相同类型的数据的有序的集合。
2.数组下标:是数组元素在数组中位置的一个索引或指示。
printf(“please input students grade:”);
for(i=0;i<N;i++)
score[i]是数组元素,用来存放第i个
{ scanf(“%f”,&score[i]); 学生成绩*
sum=sum+score[i]; /*将学生成绩累加到总分中 */
}
aver=sum/N;
则数组a中元素的初始值为系统分配给数组元素的内存单 元中的原始值,这些值对编程者来说是不可预知的,因此 在使用时要注意。
(2)若定义数组时在类型名前面加一个关键字static,即将 数组定义成静态存储,这时不为数组赋初值,系统也会自 动将全部元素赋以0值。例如: static int b[5]; 表示定义了一个静态数组b,该数组中所有元素值均为0。
aver=sum/100;
/*求出平均成绩*/
在本程序中能否统计高于平均分的学生人数呢?
用数组来解决这个问题,不仅效率高而且程序编写容易。
#define N 100 void main()
score[N]表示数组,用来存放 N个学生的成绩
{ int i,n=0;
float score[N],sum=0,aver;
一维数组的初始化有以下几种情形:

C语言程序设计教程 第6章PPT教学课件

C语言程序设计教程 第6章PPT教学课件

17
函数返回值
函数返回值通过return语句获得 函数返回值的类型就是函数的类型
return y; 将变量y的值返回给调用者
return y+3; 将表达式的值返回给调用者
18
return 的数据类型与函数的类型矛盾时, 自动将数据转换成函数的类型
int funct1()
{ char ch; if((ch=getch( ))<'a'||(ch >'z') return ch;
14
函数的参数
int max(int a,int b) { int y; y=(a>b)? a:b; return y; } 调用时:
m=max(3,6); m=max(a,b);
函数中是变量名, 在函数调用时,形参被分配相应的内存
2) 实际参数是表达式 负责向对应的形参标 识的内存单元传递数据
8
函数举例
• #include <conio.h>
main()
{ int a,b,m;
/*说明变量*/
int max(int a,int b); /*函数声明*/
scanf("%d,%d",&a,&b); /*调用库函数scanf*/
m=max(a,b);
/*调用字定义函数max*/
printf("max=%d\n",m)); /*调用库函数printf*/
3
模块与函数
C语言程序由基本语句和函数组成, 每个函数可完成相对独立的任务, 依一定的规则调用这些函数,就组 成了解决某个特定问题的程序。
把大任务分解成若干功能模块, 用多个函数来实现这些功能模块。 通过函数的调用来实现完成大任务的全 部功能。

C语言程序设计教程第6章.ppt

C语言程序设计教程第6章.ppt
C语言程序设计教程
第六章 函数与编译预处理
6.1 模块化程序设计与函数 6.2 函数的定义与调用 6.3 函数的递归调用 6.4 变量的作用域与存取方式 6.5 编译预处理
第6章 函数与编译预处理
2
6.1模块化程序设计与函数
在设计较复杂的程序时,我们一般采用 的方法是:把问题分成几个部分,每部分 又可分成更细的若干小部分,逐步细化, 直至分解成很容易求解的小问题。这样的 话,原来问题的解就可以用这些小问题来 表示。
C语言程序设计教程
第6章 函数与编译预处理
8
void main() {float a,b,c; scanf("%f,%f,%f", &a,&b,&c);/* 输入 */ sortabc(&a,&b,&c); /* 排序 */ putabc(a,b,c); /* 输出a,b,c三个数 */ }
C语言程序设计教程
C语言程序设计教程
基本概念
基本模块
模块
模块
模块
模块
模块
模块
模块
模块
模块
2019/4/5
3第6章 函数与编译预处理 Nhomakorabea4
模块与函数
C 语言程序由基本语句和函数组成, 每个函数可完成相对独立的任务, 依一定的规则调用这些函数,就组 成了解决某个特定问题的程序。
C语言程序设计教程
第6章 函数与编译预处理
C语言程序设计教程
第6章 函数与编译预处理
15
每个模块应用独立变量
模块内使用的数据,对于不需要这些数据的其它模块来说, 应该不允许使用;在一个模块内的变量的修改不会影响其 它模块的数据。即模块的私有数据只属于这个模块。C语言 的局部变量,就是满足模块独立的的需要。

精品课件-数据结构-C语言描述-第6章

精品课件-数据结构-C语言描述-第6章
结点,结论成立。设当i=k时结论成立,即二叉树上至多有2k–1 个 结点, 则当i=k+1时,因为每个结点最多只有两个孩子,所以,第 k+1层上至多有2*2k –1 =2k个结点,性质成立。
第6章 树 性质2 高度为h的二叉树上至多有2h -1个结点。 当h=0时,二叉树为空二叉树。当h>0时,利用性质1,高度为h 的二叉树中结点的总数最多为
(6-2)
2h 1 - 1 < n≤2h - 1
移项得 (6-3)
2h 1 < n+1≤2h
取对数 (6-4)
h - 1 < lb(n+1)≤h
第6章 树
性质6 假定对一棵有n个结点的完全二叉树中的结点,按从 上到下、从左到右的顺序,从1到n编号(见图6-7),设树中某一 个结点的序号为i,1≤i≤n,则有以下关系成立:
第6章 树
图6-1描述了欧洲部分语言的谱系关系,它是一个后裔图, 图中使用的描述树形结构数据的形式为倒置的树形表示法。在前 几章中,我们学习了多种线性数据结构,但是一般来讲,这些数 据结构不适合表示如图6-1所示的层次结构的数据。为了表示这 类层次结构的数据,我们采用树形数据结构。在本章中我们将学 习多种不同特性的树形数据结构,如一般树、二叉树、穿线二叉 树、堆和哈夫曼树等。
第6章 树
Proto Indo-European 原始印欧语
Italic 古意大利语
… Latin 拉丁语
Hellenic 古希腊语
Greek 希腊语

Germanic 日尔曼语
North Germanic 北日尔曼语

West Germanic 西日尔曼语
Spanish French Italian 西班牙语 法语 意大利语

《C语言程序设计》电子课件 第6章课件

《C语言程序设计》电子课件 第6章课件

}
运行结果:
Please input x: 7↙
Found 7,located in 6 position
>
Your site here

活动:技能考核


子 工
▪判断分析题


业 学
➢语句“ int n=5,a[n]; ”是否正确?

➢若有“int b[5]={1,1,2,3,4};”,则b[5]的值
成:int a[]={1,2,3};
计 算
这样是无法达到数组长度为5的,此时该数组的实际
机 学
长度为3。

>
Your site here

6.1 一维数组


子 工
6.1.2 一维数组的应用

职 业
▪通过有效常量下标使用数组元素
学 院
例:int a[8] = {0,1,2,3,4,5,6,7 } ;
算 机 学
的位置,就像水泡上浮似的,所以称为“起泡法”或“冒泡法 ”。

>
Your site here
6.1 一维数组
重 庆
6.1.2 一维数组的应用
电 子
▪冒泡法思想分析

程 职
例:b[6]={10,8,5,7,3,1}




算 机 学 院
第1轮共比较5次
>
Your site here
重 庆
{ t = 10-j; /*本轮要比较的次数*/

for (i = 0; i< t; i ++)

if (a[i] > a[i+1])

C语言程序设计课件第06章数组、指针与字符串.ppt

C语言程序设计课件第06章数组、指针与字符串.ppt
pa+i)就是a[i]. –a[i], *(pa+i), *(a+i), pa[i]都是等效的。 –不能写 a++,因为a是数组首地址(是常量)。
17
指针数组
指 数组的元素是指针类型 针 例:Point *pa[2];
由pa[0],pa[1]两个指针组成
*i_pointer 3i
2000
9
指针变量的初始化
指 语法形式 存储类型 数据类型 *指针名=初始地址; 例:int a , *pa=&a;
针 注意事项
➢用变量地址作为初值时,该变量必须在指针初始化 之前已说明过,且变量类型应与指针类型一致。
➢可以用一个已赋初值的指针去初始化另一个指针变 量。
组 ➢ 数组下标从零开始。 ➢ 下标必须是整形表达式。 ➢ 数组元素可以在定义时直接给出初始值列表。 ➢ 数组元素作函数参数同简单变量作函数参数。 ➢ 数组名作函数参数传递的是地址值。 ➢ 二维数组在内存中按行存放。
4
对象数组
数 声明:
类名 数组名[元素个数];
组 访问方法:
数组名[下标].成员名
与!=的关系运算。

– 指向不同数据类型的指针,以及指针与一
般整数变量之间的关系运算是无意义的。
– 指针可以和零之间进行等于或不等于的关
系运算。例如:p==0或p!=0
16
指向数组元素的指针
指 声明与赋值
例:int a[10], *pa;
针 pa=&a[0]; 或 pa=a;
通过指针引用数组元素
C++语言程序设计
第六章 数组、指针与字符串
本章主要内容
数组 指针 动态存储分配 深拷贝与浅拷贝 字符串

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

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

for(i=1;i<10;i++) for(j=1;j<10;j++) printf((j==9)?"%4d\n":"%4d",i*j);
i=1 假(0) i<10 真(非0)
外循环
j=1 j<10 假(0)
内循环
真(非0) printf j++
i++
6.6 辅助控制语句
break语句
功能:在循环语句和switch语句中,终止并跳出循 环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的 任何其它语句之中
goto语句及用goto构成循环
6.2 goto语句构成循环
goto语句一般格式:
goto 语句标号; ….….. 标号:语句; 功能:无条件转移语句 说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句
例 用if 和goto语句构成循环,求
…... } …... }while( ); ……. } …… while() { …… } …... 内循环
}
例 循环嵌套,输出九九表
Ch5_5.c
i
j /*ch5_5.c*/ #include2<stdio.h> 4 1 3 5 6 7 8 9 main() 1 2 3 4 5 6 7 8 9 { int i,j; 2 4 6 8 10 12 14 16 18 for(i=1;i<10;i++) 3 6 9 12 15 18 21 24 27 printf("%4d",i); …………….. printf("\n---------------------------------------\n"); for(i=1;i<10;i++) 9 18 27 36 45 54 63 72 81 for(j=1;j<10;j++) printf((j==9)?"%4d\n":"%4d",i*j); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档