大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx

上传人:b****2 文档编号:23040380 上传时间:2023-04-30 格式:DOCX 页数:17 大小:17.95KB
下载 相关 举报
大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx_第1页
第1页 / 共17页
大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx_第2页
第2页 / 共17页
大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx_第3页
第3页 / 共17页
大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx_第4页
第4页 / 共17页
大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx

《大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx》由会员分享,可在线阅读,更多相关《大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx(17页珍藏版)》请在冰豆网上搜索。

大学C语言期末考试练习题详解答案及过程讲解 读程序数组.docx

大学C语言期末考试练习题详解答案及过程讲解读程序数组

2020届大学c语言期末考试习题讲解

读程序

数组

1.

#include

main()

{inti,a[10];

for(i=9;i>=0;i--)

a[i]=10-i;

printf(“%d%d%d”,a[2],a[5],a[8]);

}

运行结果为:

852

详见p143-146.例题6.1一定看懂!

首先定义整型变量i,整型数组a,a的长度为10,即a中包含10个整型元素(整型变量)

执行for循环语句

初值i=9,使得循环条件i>=0成立,执行循环体

第1次循环

执行a[i]=10-i等价于a[9]=10-9=1

计算表达式3,即i--,i为8,使得循环条件i>=0成立,继续执行循环体

第2次循环

执行a[i]=10-i等价于a[8]=10-8=2

计算表达式3,即i--,i为7,使得循环条件i>=0成立,继续执行循环体

第3次循环

执行a[i]=10-i等价于a[7]=10-7=3

计算表达式3,即i--,i为6,使得循环条件i>=0成立,继续执行循环体

第4次循环

执行a[i]=10-i等价于a[6]=10-6=4

计算表达式3,即i--,i为5,使得循环条件i>=0成立,继续执行循环体

第5次循环

执行a[i]=10-i等价于a[5]=10-5=5

计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体

第6次循环

执行a[i]=10-i等价于a[4]=10-4=6

计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体

第7次循环

执行a[i]=10-i等价于a[3]=10-3=7

计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体

第8次循环

执行a[i]=10-i等价于a[2]=10-2=8

计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体

第9次循环

执行a[i]=10-i等价于a[1]=10-1=9

计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体

第10次循环

执行a[i]=10-i等价于a[0]=10-0=10

计算表达式3,即i--,i为-1,使得循环条件i>=0不成立,跳出循环体

2.

#include

main()

{inti,a[6];

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

a[i]=i;

for(i=5;i>=0;i--)

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

}

运行结果为:

543210

首先定义整型变量i,整型数组a,a的长度为6,即a中包含6个整型元素(整型变量)

执行第一个for循环语句

初值i=0,使得循环条件i<6成立,执行循环体

第1次循环

执行a[i]=i等价于a[0]=0

计算表达式3,即i++,i为1,使得循环条件i<6成立,继续执行循环体

第2次循环

执行a[i]=i等价于a[1]=1

计算表达式3,即i++,i为2,使得循环条件i<6成立,继续执行循环体

第3次循环

执行a[i]=i等价于a[2]=2

计算表达式3,即i++,i为3,使得循环条件i<6成立,继续执行循环体

第4次循环

执行a[i]=i等价于a[3]=3

计算表达式3,即i++,i为4,使得循环条件i<6成立,继续执行循环体

第5次循环

执行a[i]=i等价于a[4]=4

计算表达式3,即i++,i为5,使得循环条件i<6成立,继续执行循环体

第6次循环

执行a[i]=i等价于a[5]=5

计算表达式3,即i++,i为6,使得循环条件i<6不成立,结束循环

执行第二个for循环语句

初值i=5,使得循环条件i>=0成立,执行循环体

第1次循环

执行printf("%3d",a[i]);即输出a[5]的值

计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体

第2次循环

执行printf("%3d",a[i]);即输出a[4]的值

计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体

第3次循环

执行printf("%3d",a[i]);即输出a[3]的值

计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体

第4次循环

执行printf("%3d",a[i]);即输出a[2]的值

计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体

第5次循环

