预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言程序设计习题答案与上机指导实验要求 课堂实验应与课堂讲授内容同步,按教材章节编制实验单元。学生 按照“理解程序”→“模仿程序”→“改写程序”→“编写程序”四步 曲,循序渐进地学习,逐步提高学生的编程能力。 课程实验包括程序跟踪调试、程序阅读、程序改错、程序填空、程序编 写多种类型(在程序阅读题中引入程序的跟踪调试,因此程序阅读题难 度不大,这类题一般在前章:3~7章),可从多角度培养学生的编程能 力。每章实验有基本类实验(2~3个)和提高类实验(1~2个),基本 类实验要求每个同学必须完成,提高类实验学生可根据自己的能力有选 择性的完成,完成者该实验可加分。每一章实验可按以下要求编写(以 第X章为例): 如 第X章数据组织——数组 知识要点 数组是基本的构造类型,是一组具有相同类型数据的有序集合,数组中 的元素在内存中连续存放。用数组名和下标可以唯一地确定数组元素。 以下略 实验名称螺旋方阵(提高类) 1)实验目的 (1)熟练理解和掌握二维数组的使用 (2)熟练理解循环嵌套的含义与使用方法 2)实验任务 (1)实验内容 如图所示,已知一个N*N(3≤N≤25)的方阵,从左上角第1个格式子开始, 按顺时针螺旋方向将1,2,3…的数据布满整个方阵。 1234 1213145 1116156 10987 N=4时的方阵 (2)实验要求 输入N,产生N阶螺旋方阵中的所有数据,保存到二维数组,并输出该螺 旋方阵。 测试用例: 序号输入输出 1234 14 1213145 1116156 10987 123 23894 765 30 (3)实验要点分析 ①问题分析 螺旋方阵数据的产生有一定规律。从外到内,可以以圈为单位生成数据。 比如N=4时,刚好就是两圈数据: 第1圈: 1234 125 116 10987 第2圈 1314 1615 基本规律是:当N为偶数时,需要N/2圈;当圈为奇数时,也需要N/2圈, 但是最后还会生成一个数据:N*N。 ②实验要点: 使用二维数组存储螺旋方格子中的数据;二维数组所有数据的生成,可 使用循环,根据所需要的圈数,从左→右→下→左→上,四个方向来产 生数据。 (4)实验思考 如果按逆时针方向来产生螺旋方阵,请修改相应程序。 参考程序(该部分可不要,如果难度较大可给出流程图) //从左→右→下→左→上,四个方向来产生数据 #defineN5 intmain(]) { inti,j,k,m=1,n,a[N][N]; j=0;k=0; while(k<=N/2) { i=k; for(j=k;j<=N-k-1;j++) { a[i][j]=m++; } j=N-k-1; for(i=k+1;i<=N-k-1-1;i++) { a[i][j]=m++; } i=N-k-1; for(j=N-k-1;j>=k;j--) { a[i][j]=m++; } j=k; for(i=N-k-1-1;i>=k+1;i--) { a[i][j]=m++; } k++; } if(N%2!=0)//如果N为a奇数,最后要生成一个数N*N a[(N-1)/2][(N-1)/2]=a[(N-1)/2][(N-1)/2]-1; for(i=0;i<N;i++) { for(j=0;j<N;j++) } return0; } 每个实验按以下格式: 实验名称 1)实验目的 2)实验任务 (1)实验内容 (2)实验要求 (3)实验要点分析 ①问题分析 ②实验要点 (4)实验思考