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

阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 “背包问题”的基本描述是:有

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

【说明】

“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。

如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。

【程序1】

include<stdio.h>

define N 7

define S 15

int w[N+1]={0,1,4,3,4,5,2,7};

int knap(int s, int n)

{

if(s==0) return 1;

if(s<0 || (s>0 && n<1))return 0;

if((1)){/*考虑物品n被选择的情况*/

printf("%4d",w[n]);

return 1;

}

return (2);/*考虑不选择物品n的情况*/

}

main()

{

if(knap(S,N))printf("OK!\n");

else printf("N0!\n");

}

【程序2】

include<stdio.h>

define N 7

define S 15

typedef struct{

int s;

int n;

int job;

}KNAPTP;

int w[N+1]={0,1,4,3,4,5,2,7};

int knap(int s, int n);

main()

{

if(knap(S,N)) printf("0K!\n");

else printf("N0!\n");

}

int knap(int s, int n)

{

KNAPTP stack[100],x;

int top, k, rep;

x.s=s;x.n=n;

x.job=0;

top=1; stack[top]=x;

k=0;

while((3) ){

x=stack[top];

rep=1;

while(!k && rep){

if(x.s==0) k=1;/*已求得一组解*/

else if(x.s<0 || x.n<=0) rep=0;

else{

x.s=(4);

x.job=1;

(5)=x;

}

}/*while*/

if(!k){

rep=1;

while(top>=1 && rep){

x=stack[top--];

if(x.job==1){

x.s +=w[x.n+1];

x.job=2;

stack[++top]=x;

(6);

}/*if*/

}/*while*/

}/*if*/

/*while*/

if(k){&nbs

提问人:网友cui163007 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内…”相关的问题
第1题
●试题八 阅读下列函数说明和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) ;

}

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

}

点击查看答案
第3题
阅读下列程序说明和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);

}

点击查看答案
第4题
阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。[程序5.1说明] 下列程序

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

[程序5.1说明]

下列程序运行时,当单击窗体后,从键盘输入一个字符,判断该字符是字母字符、数字字符还是其他字符,并做相应的显示。窗体上无任何控件,并禁用Ase和Chr函数,Select Case语句中禁用枚举值。

[Visual Basic代码]

Private Sub Form. Load ()

Dim x As String*1

X=(1) (“请输入单个字符”,“字符”)

Select Case UCase ((2) )

Case (3)。

Print X+“是字母字符”

Case (4)

Print X+ “是数字字符”

Case Else

Print X+“是其他字符”

End Select

[程序5.2说明]

在窗体上画一个名称为Timer1的计时器和一个名称为Labe11的标签。当运行程序后,将在标签中显示当前时间的数字时钟(包括时:分:秒)。

[Visual Basic代码]

Private Sub Fom_Load ()

Timer1.Interval=1000

EndSub

Private Sub Timer1_ timer() (5)

EndSub

点击查看答案
第5题
阅读以下说明和JAVA 2代码,将应填入(n)处的字句写在对应栏内。 [说明] 以下程序为类类型的变量应

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

[说明]

以下程序为类类型的变量应用实例,通过异常处理检验了类CCircle的变量的合法性,即参数半径应为非负值。仔细阅读代码和相关注释,将程序补充完整。

[JAVA代码]

//定义自己的异常类

class CCircleException extends Exception

{

}

// 定义类 CCircle

class CCircle

{

private double radius;

public void setRadius (double r ) (1)

{

if (r<0 ) {

(2)

}

else

(3)

}

Public void show () {

System. out. println ("area="+3.14*radius*radius );

}

}

public class ciusample

{

public static void main (String args[] )

{

CCircle cir=new CCircle();

(4) {

cir. setRadius (-2.0 )

}

(5)

{

System. out. println (e+" throwed" ) ;

}

cir. show() ;

}

}

点击查看答案
第6题
阅读以下说明、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();

}

}

}

点击查看答案
第7题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明2.1】 以下C语言函数用二分插

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

【说明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));

}

}

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

●试题二

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

【说明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+1]=a[j];

(3) ;

}

}

【说明2.2】

以下程序可以把从键盘上输入的十进制数(1ong型)以二~十六进制形式输出。

【程序2.2】

#include<stdio.h>

main()

{char b[16]={′0′,′1′,′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:kn″);

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

}

}

点击查看答案
第9题
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。[函数2.1说明] 函数void find(int *a

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

[函数2.1说明]

函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。main()中给出了调用find函数的一个实例。

[函数2.1]

include<stdio.h>

void find(int *a, int n,int *max,int * min)

{ int i;

*max =* min=0;

for(i=1;i<n;i+ +)

if(a[i]>a[* max]) (1);

else if(a[i]<a[*min]) (2);

return;

main()

{ int a[]={4,6,8,9,0,6},max,min;

find(a,6,(3));

printf("%5d%5d\n", max,min);

}

[函数2.2说明]

以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是abcdefg和abceef,则输出为abc。

[函数2.2]

include <stdio.h>

main()

{ char str1[100],str2[100],str[100],c;

int i=0,s;

printf("\nInput string 1:");gets(str1);

printf("\nInput string 2:");gets(str2);

while(((4))&&(str1[i]!='\0')&&(str2[i]!='\0')){

(5);

i++;

}

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

}

点击查看答案
第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题
阅读以下说明、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>

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

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

简答题官方微信公众号

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

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

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