C语言数组实验报告_第1页
C语言数组实验报告_第2页
C语言数组实验报告_第3页
C语言数组实验报告_第4页
C语言数组实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验名: 数组一、 实验目的1、掌握数组定义的规则。2、掌握 C语言数组的基本用法。、实验内容) 题目 11、编写程序,测试下列数组的定义方式是否正确(1) main()int n;scanf( “%d”,&n);int an;(2) main() const int n=10;int an;(3) #include <stdio.h>#define M 10 main()int aM;(4) main()int a2+2*4;(5) #include <stdio.h>#define M 2#define N 8 main() int aM+N;通过这一实验

2、, 可以说明什么问题 ?2、输入和输出信息描述及数据类型确定;、输入数据序号输入数据描述数据类型(1)n,anint(2)ncons tintanint(3)aM 或 a10int(4)a2+2*4int(5)aM+Nint3、程序调试错误序错误信息(列出出错语句以及出是否解决方法号错提示)解决(1-1)main.c|5|error: expected expression before '%' token| scanf( “%d”,&n);是将%d两边的符号改为西文字符的引号 scanf("%d",&n);(1-2)main.c|6|war

3、ning: unused variable 'a' -Wunused-variable| int an;是将前面的 n的输入去掉,把 n 改为具体数字(5)main.c|6|warning: unused是加上个 scanf( “ %d”,&aM+N);variable 'a' -Wunused-variable| int aM+N;4、相关问题回答 通过这一实验 , 可以说明什么问题 ?1、( 2)( 3)( 4)( 5)对,( 1)错,( 1)中an 的数组定义的【】里的常量表达式不能是变量。2、一维数组定义的时候【】里的常量表达式包括常量和符号常量

4、,但不能是变量。) 题目 21、运行下面的 C程序, 根据运行结果 ,可以说明什么 ? main( ) int num5=1,2,3,4,5;inti i;for(i=0;i<5;i+)printf( “%d”,numi);2、输入和输出信息描述及数据类型确定;、输入数据序号输入数据描述数据类型1num5,iint(2)输出数据序号输出数据描述数据类型1numiint 3、程序源代码(填写程序调试正确后的代码)#include <stdio.h>int main( )int num5=1,2,3,4,5; /*int i;for(i=0;i<5;i+) /*/* 依次输

5、出 num0 至 num4*/ return 0;定义 num5*/下标应该是 0到 4*/printf("%d",numi);4、程序调试错误错误信息 (列出出错语句以及出错序号 提示)1格式不对2main.c|5|error: unknown typename 'inti'| inti i;3 main.c|7|error: expected expression before '%' token| printf( “%d”,numi);4 for(i=0;i<5;i+)是否解决 解决方法是是改为 int i;是将引号改为西文字符是

6、去掉等号5、相关问题回答运行结果: 12345根据运行结果 , 可以说明什么 ?说明:数组元素的下标从 0开始,比定义的时候会小一个。) 题目 31、操作符 &用以求一个变量的地址,这在函数 scanf 中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址 , 并由此说明二维数组中各元素是按什么顺序存诸的。2、输入和输出信息描述及数据类型确定;、输入数据序号 输入数据描述1a35,i.j2adress数据类型int 整型指针变量(2)输出数据 序号 输出数据描述 1 adress数据类型 int3、程序源代码(填写程序调试正确后的代码)#include &l

7、t;stdio.h>int main()int a35;int *adress;/int i,j;for(i=0;i<3;i+)/printf("n"); for(j=0;j<5;j+) /adress=&aij; / printf("%d ",adress);定义并初始化 adress每行循环每列循环将 adress 赋值为整型指针变量return 0;4、测试与结果分析 、测试数据与结果源文可执行文件测试测试用例选取原测试输入测试输出结果是否结果分析件名名序号因数据正确1无无是无误) 题目 4 为一个起泡排序程序设计测试用例

