下列一维数组定义正确的是()。
A.int size; int a[size]
B.int a[3]
C.int size=3; int a[size]
D.int a[size=3]
A.int size; int a[size]
B.int a[3]
C.int size=3; int a[size]
D.int a[size=3]
A.定义了一个类型为int的指针变量p,该变量具有三个指针
B.定义了一个名为*p的整型数组,该数组含有三个int类型元素
C.定义了一个指向一维数组的指针变量p,该一维数组应具有三个int类型元素
D.定义了一个指针数组p,该数组含有三个元素,各元素都是基类型为int的指针
数组
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的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
A.definen5inta[2*n];
B.inta[5+5];
C.defineN10inta[N];
D.intn=10,a[n];
A.aa数组元素的值分别是”abcd”,”ABCD"
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符'a','A'的地址
A[n][n]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[n(n+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。
A.i(i—1)/2+j
B.j(j一1)/2+i
C.i(j—i)/2+1
D.j(i—1)/2+1
A.aa数组元素的值分别是”abcd”,”ABCD"
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符'a','A'的地址
设有定义语句:char*aa[2]={abcd,abcD};则以下叙述正确的是
A.aa数组的两个元素只能存放含有4个字符的一维数组的首地址
B.aa数组的值分别是字符串""abcd""和""abcD""
C.aa是指针变量,它指向含有两个元素的字符型数组
D.aa[0]存放了字符串""abcd""的首地址