网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和程序流程图,将应填入 (n) 处的字句写在对应栏内。

[说明]

假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:

m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]

其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。注:数组下标从0开始。

流程图(图4-1)用于计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针pA和pB,分别指向绝对值较大者和较小者。而对绝对值相加,情况,让pA指向LA,pB指向LB,不区分绝对值大小。pA±pB可用通式pA+flag*pB来计算,flag为+1时即对应pA+pB,flag为-1时即对应pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当

最高位借位后正好为0时,结果的总位数应减1;对于加法,有最高进位时,结果的总位数应加1。

流程图中涉及的函数说明如下:

(1)cmp(int *LA,int *LB)函数,用于比较长整数LA与LB的绝对值大小,若LA绝对值大于LB绝对值则返回正值,LA绝对值小于LB绝对值返回负值,相等则返回0。

(2)max(int A,int B)函数,用于返回整数A与B中较大数。

另外,对流程图中的写法进行约定:(1)“:=”表示赋值,如“flag:=LA[0]+LB[0]”表示将“LA[0]+LB[0]”的结果赋给flag,相当于C中的赋值语句:“flag=LA[0]+LB[0];”;(2)“:”表示比较运算,如“flag:1”表示flag与1比较。

(1)


参考答案

更多 “ 阅读以下说明和程序流程图,将应填入 (n) 处的字句写在对应栏内。[说明]假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。注:数组下标从0开始。流程图(图4-1)用于计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针pA和pB,分别指向绝对值较大者和较小者。而对绝对值相加,情况,让pA指向LA,pB指向LB,不区分绝对值大小。pA±pB可用通式pA+flag*pB来计算,flag为+1时即对应pA+pB,flag为-1时即对应pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当最高位借位后正好为0时,结果的总位数应减1;对于加法,有最高进位时,结果的总位数应加1。流程图中涉及的函数说明如下:(1)cmp(int *LA,int *LB)函数,用于比较长整数LA与LB的绝对值大小,若LA绝对值大于LB绝对值则返回正值,LA绝对值小于LB绝对值返回负值,相等则返回0。(2)max(int A,int B)函数,用于返回整数A与B中较大数。另外,对流程图中的写法进行约定:(1)“:=”表示赋值,如“flag:=LA[0]+LB[0]”表示将“LA[0]+LB[0]”的结果赋给flag,相当于C中的赋值语句:“flag=LA[0]+LB[0];”;(2)“:”表示比较运算,如“flag:1”表示flag与1比较。(1) ” 相关考题
考题 ●试题一阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。【函数1.1说明】函数strcpy(char*to,char*from)将字符串from复制到字符串to。【函数1.1】void strcpy(char*to,char*from){while( ( 1 ) );}【函数1.2说明】函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。【函数1.2】void merge(int a[ ],int n,int b[ ],int m,int *c){ int i,j;for(i=j=0;i<n j<m;)*c++=a[i]<b[j]? a[i++]:b[j++];while( (2) )*c++=a[i++];while( (3) )*c++=b[j++];}【函数1.3说明】递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。【函数1.3】int sum(int a[ ],int n){ if(n>0)return (4) ;else (5) ;}

考题 阅读下列函数说明、图和C代码,回答问题[说明]假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数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较大*/LC[0] = LB[0];pA = LB;pB = LA;}else{/*LA与LB相等*/LC[0] = 0;LC[1] = 0;return 1;}flag = -1;break;default:return 0;break;}/*switch*//*绝对值相加减*//*注意对于减法pA指向较大数,pB指向较小数,不可能出现不够减情况*/(3) ;N = LA[1] LB[1] ? LA[1] : LB[1];for(i = 0; i N; i++){if(i = pA[1]){/*LA计算完毕*/carry += flag * pB[i+2];}else if(i = pB[1]){/*LB计算完毕*/carry += pA[i+2];}else{carry += pA[i+2] + flag * pB[i+2];}LC[i+2] = carry % 10;carry /= 10;if( (4) ){/*需要借位,针对减法*/LC[i+2] += 10;carry--;}}/*for*/if( (5) ){/*最高进位,针对加法*/LC[i+2] = carry;i++;}if(LC[i+1] == 0) i--; /*若最高位为零,针对减法*/LC[1] = i;return 1;};/*ADD*/

