C语言数组实验报告
发布时间:2020-10-30 来源:文档文库
小
中
大
字号:
文档收集于互联网,已重新整理排版.word版本可编辑,有帮助欢迎下载支持. 实验名: 数组
一、 实验目的
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文档来源为:从网络收集整理.word版本可编辑.
文档收集于互联网,已重新整理排版.word版本可编辑,有帮助欢迎下载支持. (1) (2) (3) (4) (5)
n,a[n] n a[n] a[M]或a[10] a[2+2*4] a[M+N] int cons tint int int int int 解决方法
将%d两边的符号改为西文字符的引号scanf("%d",&n; 将前面的n的输入去掉,把n改为具体数字
3、程序调试 错误序错误信息(列出出错语句以及出是否号 错提示) 解决 (1-1) main.c|5|error: expected 是
expression before '%' token| scanf(“%d”,&n; (1-2)
main.c|6|warning: unused variable 'a' [-Wunused-variable]| int a[n]; (5 main.c|6|warning: unused variable 'a' [-Wunused-variable]| int a[M+N]; 4、相关问题回答
通过这一实验,可以说明什么问题? 是
是 加上个scanf(“%d”,&a[M+N]; 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 num[5],i (2)输出数据
序号 输出数据描述
数据类型 int 数据类型
int 1 num[i] 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文档来源为:从网络收集整理.word版本可编辑.
文档收集于互联网,已重新整理排版.word版本可编辑,有帮助欢迎下载支持. 1 2 格式不对
main.c|5|error: unknown type name 'inti'| inti i; main.c|7|error: expected expression before '%' token| printf(“%d”,num[i];
for(i=0;i<5;i++ 是 是
改为 int i; 3 是 将引号改为西文字符
4 是 去掉等号
5、相关问题回答 运行结果:12345 根据运行结果,可以说明什么? 说明:数组元素的下标从0开始,比定义的时候会小一个。
题目 3
1、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个 3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。 2、输入和输出信息描述及数据类型确定; 、输入数据
序号 输入数据描述 1 a[3][5],i.j 2 adress 数据类型
int 整型指针变量
(2)输出数据
序号 输出数据描述 数据类型 1 adress int 3