题目内容 (请给出正确答案)
[单选题]

下面哪些会产生二维数组()

A.int a[][] = new int[][]

B. int a[10][10] = new int [][]

C. int [][]a = new int [10][10]

D. int a[][] = new int[10][10]

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“下面哪些会产生二维数组()”相关的问题

第1题

下列有关FORTRAN77数组的说法正确的是()。

(A) 数组定义语句只能定义一维或二维数组

(B) 数组元素下标不能出现负值

(C) 在赋值语句中出现的A(3)肯定是数组元素

(D) 程序中使用的数组必须要先定义

点击查看答案

第2题

下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0。例如a数组中的值为

a=4 5 6

1 7 9

3 2 6,

则返回主程序后a数组中的值应为

0 0 0

1 0 0

3 2 0

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<conio.h>

include<stdio.h>

include<stdlib.h>

define N 5

int fun(int a[ ][N])

{

}

main()

{

int a[N][N],i,j;

clrscr( );

printf("*****The array*****\n");

for(i=0;i<N;i++)

/*产生—个随机的5*5矩阵*/

{for(j=0;j<N;j++)

{a[i][j]=rand( )%10;

printf (“%4d”,a[i][j]);

}

printf(“\n”);

}

fun(a);

printf(“THE RESULT\n”);

for(i=0;i<N;i++)

{ for(j=0;i<N;j++)

printf(“%4d”,a[i][j]);

printf(“\n”);

}

}

点击查看答案

第3题

程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(int a[][N],int n),该函数的功能是使数组左下半三角元素中的值加上n。

例如:若n的值为3,a数组中的值为

a=2 5 4

1 6 9

5 3 7

则返回主程序后a数组中的值应为

5 5 4

4 9 9

8 6 10

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数full的花括号中填入所编写的若干语句。

试题程序:

include <stdio.h>

include <conio.h>

include <stdlib.h>

define N 5

fun(int a[][N],int n)

{

}

main()

{

int a[N][N],n,i,j;

clrscr();

printf("***** The array *****\n");

for(i=0;i<N;i++)

/*产生—个随机5*5矩阵*/

{

for(j=0;j<N;j++)

{

a[i][j]=rand()%10;

printf("%4d",a[i][j]);

}

printf("\n");

}

do

n=rand()%10;

/*产生一个小于5的随机数n*/

while(n>=5);

printf("n=%4d\n",n);

fun(a,n);

printf("*****THE RESULT*****\n");

for(i=0;i<N;i++)

{

for(j=0;j<N;i++)

printf("%4d",a[i][j]);

printf("\n");

}

}

点击查看答案

第4题

下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为

a=1 9 7

2 3 8

4 5 6

则返回主程序后a数组中的值应为

0 9 7

0 0 8

0 0 0

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

include <stdlib.h>

define N 5

int fun (int a[] [N])

{

}

main()

{

int a[N] [N],i,j;

clrscr();

printf("*****The array*****\n");

for(i=0;i<N;i++)

/*产生—个随机的5*5矩阵*/

{ for(j=0;j<N;j++)

{a[i][j]=rand()%10;

printf("%4d", a[i][j]);

}

printf("\n");

}

fun (a);

printf("THE RESULT\n");

for(i=0;i<N;i++)

{ for(j=0;j<N;j++)

printf("%4d",a[i][j));

printf("\n");

}

}

点击查看答案

第5题

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。

[说明]

下面的程序演示了根据随机产生的奖牌数,生成金银奖牌榜的过程。程序使用的排序法是简单排序法。以金牌得数为例,其思想是选择最大的元素,将它交换到最前面;然后对剩下的部分采用同样的方法,直到全部排序完成。

程序界面中,左右两个文本框分别用于存放随机产生的奖牌数以及生成的奖牌榜,名为Text1和Text2,上下两个按钮分别名为Command1和Command2。代码中使用的量主要有:一维数组 cntries,用于存储10个国家的名称,二维数组medals,其元素medals(i,0)和medals(i,1)分别用于存放第i个(i从0开始)国家的金、银牌数目。

[Visual Basic代码]

Dim cntries(10) As String, medals(10,2) As Integer

’随机产生奖牌数

Sub newMedals()

…… ’为数组cntries和medals赋值

End Sub

’输出奖牌榜

Sub printOut(txt As (1) )

Dim strResuh As String, i As Integer