考题 语句Dim NewArray(10)As Integer的含义是( )。A.定义了一个整型变量且初值为10B.定义了10个整数构成的数组C.定义了11个整数构成的数组D.将数组的第10元素设置为整型

考题 语句Dim NewArray(10)As Integer的含义是( )。A)定义了一个整型变量且初值为10B)定义了l0个整数构成的数组C)定义了11个整数构成的数组D)将数组的第10元素设置为整型

考题 阅读以下函数说明和C语言函数,将应填入(n)的字句写在答题纸的对应栏内。[说明1]函数int fun1(int m, int n)的功能是:计算并返回正整数m和n的最大公约数。[函数1]int fun1(int m, int n){while ((1)) {if (m>n) m=m-n;else n=n-m;}(2);}[说明2]函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。[函数2]long fun2(char *str){int i=0;long k=0;char *p=str;while (*p!='\0' (3)) {if (*p>='0' *p<='9') {k=(4)+ *p - '0';++i;}(5);}return k;}

考题 阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。【说明】下列流程图用于从数组K中找出一切满足:K(I)+K(J)=M的元素对(K(I),K(J))(1≤I≤J≤N)。假定数组K中的N个不同的整数已按从小到大的顺序排列,M是给定的常数。【流程图】此流程图1中,比较“K(I)+K(J):M”最少执行次数约为(5)。

考题 阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。[说明]试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。[C++ 程序]include<stdio.h>define N 100int b[]={9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1};int a [N];define n sizeofb/sizeofb[0]void main ( ){kit k,i,j;(1)(2)for (i=1;i<n; i++ ){for ( j=k;(3); j--);(4); /*长为 j+1 的子序列的终元素存储在 a[j+1]*/if ((5)k++; /*最长不减子序列长 k 增1*/}printf ( "K = %d\n ",k );}

考题 阅读以下说明和C++程序,将应填(n)处的字句写在对应栏内。[说明]设计一程序,输入10个整数到一个数组中,调整这10个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。[C++程序]include <iostream.h>define SIZE 10void 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]<<" " ;}

考题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]这是一个求解Josephus问题的函数。用整数序列1,2,3…,n表示顺序围坐在圆桌周围的人,并采用数组表示作为求解过程中使用的数据结构。Josephus问题描述,设n个人围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局的下一个人重新开始报数,数到第m个人,再让他出局,…如此反复直到所有的人全部出局为止。[C函数]void Josephus(int A[],int n,s,m)(int i,j,k,temp;if(m==O){printf("m=0是无效的参数!\n");return;}for(i=0;i<n;i++) A[i]=i+1; /*初始化,执行n次*/i= (1) /*报名起始位置*/for(k=n;k>1;k-){if((2)) i=0;i=(3) /*寻找出局位置*/if(i!=k-1){tmp=A[i];for(j=i;J<k-1;j++) (4);(5);}}for(k=0;k<n/2;k++){tmp=A[k];A[k]=A[n-k+1];A[n-k+1]=tmp;}}

考题 阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

