题目内容 (请给出正确答案)
[主观题]

阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 假定用一个整型数组表示

阅读下列函数说明、图和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

提问人:网友cocu0989 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“阅读下列函数说明、图和C代码,将应填入(n)处的字句写在对应…”相关的问题
第1题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 函数QuickSort是在一维数组A[

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[ ],int s,int t)

{ int i=s,j=t+1,temp;

int x=A[s];

do{

do i ++ ;while (1);

do j -- ;while(A[j]>x);

if(i<j){temp=A[i];(2);(3);}

}while(i<j);

A[a] =A[j];A[j] =x;

if(s<i-1) (4);

if(j+1<t) (5);

}

点击查看答案
第2题
●试题四 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数Qui

●试题四

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

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[],int s,int t)

{int i=s,j=t+1,temp;

int x=A[s];

do{

do i++;while (1) ;

do j--;while(A[j]>x);

if(i<j){temp=A[i]; (2) ; (3) ;}

}while(i<j);

A[a]=A[j];A[j]=x;

if(s<i-1) (4) ;

if(j+1<t) (5) ;

}

点击查看答案
第3题
() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外

() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外中学生野外生存夏令营活动,由于中外学生的语言障碍,随队为外籍学员配置一名翻译。以下代码采用适配器(Adapter)模式模拟翻译适配器。其类图如下:() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展

点击查看答案
第4题
阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。[说明] 下面的程序利用递归算法计算x

阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。

[说明]

下面的程序利用递归算法计算x和y的最大公约数。

[函数2.1]

main ()

{ int x,y,k,t;

scanf(" % d% d" , &x, &y);

if(x>y) { t=x;x=y; y=t;}

(1);

while(k! =0){

y=x;

(2);

k=y%x;

}

prinff("% d" ,x); }

[函数2.2说明]

函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

[函数2.2]

fun(ehar * str, char * substr)

{ int x,y,z;

(3);

for(x=0;str[ x] ! = '\O';x + + )

for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

if((5)= ='\0') {

num + +;

break;

}

return(num);

}

点击查看答案
第5题
●试题八 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 以下程

●试题八

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

【说明】

以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

【程序】

#include<stdio.h>

main()

{FILE*fp;

charstr[100];inti=0;

if((fp=fopen("text.txt" (1) ))==NULL)

{printf("can't open this file.\n");exit(0);}

printf("input astring:\n");gest(str);

while(str[i])

{if(str[i]>=′a′ && str[i]<=′z′)

str[i]= (2) ;

fputc(str[i], (3) );

i++;

}

fclose(fp);

fp=fopen("test.txt", (4) );

fgets(str,100,fp);

printf("%s\n",str);

(5) ;

}

点击查看答案
第6题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 以下程序的功能是:从键盘上输

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

【程序】

include < stdio. h >

main()

{ FILE * fp;

char str[100]; int i=0;

if((fp=fopen("text.txt"(1))) ==NULL)

{ printf("can't open this file. \n") ;exit(0) ;}

printf(" input astring: \n" ); gest(str);

while(str[i] )

{ if(str[i] >='a' && str[i] <='z')

str[i]=(2);

fputc(str[i],(3));

i++;

}

fclose(fp);

fp=fopen(" test.txt",(4));

fgets(str, 100, fp);

printf("%s\n" ,str);

(5);

}

点击查看答案
第7题
阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

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

【说明】

某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都

有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌

灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式

的类图如图5-1所示。

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

【c++代码】

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

}

点击查看答案
第8题
●试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数mov

●试题三

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

【说明】

函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。

令a[0]~a[low-1]小于0(初始为空);a[low]~a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。

【函数】

move(int*a,int n)

{

int i,low,high,t;

low=i=0;high=n-1;

while((1) )

if(a[i]<0)

{

t=a[i];a[i]=a[low];a[low]=t;

(2) ;i++;

}

else if((3) )

{t=a[i];a[i]=a[high];a[high]=t;

(4) ;

}

else (5) ;

}

点击查看答案
第9题
●试题一 阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。 【函数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) ;

}

点击查看答案
第10题
●试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明2.1】 L为

●试题二

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

【说明2.1】

L为一个带头结点的循环链表。函数deletenode(LinkList L,int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。

【函数2.1】

LinkList deletenode(LinkList L,int c)

{

LinkList Lc,p,pre;

pre=L;

p= (1) ;

Lc=(LinkList)malloc(sizeof(ListNode));

Lc->next=Lc;

while(p!=L)

if(p->data>c)

{

(2) ;

(3) ;

Lc->next=p;

p=pre->next;

}

else

{

pre=p;

p=pre->next;

}

return Lc;

}

【说明2.2】

递归函数dec_to_k_2(int n,int k)的功能是将十进制正整数n转换成k(2≤k≤9)进制数,并打印。

【函数2.2】

dec_to_k_2(int n,int k)

{∥将十进制正整数n转换成k(2≤k≤9)进制数

if(n!=0)

{

dec_to_k_2((4) ,k);

printf("%d", (5) );

}

}

点击查看答案
第11题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明2.1】 L为一个带头结点的循环链

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明2.1】

L为一个带头结点的循环链表。函数deletenode(LinkList L, int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。

【函数2.1】

LinkList deletenode(LinkList L, int c)

{

LinkList Lc,p,pre;

pre=L;

p=(1);

Lc=(LinkList)malloc(sizeof(ListNode) );

Lc->next=Lc

while(p!=L)

if(p->data>c)

{

(2);

(3);

Lc->next=p;

p=pre->next;

}

else

{

pre=p;

p=pre->next;

}

return Lc;

}

【说明2.2】

递归函数dec_to_k_2(int n, int k)的功能是将十进制正整数n转换成k<2≤k≤9)进制数,并打印。

【函数2.2】

dec_to_k_2(int n, int k)

{ /*将十进制正整数n转换成k(2≤k≤9)进制数*/

if(n!=0)

{

dec_to_k_2((4),k);

printf("%d",(5));

}

}

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

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

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

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