strResult=“国家”& Chr(9) &“金牌数”& Chr(9) &“银牌数”& vbCrLf

For i=0 To 9

strResult = strResult & cntries(i) & Chr(9) & medals(i,0) & Chr(9) & medals(i,1) & vbCrLf

Next

txt.Text = strResult

End Sub

’交换两变量的值

Sub exchange( (2) a As Variant, (2) b As Variant)

Dim temp As Variant

temp = a: a = b: b = temp

End Sub

’随机产生并输出奖牌数

Private Sub Command1_Click()

newMedals

printOut Text1

End Sub

’生成并输出奖牌榜

Private Sub Command2_Click()

Dim i,j, k As Integer, temp As String

For i = 0 To 9 ’按金牌数排序

j = i ’找到自第i个位置起全部数据中金牌得数最多者,记其下标为j

For k = i + 1 To 9

If (3) Then j=k

Next

If i < > j Then ’若i,j不等,则交换对应位置的国家名、金银牌数目

exchange cntnes(i), entries(j)

exchange medals(i, 0), medals(j, 0)

exchange medals(i, 1), medals(j, 1)

End If

Next

For i = 0 To 9 ’按银牌数进行二次排序

j = i

For k = i + 1 To 9

If medals(k,0) <> medals(j, 0) Then (4)

If (5) Then j = k

Next

If i < > j Then

exchange cntries(i), cntries(j)

exchange medals(i, 1), medals(j, 1)

End If

Next

printOut Text2

End Sub

点击查看答案

第6题

注意:下面出现的“考生文件夹”均为C:\wexam\25160002。

在考生文件夹下有一个工程文件sjt5.vbp,相应的窗体文件为sjt5.frm,此外还有一个名为datain.txt的文本文件,其内容如下:

42 53 64 75 86 97 13 24 35 46 57 68 79 80 59 37 32 43 76 58 28 12 98 57 31

程序运行后,单击窗体,将把文件datain.txt中的数据输入到二维数组Mat中,在窗体上按5行5列的矩阵形式显示出来,并输出矩阵左上-右下对角线上的数据,如图24-5所示。

在窗体的代码窗口中,已给出了部分程序,这个程序不完整,请把它补充完整,并能正确运行。

要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

点击查看答案

第7题

阅读下列说明,回答问题1至问题3,将解答填入对应栏内。

【说明】

某餐厅供应各种标准的营养套餐。假设菜单上共有n项食物m1,m2,…,mn,每项食物mi的营养价值为vi,价格为pi其中i=1,2,…,n,套餐中每项食物至多出现一次。客人常需要一个算法来求解总价格不超过M的营养价值最大的套餐。

1. 【问题1】

下面是用动态规划策略求解该问题的伪代码,请填充其中的空缺(1)、(2)和(3)处。

伪代码中的主要变量说明如下。

n:总的食物项数;

v:营养价值数组,下标从1到n,对应第1到第n项食物的营养价值;

p:价格数组,下标从1到n,对应第1到第n项食物的价格;

M:总价格标准,即套餐的价格不超过M;

x:解向量(数组),下标从1到n,其元素值为0或1,其中元素值为0表示对应的食物不出现在套餐中,元素值为1表示对应的食物出现在套餐中;

nv:n+1行M+1列的二维数组,其中行和列的下标均从0开始,nv[i][j]表示由前i项食物组合且价格不超过j的套餐的最大营养价值。问题最终要求的套餐的最大营养价值为nv[n][M]。

伪代码如下:

MaxNutrientValue(n,v,p,M,x)

1 for i=0 to n

2 nv[i][0] = 0

3 for j=1 to M

4 nv[0][j]=0

5 for i=1 to n

6 for j=1 to M

7 if j<p[i] //若食物mi不能加入到套餐中

8 nv[i][j] = nv[i-1][j]

9 else if (1)

10 nv[i][j]= nv[i-1][j]

11 else

12 nv[i][j]= nv[i-1][j-p[i]] + v[i]

13 j = M

14 for i=n downto 1

15 if (2)

16 x[i] = 0

17 else

18 x[i] = 1

19 (3)

20 return x and nv[n][M]

(1)nv[i-1][j]≥nv[i-1][j-p[i]]+v[i] (2)nv[i][j]=nv[i-1][j] (3)j=j-p[i]

点击查看答案

第8题

●试题六

阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