执行printf("%3d",a[i]);即输出a[1]的值

计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体

第6次循环

执行printf("%3d",a[i]);即输出a[0]的值

计算表达式3,即i--,i为6,使得循环条件i>=0不成立,结束循环

3.

#include

main()

{inti,k,a[10],p[3];

k=5;

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

a[i]=i;

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

p[i]=a[i*(i+1)];

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

k+=p[i]*2;

printf("%d\n",k);

}

运行结果为:

21

首先定义整型变量i,k,整型数组a,a的长度为10,整型数组p,p的长度为3

k初值为5

第一个for循环语句为数组a进行初始化

执行完第一个for语句后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9(循环过程略)

第二个for循环语句为数组p进行初始化

初值i=0,使得循环条件i<3成立,执行循环体

第1次循环

执行p[i]=a[i*(i+1)];即p[0]=a[0*(0+1)]=a[0]=0

计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体

第2次循环

执行p[i]=a[i*(i+1)];即p[1]=a[1*(1+1)]=a[2]=2

计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体

第3次循环

执行p[i]=a[i*(i+1)];即p[2]=a[2*(2+1)]=a[6]=6

计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环

第三个for循环语句

初值i=0,使得循环条件i<3成立,执行循环体

第1次循环

执行k+=p[i]*2;即k=5+p[0]*2=5+0=5

计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体

第2次循环

执行k+=p[i]*2;即k=5+p[1]*2=5+2*2=9

计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体

第1次循环

执行k+=p[i]*2;即k=9+p[2]*2=9+6*2=21

计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环

4.

#include

intm[3][3]={{1},{2},{3}};

intn[3][3]={1,2,3};

main()

{printf(“%d,”,m[1][0]+n[0][0]);

printf(“%d\n”,m[0][1]+n[1][0]);

}

运行结果为:

3,0

详见教材P149~152,图6.7看懂!

首先定义整型二维数组m,m为3行,3列的二维矩阵,并对其以行的形式初始化

m[0][0]=1m[0][1]=0m[1][2]=0

m[1][0]=2m[1][1]=0m[2][2]=0

m[2][0]=3m[2][1]=0m[2][2]=0

定义整型二维数组n,m为3行,3列的二维矩阵

n[0][0]=1n[0][1]=2n[1][2]=3

n[1][0]=0n[1][1]=0n[2][2]=0

n[2][0]=0n[2][1]=0n[2][2]=0

因此m[1][0]+n[0][0]=2+1=3

m[0][1]+n[1][0]=0+0=0

5.

#include

main()

{inti;

intx[3][3]={1,2,3,4,5,6,7,8,9};

for(i=1;i<3;i++)

printf("%d",x[i][3-i]);

}

运行结果为:

68

首先按存储顺序为数组x初始化

x[0][0]=1x[0][1]=2x[0][2]=3

x[1][0]=4x[1][1]=5x[1][2]=6

x[2][0]=7x[2][1]=8x[2][2]=9

初值i=1,使得循环条件i<3成立,执行循环体

第1次循环

执行printf("%d",x[i][3-i]),打印出x[i][3-i],即x[1][2]的值

计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体

第2次循环

执行printf("%d",x[i][3-i]),打印出x[i][3-i],即x[2][1]的值

计算表达式3,即i++,i为3,使得循环条件i<3成立,结束循环

6.

#include

main()

{intn[3][3],i,j;

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

{for(j=0;j<3;j++)

{n[i][j]=i+j;

printf(“%d”,n[i][j]);

}

}

}

运行结果为:

012

123

234

循环变量i为0,循环条件i<3成立,执行循环体

外层for第1次循环相当于输出第1行

内层for循环j初值为0,循环条件j<3成立,执行循环体

内层for第1次循环

执行n[i][j]=i+j;即n[0][0]=0+0=0;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体

内层for第2次循环

执行n[i][j]=i+j;即n[0][1]=0+1=1;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体

内层for第3次循环

执行n[i][j]=i+j;即n[0][2]=0+2=2;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环

执行printf(“\n”);

