题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2024-07-04 04:03:28

[填空题]

[说明]
对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为0的数组元素,并将a中所有的非0元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1和CompactArr_v2来实现上述处理要求,函数的返回值为非零元素的个数。
函数CompactArr_v1(int a[],intn)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非0元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。
函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增1,而遇到非0元素并将其前移后k才增1。
[C函数1]
int CompactArr_v1(int a[],int n)
int i,k;
int*temp=(int*)malloc(n* (1)
if(!temp)
return-1;
for(i=0,k=0;i<n;i++)
if(a[i]!=0)
(2) =a[i];
for(i=0; (3) ;i++)
a[i]=temp[i];
return k;
[C函数2]
int CompactArr v2(int a[],int n)
int i,k;
for(i=0,k=0;i<n;i++)
if(a[i]!=0)
(4) =a[i];
return k;
请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理思路填补空缺(4)。

请根据说明中函数CompactArr_v1的处理思路填补空缺(3).

更多"[说明] 对于具有n个元素的整型数组a,需要进行的处理是删除a中所"的相关试题:

[填空题]

[说明]
对于具有n个元素的整型数组a,需要进行的处理是删除a中所有的值为0的数组元素,并将a中所有的非0元素按照原顺序连续地存储在数组空间的前端。下面分别用函数CompactArr_v1和CompactArr_v2来实现上述处理要求,函数的返回值为非零元素的个数。
函数CompactArr_v1(int a[],intn)的处理思路是:先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非0元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。
函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增1,而遇到非0元素并将其前移后k才增1。
[C函数1]
int CompactArr_v1(int a[],int n)
int i,k;
int*temp=(int*)malloc(n* (1)
if(!temp)
return-1;
for(i=0,k=0;i<n;i++)
if(a[i]!=0)
(2) =a[i];
for(i=0; (3) ;i++)
a[i]=temp[i];
return k;
[C函数2]
int CompactArr v2(int a[],int n)
int i,k;
for(i=0,k=0;i<n;i++)
if(a[i]!=0)
(4) =a[i];
return k;
请根据说明中函数CompactArr_v1的处理思路填补空缺(1)~(3),根据CompactArr_v2的处理思路填补空缺(4)。

请根据说明中函数CompactArr_v1的处理思路填补空缺(1)。
[填空题]在Java语言中,需要定义含有两个子数组的二维整型数组x,第一个子数组元素为7,8,第二个子数组元素为l,2,3,4,5,采用直接赋值创建此二维数组的语句为______。
[填空题]

以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回,请填空。(设N已定义)
int fun(int x[N])
{int i,k=0;
for(i=0;i<N;i++)
if(x[i]<x[k])k= (10)
return x[k];
}


[简答题][说明]
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]
其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。
运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注意,不考虑溢出情况,即数组足够大。
[函数]
int cmp(int *LA, int *LB);
/*比较长整数LA与LB的绝对值大小*/
/*若LA绝对值较大返回正值,LA较小返回负值,相等则返回0*/
int ADD (int *LA, int *LB, int *LC)
/*计算长整数LA与LB的和,结果存储于LC中*/
/*注意:正数与负数的和相当于正数与负数绝对值的差*/
/*数据有误返回0,正常返回1*/

if(LA == NULL || LB == NULL || LC == NULL)return 0;
int *pA, *pB, i, N, carry, flag;
flag = LA[0] + LB[0];
switch(flag) /*根据参与运算的两个数的符号进行不同的操作*/
case 0:
case 2:
Lc[0] = LA[0];/*LA与LB同号,结果符号与LA(LB)相同*/
pA = LA;
pB = LB;
(1) ;
break;
case 1: /*LA与LB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
flag = (2) ;
if(flag > 0) /*LA较大*/
LC[0] = LA[0];
pA = LA;
pB = LB;

else if(flag < 0)(/*LB较大*/
[单项选择]顺序查找一个具有n个元素的线性表,二分查找一个具有n个元素的有序表,其时间复杂性为______。
A. O(n)
B. O(log2n)
C. O(n2)
D. O(nlog2n)
[填空题]函数Min的功能是返回具有n个元素的数组array中的最小值。请将横线处的缺失部分补充完整,使得程序的输出结果为1.24。
#include<iostream>
using namespace std;
template<typename T>
T Min(T*array, int n)
T min=array[0];
for(int i=1; i<n; i++)
if(array[i]<min)min=array[i];
return min;

int main( )
double art[8]=5.2, 48.45, 41.01, 42, 51.2, 1.24, 14.12, 42;
cout<<______;
return 0:

[单项选择]

对于具有n 个元素的一个数据序列,若只需得到其中第k 个元素之前的部分排序,最好采用(59),使用分治(Divide and Conquer)策略的是(60)算法。

(59)处填()。
A. 希尔排序
B. 直接插入排序
C. 快速排序
D. 堆排序
[单项选择]avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是( )。
A. int avg(int*a,int n);
B. int avg(int a[10],int n);
C. int avg(int a,int n); D) int avg(int a[],int n);
[单项选择]对于一个具有n个元素的线性表,建立其单链表的最小时间复杂度为( )
A. O(log2n)
B. O(1)
C. O(n2)
D. O(n)
[简答题]写一个函数,用二分法在已按从小到大排序的整型数组 list[ ] (数组包含len 个元素) 中查找一个整数 n,若 n 在数组中,函数返回数 n 在数组中的下标;否则返回 -1。所谓二分法查找是:初始查找区间的下界为 0,上界为 len - 1,查找区间的中间元素下标为 k = (下界 + 上界) / 2 ;若 list[k] 等于 n ,查找成功;若 list[k] > n,则新的查找区间的下界不变,上界改为 k - 1;否则新的查找区间的下界改为 k + 1,上界不变。在新区间内继续用二分法查找。
[填空题]【说明2.1】 以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。 【函数2.1】 void fun1 (int a[]) { int i,j,k,r,x,m; for(i=2;i<=n;i++) { (1) ; k=1;r=i-1; while(k<=r) { m=(k+r)/2; if(x<a[m])r=m-1; else (2) ; } for(j=i-1;j>=k;j--) a[j+l]=a[j]; (3) ; } } 【说明2.2】 以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。 【程序2.2】 #include<stdio.h> main( ) { charb[16]={’0’,’l’,’2’,’3 ,4,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’}; int c[64],d,i=0,base; long n; printf("enter a number:/n"); scanf("%1d",&n); printf("enter new basc:/n"); scanf("%d", &base); do { c[i]= (4) ; i++; n=n/base; } while(n!=0); printf("transmite new base:/n"); for(--i;i>=0;--i) { d=c[i]; printf("%c", (5) ); } }

我来回答:

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

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码