发布时间 : 星期日 文章《C语言程序设计专用周》实训指导书更新完毕开始阅读
精品
第二部分 数组、结构体、指针的应用
实训目的:
在课堂教学的基础之上,进一步了解构造数据类型,掌握一维数组、二维数组、字符数组、结构体、指针的应用及程序设计技巧。数组有利于我们对数据类型相同的许多数据进行分类与管理。
实训准备要求:
复习程序设计基础教材的相应章节,熟悉一维数组、二维数组、字符数组、结构体、指针的定义、初始化、使用等,熟悉上机编译环境。实训环境要求一人一机。
实训步骤和内容:
基础练习(尽量采用模块化编程,即自定义函数):
1. 输入两个字符串,比较这两个字符串是否相同并输出比较结果。要求不用任何字符串处
理函数。 编程指导及提示:
? 应分别用循环求出两个字符数组的长度
? 若两个字符数组的长度相等,则需用循环比较下标相同的每一对字符是否相等,
若不相等则退出,若比较到最后则根据循环变量与数组长度是否相等判定两个字符数组是否相同
? 若两个字符数组的长度不相等则直接输出不相同的比较结果 ? 程序运行演示:
可编辑
精品
2. 设有4x4的方阵,其中的元素由键盘输入。分别求出主对角线上元素之和、辅对角线
上元素之积、方阵中最大的元素。 编程指导及提示:
? N*N方阵用二维数组定义、用二层循环控制输入和输出
? 用二层循环控制处理方阵元素,判定主对角线上元素条件为:if(i==j),判定辅对
角线上元素条件为:if(i+j==N-1)、求方阵中最大的元素判定条件为:if(a[i][j]>max)(i,j分别表示二维数组的行列下标) ? 程序运行演示:
3. 打印以下的杨辉三角形(10行)
1
可编辑
精品
1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程指导及提示:
? N*N方阵用二维数组定义,注意杨辉三角形为下三角
? 对杨辉三角形赋值可分为两部分,第一部分为第一列和主对角线都为1,第二部分
为其他元素都满足公式:a[i][j]=a[i-1][j-1]+a[i-1][j] ? 程序运行演示:
4. 由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。
编程指导及提示:
? 用循环依次判定字符数组s中的每个字符与x是否相等,若不相等则赋给另一个数
组存放,若相等则不赋给另一个数组存放,处理完后另一个数组即为删除了 x字符的数组。也可练习直接在一个数组中处理。 ? 程序运行演示:
可编辑
精品
5. 已知数组int num1[20],num2[20]中分别存放了两个20位整数的各个位的值,编写
一个程序,求将这两个整数相加的结果。 编程指导及提示:
? 定义三个数组int num1[20],num2[20],num3[21]; num3[21]用于存放结果,
因考虑进位故长度多1。
? 循环控制输入num1[20],num2[20]的每一位数,注意都为一位 ? 循环控制相加,考虑进位是本题的关键 ? 程序运行演示:
6. 将一个3*3的矩阵转置。用函数和指针实现。
编程指导及提示:
? N*N方阵用二维数组定义、用二层循环控制输入和输出 ? 用指针作函数参数,通过指针控制二维数组的元素处理
for(i=0;i<3;i++) for(j=i;j<3;j++) {t=*(pointer+3*i+j);
可编辑