1、C语言数组实验报告实验名: 数组一、 实验目的1、掌握数组定义的规则。2、掌握C语言数组的基本用法。二、实验内容(一)) 题目 11、编写程序,测试下列数组的定义方式是否正确(1) main() int n; scanf(“%d”,&n); int an; (2) main() const int n=10; int an; (3) #include #define M 10 main() int aM; (4) main() int a2+2*4; (5) #include #define M 2 #define N 8 main() int aM+N; 通过这一实验,可以说明什么问题?2、
2、输入和输出信息描述及数据类型确定;(1)、输入数据序号输入数据描述 数据类型(1)n,anint(2)nancons tintint(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|warning: unused variable a -Wunused-variable|int
3、 an;是将前面的n的输入去掉,把n改为具体数字(5)main.c|6|warning: unused variable a -Wunused-variable|int aM+N;是加上个scanf(“%d”,&aM+N);4、相关问题回答通过这一实验,可以说明什么问题?1、(2)(3)(4)(5)对,(1)错,(1)中an的数组定义的【】里的常量表达式不能是变量。2、一维数组定义的时候【】里的常量表达式包括常量和符号常量,但不能是变量。(二)) 题目 21、运行下面的C程序,根据运行结果,可以说明什么? main( ) int num5=1,2,3,4,5; inti i; for(i=0;
4、i5;i+) printf(“%d”,numi); 2、输入和输出信息描述及数据类型确定;(1)、输入数据序号输入数据描述 数据类型1num5,iint(2)输出数据序号输出数据描述 数据类型1numiint3、程序源代码(填写程序调试正确后的代码)#include int main( ) int num5=1,2,3,4,5; /*定义num5*/ int i; for(i=0;i5;i+) /*下标应该是0到4*/ printf(%d,numi); /*依次输出num0至num4*/ return 0;4、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法1格式不对是2m
5、ain.c|5|error: unknown type name inti|inti i;是改为 int i;3main.c|7|error: expected expression before % token|printf(“%d”,numi);是将引号改为西文字符4for(i=0;i5;i+)是去掉等号5、相关问题回答运行结果:12345根据运行结果,可以说明什么?说明:数组元素的下标从0开始,比定义的时候会小一个。(三)) 题目 31、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各
6、元素是按什么顺序存诸的。2、输入和输出信息描述及数据类型确定;(1)、输入数据序号输入数据描述 数据类型1a35,i.jint2adress整型指针变量(2)输出数据序号输出数据描述 数据类型1adressint3、程序源代码(填写程序调试正确后的代码)#include int main() int a35; int *adress; /定义并初始化adress int i,j; for(i=0;i3;i+) /每行循环 printf(n); for(j=0;j5;j+) /每列循环 adress=&aij; /将adress赋值为整型指针变量 printf(%d ,adress); retu
7、rn 0;4、测试与结果分析(1)、测试数据与结果源文件名可执行文件名测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1无无是无误(四)) 题目 4为一个起泡排序程序设计测试用例,并测试之。1、程序源代码(填写程序调试正确后的代码)#include int main( ) int a10; /定义一维数组a10 int i,j,k; printf(请输入10个数字:n); for(i=0;i=9;i+) scanf(%d,&ai); /依次输入数组的数字 printf(n); /换行 for(j=0;j9;j+) /进行9次循环,实现9趟比较 for(i=0;iai+1) /相
8、邻两数比较 k=ai; ai=ai+1; ai+1=k; /若后一个比前一个大,则交换位置 printf(排序后的数字为:n); for(i=0;i=9;i+) printf(%d ,ai); /依次输出排序后的数字 printf(n); return 0;2、输入和输出信息描述及数据类型确定;(1)、输入数据序号输入数据描述 数据类型1a10,i,j,kint(2)输出数据序号输出数据描述 数据类型1aiint3、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法1输出结果间无空格是在最后一个printf(“%d”的d后面加空格4、测试与结果分析(1)、测试数据与结果源文件
9、名可执行文件名测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1测试用例1 12 13 14 15 56 67 78 89 801 12 13 14 15 67 78 80 89是无误(五)) 题目 51、1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX 的鼻祖,C 语言的创始人之一,图林大奖得主,Ken Thompson 上台的第一句话是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序如下:char s = t,0,n,;,n,n,/,*,n,/*
10、(213 lines deleted)*/ 0 ;/* * The string is a * representation of the body * of this program from 0 * to the end */ main( ) int i; printf(“char ts=” ; for (i=0;si;i+) printf(“t%d,n”,si); printf(“%s”,s); 请上机运行这个程序,指出它的功能和运行结果。2、程序源代码(填写程序调试正确后的代码)#includechar s =t,0,n,;,n,n,/,*,n,/* (213 lines delete
11、d)*/0;/* The string is a* representation of the body* of this program from 0* to the end*/int main( ) int i; printf(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_ bef
12、ore token|是在main前加int3main.c|23|warning: missing terminating character enabled by default|printf(char ts= ;是改为printf(char ts=n );4格式不完整是加上include,return 0;4、相关问题回答请上机运行这个程序,指出它的功能和运行结果。答:功能输出字符串的数值。5、测试与结果分析(1)、测试数据与结果源文件名可执行文件名测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1测试用例是无误(六)) 题目 61、题目内容描述在下面的 55 魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中, 然后, 检验其是否为魔方矩阵,并将其按如下格式