本题将有向网(带权有向图)定义为类AdjacencyWDigraph。类中的数据成员n表示有向网中的顶点数;a为带权邻接矩阵,用于存储有向网中每一对顶点间弧上的权值;c为二维数组,存储有向网中每一对顶点间的最短路径长度;kay为二维数组,存储最短路径,kay[i][j]=k表示顶点i 到达顶点j的最短路径必须经过顶点k。类中的主要成员函数有:

Input():输入有向网的顶点数、各条弧及权值,建立带权领接矩阵a。若顶点i到顶点j有弧,则a[i][j]取弧上的权值,否则a[i][j]的值取NoEdge。

AllPairs();用弗洛伊德(Floyd)算法求有向网中每一对顶点间的最短路径长度。

OutShortestPath(int i,int j):计算顶点i到顶点j的最短路径。

outputPath(int i,int j):输出顶点i到顶点j的最短路径上的顶点。

Floyd算法的基本思想是递推地产生一个矩阵序列C0,C1,C2,…,Cn,其中C0是已知的带权邻接矩阵,a,Ck(i,j)(0≤i,j<n)表示从顶点i到顶点j的中间顶点序号不大于k 的最短路径长度。如果i到j的路径没有中间顶点,则对于0≤k<n,有Ck(i,j)=C0(i,j)=a[i][j]。递推地产生C1,C2,…,Cn的过程就是逐步将可能是最短路径上的顶点作为路径上的中间顶点进行试探,直到为全部路径都找遍了所有可能成为最短路径上的中间顶点,所有的最短路径也就全部求出,算法就此结束。

【C++代码】

#include<iostream.h>

#define NoEdge 10000 //当两个顶点之间没有边相连时,在邻接矩阵中用NoEdge表示

void Make2DArray(int * * &x,int rows,int cols);

class AdjacencyWDigraph{

private

int n;//有向网中的顶点数目

int**a;//存储顶点间弧上的权值

int**c;//存储计算出的最短路径长度

int**kay;//存储求出的最短路径

pubic:

int Vertices()const {return n;}

void AllPairs();

void Input();//输入有向网的顶点数、各条弧及权值,建立邻接矩阵a

void OutShortestPath(int i,int j);//计算顶点i到j的最短路径(试卷中未列出)

~AdjacencyWDigraph();//析构函数(试卷中未列出)

private:

void outputPath(int i,int j);

};

void AdjacencyWDigraph::AllPairs()

{int i,j,k,t1,t2,t3;

for(i=1;i<=n;k++)

for(j=1;j<=n;++j)

{c[i][j]= (1) ;kay[i][j]=0;}

for(k=1;k<=n;k++)

for(i=1;i<=n;i++){

if(i==k) continue;

t1=c[i][k];

for(j=1;j<=n;j++){

if(j==k||j==i)continue;

t2=c[k][j];t3=c[i][j];

if(t1!=NoEdge && t2!=NoEdge &&(t3==NoEdge||t1+t2<t3))

{c[i][j]= (2) ;kay[i][j]= (3) ;}

}//for

}//for

}

void AdjacencyWDigraph:: outputPath(int i,int j)

{//输出顶点i到j的最短路径上的顶点

if(i==j)return;

if(kay[i][j]==0)cout<<j<<′′;

else { outputPath(i, (4) ); outputPath( (5) );}

}

void Adjacency WDigraph::Input()

{int i,j,u,v,w,E;

cout<<″输入网中顶点个数:″;cin>>n;

cout<<″输入网中弧的个数:″;cin>>E;

Make2DArray(a,n+1,n+1);

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)a[i][j]=NoEdge;

for(i=1;i<=n;i++)a[i][i]=0;

Make2DArray(c,n+1,n+1);

Make2DArray(kay,n+1,n+1);

for(i=1;i<=E;i++){

cout<<″输入弧的信息(起点终点权值):″;cin>>u>>v>>w;a[u][v]=w;

}

}

void Make2DArray(int**&x,int rows,int cols)

{int i,j;

x=new int*[rows+1];

for(i=0;i<rows+1;i++)x[i]=new int [cols+1];

for(i=1;i<=rows;i++)

for(j=1;j<=cols;j++=x[i][j]=0;

}

点击查看答案

第9题

下面程序将二维数组a的行和列元素互换后存放到另一个二维数组b中,请填空。

点击查看答案

第10题

在Excel中,数组常量可以分为一维数组和二维数组。( )

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信