重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 计算机类考试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 这是一个求解Josephus

阅读以下函数说明和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)处的字句写在对应栏内。 [说明] 这是一个求解Josephus”相关的问题

第1题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明1] L为一个带头结点的循

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

[说明1]

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

[C函数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]

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

[C函数2]

dec to k 2(int n,int k)

{ if(n!=O){

dec to k 2( (4) ,k);

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

}

}

点击查看答案

第2题

阅读下列说明、图和Java代码,将应填入(n)处的字句写在对应栏内。【说明】 已知对某载客车辆(Car)进行

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

【说明】

已知对某载客车辆(Car)进行类建模,如图7-1所示,其中类Engine表示发动机引擎,类Wheel表示车轮,类Body表示车身,类Driver表示司机,类Passenger表示乘客。

【Java代码】

class Body{ //此处代码省略 ); //车身类

class Passenger{ //此处代码省略 )/ //乘客类

class Wheel{ //此处代码省略 ); //车轮类

class Driver{ //司机类

public String name; //表示第几路公交车司机

public Driver(String driverName){name = driverName/) //构造函数

};

class Engine{//引擎类

public String engineNo;//引擎编号

public Engine(String engineNo){this.engineNo=engineNo;)//构造函数

};

public class Car{//汽车类

static final int(1)=7; //定义最多载客数

static final int MAX WHEELS =5; //定义最多轮胎数

protected Engine engine;

protected Driver driver;

protected Body body=new Body();

protected Wheel[] wheels;

protected Passenger[]passengers;

public Car(Driver driver){ //构造函数

(2).driver=driver;

engine=new Engine("TX6536型号引擎");

wheels=new Wheel[MAX WHEELS];

passengers=new Passenger[MAX_PASSENGERS];

for(int index=0;index<MAX_WHEELS;index++){

wheels[index]=new Wheel();

}

for(int index=0;index<MAX_PASSENGERS;index++){

passengers[index]=null;

}

}

int getPassengerNumber(){//获取车上乘客数量

//此处代码省略

}

void getOnPassenger(Passenger aPassenger){//乘客上车

//此处代码省略

}

void run(){ //开车

if((3)){System.out.println("司机尚未上车!");return;}

//此处代码省略

}

public static void main(String args[]){

Driver driver=new Driver("第五路公交车司机");

Car car=new Car((4));

for (int index = 0 ; index < MAX_PASSENGERS; index ++)

car.getOnPassenger((5) Passenger());

car.run();

}

}

点击查看答案

第3题

阅读以下说明和流程图,填补流程图中的空缺(1)一(5),将解答填入答题纸的对应栏内。【说明】下面的流

阅读以下说明和流程图,填补流程图中的空缺(1)一(5),将解答填入答题纸的对应栏内。

【说明】

下面的流程图采用公式ex=1+x+x2/2 1+x3/3 1+x4/4 1+…+xn/n!+???计算ex的近似值。设x位于区间(0,1),该流程图的算法要点是逐步累积计算每项xx/n!的值(作为T),再逐步累加T值得到所需的结果s。当T值小于10-5时,结束计算。

【流程图】

点击查看答案

第4题

阅读以下说明和Java代码,将应填人(n)处的字句写在答题纸的对应栏内。【说明】Java.util包中提供了Ha

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

【说明】

Java.util包中提供了HashMap模板类,该模板类可以表示多个“键一值”对的集合,其中“键”的作用与普通数组中的索引相当,而“值”用作待存储和检索的数据。HashMap实现了Map接口。在Map接口中定义了put和get方法,put方法表示Map对象中加入一个“键-值”对,get方法则通过“键”来获取其对应的“值”。

下面的Java代码中使用了HashMap模板类,将编号为1001、1002、1003的员工信息插入到HashMap对象中,然后输入一个指定的员工编号,通过员工编号来获取员工的基本信息。员工编号为整型编码,而员工的基本信息定义为类employee。HashMap对象与员工对象之间的关系及存储结构如图5—2所示。

【Java代码】

import Java.util.*;

class employee{

employee(String name,String phoneNumber,String address){

this.name=name;

thi s.phoneNumber=phoneNumber ;

this.address=address;

}

String name;

String phoneNumber;

String address;

};

publ ic class jaVaMain{

public static void main(String[]args){

MapemployeeMap=new HashMap(Integer,employee>();

for(Integer employIndex=1001;employIndex<=1003;employIndex++){

String tmp=employlndex. (1 ) ();

employeeMap. (2) (employIndex, (3) (”employee-”+

tmp,“85523927-”

+tmp,”addresS-”

+tmp)

);//将员工编号和员工信息插入到employeeMap对

象中

)

int employeeNo=0;

System.out.print(”请输入员工编号:”);

Scanner S=new Scanner(System.in);

employeeNo=.s.nextInt(); //从标准输入获得员工编号

employee result=employeeMap. (4)(employeeNo);

if( (5) ==null)(

System.out.println(”该员工编号不存在!”);

return;

System.out.println(“你所查询的员工编号为:”+employeeNo);

System.out.printld(“该员工姓名:”+result.name);

System.out.println(“该员工电话:”+result.phoneNumber);

System.out.println(“该员工地址:“+result.address);

}

}

点击查看答案

第5题

阅读以下两个说明、c函数和问题,将解答写入答题纸的对应栏内。【说明1】函数main()的功能旨在对输入

阅读以下两个说明、c函数和问题,将解答写入答题纸的对应栏内。

【说明1】

函数main()的功能旨在对输入的一个正整数n,计算12+22+32+…+n2,但是对该函数进行测试后没有得到期望的结果。

【c函数】

1.输入5测试上述main函数时,显示结果如下所示。

input an integer:5

result:-582598909

2.将行号为7的代码修改为:prinff(”n=%d\nresuh:%d\n”,n,sum);并再次

输入5测试main函数,显示结果如下所示。

input an interger:5

n=2293632

result:-582598909

阅读以上两个说明、c函数和问题,将解答写入答题纸的对应栏内。

【问题1】

请给出上述main函数中需要修改的代码行号,并给出修改后的整行代码。

【说明2】

函数test_f2{}编译时系统报告有错,修改后得到函数12_B{}。对函数12_B{}

进行编译时顺利通过,在某些C系统中执行时却由于发生异常而不能正确结束。

【c函数2】

【问题2】(1)请指出函数test_f2中不能通过编译的表达式;(2)请指出可能导致函数f2_B运行异常的表达式。

点击查看答案

第6题

阅读以下说明和C语言函数,将解答填入对应栏内。 【说明】 下面待修改的C程序完成的功能是:对于给定

阅读以下说明和C语言函数,将解答填入对应栏内。

【说明】

下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。

下面给出的C程序代码中有五个错误,请指出所有的错误。

【C程序代码】

01 include <stdio.h>

02

03 int main()

04 {

05 long n, num;

06 int i;

07

08 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 }

点击查看答案

第7题

阅读以下说明和流程图,回答问题1和问题2。【说明】 为便于管理,每本正式出版的图书都印有国际标准书

阅读以下说明和流程图,回答问题1和问题2。

【说明】

为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和 10个数字组成,其格式为:ISBN组号-出版者号-书名号-校验码。其中,校验码是根据前面9个数字计算得到的,用于计算机自动校验。假设标准书号的10个数字依次是 a(1),a(2),…,a(10),则校验码a(10)的设置应使S=10*a(1)+9*a(2)+8*a(3)+…1*a(10)能被 11整除。如果校验码a(10)应设置成10,则规定以“X”表示之。例如,信息处理技术员纲的标准书号为:ISBN 7-302-11191-X。第1段上的数字“7”是国际ISBN中心分配给中国ISBN中心管理的组号。第2段上的“302”表示清华大学出版社。标准书号的校验过程如图1-1所示,计算校验码的过程如图1-2所示,其中,Mod(S,11)表示S除以11得到的余数。

【流程图】

请填补流程图中的空缺(1)~(4)。

点击查看答案

第8题

阅读以下说明、Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】IC卡和200卡都是从电话

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

【说明】

IC卡和200卡都是从电话卡派生的。下面的程序将电话卡定义为抽象类。其中 balance为双精度变量,代表电话卡中的余额;cardNumber是长整型变量,代表电话卡的卡号;password是整型变量,代表电话卡的密码;connectNumber是字符串变量,代表电话卡的接入号码;connected是布尔变量,代表电话是否接通。

performDial()实现各种电话接通后的扣除费用的操作。其中200卡每次通话扣除0.5元的通话费用和附加费用;IC卡每次通话扣除0.9元的通话费。TimeLeft()方法用于测试电话卡余额还可以拨打电话的次数。performConnection()用于电话接入操作,如果卡号和密码正确,则接通;否则,接不通。

【程序】

abstract class PhoneCard

{

doubte balace;

(1) perfermDial();

double getBalance()

{ return balance; }

double TimeLeft()

{

double current=balance;

int times=0;

do

{

(2)

times++;

}white(balance>=0);

balance=current;

return times-1;

}

}

abstract class Number_PhoneCard extends PhoneCard

{

long cardNumber:

int password;

String connectNumber;

Boolean connected;

Boolean performConnection(long cn, int pw)

{

if(cn==cardNumber && (3) )

{

connected=true;

return true;

}

else return false;

}

}

class IC Card (4)

{

boolean performDial()

{

if(balance>0.9)

{

balance-=0.9;

return true;

}

else return false;

}

}

class D200_Card (4)

{

static double additoryFee;

static{ additoryFee=0.1; }

boolean performDial()

{

if(balance>(0,5+additeryFee))

{

(5)

return true;

}

else return false;

}

}

点击查看答案

第9题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内 [说明] 以下程序的功能是计算三角形、

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

[说明]

以下程序的功能是计算三角形、矩形和正方形的面积并输出。

程序由4个类组成:类Triangle,Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。

[C++程序]

include<iostream.h>

include<math.h>

class Figure{

public:

virtual double getArea()=0; //纯虚拟函数

};

class Rectangle: (1) {

protected:

double height;

double width;

public:

Rectangle(){};

Rectangle(double height,double width){

This->height=height;

This->width=width;

}

double getarea(){

return (2);

}

};

class Square: (3)

public:

square(double width){

(4);

}

};

class triangle: (5) {

double la;

double lb;

double lc;

public:

triangle(double la,double lb,double lc){

this->la=la;thiS->ib;this->lc;

}

double getArea(){

double s=(la+lb+lc)/2.0;

return sqrt(s*(s-la)**(s-lb)*(s-lc));

}

};

viod main(){

figure*figures[3]={

new triangle(2,3,3),new Rectangle(5,8),new Square(5)};

for(int i=0; i<3;i++){

cout<<"figures["<<i<<"]area="<<(figures)->getarea()<<endl;

}

}

};

点击查看答案

第10题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 函数int psort(int a[

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

[说明]

函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。

[C函数]

int psort(int a[],int n)

{int i,J,k,P;

for(i=0,k=0;i<(1);i++){

for(j=i+1, (2) ;j<n; j++)

if(a[p]>a[j])

p=j;

if(p!=i){

t=a[p];

a[p]=a[i];

a[i]=t;

}

if( (3) ) k++;

else if( (4) <a[i])

(5)=a[i];

}

return k;

}

int a[]={5,7,5,6,4,3,4,6,7};

main()

{int k,n;

for(k=0;k<(Sizeof a)/Sizeof(int);k++)

printf("%5d",a[k]);

printf ("\n\n");

n=psort(a,(sizeof(a))/sizeof(int));

for(k=0;k<n;k++)

printf("%5d",a[k]);

printf("\n\n");

}

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

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

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案