首页 > 软考
题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。 【说明】 并行计算中需要将N个作业分配给N

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

【说明】

并行计算中需要将N个作业分配给N个处理器同时去完成,每个处理器都能承担这N个作业,但耗时不同。下面的程序用回溯法计算总耗时最小的一种作业分配方案,在该方案中为每个处理器分配1个不同的作业。

程序中,N个作业从0开始依次编号,N个处理器也从0开始依次编号,主要的变量说明如下:

c[i][j]:将作业i分配给处理器j的耗时;

job[i]:值为0表示作业i未分配,值为j表示作业i分配给处理器j;

processor[k]:值为0表示处理器k未分配作业,值为1表示处理器k已分配作业;

mincost:最小总耗时。

【C程序】

include<stdio.h>

define N 8/*N表示作业数和处理器数*/

int c[N][N];

unsigned int mincost=65535/*设置min的初始值,大于可能的总耗时*/

int job[N],temp[N],processor[N];

void Assign(int k,unsigned int cost)

{

int i;

if (1)&& cost<mincost){

mincost = cost

for(i=0;i<N;i++)temp[i]=job[i];

}

else {

for(i=0;i<N;i++)/*分配作业k*/

if (2)&& cost+c[k][i]<mincost){

processor[i]=1;job[k]=(3);

Assign (4),cost+c[k][i]);

(5);job[k]=0;

}/ * if * /

}

}/ *Assign * /

void main()

{

int i,j;

for(i=0;i<N;i++){/*设置每个作业由不同处理器承担时耗时及全局数组的初值*/

processor[i]=0;job[i]=0;temp[i]=0;

for(j=0;j<N;j++)

scanf("%d",&c[i][j]);

}

Assign(0,0);/*从作业0开始分配*/

printf("\n最小耗时=%d\n",mincost);

for(i=0;i<N;i++)

printf("Job%d is assigned to Processor%d\n",i,temp[i]);

}/*main*/

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。 …”相关的问题
第1题
阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内。 [说明] 下面程序实现十进制向其它

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

[说明]

下面程序实现十进制向其它进制的转换。

[Java程序]

ClasS Node{

int data;

Node next;

}

class Transform{

private Node top;

public void print(){

Node p;

while(top!=null){

P=top;

if(P.data>9)

System.out.print((char)(P.data+55));

else

System.out.print(p.data);

top=p.next;

}

}

public void Trans(int d,int i){//d为数字;i为进制

int m;

(1) n=false;

Node p;

while(d>0){

(2);

d=d/i;

p=new Node();

if((3) ){

p.data=m;

(4);

top=P;

n=true;

}

else{

p.data=m;

(5);

top=P;

}

}

}

}

点击查看答案
第2题
阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 以下程序为求行

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

以下程序为求行列式X(5,5)的值S。

【Visual Basic代码】

Private Function col (byval x (5,5 ) as integer ) as long

dim fesult as long

dim temp as long

dim I as integer

dim j as integer

dim k as imeger

result = 0

for I = to 5

(1)

for j = 1 to 5

if I+j>6 then

k= (1+j ) mod 5

else

k=1

endif

temp=temp*x (k,j )

(2)

result=(3)

(4)

(5)

End function

点击查看答案
第3题
●试题八 阅读下列函数说明和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) ;

}

点击查看答案
第4题
阅读以下说明、Java代码,将应填入(n)处的字句写在对应栏内。【说明】 本程序输出10000之内的所有完全

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

【说明】

本程序输出10000之内的所有完全数。完全数是指等于其所有因子和(包括1,但不包括这个数本身)的数。例如:6=1×2×3,6=1+2+3,则6是一个完全数。

【程序】

public class PerfectNum

