题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2024-07-31 21:31:26

[单项选择]

给定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(n2)
D. O(nlg2n)

更多"给定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;

(27)处填()。
A. 分治
B. 贪心
C. 动态规划
D. 回溯
[单项选择]定义有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); }

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码