执行外层for语句的表达式3,i++,i为,1,i<3成立,继续执行外层循环体

外层for第2次循环相当于输出第2行

内层for循环j初值为0,循环条件j<3成立,执行循环体

内层for第1次循环

执行n[i][j]=i+j;即n[1][0]=1+0=1;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体

内层for第2次循环

执行n[i][j]=i+j;即n[1][1]=1+1=2;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体

内层for第3次循环

执行n[i][j]=i+j;即n[1][2]=1+2=3;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环

执行printf(“\n”);

执行外层for语句的表达式3,i++,i为,1,i<3成立,继续执行外层循环体

外层for第2次循环相当于输出第3行

内层for循环j初值为0,循环条件j<3成立,执行循环体

内层for第1次循环

执行n[i][j]=i+j;即n[2][0]=2+0=1;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体

内层for第2次循环

执行n[i][j]=i+j;即n[2][1]=2+1=2;

执行printf(“%d”,n[i][j]);

执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体

内层for第3次循环

执行n[i][j]=i+j;即n[2][2]=2+2=3;

执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环

执行printf(“\n”);

执行外层for语句的表达式3,i++,i为,3,i<3不成立,结束外层循环

7.

#include

main()

{

chardiamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},

{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}};

inti,j;

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

{

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

printf(“%c”,diamond[i][j]);

printf(“\n”);

}

}注:

“_”代表一个空格。

运行结果为:

*

**

**

**

*

8.

#include

main()

{inti,f[10];

f[0]=f[1]=1;

for(i=2;i<10;i++)

f[i]=f[i-2]+f[i-1];

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

{if(i%4==0)

printf(“\n”);

printf(“%d”,f[i]);

}

}

运行结果为:

1123

581321

3455

9.

#include“stdio.h”

func(intb[])

{intj;

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

b[j]=j;

}

main()

{inta[4],i;

func(a);

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

printf(“%2d”,a[i]);

}

运行结果为:

0123

详见教材P194

定义函数func

函数头:

未定义函数的类型,则系统默认为int型。

函数func的形参为整型数组名,即只接收整型数组地址。

函数体:

定义整型变量j

循环变量初值(表达式1)j=0,使得循环条件(表达式2)j<4成立,执行循环体

第1次循环

执行b[j]=j;即b[0]=0;

执行循环变量自增(及表达式3)j++,j为1,使得j<4成立,继续执行循环体

第2次循环

b[1]=1;

j++,j为2,使得j<4成立,继续执行循环体

第3次循环

b[2]=2;

j++,j为3,使得j<4成立,继续执行循环体

第4次循环

b[3]=3;

j++,j为4,使得j<4不成立,结束循环

main函数:

定义整型变量i和数组a,其长度为4,

func(a);表示调用函数func,并以数组名a作为调用的实参(数组名在C语言中表示数组所在内存空间的首地址,在以数组名作为实参时,形参与实参公用存储空间,因此对数组b的操作,即对数组a的操作。

 

10.

#include

main()

{floatfun(floatx[]);

floatave,a[3]={4.5,2,4};

ave=fun(a);

printf(“ave=%7.2f”,ave);

}

floatfun(floatx[])

{intj;

floataver=1;

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

aver=x[j]*aver;

return(aver);

}

运行结果为:

ave=36.00

 

11.

#include

main()

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

intb[3][2],i,j;

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

{for(j=0;j<=2;j++)

b[j][i]=a[i][j];

}

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

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

}

}

运行结果为:

142536

12.

#include

f(intb[],intn)

{inti,r;

r=1;

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

r=r*b[i];

return(r);

}

main()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3);

printf(“%d\n”,x);

}

运行结果为:

24

13.

#include"stdio.h"

main()

{intj,k;

staticintx[4][4],y[4][4];

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

for(k=j;k<4;k++)

x[j][k]=j+k;

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

for(k=j;k<4;k++)

y[k][j]=x[j][k];

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

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

printf("%d,",y[j][k]);

}

运行结果为:

0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6

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

当前位置:首页 > 表格模板 > 合同协议

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

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