任务20:二维数组的定义和使用 《编程语言-C语言》45分钟专题训练
|
2份
|
23页
|
100人阅读
|
2人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目四: 数组
第20卷: 二维数组的定义和使用
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.下列数组定义中,正确的是( )
A.int a[][2]={1,2,3,4} B.int a[][]={1,2,3,4}
C.int a[2][]={1,2,3,4} D.int a[2,2]={1,2,3,4}
【答案】A。二维数组中,第一维长度可省,第二维不可省。
2.若有定义:int a[3][4];,则对a数组元素的正确引用是( )
A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1)
【答案】C
3.以下能对二维数组a进行正确初始化的语句是( )
A.int a[2][ ]={{1,0,1},{5,2,3}};
B.int a[ ][3]={{1,0,1},{5,2,3}};
C.int a[2][4]={1,0,1},{5,4},{5}};
D.int a[ ][3]={{1,0,1,0},{ },{2,3}};
【答案】B
4.若有初始化语句:int a[3][4]={0};,则下列叙述中,正确的一项是( )
A.只有元素a[0][0]可以得到初值0
B.此初始化语句不正确
C.数组a中各元素都可以得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
【答案】D
5.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )(假设a[0][0]位于数组的第一个位置上)
A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1
【答案】D
6.若有说明语句:int a[ ][3]={1,2,3,4,5,6,7};,则a数组第一维的大小是( )
A.2 B.3 C.4 D.无确定值
【答案】B
7.设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段,则该程序段的作用是计算( )
sum=0;
for(i=0;i<M;i++) sum+=x[i][0]+x[i][N-1];
for(j=1;j<N-1;j++) sum+=x[0][j]+x[M-1][j];
A.矩阵两条对角线元素之和 B.矩阵所有不靠边元素之和
C.矩阵所有元素之和 D.矩阵所有靠边元素之和
【答案】D
8.设有定义:int x[2][3]; 则以下关于二维数组x的叙述中错误的是( )
A.x[0]可以看作是由3个整型元素组成的一维数组
B.x[0]和x[1]是数组名,分别代表不同的地址常量
C.数组x包含6个元素
D.可以用语句:x[0]=0;为数组所有元素赋初值0
【答案】D
9.若有定义语句:int m[ ][3]={1,2,3,4,5,6,7}; 则与该语句等价的是( )
A.int m[ ][3]={{1,2,3},{4,5,6},{7}};
B.int m[ ][3]={{1,2},{3,4},{5,6,7}};
C.int m[ ][3]={{1,2,3},{4,5},{6,7}};
D.int m[ ][3]={{1},{2,3,4},{5,6,7}};
【答案】A
10.若有定义:int a[2][3];,则以下选项中对a数组元素正确引用的是( )
A.a[2][!1] B.a[2][3] C.a[0][3] D.a[1>2][!1]
【答案】D
11.执行以下程序段的输出结果是( )
int i,t[ ][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)
printf("%d,",t[2-i][i]);
A.7,5,3, B.3,6,9 C.7,5,1, D.3,5,7,
【答案】D
12.执行以下程序段时输入:2 4 6<回车>,则输出结果是( )
int x[3][2]={0},i;
for(i=0;i<3;i++)
scanf("%d",x[i]);
printf("%3d%3d%3d
",x[0][0],x[0][1],x[1][0]);
A.2 0 4 B.2 0 0 C.2 4 0 D.2 4 6
【答案】A
13.执行以下程序段的输出结果是( )
int k,a[3][3]={1,2,3,4,5,6,7,8,9};
for(k=0;k<3;k++)
printf("%d",a[k][2-k]);
A.357 B.369 C.159 D.147
【答案】A
14.执行以下程序段的输出结果是( )
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++) sum+=a[i][2-i];
printf("%d",sum);
A.21 B.17 C.8 D.47
【答案】A
15.执行以下程序段的输出结果是( )
int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf("%d
",s);
A.28 B.29 C.30 D.32
【答案】C
16.以下程序段的功能是( )
int num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{ for(j=1;j<=i;j++) printf("%4c",' ');
for(j=j-1;j<4;j++) printf("%4d",num[i][j]);
printf("
");}
A.输出数组num右上半角 B.输出数组num左上半角
C.输出数组num右下半角 D.输出数组num左下半角
【答案】A
17.执行以下程序段的输出结果是( )
int n[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++) n[i][j]=i+j;
for(i=0;i<3;i++)
for(j=0;j<3;j++) n[i+1][j+1]+=n[i][j];printf("%d
",n[i][j]);
A.10 B.12 C.16 D.18
【答案】B
18.执行以下程序段的输出结果是( )
char w[][10]={"ABCD","EFGH","IJLK","MNOP"},k;
for(k=1;k<3;k++) printf("%s-",w[k]);
A.ABCD-EFGH-IJLK- B.EFGH-IJLK
C.EGGHIJLK D.EFGH-IJLK-
【答案】D
19.执行以下程序段的输出结果是( )
int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=0;
for(i=0;i<4;i++){ printf("%d ",m[k][i]); }
A.5 8 3 6 B.1472 C.4 7 2 5 D.1 4 7 2
【答案】D
20.执行以下程序段的输出结果是( )
int i,t[][4]={9,8,7,6,5,4,3,2,1},sum=0;
for(i=0;i<2;i++)sum+=t[2-i][i];printf("%d",sum);
A.5 B.8 C.15 D.7
【答案】A
21.执行以下程序段后的输出结果是( )
int a[ ][4]={1,2,3,4,5,6,7,8,9},i,j,s=0;
for (i=1;i<2;i++)
for(j=0;j<=i;j++) s+=a[i][j];printf("%d
",s%2);
A.0 B.-1 C.1 D.有有语法错误
【答案】C
22.执行以下程序段的输出结果是( )
int i,j,a[5][5];
for(i=1;i<5;i++) {a[i][i]=1; a[i][1]=1; }
for(i=3;i<5;i++)
for(j=2;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];
for(j=1;j<=4;j++) printf("%d",a[4][j]);
A.1331 B.1441 C.1551 D.1313
【答案】A
23.执行以下程序段的输出结果是( )
int i,j,a[]={0,2,8,4,5};
for(i=1;i<=5;i++){j=5-i;printf("%2d",a[j]);}
A.54820 B.5 4 8 2 0 C.5482 D.5 4 8 2
【答案】B
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[5][10]={"one","two","three","four","five"};
int i,j;char t;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{t=a[i][0];
a[i][0]=a[j][0];
a[j][0]=t;}
puts(a[1]);
getch();}
【答案】fwo
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,k;
int array[4][2]={{1,2},{4,9},{6}};
for(i=0;i<2;i++)
for(k=0;k<4;k++)
printf("%d,",array[k][i]);
printf("
");
getch();}
【答案】1,4,6,0,2,9,0,0,
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)
t+=b[i][b[j][i]];
printf("%d
",t);
getch();}
【答案】4
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};
int i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i])
{t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}
for(i=0;i<4;i++)
printf("%d",a[i][i]);
getch();}
【答案】1657
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};
int i,k,t;
for(i=0;i<3;i++)
for(k=i+1;k<4;k++)
if(a[i][i]<a[k][k])
{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}
for(i=0;i<4;i++)
printf("%d",a[0][i]);
getch();}
【答案】6432
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[4][4]={' '};
int i,j;
for(i=0;i<4;i++)
{a[i][0]=a[i][3]='#';
for(j=1;j<3;j++)
{a[0][j]=a[3][j]='#';
if((i!=0)&&(i!=3)) a[i][j]='o';}}
for(i=1;i<3;i++)
{for(j=0;j<4;j++)
printf("%2c",a[i][j]);
printf("
");}getch();}
【答案】
# o o #
# o o #
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]<min)
{min=a[i][j];row=i;col=j;}
printf("min=%d, row=%d, col=%d
",min,row,col);
getch();}
【答案】min=-2, row=2, col=1
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是将二维数组a中的每个元素向右移一列,最后一列换到最左一列,移动后的结果保存到b数组中,并按照矩阵形式输出a和b。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int a[2][3]={{4,5,6},{1,2,3}},b[2][3],i,j;
L5 for(i=0;i<2;i++)
L6 {for(j=0;j<3;j++)
L7 {printf("%5d",a[i][j]);
L8 b[i][j++]=a[i][j];}
L9 printf("
");}
L10 printf("
");
L11 for(i=0;i<2;i++)
L12 b[i][2]=a[i][0];
L13 for(i=0;i<2;i++)
L14 {for(j=0;j<3;j++)
L15 {printf("%5d",b[j][j]);}
L16 printf("
");}
L17 getch();}
答案:
L8 b[i][j+1]=a[i][j];}
L12 b[i][0]=a[i][2];
L15 {printf("%5d",b[i][j]);}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.以下程序的功能是将一个3行3列的矩阵进行转置。请填空。
原矩阵
装置后变为:
#include <stdio.h>
#include<conio.h>
main()
{int n[3][3]={1,2,3,4,5,6,7,8,9};int i,j,temp;
printf("原始矩阵:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d ",n[i][j]);printf("
");}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(【1】)
{temp=【2】;
n[i][j]=【3】;
n[j][i]=temp;}}
printf("转置矩阵:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d ",【4】);
printf("
");}
getch();}
答案:①j>i ②n[i][j] ③n[j][i] ④n[i][j]
33.以下程序的功能是产生并输出杨辉三角形的前七行。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[7][7];
int i,j,k;
for(i=0;i<7;i++)
{a[i][0]=1;
【1】;}
for(i=2;i<7;i++)
for(j=1;【2】;j++)
a[i][j]=【3】;
for(i=0;i<7;i++)
{for(j=0;【4】;j++)
printf("%4d",a[i][j]);
printf("
");}
getch();}
答案:①a[i][i]=1 ②j<i ③a[i-1][j]+a[i-1][j-1] ④j<=i
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目四: 数组
第20卷: 二维数组的定义和使用
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.下列数组定义中,正确的是( )
A.int a[][2]={1,2,3,4} B.int a[][]={1,2,3,4}
C.int a[2][]={1,2,3,4} D.int a[2,2]={1,2,3,4}
2.若有定义:int a[3][4];,则对a数组元素的正确引用是( )
A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1)
3.以下能对二维数组a进行正确初始化的语句是( )
A.int a[2][ ]={{1,0,1},{5,2,3}};
B.int a[ ][3]={{1,0,1},{5,2,3}};
C.int a[2][4]={1,0,1},{5,4},{5}};
D.int a[ ][3]={{1,0,1,0},{ },{2,3}};
4.若有初始化语句:int a[3][4]={0};,则下列叙述中,正确的一项是( )
A.只有元素a[0][0]可以得到初值0
B.此初始化语句不正确
C.数组a中各元素都可以得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
5.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )(假设a[0][0]位于数组的第一个位置上)
A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1
6.若有说明语句:int a[ ][3]={1,2,3,4,5,6,7};,则a数组第一维的大小是( )
A.2 B.3 C.4 D.无确定值
7.设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段,则该程序段的作用是计算( )
sum=0;
for(i=0;i<M;i++) sum+=x[i][0]+x[i][N-1];
for(j=1;j<N-1;j++) sum+=x[0][j]+x[M-1][j];
A.矩阵两条对角线元素之和 B.矩阵所有不靠边元素之和
C.矩阵所有元素之和 D.矩阵所有靠边元素之和
8.设有定义:int x[2][3]; 则以下关于二维数组x的叙述中错误的是( )
A.x[0]可以看作是由3个整型元素组成的一维数组
B.x[0]和x[1]是数组名,分别代表不同的地址常量
C.数组x包含6个元素
D.可以用语句:x[0]=0;为数组所有元素赋初值0
9.若有定义语句:int m[ ][3]={1,2,3,4,5,6,7}; 则与该语句等价的是( )
A.int m[ ][3]={{1,2,3},{4,5,6},{7}};
B.int m[ ][3]={{1,2},{3,4},{5,6,7}};
C.int m[ ][3]={{1,2,3},{4,5},{6,7}};
D.int m[ ][3]={{1},{2,3,4},{5,6,7}};
10.若有定义:int a[2][3];,则以下选项中对a数组元素正确引用的是( )
A.a[2][!1] B.a[2][3] C.a[0][3] D.a[1>2][!1]
11.执行以下程序段的输出结果是( )
int i,t[ ][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)
printf("%d,",t[2-i][i]);
A.7,5,3, B.3,6,9 C.7,5,1, D.3,5,7,
12.执行以下程序段时输入:2 4 6<回车>,则输出结果是( )
int x[3][2]={0},i;
for(i=0;i<3;i++)
scanf("%d",x[i]);
printf("%3d%3d%3d
",x[0][0],x[0][1],x[1][0]);
A.2 0 4 B.2 0 0 C.2 4 0 D.2 4 6
13.执行以下程序段的输出结果是( )
int k,a[3][3]={1,2,3,4,5,6,7,8,9};
for(k=0;k<3;k++)
printf("%d",a[k][2-k]);
A.357 B.369 C.159 D.147
14.执行以下程序段的输出结果是( )
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++) sum+=a[i][2-i];
printf("%d",sum);
A.21 B.17 C.8 D.47
15.执行以下程序段的输出结果是( )
int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf("%d
",s);
A.28 B.29 C.30 D.32
16.以下程序段的功能是( )
int num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{ for(j=1;j<=i;j++) printf("%4c",' ');
for(j=j-1;j<4;j++) printf("%4d",num[i][j]);
printf("
");}
A.输出数组num右上半角 B.输出数组num左上半角
C.输出数组num右下半角 D.输出数组num左下半角
17.执行以下程序段的输出结果是( )
int n[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++) n[i][j]=i+j;
for(i=0;i<3;i++)
for(j=0;j<3;j++) n[i+1][j+1]+=n[i][j];printf("%d
",n[i][j]);
A.10 B.12 C.16 D.18
18.执行以下程序段的输出结果是( )
char w[][10]={"ABCD","EFGH","IJLK","MNOP"},k;
for(k=1;k<3;k++) printf("%s-",w[k]);
A.ABCD-EFGH-IJLK- B.EFGH-IJLK
C.EGGHIJLK D.EFGH-IJLK-
19.执行以下程序段的输出结果是( )
int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=0;
for(i=0;i<4;i++){ printf("%d ",m[k][i]); }
A.5 8 3 6 B.1472 C.4 7 2 5 D.1 4 7 2
20.执行以下程序段的输出结果是( )
int i,t[][4]={9,8,7,6,5,4,3,2,1},sum=0;
for(i=0;i<2;i++)sum+=t[2-i][i];printf("%d",sum);
A.5 B.8 C.15 D.7
21.执行以下程序段后的输出结果是( )
int a[ ][4]={1,2,3,4,5,6,7,8,9},i,j,s=0;
for (i=1;i<2;i++)
for(j=0;j<=i;j++) s+=a[i][j];printf("%d
",s%2);
A.0 B.-1 C.1 D.有有语法错误
22.执行以下程序段的输出结果是( )
int i,j,a[5][5];
for(i=1;i<5;i++) {a[i][i]=1; a[i][1]=1; }
for(i=3;i<5;i++)
for(j=2;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];
for(j=1;j<=4;j++) printf("%d",a[4][j]);
A.1331 B.1441 C.1551 D.1313
23.执行以下程序段的输出结果是( )
int i,j,a[]={0,2,8,4,5};
for(i=1;i<=5;i++){j=5-i;printf("%2d",a[j]);}
A.54820 B.5 4 8 2 0 C.5482 D.5 4 8 2
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[5][10]={"one","two","three","four","five"};
int i,j;char t;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{t=a[i][0];
a[i][0]=a[j][0];
a[j][0]=t;}
puts(a[1]);
getch();}
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,k;
int array[4][2]={{1,2},{4,9},{6}};
for(i=0;i<2;i++)
for(k=0;k<4;k++)
printf("%d,",array[k][i]);
printf("
");
getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)
t+=b[i][b[j][i]];
printf("%d
",t);
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};
int i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i])
{t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}
for(i=0;i<4;i++)
printf("%d",a[i][i]);
getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};
int i,k,t;
for(i=0;i<3;i++)
for(k=i+1;k<4;k++)
if(a[i][i]<a[k][k])
{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}
for(i=0;i<4;i++)
printf("%d",a[0][i]);
getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a[4][4]={' '};
int i,j;
for(i=0;i<4;i++)
{a[i][0]=a[i][3]='#';
for(j=1;j<3;j++)
{a[0][j]=a[3][j]='#';
if((i!=0)&&(i!=3)) a[i][j]='o';}}
for(i=1;i<3;i++)
{for(j=0;j<4;j++)
printf("%2c",a[i][j]);
printf("
");}getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int i,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]<min)
{min=a[i][j];row=i;col=j;}
printf("min=%d, row=%d, col=%d
",min,row,col);
getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是将二维数组a中的每个元素向右移一列,最后一列换到最左一列,移动后的结果保存到b数组中,并按照矩阵形式输出a和b。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int a[2][3]={{4,5,6},{1,2,3}},b[2][3],i,j;
L5 for(i=0;i<2;i++)
L6 {for(j=0;j<3;j++)
L7 {printf("%5d",a[i][j]);
L8 b[i][j++]=a[i][j];}
L9 printf("
");}
L10 printf("
");
L11 for(i=0;i<2;i++)
L12 b[i][2]=a[i][0];
L13 for(i=0;i<2;i++)
L14 {for(j=0;j<3;j++)
L15 {printf("%5d",b[j][j]);}
L16 printf("
");}
L17 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.以下程序的功能是将一个3行3列的矩阵进行转置。请填空。
原矩阵
装置后变为:
#include <stdio.h>
#include<conio.h>
main()
{int n[3][3]={1,2,3,4,5,6,7,8,9};int i,j,temp;
printf("原始矩阵:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d ",n[i][j]);printf("
");}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(【1】)
{temp=【2】;
n[i][j]=【3】;
n[j][i]=temp;}}
printf("转置矩阵:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d ",【4】);
printf("
");}
getch();}
33.以下程序的功能是产生并输出杨辉三角形的前七行。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int a[7][7];
int i,j,k;
for(i=0;i<7;i++)
{a[i][0]=1;
【1】;}
for(i=2;i<7;i++)
for(j=1;【2】;j++)
a[i][j]=【3】;
for(i=0;i<7;i++)
{for(j=0;【4】;j++)
printf("%4d",a[i][j]);
printf("
");}
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$