1,C。
A.正确。在二维数组初始化的时候,列数是必须给出的,而行数可以由编译器根据初始化的内容自动计算。
B.正确。在二维数组初始化的时候,每行使用一个"{}",并使用","分隔每个元素。
C.不正确。在一维数组初始化的时候,如果给全部元素都赋了初值,是可以省略数组长度的,编译器会根据元素数量自动确定数组的长度。
D.正确。一维数组初始化时,最后一个元素的后面可以加逗号。
2,C。
前面已经给str[10]定义,只有str[]有效,后面的str="string"无效。
3,B。
i表示的为“行”,j表示的为“列”,而该数组有m列,所以a[i][j]前的元素个数为“j*m+i”。
4.CA。
B没有做到两数调换;D最后首项和末项再次前后倒置,相当于数组中首项和末项没有进行过前后倒置。
5. 1 2 3
3 4 5
(上下两行对齐的)
6.
#include <stdio.h>
int findmin(int score[], int n);
int main()
{
int score[23], min, n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &score[i]);
}
min = findmin(score, n);
printf("%d\n", n);
printf("%d\n", min);
return 0;
}
int findmin(int score[], int n)
{
int min = score[0];
for (int i = 0; i < n; i++)
{
if (score[i] < min)
{
min = score[i];
}
}
return min;
}
7.
#include<stdio.h>
void DataSort(double score[],double n);
int main(){
double number[10];
for(int i = 0;i < 10;i++)
{
scanf("%lf",&number[i]);
}
DataSort(number,10);
for(int i = 0;i < 10;i++)
{
printf("%lf ",number[i]);
}
return 0;
}
void DataSort(double score[],double n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]<score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
}
}
}
}