8、,并测试之。 1、程序源代码(填写程序调试正确后的代码)#include <stdio.h>int main( )int a10; /int i,j,k;printf("请输入 10 个数字 :n");for(i=0;i<=9;i+) scanf("%d",&ai); / printf("n");/for(j=0;j<9;j+)/for(i=0;i<9-j;i+)/if(ai>ai+1)/k=ai;ai=ai+1;ai+1=k; / printf(" 排序后的数字为: n"

9、;); for(i=0;i<=9;i+)printf("%d ",ai); /printf("n");return 0;2、输入和输出信息描述及数据类型确定; 、输入数据序号 输入数据描述定义一维数组 a10依次输入数组的数字换行进行 9次循环,实现 9趟比较 在每一趟中进行 9-j 次比较 相邻两数比较若后一个比前一个大,则交换位置依次输出排序后的数字数据类型1a10,i,j,kint(2)输出数据序号输出数据描述数据类型intai3、程序调试错误 错误信息(列出出错语句以及出错是否解决方法序号 提示)解决1 输出结果间无空格是在最后一个 pri

10、ntf( “ %d”的d后面加空格4、测试与结果分析、测试数据与结果源文可执行文件测试测试用例选取原测试输入测试输出结果是否结果分析件名名序号因数据正确1测试用例1 12 13 141 12 13 14 15 67是无误15 56 6778 80 8978 89 80) 题目51、1983年,在ACM图林奖颁奖大会上 ,杰出的计算机科学家 ,UNIX 的鼻祖 ,C 语言的创始人 之一,图林大奖得主 ,Ken Thompson 上台的第一句话是 : “我是一个程序员 ,在我的 1040表上, 我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一 个我曾经写过的最精练的

11、程序。”这个程序如下:char s =t ',0',n ', ',; ',n ',n ',/ ',*',n ',/* (213 lines deleted)*/0;/* The string is a* representation of the body* of this program from0'* to the end*/main( ) int i;printf( “char” ;for (i=0;si;i+) printf( “n”,si);printf ( “%s”,s);请上机运行这个程序 ,

12、 指出它的功能和运行结果。2、程序源代码(填写程序调试正确后的代码)#include<stdio.h> char s ='t','0','n','','n','n','/', 'n',/* (213 lines deleted)*/0;/* The string is a* representation of the body* of this program from '0'* to the end*/int main( )int i;p

13、rintf("char ts=n" );for (i=0;si;i+) printf("t%d,n",si);printf("%s",s);return 0;3、程序调试错误错误信息 (列出出错语句以及出错是否解决方法序号提示)解决1所有的引号和逗号格式不对是都改为西文字符2main.c|22|error: expected '=', ',', '', 'asm' or'_attribute_' before '' token|是在 mai

14、n 前加 int3main.c|23|warning: missing terminating " character是改为 printf("char ts=n" );enabled by default| printf("char ts=" ;格式不完整加上 include,return 0;4、相关问题回答请上机运行这个程序 , 指出它的功能和运行结果。答:功能输出字符串的数值。5、测试与结果分析、测试数据与结果源文 可执行文件测试 测试用例选取原件名 名 序号 因测试输入 测试输出结果 数据1 测试用例是否 结果分析正确是 无误) 题目

15、61、题目内容描述在下面的 5 ×5 魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中, 屏幕上。17 24 1 8 15然后, 检验其是否为魔方矩阵,并将其按如下格式显示到23 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 92、程序源代码(填写程序调试正确后的代码)#include<stdio.h>main()int i,j,sum1,sum2;int find1=0,find2=0,m=0; /int a55;for(i=0;i<5;i+)for(j

16、=0;j<5;j+)scanf("%d",&aij); /for(i=0;i<5;i+)定义变量输入 5*5个数字for(j=0;j<5;j+)printf("%d",aij)/输出矩阵printf("n");for(sum1=0,i=0;i<=4;i+)sum1+=aii;for(sum2=0,i=0,j=4;i<=4;i+,j-)sum2+=+aij;for(i=0;i<=4;i+) for(j=0;j<=4;j+)printf("%dt",aij);print