{

Public static void main(String args[])

{

int count=1;

for(int i=1; i<10000; i++)

{

int y=0;

for(int j=1; j<i; j++)

if((1))

y=(2)

if((3))

{

System.out.print((4) +String.valueOf('\t'));

(5)

If(count%3==0)

System.out.printin();

}

}

}

点击查看答案
第5题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 下面的程序构造一棵以二叉链

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

【说明】

下面的程序构造一棵以二叉链表为存储结构的二叉树算法。

【函数】

BTCHINALR *createbt (BTCHINALR *bt )

{

BTCHINALR *q;

struct node1 *s [30];

int j,i;

char x;

printf ("i,x =" ); scanf ("%d,%c",&i,&x );

while (i!=0 && x!='$')

{ q = (BTCHINALR* malloc (sizeof (BTCHINALR )); //生成一个结点

(1);

q->1child = NULL;

q->rchild = NULL;

(2);

if((3);)

{j=i/2 //j为i的双亲结点

if(i%2==0

(4) //i为j的左孩子

else

(5) //i为j的右孩子

}

printf ("i,x =" ); scanf ("%d,%c",&i,&x ); }

return s[1]

}

点击查看答案
第6题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。 [说明] 下面程序实现十进制向其它进

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

[说明]

下面程序实现十进制向其它进制的转换。

[C++程序]

include"ioStream.h"

include"math.h"

include

typedef struct node {

int data;

node*next;

}Node;

Class Transform.

{

DUDlic:

void Trans(int d,int i); //d为数字;i为进制

void print();

private:

Node*top;

};

void Transform.:Trans(int d,int i)

{

int m,n=0;

Node*P;

while(d>0)

{

(1);

d=d/i;

p=new Node;

if(!n){

p->data=m;

(2);

(3);

n++;

}

else{

p->data=m;

(4);

(5);

}

}

}

void Transform.:print()

{

Node*P;

while(top!=NULL)

{

p=top;

if(p->data>9)

cout<<data+55;

else

cout<<data;

top=p->next;

delete p;

}

}

点击查看答案
第7题
阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。 [说明] 试从含有n个int 型数的数组中

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

[说明]

试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。

[C++ 程序]

include<stdio.h>

define N 100

int 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 );

}

点击查看答案
第8题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明] 本程序中预设了若干个用户名和

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

[说明]

本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。

[C++程序]

include <iostream. h>

include <string. h>

class User

{ protected:

char user[10];

char pass[7];

public:

User(char[ ],char[]);

(1) {return user;}

(2) {return pass;}

};

User::User(char u[],char p[])

{ strcpy(user,u);

strcpy(pass,p); }

void main()

{ User ua[]={User("Li","123456"),User("wang","654321"),User("Song","666666")

char name[10];

while(1)

cout< < "输入用户名:";

cin> >name;

if((3)= =0) break;

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

if(strcmp(name,ua[i].getuser()) = =0){

cout< <"密码:" < < ua[i].getpass() < <endl;

(4);

if((5))cout< <"该用户不存在!" < <endl;

}

}

点击查看答案
第9题
阅读以下说明、Java代码和HTML文档,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 当用户启动h

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

【说明】

当用户启动html浏览器并首次打开下面的HTML文档时,Java Applet小程序在显示面板上显示字符串“Welcome!”;当html页面被其他窗口

遮挡后再次显示时,小程序在显示面板上显示“Welcome back!”。

【Java代码】

import javA.awt.*;

import javA.applet;

public class HelloApplet extends (1) {

public void paim((2)){

g.drawString(message,10,20);

message="welcome back!”;

}

public void (3) (){

message="Welcome!”;

}

private (4) message;

}

【HTML文档】

<html>

<head>

<title>HTML Test HelloApplet Page</title>

</head>

<body>

Test HelloApplet小程序<br>

<applet

codebase="."

code="(5) "

name="TestApplet"

width="400"

height="300"

</applet>

</body>

</html>

点击查看答案
第10题
阅读以下说明、Java代码和HTML文档,将应填入(n)处的字句写在对应栏内。【说明】 当用户启动html浏览

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

【说明】

当用户启动html浏览器并首次打开下面的html文档时,Java Applet小程序在显示面板上显示字符串“欢迎您!”;当html页面被其他窗口遮挡后再次显示时,小程序在显示面板上显示“欢迎您回来!”

[Java代码]

import java.awt.*;

import java.applet.*;

public class HelloApplet extends (1) {

public void paint((2) ){

g.drawString(message,10,20);

message="欢迎您回来!";

}

public void (3) (){

message="欢迎您!";

}

private (4) message;

}

[HTML文档]

<html>

<head>

<title>HTML Test HelloApplet Page</title>

</head>

<body>

Test HenoApplet 小程序<br>

<applet

codebase="."

code="(5)"

name="TestApplet"

width="400"

height="300"

</applet>

</body>

</html>

点击查看答案
第11题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】下面程序的功能是计算并输出某年

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

【说明】

下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。

【C++程序】

include < iostream >

using namespace std;

(1) Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

class Date {

public:

Date(int year, Month m_ month) {

this→year = year;

if((2) ) month: Jan;

else month = m_ month;

};

~Date(){};

bool IsLeap Year() {

return ((year%4= =0 &&year% 100 ! =0)|| year%400= =0);

};

int CaculateDays() {

switch(m_month ) {

case (3) ;{

if (4) return 29;

else return 28;

}

case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31;

case Apr: case Jun: case Sop: case Nov: return 30;

}

}

private:

int year;

Month month;

};

void main() {

Date day(2000,Feb);

cout < <day. (5) ();

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改