C语言数组实验报告

实验名: 数组

一、 实验目的

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]; }

通过这一实验,可以说明什么问题?

1

2、输入和输出信息描述及数据类型确定; (1)、输入数据 序号 输入数据描述 (1) n,a[n] (2) (3) (4) (5)

n a[n] a[M]或a[10] a[2+2*4] a[M+N]

数据类型 int cons tint int int int int

3、程序调试 错误序错误信息(列出出错语句以及出号 错提示)

是否

解决

解决方法

将%d两边的符号改为西文字符的引号scanf(\

将前面的n的输入去掉,把n改为具体数字

(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)、输入数据

序号 输入数据描述 1 num[5],i

(2)输出数据

序号 输出数据描述 1 num[i]

3、程序源代码(填写程序调试正确后的代码) #include int main( )

2

数据类型 int 数据类型 int

{

int num[5]={1,2,3,4,5}; /*定义num[5]*/ int i;

for(i=0;i<5;i++) /*下标应该是0到4*/ printf(\

/*依次输出num[0]至num[4]*/

return 0; }

4、程序调试 错误错误信息(列出出错语句以及出错序号 提示) 1 2

格式不对

main.c|5|error: unknown type name 'inti'| inti i;

3

main.c|7|error: expected

expression before '%' token| printf(“%d”,num[i]);

4

for(i=0;i<5;i++)

去掉等号

将引号改为西文字符

是否解决 解决方法 是 是

改为 int i;

5、相关问题回答 运行结果:12345

根据运行结果,可以说明什么?

说明:数组元素的下标从0开始,比定义的时候会小一个。

(三)) 题目 3

1、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个 3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。 2、输入和输出信息描述及数据类型确定; (1)、输入数据

序号 输入数据描述 1 2

(2)输出数据

序号 输出数据描述 1 adress

数据类型

int

a[3][5],i.j adress

数据类型 int

整型指针变量

3、程序源代码(填写程序调试正确后的代码) #include int main() {

int a[3][5]; int *adress; //定义并初始化adress int i,j; for(i=0;i<3;i++) //每行循环 { printf(\ for(j=0;j<5;j++) //每列循环 { adress=&a[i][j]; //将adress赋值为整型指针变量 printf(\

3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4