C语言数组实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名:数组
一、实验目的
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
二、实验内容
)题目1
(一)
1、编写程序,测试下列数组的定义方式是否正确(1) main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2) main()
{
const int n=10;
int a[n];
}
(3) #include
#define M 10
main()
{
int a[M];
}
(4) main()
{
int a[2+2*4];
}
(5) #include
#define M 2
#define N 8
main()
{ int a[M+N];
}
通过这一实验,可以说明什么问题?
2、输入和输出信息描述及数据类型确定;
(1)
、输入数据
序号输入数据描述数据类型(1)n,a[n] int
(2)n
a[n] cons tint int
(3)a[M]或a[10] int (4)a[2+2*4] int (5)a[M+N] int
3、程序调试
错误序号错误信息(列出出错语句以及出
错提示)
是否
解决
解决方法
(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 a[n];
是将前面的n的输入去掉,把n改为具体数字
(5) main.c|6|warning: unused
variable 'a'
[-Wunused-variable]|
int a[M+N];
是加上个scanf(“%d”,&a[M+N]);
4、相关问题回答
通过这一实验,可以说明什么问题?
1、(2)(3)(4)(5)对,(1)错,(1)中a[n]的数组定义的【】里的常量表达式不能是变量。
2、一维数组定义的时候【】里的常量表达式包括常量和符号常量,但不能是变量。
(二)
)题目2
1、运行下面的C程序,根据运行结果,可以说明什么?
main( )
{ int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<5;i++)
printf(“%d”,num[i]);
}
2、输入和输出信息描述及数据类型确定;
(1)
、输入数据
序号输入数据描述数据类型
1 num[5],i int
(2)输出数据
序号输出数据描述数据类型
1 num[i] int
3、程序源代码(填写程序调试正确后的代码)
#include
int main( )
{
int num[5]={1,2,3,4,5}; /*定义num[5]*/
int i;
for(i=0;i<5;i++) /*下标应该是0到4*/ printf("%d",num[i]);
/*依次输出num[0]至num[4]*/
return 0;
}
4、程序调试
错误序号错误信息(列出出错语句以及出错
提示)
是否解决解决方法
1 格式不对是
2 main.c|5|error: unknown type
name 'inti'|
inti i;
是改为 int i;
3 main.c|7|error: expected
expression before '%' token|
printf(“%d”,num[i]);
是将引号改为西文字符
4 for(i=0;i<5;i++) 是去掉等号
5、相关问题回答
运行结果:12345
根据运行结果,可以说明什么?
说明:数组元素的下标从0开始,比定义的时候会小一个。
(三)
)题目3
1、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。
2、输入和输出信息描述及数据类型确定;
(1)
、输入数据
序号输入数据描述数据类型
1 a[3][5],i.j int
2 adress 整型指针变量
(2)输出数据
序号输出数据描述数据类型
1 adress int
3、程序源代码(填写程序调试正确后的代码)
#include
int main()
{
int a[3][5];
int *adress; //定义并初始化adress
int i,j;
for(i=0;i<3;i++) //每行循环
{
printf("\n");
for(j=0;j<5;j++) //每列循环
{
adress=&a[i][j]; //将adress赋值为整型指针变量
printf("%d ",adress);