17、f("n");if(sum1!=sum2)printf(" 此矩阵不为魔方矩阵 n");m=1;for(i=0;i<=4;i+)for(j=0;j<=4;j+)ai5+=aij;a5j+=aij;/ 计算对角线元素和/ 计算对角线元素和/ 打印魔方矩阵/ 判断对角线和是否相等/ 判断各行列和是否相等 if(m=0) for(i=0;i<=4;i+) if(ai5!=a5i | ai5!=sum1) printf(" 此矩阵不为魔方矩阵 n"); break; if(i=5) printf(" 此矩阵为魔方矩

18、阵 n");3、测试与结果分析、测试数据与结果源文可执行文件测试测试用例选取原测试输入测试输出结果是否结果分析件名名序号因数据正确1题目是无误(七 ) 题目71、题目内容描述 餐饮服务质量调查打分 在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出 来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况, 如果仅给出一大堆数据, 这显然太不直观了, 如果能将这些数据以条形图 (直方图)的形式表示,那么将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客 对餐饮服务打分为例, 练习一下这方面的程序。 假设现在有 40个

19、学生被邀请来给自助餐厅的食品和服务质量打分,分数为从 110的10个等级 (1意味着最低分 ,10表示最高分 ) ,试统计调 查结果,并用 * '打印出如下形式的统计结果直方图。Grade Count Histogram 2 102、输入和输出信息描述及数据类型确定;、输入数据序号 输入数据描述1 score40,i,j,grade,count11数据类型int2)输出数据序号 输出数据描述1 grade,countgrade数据类型 char3、程序源代码(填写程序调试正确后的代码)#include <stdio.h>int main()int score40,i,j,g

20、rade;int count11=0; /for(i=0;i<40;i+)printf("please input score%d:",i+1); scanf("%d",&scorei); / switch(scorei)case 1:count1+; break;/case 2:count2+; break;/case 3:count3+; break;定义并初始化数组 count 【 11】输入每个分数/ 统计每个分数的个数评分为 1 时,数组中 count1 加一评分为 2 时,数组中 count2 加二case 4:count4+;

21、 break;case 5:count5+; break;case 6:count6+; break;case 7:count7+; break;case 8:count8+; break;case 9:count9+; break;case 10:count10+; break; default:printf("Input error!n"); / printf("GradetCounttHistogramn"); /for(grade=1;grade<=10;grade+)printf("%dt%dt",grade,coun

22、tgrade); / for(j=0;j<countgrade;j+) printf("%c",'*'); / printf("n");return 0;4、测试与结果分析、测试数据与结果其余情况输出表头/ 统计每个分数的个数输出分数和每个分数的个数根据评分的个数输出 * 数测试测试用例选取测试输入数据测试输出是否正确结果分析序号原因结果1测试用例8个2,9个3,5 个4,13个如下图是无误6,3 个7,23 ,762测试用例2个1,4个2,3 个3,1个如下图是无误4,5 个5,6 个6,5 个7,2 个8,6 个 9,3个10,78,0,22(八 ) 题目81、题目内容描述由计算机随机生成一个各位相异的 4 位数字,由人来猜,每次提示: xAxBA前面的数字表示有几个数字猜对位置也对了B前面的数字表示有几个数字猜对但位置不对提示:用数组 a存计算机随机生成的 4位数,用数组 b存人猜的 4位数,对 a和 b的相同位置的元素进行比较, 得到 A前面的数字,对 a和b的不同位置的元素进行比较,得到 B前面的数字。2、输入和输出信息描述及数据类型确定;、输入数据序号输入数据描述数据类型1a4,b4,m,n,i,j,int(2)输出数据序号输出数据描述数据类型1M,nint 3、程序源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论