阅读以下说明和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;

题目

阅读以下说明和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 );

}


相似考题
更多“阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。 [说明] 试从含有n个int 型数的数组中 ”相关问题
  • 第1题:

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

    [说明1]

    函数void fun(char*w,char x,int*n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。

    [C函数1]

    void fun(char*W,char x,int*n)

    { int i,P;

    p=0;

    w[*n]=x;

    while(x>w[p]) (1) ;

    for(i=*n,i>p;i--)w[i]=(2);

    w[p]=x;

    ++*n;

    }

    [说明2]

    函数void revstr(char*s)将字符串s逆置。例如:字符串“abcde”,经过逆置后变为“edcba”。

    [C函数2]

    void revstr(char*s)

    { char*p,c;

    if(s==NULL)return;

    p=(3); /*p指向字符串s的最后一个有效字符*/

    while(s<p){ /*交换并移动指针*/

    C=*s;

    (4)=*p;

    (5)=c;

    }

    }


    正确答案:(1) p++ (2) w[i-1] (3) s+strlen(s)-1 (4) *s++或*(s++) (5) *p-或*(p--)
    (1) p++ (2) w[i-1] (3) s+strlen(s)-1 (4) *s++或*(s++) (5) *p-或*(p--) 解析:函数1的fun()中的while循环是为了找到x的插入位置,因此(1)填“p++”,for循环是移动数组中的元素,因此(2)填“w[i-1]”。
    对于函数2,设字符串的长度为n,则该函数的思想为将*(s+j)与*(s+n-1+i)对换,i=0....n/2。采用指针来实现,s为起始地址,p定位为最后一个字符的位置,所以空(3)应填“s+strlen(s)-1”;采用*s与*p交换后为s++与P--。即空(4)填“*s++”或“*(s++)”,空(5)填“*p-”或“*(p--)”。

  • 第2题:

    试题三(共 15 分)

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


    正确答案:

  • 第3题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析:

  • 第4题:

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

    [说明]

    下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。

    [流程图]


    正确答案:(1)MAX←0 (2)←L+1 (3)MAX←L (4)≠ (5)L←0
    (1)MAX←0 (2)←L+1 (3)MAX←L (4)≠ (5)L←0 解析:本题用到的三个变量及其作用分别为:A,存放输入的一个字符;MAX,存放当前为止最长单词的长度;L,存放当前单同的长度。
    (1)使用变量MAX应先赋予初值,由上下文知其初值为0;
    (2)读取当前单词时,每读人一个字母,单词长度值L应增1;
    (3)当前单词长度L比MAX时,应更新MAX的值;
    (4)若当前字符不是句点,应当继续读取字符;
    (5)读取下一个单词前,应当重置L的值。

  • 第5题:

    阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。

    【C++代码】 #include using namespace std; class invoice{ public: (1){ cout<<"This is the content of the invoice!"<

    答案:
    解析:
    (1) virtual void printInvoice() (2) ticket->printInvoice() (3) Decorator::printInvoice() (4) Decorator::printInvoice() (5) &a
    【解析】

    试题分析
    1.Invoice类下,义虛函数,按类图,函数名是printInvoice
    2.前面定义对象名是ticket,那么在ticket不为空的时候调用函数printInvoice
    3.这部分填写发票的抬头,看类图应该实现函数printInvoice ,Decorator装饰模式使用该方法
    4.这部分是发票的脚注,看类图应该实现函数printlnvoice,Decorator装饰模式使用该方法
    5.FootDecorator a(NULL) ;脚步的装饰参数是a,调用a参数,