资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
北京交通大学计算机学院计算机程序设计基础课程组1教学目标v了解数组数据结构 v熟悉数组定义,初始化和引用数组元素 v掌握数组作为函数参数的作用 v掌握基本排序方法 v能够使用常用的字符处理函数 v了解结构体数据结构 5.1 数组概述 5.2 一维数组 5.3 数组作函数的参数 5.4 一维数组应用 5.5 多维数组 5.6 字符数组与字符串 5.7 结构体5.1 数组概述v构造数据类型之一v定义:数组是有序数据的集合组成数组的数据称为数组的元素数组的每个元素都属于同一个数据类型每个数组要用一个统一的标识符标识v定义v引用v初始化v输入和输出5.2 一维数组l定义类型说明符 数组名常量表达式;一维 二维int a5; int a34;char c20; char c23;float x10; float x23;l引用数组必须先定义,后使用。只能逐个引用数组元素。例如,定义数组 int a3,数组元素为:a0 a1 a2 v引用形式:一维 数组名下标;例如:a2=1; b01=5;ai+j;(i,j为整型变量) 例5.1 使用数组编程,计算出前10项 fibonacci数列,要求一行打印5个数。main() int f10; int i;f0=0; f1=1; for(i=2;i #define SIZE 6 void main() void modifyArray(int , int); void modifyElement(int);int aSIZE = 1 , 2 , 3 , 4 , 5 , 6 ; int i; printf(“数组元素的原始值为:n“); for( i = 0 ; i a1,则交换;然 后比较第二个数与第三个数,若a1a2,则交换;依次 类推,直至第n-1个数和第n个数比较为止。第一轮结束 时,结果最大的数被安置在最后一个位置上。 对前n-1个数进行第二轮排序,结果使次大的数被安置 在第n-1个元素位置 重复上述过程,共经过n-1趟冒泡排序后,排序结束 算法的整体思路是让大的数不断地往下沉,小的数不 断地往上冒,所以叫“冒泡排序法”int a5 na0 a1 a2 a3 a4 第一轮 21 13 90 32 -113 21 90 32 -1 13 21 32 90 -1第二轮 .13 21 90 32 -1 13 21 32 -1 90for( i=1; i aj+1 ) temp=aj; aj=aj+1;aj+1=temp; #include #define N 10 void main() int aN , i , j , temp; printf(“请输入10个数:n“); for( i = 0 ; i #define N 100 void main() int aN, i searchKey, element; for( i = 0 ; i #define N 15 void main() void bi_search(int , int , int );int a100 , x , i , n = 15;printf(“请输入数据:n“);for( i = 0 ; i amid ) top = mid + 1; while( top #define N 20 void main() int i,j; int score20=1,2,6,4,10,9,8,3,4,6,7,8,9,5,9,7,8,7,8,5; int frequency11=0; /*存放统计结果*/for( i = 0; i main() int a23=1,2,3,4,5,6;int b32,i,j;printf(“array a:n“);for(i=0;i 字符串2, 返回正整数c. 若字符串1= 字符串2, 返回零 说明:字符串比较不能用“=”,必须用strcmpu字符串长度函数 strlen (字符数组) 功能:计算字符串长度 返值:返回字符串实际长度,不包括0在内例5.10 统计一行字符中字母、空格、数字及其他字符的个数 #include void main() char str80; int alphabet=0,digit=0 ; space=0 , other=0, i=0; gets ( str ); for ( i = 0 ; stri != 0; i+ ) if (A= 0) +digit; else +other; printf(“有%d个字母,%d个空格,%d个数字,%d个其他 字符:n”, alphabet, space, digit, other); 应用举例v 结构体类型的定义v 结构体变量的定义和引用v 结构体变量的初始化v 应用举例5.7 结构体类型构造一个结构体类的数据类型的一般形 式:struct 结构类型名 类型标识符 成员名;类型标识符 成员名;:类型标识符 成员名;结构体类型的定义例如: struct student char number10;char name20;char sex;int age;float score20;char addr30;v定义v先构造结构体类的数据类型,后定义具有这种构造 的变量。struct 结构体类型名 类型标识符 成员名;:类型标识符 成员名;struct 结构体类型名 变量名1,变量名2.;结构体变量的定义和引用v例如: struct student char number10;char name20;char sex;int age;float score20;char addr30; ;struct student stud1,stud2;v引用v对结构体变量的使用是通过对其成员的引用 来实现的。引用结构体成员的一般形式如下:结构变量名成员名例如 stud1.age其中的圆点符号称为成员运算符,它的运算级 别最高。结构体变量的定义和引用struct stud long num; char name20;char sex;char addr30; stud1=9708,”Liwei“,F,“144BeijingRoad”;结构体变量的初始化例5.11 输入3个学生的信息并输出。 #include #include struct stud long num;char name20;char gender;int age;float score;应用举例void main() struct stud student3; int i;char ch; char numstr20;for( i = 0 ; i 3 ; i+) printf(“n输入第%d个学生的数据:n“,i); gets(numstr); studenti.num = atol(numstr); gets(studenti.name); studenti.gender = getchar(); ch = getchar(); gets(numstr); studenti.age = atoi(numstr); gets(numstr); studenti.score = atof(numstr); printf(“nnumtname gender age scoren“);for( i = 0 ; i 3 ; i+)printf(“%ld%-15s%3c%6d %6.2fn“,studenti.num,studenti.name, studenti.gender,studenti.age,studenti.score);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号