C语言数组实验报告.docx

上传人:b****7 文档编号:23486256 上传时间:2023-05-17 格式:DOCX 页数:21 大小:290.29KB
下载 相关 举报
C语言数组实验报告.docx_第1页
第1页 / 共21页
C语言数组实验报告.docx_第2页
第2页 / 共21页
C语言数组实验报告.docx_第3页
第3页 / 共21页
C语言数组实验报告.docx_第4页
第4页 / 共21页
C语言数组实验报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言数组实验报告.docx

《C语言数组实验报告.docx》由会员分享,可在线阅读,更多相关《C语言数组实验报告.docx(21页珍藏版)》请在冰豆网上搜索。

C语言数组实验报告.docx

C语言数组实验报告

实验名:

数组

一、实验目的

1掌握数组定义的规则。

2、掌握C语言数组的基本用法。

二、实验内容

(一))题目1

1、编写程序,测试下列数组的定义方式是否正确

(1)main()

{

intn;

scanf(“%d,&n);

inta[n];

}

(2)main()

{

constintn=10;

inta[n];

}

(3)#include

#defineM10

main()

{

inta[M];

}

(4)main()

{

inta[2+2*4];

}

(5)#include

#defineM2

#defineN8

main()

{inta[M+N];

}

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

2、输入和输岀信息描述及数据类型确定;

(1)

输入数据

序号

输入数据描述

数据类型

(1)

n,a[n]

int

(2)

n

constint

a[n]

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:

expectedexpressionbefore'%'token|scanf(“%d,&n);

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

scanf("%d",&n);

(1-2)

main.c|6|warning:

unusedvariable'a'[-Wunused-variable]|inta[n];

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

(5)

main.c|6|warning:

unused

加上个scanf(“%d',&a[M+N]);

variable'a'[-Wunused-variable]|inta[M+N];

4、相关问题回答

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

1、

(2)(3)(4)(5)对,

(1)错,

(1)中a[n]的数组定义的【】里的常量表达式不能是变量。

2、一维数组定义的时候【】里的常量表达式包括常量和符号常量,但不能是变量。

(二))题目2

1、运行下面的C程序,根据运行结果,可以说明什么?

main()

{intnum[5]={1,2,3,4,5};

intii;

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

printf(“%d,num[i]);

}2、输入和输岀信息描述及数据类型确定;

(1)输入数据

数据类型

int

数据类型

int

序号输入数据描述

1num[5],i

(2)输岀数据

序号输出数据描述

1num[i]3、程序源代码(填写程序调试正确后的代码)

#include

intmain()

{

intnum[5]={1,2,3,4,5};/*

inti;

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

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

}

定义num[5]*/

下标应该是0到4*/printf("%d",num[i]);

4、程序调试

错误错误信息(列出出错语句以及出错

序号提示)

1格式不对

2main.c|5|error:

unknowntype

name'inti'|

intii;

3main.c|7|error:

expected

expressionbefore'%'token|printf(“%d,num[i]);

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

是否解决解决方法

是改为inti;

是将引号改为西文字符

是去掉等号

5、相关问题回答

运行结果:

12345

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

说明:

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

(三))题目3

1、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。

现在要你设计一个程序,返回一个

3*5的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。

2、输入和输岀信息描述及数据类型确定;

(1)输入数据序号输入数据描述

1a【3]【5],i.j

2adress

数据类型

int

整型指针变量

(2)输岀数据序号输岀数据描述

1adress

数据类型

int

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

#include

intmain()

