内容正文:
中等专业学校2022-2023-2教案 编号:
备课组别
计算机组
课程名称
C语言
所在
年级
二年级
主备
教师
授课教师
授课系部
授课班级
授课
日期
课题
二维数组综合练习
教学
目标
对二维数组的进行检验,查看学生掌握情况
复习一维数组的应用
重点
二维数组的定义和初始化应用
难点
二维数组结合双重for循环的使用
教法
讲授法、案例教学法、讨论法
教学设备
黑板 计算机 网络机房
教学
环节
教学活动内容及组织过程
个案补充
教
学
内
容
一、新课导入
继续上一次复习一维数组的练习,本节课巩固一下二维数组的相关知识点和应用。
二、内容设计
1、int a[3][4];则对 a 数组元素的正确引用是 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1 2、 int a[3][4];则对 a 数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]
3、以下能对二维数组 a 进行正确初始化的语句是
A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1}{},{1,1}};
4、以下不能对二维数组 a 进行正确初始化的说明是
A)int a[2][3]={0};
B)int a[][3]={{1,2},{0}};
C)int a[2][3]={{1,2},{3,4},{5,6}};
D)int a[][3]={1,2,3,4,5,6};
5、下面程序的运行结果是
main()
{int a[6][6],i,j;
for(i=1;i<6;i++)
for(j=1;j<6;j++)
a[i][j]=(i/j)*(j/i);
for(i=1;i<6;i++)
{for(j=1;j<6;j++)
printf("%2d",a[i][j]);
printf("
");} }
6、下面程序将二维数组 a 的行和列元素互换后存到另一个二维数组 b 中。请分析程序填空。
main()
{int a[2][3]={{1,2,3},{4,5,6}}, int b[3][2],i,j;
printf("array a:
");
for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
{printf("%5d",a[i][j]);
b[j][i]=a[i][j];}
printf("
");}
printf("array b:
");
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("
");} }
7、下面程序可求出矩阵两条对角线上的元素之和。请分析程序填空。
main()
{int a[3][3]={1,3,6,7,9,11,14,15,17},
sum1=0,sum2=0,i,j; for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum1+=a[i][j];
for(i=0;i<3;i++)
for(j=2;j>=0;j--)
if(i+j==2) sum2+=a[i][j];
printf("sum1=%d,sum2=%d
",sum1,sum2);}
8、下面程序的功能是给一维数组 a 任意输入 6 个整数,假设为 7 4 8 9 1 5,然后建立一个具有以下内容的方阵并打印。请分析程序填空。
5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5
main()
{int a[6],i,j,k,m;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=5;i>=0;i--)
{k=a[5];
for(j=5;j>=0;j--)
a[j+1]=a[j];
a[0] =k;
for(m=0;m<6;m++)
printf("%d ",a[m]);
printf("
");} }
9、以下程序是求矩阵 a,b 的和,结果存入矩阵 c 中,并按矩阵形式输出。请分析程序填空。
main()
{int a[3][4]={{1,3,5,7},{4,7,2,5},{-8,2,5,6}};
int b[3][4]={{-2,6,7,3},{-1,5,4,7},{8,9,3,2}}