考题 阅读以下说明和c函数,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】c语言常用整型(int)或长整型(1ong)来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型(例如,long long类型,某些c系统会提供)也无法正确表示,此时可用一维数组来表示一个整数。假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后一组可能不足4位),每组作为1个整数存人数组。例如,大整数2543698845679015847在数组A中的表示如下(特别引入-1表示分组结束):在上述表示机制下,函数add_large_number(A,B,c)将保存在一维整型数组A和B中的两个大整数进行相加,结果(和数)保存在一维整型数组c中。【c函数】Void add_large_number(int A[], int B[], int c[]){int i,cf; /*cf存放进位*/int t,*p; /*t为临时变量,p为临时指针*/cf= ( 1) ;for(i=0 ; A[i]-l&&B[i]-1;i++){/*将数组A、B对应分组中的两个整数进行相加*/t=(2) ;C[i]=t%i0000;cf= (3) ;}if( (4))P=B;else P=A;for(;P[i]-1;i++){/*将分组多的其余各组整数带进位复制入数组C*/C[i]=(p[i]+cf)%i0000; cf=(p[i]+cf)/10000;}if(cf0) C[i++]=cf;(5)=-1; /*标志”和数”的分组结束*/

考题 阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。[说明]函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。整数a和b(a>b)的组合数为:,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。[函数]define NAXN 100int gcd(int a,int b)//求两个整数a和b的最大公因子{if(a<b){intC=a;a=b;b=c;}for(inti=b;i>=2;i--){if( (1) )return i;}return 1;void format(int *a)//将长整数数组归整{int i;for(i=1;i<a[0]||a[i]>=10;i++){if(i>=a[0]) (2);a[i+1]+=a[i]/10;a[i]=a[i]%10;}if(i>a[0]) (3);}void combine(int a,int b,int *C){int i,J,k,x;int d[MAXN],u[MAXN];k=0;for(i=a;i>=a-b+1;i--)u[++k]=i;u[0]=b;for(i=1;i<=b;i++)d[i]=i;for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子for(j=1;j<=b;j++){x=gcd(u[i],d[j]);//计算最大公约数u[i]/=X;d[j]/=x;}(4);C[1]=1;//长整数c初始化for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中if(u[i]!=1){for(j=1;j<=c[0];j++){C[j]=(5);}format(C);//将长整数c归整}}}(1)

考题 阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。【说明】有数组A(4,4),把1到16个整数分别按顺序放入A(1,1),…,A(1,4),A(2,1),…,A(2,4),A(3,1),…,A(3,4),A(4,1),…,A(4,4)中,下面的流程图用来获取数据并求出两条对角线元素之积。【流程图】

考题 阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。【说明】假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数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较大*/LC[0]=LB[0];pA=LB;pB=LA;}else{/*LA与LB相等*/LC[0]=0;LC[1]=0;return 1;}flag=-1;break;default:return 0;break;}/*switch*//*绝对值相加减*//*注意对于减法pA指向较大数,pB指向较小数,不可能出现不够减的情况*/(3) ;N=LA[1]>LB[1]?LA[1]:LB[1];for(i=0;i<N;i++){if(i>=pA[1]){/*LA计算完毕*/carry+=flag *pB[i+2];}else if(i>=pB[1]){/*LB计算完毕*/carry +=pA[i+2];}else{carry +=pA[i+2]+flag *pB[i+2];}LC[i+2]=Carry%10;carry /=10;if( (4) ){/*需要借位,针对减法*/LC[i+2]+=10;carry--;}}/*for*/if( (5) ){/*最高进位,针对加法*/LC[i+2]=carry;&n

考题 阅读以下说明和流程图,回答问题1-2,将解答填入对应的解答栏内。[说明]下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和 n,假定m大于等于n,算法的主要步骤为:(1)以n除m并令r为所得的余数;(2)若r等于0,算法结束;n即为所求;(3)将n和r分别赋给m和n,返回步骤(1)。[流程图][问题1] 将流程图中的(1)~(4)处补充完整。[问题2] 若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。

考题 阅读以下说明和流程图将应填入(n)处的字句写在答题纸的对应栏内【说明】在一个矩阵中如果其零元素的个数远远多于其非零元素的个数时称这样的矩阵为稀疏矩阵稀疏矩阵通常采用三元组数组表示每个非零元素用一个三元组来表示即非零元素的行号列号和它的值然后按某种顺序将全部非零元素的三元组存于一个数组中例如对于以下二维数组其中三元数组a的第行元素的值分别存储稀疏矩阵x的行数列数和非零元素的个数下面的流程图描述了稀疏矩阵转换的过程【流程图】

考题 语句Dim NewArray(10)As Integer的含义是( )。【考点3 VBA程序设计基础】A.定义了一个整型变量且初值为10B.定义了10个整数构成的数组C.定义了ll个整数构成的数组D.将数组的第10元素设置为整型

考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

考题 阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出false;只要找到一个(可能有多个)就输出True以及该元素的下标i和j(注意数组元素的下标从1开始)。 例如,在如下矩阵中查找整数8,则输出伟:True,4,1 2 4 6 9 4 5 9 10 6 7 10 12 8 9 11 13 流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是() 供选择答案:A.O(1) B.O(m+n) C.O(m*n) D,O(m+n)

考题 阅读以下说明和流程图,填补流程图和问题中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 设整型数组A[1:N]每个元素的值都是1到N之间的正整数。一般来说,其中会有一些元素的值是重复的,也有些数未出现在数组中。下面流程图的功能是查缺查重,即找出A[1:N]中所有缺的或重复的整数,并计算其出现的次数(出现次数为0时表示缺)。流程图中采用的算法思想是将数组A的下标与值看作是整数集[1:N]加上的一个映射,并用数组C[1:N]记录各整数出现的次数,需输出所有缺少的或重复的数及其出现的次数。【流程图】【问题】 如果数组A[1:5]的元素分别为{3,2,5,5,1},则算法流程结束后输出结果为: (5) 。 输出格式为:缺少或重复的元素,次数(0表示缺少)

考题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有整数数组A[1:N](N1),其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。 例如,若数组元素依次为3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了A[1:N]中所有从下标i到下标j(ji)的各元素之和S,并动态地记录其最大值M。【流程图】注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值

考题 试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。【说明】两个包含有限个元素的非空集合A、B的相似度定义为IAUBI/IA U Bl,即它们的交集大小(元素个数)与并集大小之比。以下的流程图计算两个非空整数集合(以数组表示)的交集和并集,并计算其相似度。己知整数组A[1:m】和B【1:n】分别存储了集合A和B的元素(每个集合中包含的元素各不相同),其交集存放于数组C[1:s】,并集存放于数组D【1:t】,集合A和B的相似度存放于SIM。例如,假设A={1,2,3,4},B={1,4,5,6},则C={1,4},D={1,2,3,4,5,6},A与B的相似度SIM=1/3。

考题 ●试题一阅读下列说明和流程图,将应填入(n)处的语句写在答题纸的对应栏内。【说明】下列流程图用于从数组K中找出一切满足:K(I)+K(J)=M的元素对(K(I),K(J))(1≤I≤J≤N)。假定数组K中的N个不同的整数已按从小到大的顺序排列,M是给定的常数。【流程图】此流程图1中,比较"K(I)+K(J)∶M"最少执行次数约为 (5) 。图1

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读以下说明和C语言函数,将解答填入对应栏内。【说明】下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。下面给出的C程序代码中有五个错误,请指出所有的错误。【C程序代码】01 include <stdio.h>0203 int main()04 {05 long n, num;06 int i;0708 do {09 printf("请输入一个正整数:");10 scanf("%ld", n);11 }while(n <= 0);12 k = 1;13 for (i = 1; n >= 0; i++) {14 if (i % 2 = 1) {15 num= num+ (n % 10) * k;16 k = k * 10;17 }18 n = n / 10;19 }20 printf("新数据为: %d \n",num);21 return 0;22 }

考题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 [说明] 两个包含有限个元素的非空集合A、B的相似度定义为|A∩B|/|A∪B|,即它们的交集大小(元素个数)与并集大小之比。 以下的流程图计算两个非空整数集合(以数组表示)的交集和并集,并计算其相似度。已知整数组A[1:m]和B[1:n]分别存储了集合A和B的元素(每个集合中包含的元素各不相同),其交集存放于数组C[1:s],并集存放于数组D[1:t],集合A和B的相似度存放于SIM。 例如,假设A={1,2,3,4},B={1,4,5,6},则C={1,4),D={1,2,3,4,5,6},A与B的相似度SIM=1/3。 [流程图]

考题 试题(15 分)阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏 内。【说明】设有整数数组 A[1:N](N>1),其元素有正有负。下面的流程图在该数组 中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标 K、元素 个数 L 以及最大的和值 M。例如,若数组元素依次为 3,-6,2,4,-2,3,-1,则输出 K=3,L=4,M=7。 该流程图中考察了 A[1:N]中所有从下标 i 到下标 j(j≥i)的各元素之和 S,并动态地记录其最大值 M。【流程图】 注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为 1,格式为:循环控制变量=初值,终值