算法与数据结构

发布 2021-05-02 17:18:28 阅读 9876

● 幻灯片34

简单的c语言程序介绍。

注意:函数的声明部分和执行部分都可缺省,例如:

void dump (

这是一个空函数,什么也不做,但是合法的函数。

小结:3) c程序总是从main函数开始执行的,与main函数的位置无关。

4) c程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,c程序没有行号。

5) 每个语句和数据声明的最后必须有一个分号。

6) c语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。c对输入输出实行“函数化”。

整型。类型类型说明符长度数的范围基本型 int2字节 -32768~32767短整型 short2字节 -215~215-1

长整型 long4字节 -231~231-1无符号整型 unsigned 2字节 0~65535

无符号短整型 unsigned short 2字节 0~65535无符号长整型 unsigned long 4字节 0~(232-1)

浮点型:类型类型说明符长度数的范围基本型 int2字节 -32768~32767 短整型 short2字节 -215~215-1 长整型 long4字节 -231~231-1 无符号整型 unsigned 2字节 0~65535 无符号短整型 unsigned short 2字节 0~65535 无符号长整型 unsigned long 4字节 0~(232-1)

幻灯片27

字符型数据

有些以“\”开头的特殊字符称为转义字符。

n 换行。t 横向跳格。

r 回车。\ 反斜杠。

幻灯片31

例6. 向字符变量赋以整数。

#include <>

void main()

幻灯片35

字符型数据。

‘a’是字符常量,"a是字符串常量,二者不同。

如:假设c被指定为字符变量 :char c

c= 'a';对。

c="a"; c="china";错

结论:不能把一个字符串常量赋给一个字符变量。

(2)可以使被定义的变量的一部分赋初值。如: int a,b,c=5; 表示指定a、b为整型变量,但只对c初始化,c的初值为5(3)如果对几个变量赋以同一个初值, 应写成:

int a=3,b=3,c=3; 表示a、b的初值都是3。 不能写成∶ int a=b=c=3;

c的运算符有以下几类:(1)算术运算符模运算符,或称求余运算符,%两侧均应为整型数据,如:7%的值为3)。

2)关系运算符 (>3)逻辑运算符4)位运算符 (<5)赋值运算符 (=6)条件运算符 (?7)逗号运算符 (,8)指针运算符 (*和&)(9)求字节数运算符(sizeof)(10)强制类型转换运算符( (类型) )11)分量运算符(.-12)下标运算符([

5+ ′a′ 是一个合法的表达式。

例 1. 强制类型转换。

#include <>

voidmai

printf("x=%f, i=%d",x,i);

运行结果: x=3.600000, i=3

1)ji的值先变成4, 再赋给j,j的值为4

2i的值3赋给j,j的值为3,然后i变为4“i的值先变成4, 再把原来的i值赋给j,j的值为3”

幻灯片38逗号运算符和逗号表达式。

逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”

如:3+5,6+结果为14

一般形式: 表达式1,表达式2

求解过程:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。

幻灯片38逗号运算符和逗号表达式。

逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符” 逗号运算符是所有运算符中级别最低的。

如:3+5,6+结果为14

一般形式: 表达式1,表达式2

求解过程:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。

逗号表达式的一般形式可以扩展为表达式1,表达式2,表达式3,…表达式n 它的值为表达式n的值。

字符输入函数: getchar 如 c=getchar();

字符输出函数:putchar格式输入函数: scanf 格式输出函数: printf字符串输入函数:gets 字符串输出函数:puts

例1 输出单个字符。

#include<>

void main()

char a,b,c;

a=‘b’;b=‘o’;c=‘y’;

putchar(a);putchar(b);putchar(c);putchar(‘’);

运行结果:boy

printf

d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:

以十六进制无符号形式输出整数%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:

输出字符串f:以小数形式输出单,双精度数,隐含输出六位小数%e:以指数形式输出实数%g:

选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0

例9 用scanf函数输入数据。

#include<>

void main()

int a,b,c;

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

printf(“%d,%d,%d”,a,b,c);

关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符。

逻辑运算符中的“&&和“||低于关系运算符,“!高于算术运算符。

例:设a=4,b=5:任何非零的数值被认作“真”

a的值为0a&&b的值为1a||b的值为1a||b的值为14&&0||2的值为1

例:(m=a>b)&&n=c>d)当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而仍保持原值1。

else总是与它上面的,最近的,同一复合语句中的,未配对的if语句配对。

continue语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

幻灯片10函数定义的一般形式

return z;等价于 “return (zreturn后面的值可以是一个表达式。函数的返回值应当属于某一个确定的类型,在定义函数时指定函数返回值的类型。在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。

在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。只有在发生函数调用时,函数max中的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。

实参可以是常量、变量或表达式,如但要求它们有确定的值。在调用时将实参的值赋给形参。 在c语言中,实参向对形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。

在内存中,实参单元与形参单元是不同的单元。

函数调用的一般形式为: 函数名(实参表列)

如果是调用无参函数,则“实参表列”可以没有,但括弧不能省略。

6--p33

# include <>void main(){float add(float x, float y); 对被调用函数add的声明*/ float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f ",c);}float add(float x,float函数首部 */float函数体zreturn(z);

嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义。c语言不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。 一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).

*pointer_1)相当于a++注意括号是必要的,如果没有括号,就成为了*pointer_1+从附录可知:++和*为同一优先级别,而结合方向为自右而左,因此它相当于*(pointer_1+由于++在pointer_1的右侧,是“后加”,因此先对pointer_1的原值进行*运算,得到a的值,然后使pointer_1的值改变,这样pointer_1不再指向a了。

引用一个数组元素,可以用: (下标法,如a[i形式; (指针法,如*(a或*(p其中a是数组名,p是指向数组元素的指针变量,其初值p=a

f (int arr[ ]int n)但在编译时是将arr按指针变量处理的,相当于将函数f的首部写成f (int *arr, int n)以上两种写法是等价的。

数据结构与算法

本章知识要点 算法的基本概念 数据结构的定义 线性表的定义和存储 树 二叉树的定义和存储 查找与排序算法。算法 algorithm 是一组有穷的规则,规定了解决某一特定类型问题的一系列运算,是对解题方 与完整的描述。算法是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中...

算法与数据结构

学院专业姓名学号。实验1 线性表的操作 12学时 问题描述 假设一个班级内有n个学生,定义一个学生类和一个班级类。学生类中包括学号 姓名 性别 年龄 专业等属性 班级类包括一个学生对象链表。定义如下 class student class myclass student stu head 链表表头指...

算法与数据结构

1 简述算法的概念及其五个重要特性。2 下图是用邻接表存储的图,请画出此图,写出其邻接矩阵以及从c点开始分别按广度优先搜索和深度优先搜索遍历该图的结果。给定一棵用二叉链表表示的二叉树,其根指针为root,编写求此二叉树叶结点个数的算法,要求先写出二叉链表的类型定义。2.编写简单选择排序的算法。1 用...