阅读下列程序说明和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中出现的次数。[函

题目

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

}


相似考题
参考答案和解析
正确答案:(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1]
(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1] 解析:(1)~(2)使用递归算法计算x和y的最大公约数时,不妨令yx,如果y除x余数得。则x即为所求;否则令y←x,x←余数,继续上述判断。
(3)此处应声明变量num并初始化;
(4)次循环的功能是从str的第y个位置起与substr做比较,循环过程中y和z应同时增1;
(5)若上面的循环重复执行,直到到达substr结束,则表示substr在str中出现一次。
更多“阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。[说明] 下面的程序利用递归算法计算x ”相关问题
  • 第1题:

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

    【说明】

    阅读下面几段C++程序回答相应问题。

    比较下面两段程序的优缺点。

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

    {

    if (condition)

    //DoSomething

    else

    //DoOtherthing

    }

    ②if (condition) {

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

    //DoSomething

    }else {

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

    //DoOtherthing

    }


    正确答案:程序1优点:程序简洁;缺点:多执行了N-1次逻辑判断并且程序无法循环“流水”作业使得编译器无法对循环进行优化处理降低了效率。 程序2优点:循环的效率高;缺点:程序不简洁。
    程序1优点:程序简洁;缺点:多执行了N-1次逻辑判断,并且程序无法循环“流水”作业,使得编译器无法对循环进行优化处理,降低了效率。 程序2优点:循环的效率高;缺点:程序不简洁。

  • 第2题:

    试题三(共 15 分)

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


    正确答案:

  • 第3题:

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






    答案:
    解析:

  • 第4题:

    ●试题二

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

    【说明】

    该程序运行后,输出下面的数字金字塔

    【程序】

    include<stdio.h>

    main ()

    {char max,next;

    int i;

    for(max=′1′;max<=′9′;max++)

    {for(i=1;i<=20- (1) ;++i)

    printf(" ");

    for(next= (2) ;next<= (3) ;next++)

    printf("%c",next);

    for(next= (4) ;next>= (5) ;next--)

    printf("%c",next);

    printf("\n");

    }

    }


    正确答案:
    ●试题二【答案】(1)(max-′0′)(2)′1′(3)max(4)max-1(5)′1′【解析】该程序共有9行输出,即循环控制变量max的值是从1~9。每行输出分3部分,先用循环for语句输出左边空白,(1)空填"(max-′0′)";再用循环输出从1到max-′0′的显示数字,即(2)空和(3)空分别填1和max;最后输出从max-′1′~1的显示数字,即(4)空和(5)空分别填和max-1和′1′。

  • 第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参数,