更多"给定n个整数构成的数组A=a1,a2,……"的相关试题:
[单项选择]
给定n个整数构成的数组A=a1,a2,……,an和整数x,判断A中是否存在两个元素ai和aj,是的ai+aj=x。为了求解问题,首先用归并排序算法对数组A进行从大到小排序;然后判断是否存在ai+aj=x,具体的方法如下列伪代码所示。则求解该问题时排序算法应用了(27)算法设计策略,整个算法的时间复杂度为(28)。
i=1;j=n
While i<j
If ai+aj=x return true
Else if ai+aj>x
J--;
Else
I++;
Return false;
(28)处填()。
A. O(n)
B. O(nlgn)
C. O(n
2)
D. O(nlg
2n)
[单项选择]定义有5个整数型元素的数组,正确的语句是( )。
A. Dim a(4) As Integer
B. Option Base 1:Dim a(5)
C. Dim a&(5)
D. Dime a(5) As Integer
[填空题][说明]
设计一程序,输入16个整数到一个数组中,将数组位序颠倒重新排序,使每个数字不再按原j的顺序排列,而是按j的二进制数颠倒后得出的数排列,例如,将第1个(0001)数与第8个(1000)数交换,将第3个数(0011)与第12个数(1100)交换。
[C++程序]
#include<iostream.h>
#define SIZE 16
#define SWAP (a,b) temper=(a); (a)= (b); (b) =temper;
void maln( )
int data[SIZE];
int n:
cout<<"请输入"<<SIZE<<"个整数:";
for (n=0;n<SIZE;n++)
(1) ;
int j=0,m;
for (int i=0; i<n; i++)
if(j>i)
(2) ;
(3) ;
while( (4) ) &&j>=m)
j-=m;
m>>=1:
(5) ;
cout<<endl<<"排序后:";
for(n=0;n<SIZE;n++)
cout<<data [n]; <<" ";
[多项选择]从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。
[填空题]输入10个整数存入一维数组,再按逆序重新存放后再输出。
#include<stdio.h>
main( )
{int i,j,a[10],k;
for(i=0;i<=9;i++)scanf("%d",&a[i]);
for(i=0,j=9;i<=4;i++,j--)
{k=a[i];a[i]=a[j];a[j]=k;}
for(i=0;i<=9;i++)printf("%d",a);
}
错误:______
改正:______
[填空题][说明]
设计一程序,输入10个整数到一个数组中,调整这10个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。
[C++程序]
#include <iostream.h>
#define SIZE 10
void main ( )
{
int data [SIZE];
int m;
cout<<"请输入"<<SIZE<<"个整数:";
for ( m=0;m<SIZE; m++ ) (1) ;
int j=0,k=0;
for ( int i=1;i<SIZE; i++ )
if ( (2) ) j=i;
else if ( data[i]<data[k] ) (3) ;
if (j>0 ) {
int d=data[0];
(4) ;
data[k]=d;
}
if ( k<SIZE-1 )
{
int d=data [SIZE- 1 ];
data[SIZE- 1 ]=data[j];
(5) ;
}
cout<<end1<<" 排序后: ";
for ( m=0;m<SIZE; m++ ) cout<<data[m]<<" " ;
}
[单项选择]定义有5个整数型元素的数组,正确的语句是______。
A) Dim a(4)As Integer B) Option Base 1:Dim a(5)
C) Dim a&(5) D) Dime a(5)As Integer
[填空题]下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组bo请填空。
#include<stdio.h>
main( )
int a[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
if(i%4==0)printf("/n");
printf("%3d",b[i]);
[填空题]下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdio.h>
main( )
int a[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______,
for(i=0;i<9;i++)
if(i%4=0)printf("/n");
printf("%3d",b[i]);
[简答题]已知一维数组存放互不相同的十个整数,从键盘输入与其中的一个相同的数,并从数组中删除与该数相同的元素的值。
[简答题]请编制程序,要求:将文件IN91.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数),结果cnt1,cnt2,pj输出到out91.dat中。
部分程序、读函数read_dat(int xx[200])及输出格式已给出。
试题程序:
#include<conio.h>
#include<stdio.h>
#define N 200
void read_dat (int xx[N])
{
int i,j;
FILE *fp;
fp=fopen ("IN91.DAT", "r");
for (i=0;i<20;i++)
{
for (j=0; j<10; j++)
{
fscanf (fp, "%d, ", &xx [i*10+j]);
printf ("%d", xx [i*10+j]);
}
printf ("/n");
}
fclose (fp);
}
void main ( )
{
int cnt1,cnt2,xx[N];
float pj;
FILE *fw;
int i, k=0;
long j;
clrscr ( );
fw=fopen ("out91.dat", "w");
read_dat (xx);
printf ("/n/ncnt1=%d, cnt2=%d,pj=%6.2f/n", cnt1, cnt2, pj);
fprintf (fw, "%d/n%d/n%6.2f/n", cnt1, cnt2,pj);
fclose (fw);
[简答题]请编制程序,要求:将文件IN92.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数),结果max,cnt,pj输出到out92.dat中。
部分程序、读函数read_dat(int xx[200])及输出格式已给出。
试题程序:
#include<conio.h>
#include<stdio.h>
#define N 200
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen("IN92.DAT","r");
for(i=0;i<20;i++)
{
for(j=0;j<10;j++>
{
fscanf(fp,"%d,",&xx[i*10+j]);
printf ("%d", xx [i*10+j]);
}
printf ("/n");
}
fclose (fp);
}
void main( )
{
int i, k, cnt, xx [N],max;
float pj;
FILE *fw;
long j=0;
clrscr ( );
fw=fopen ("out92.dat", "w");
read_dat (xx);
printf ("/n/nmax=%d, cnt=%d, pj=%6.2f/n", max, cnt,pj);
fprintf(fw, "%d/n%d/n%6.2f/n",max, cnt,pj);
fclose (fw);
}