以下叙述中正确的是
A.语句inta[4][3]={1,2,4,5};是错误的初始化形式
B.语句inta[][3]={1,2,4,5);是错误的初始化形式
C.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵
D.语句inta[4][3]={{1,2),{4,5));是错误的初始化形式
数组
1.实验目的
①掌握一维数组和二维数组的定义、赋值和输入输出的方法。
②掌握字符数组和字符串函数的使用。
③掌握与数组有关的算法(特别是排序算法)。
2.实验内容
编程序并上机调试运行。
①以下程序运行后的输出结果是______。
main()
{int a[4][4]={{1-2,-3,-4}, {0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{,for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s):
}
②以下程序运行后的输出结果是______。
main()
{int i,n[]={0,0,0,0,0);
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
③以下程序运行后的输出结果是______。
main()
{int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a [j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
④求出任何n×5的数组中所有数据的平均值。
⑤若有说明:int a[2][3]={{1,2,3},{4,5,6}};现要将a的行和列的元素互换后存入另一个二维数组b中。
⑥通过循环按行顺序为一个5*5的二维数组a赋1到25的自然数,然后输出该数组的左下半角。
⑦试编程打印出5*5的螺旋方阵。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
⑧某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
以下叙述中正确的是
A.语句inta[]={0};是不合法的,遗漏了数组的大小
B.语句chara[2]={""A"",""B"");是合法的,定义了一个包含两个字符的数组
C.语句inta[8]:{0};是合法的
D.语句chara[3];a=""AB"";是合法的,因为数组有三个字符空间的容量,可以保存两个字符
定义如下变量和数组:
int k;
int 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)3 5 7 (B)3 6 9 (C)1 5 9 (D)1 4 7
设有如下的说明和定义struct{inta;char*s;)x,*p=&x;x.a=4;x.S=hello;则以下叙述中正确的是
A.语句++p->a;的效果是使P增1
B.(p++)->a与p++->a都是合语法的表达式,但二者不等价
C.语句*p->s++;等价于(*p)->s++;
D.语句++p->a;的效果是使成员a增1
以下不能对二维数组c进行正确的初始化的语句是()。
A.int c[3][3]={{3),{3),{4));
B.int c[][3]={{3),{3),{4));
C.int c[3][2]={{3),{3),{4),{5));
D.int c[][3]={{3},{},{3}};
若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是
A.a=b=c+1;
B.a=(b=4)=3;
C.a=(b=4)+c;
D.a=1+(b=c=4);
设有定义:intx[2][3];则以下关于二维数组x的叙述错误的是
A.数组x可以看作是由x[0]和x[1]两个元素组成的一维数组
B.可以用x[0]=0;的形式为数组所有元素赋初值0
C.元素x[0]可看作是由3个整型元素组成的一维数组
D.x[0]和x[1]是数组名,分别代表一个地址常量