{

inta[3][5];

int*adress;//

inti,j;

for(i=0;i<3;i++)//

{

printf("\n");

for(j=0;j<5;j++)//

{

定义并初始化adress

每行循环

每列循环

adress=&a[i][j];//

printf("%d",adress);

将adress赋值为整型指针变量

 

}

return0;

}

 

4、测试与结果分析

(1、测试数据与结果

源文

可执行文件

测试

测试用例选取原

测试输入

测试输岀结果

是否

结果分析

件名

序号

数据

正确

1

无误

printf("排序后的数字为:

\n");

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

依次输岀排序后的数字

printf("%d",a[i]);//

printf("\n");

return0;

}

2、输入和输岀信息描述及数据类型确定;

(1、输入数据

序号

输入数据描述

数据类型

1a[10],i,j,k

int

(2)输岀数据

int

a[i]

3、程序调试

错误

错误信息(列岀岀错语句以及岀错

是否

解决方法

序号

提示)

解决

1

输岀结果间无空格

在最后一个printf(“%(”的d后面加空格

4、测试与结果分析

(1)测试数据与结果

源文

可执行文件

测试

测试用例选取原

测试输入

测试输岀结果

是否

结果分析

件名

序号

数据

正确

1

测试用例

1121314

11213141567

无误

155667

788089

788980

(五))题目5

1、1983年,在ACRE林奖颁奖大会上,杰出的计算机科学家,UNIX的鼻祖,C语言的创始人之一,图林大奖得主,KenThompson上台的第一句话是:

“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。

作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。

”这个程序如下:

chars[]={

‘\t',

‘0',

‘\n',

‘}',

‘;'

J5

‘\n',

‘\n',

‘/',

‘*'

‘\n',

/*(213linesdeleted)*/

0

};

/*

*Thestringisa

*representationofthebody

*ofthisprogramfrom'O'

*totheend

*/

main()

{inti;

printf(“char”};

for(i=O;s[i];i++)

printf(“n”,s[i]);

printf(“%S,s);

}

请上机运行这个程序,指岀它的功能和运行结果。

2、程序源代码(填写程序调试正确后的代码)

#include

chars[]={

'\t',

'O',

'\n',

'}',

1.1

JJ

'\n',

'\n',

'/',

'\n',

/*(213linesdeleted)*/

0

};

/*

*Thestringisa

*representationofthebody

*ofthisprogramfrom'0'

*totheend

*/

intmain()

{

inti;

printf("char\ts[]={\n");

for(i=0;s[i];i++)

printf("\t%d,\n",s[i]);

printf("%s",s);

return0;

}

3、程序调试

错误

错误信息(列岀岀错语句以及岀错

是否

解决方法

序号

提示)

解决

1

所有的引号和逗号格式不对

都改为西文字符

2

main.c|22|error:

expected'=',

',',';','asm'or

'__attribute__'before'{'token|

在main前^口int

3

main.c|23|warning:

missingterminating"character

改为

printf("char\ts[]={\n");

[enabledbydefault]|printf("char\ts[]={\"};

格式不完整

力口上include,return0;

(1)测试数据与结果

源文

可执行文件

测试

测试用例选取原

测试输入

测试输岀结果

是否

结果分析

件名

序号

数据

正确

1

测试用例

无误

4、相关问题回答

请上机运行这个程序,指岀它的功能和运行结果。

答:

功能输岀字符串的数值。

5、测试与结果分析

bars[]=<

9,

48,1W-125,59,10

10,

47,

42P

10>0

(六))题目6

1、题目内容描述

在下面的5X5魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到

屏幕上。

17241815

23571416

46132022

101219213

11182529

2、程序源代码(填写程序调试正确后的代码)

#include

main()

{

inti,j,sum1,sum2;

intfind1=0,find2=0,m=0;

inta[5][5];

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

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

scanf("%d",&a[i][j]);

〃定义变量

//输入5*5个数字

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

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

 

〃输岀矩阵

printf("%d",a[i][j])

 

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

{

if(a【i]【5]!

=a【5]【i]||a【i]【5]!

=sum1)

{

printf("此矩阵不为魔方矩阵\n");break;

}

}

if(i==5)

printf("此矩阵为魔方矩阵\n");

}

}

3、测试与结果分析

(1、测试数据与结果

源文

可执行文件

测试

测试用例选取原

测试输入

测试输岀结果

是否

结果分析

件名

序号

数据

正确

1

题目

无误

17

24

1

8

15

23

5

7

14

16

4

6

13

20

22

10

12

19

21

3

11

16

2S

2

?

此矩阵为魔方矩阵

(七)题目7

1、题目内容描述

餐饮服务质量调查打分

在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示岀

来。

例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收

入状况,如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)

的形式表示,那么将会大大增加这些数据的直观性,也便于数据的分析与对比。

下面以顾客

对餐饮服务打分为例,练习一下这方面的程序。

假设现在有40个学生被邀请来给自助餐厅的

食品和服务质量打分,分数为从1~10的10个等级(1意味着最低分,10表示最高分),试统计调

查结果,并用’*'打印出如下形式的统计结果直方图。

GradeCountHistogram

*****

(八)题目8

1、题目内容描述

由计算机随机生成一个各位相异的4位数字,由人来猜,每次提示:

xAxB

A前面的数字表示有几个数字猜对位置也对了

B前面的数字表示有几个数字猜对但位置不对

提示:

用数组a存计算机随机生成的4位数,用数组b存人猜的4位数,对a和b的相同位置的元素进行比较,得到A前面的数字,对a和b的不同位置的元素进行比较,得到B前面的数字。

2、输入和输岀信息描述及数据类型确定;

(1)输入数据

数据类型

int

数据类型

int

序号输入数据描述

1a[4],b[4],m,n,i,j,

(2)输岀数据

序号输出数据描述

1M,n

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

#include

#include#includeintmain()

{

inti,j,m,n;

inta[4],b[4];

m=0;

n=0;

if((a[0]!

=a[1])&&(a[0]!

=a[2])&&(a[0]!

=a[3])&&(a[1]!

=a[2])&&(a[1]!

=a[3])&&(a[2]!

=a[3])){

n++;

}

}

}

printf("%dA%dB\n",m,n);

}

printf("你答对了!

\n");〃m=4时输出

}

return0;

}

6104

请输入你猜想的数字匕

345£0A2B

请输入你猜想的数字匕

04&80A3B请输入你猜想的数字匕

46051A2E

请输入你猜想的数字匕

&140

2f|2E

请输入你猜想的数字匕

&1044R0E你答对了!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1