4、如下代码用欧几里得算法求两个正整数的最大公约数。 num1,num2=eval(input("请输入两个正整数")) if num1<num2: num1,num2=num2,num1 #保证num1大 while_____________: temp=num1%num2 num1=num2 num2=temp print("最大公约数是:",num2) 其中第4行下划线的代码应该是_______A.num2%num1==0B.num2%num1!=0C.num1%num2==0D.num1%num2

题目

4、如下代码用欧几里得算法求两个正整数的最大公约数。 num1,num2=eval(input("请输入两个正整数")) if num1<num2: num1,num2=num2,num1 #保证num1大 while_____________: temp=num1%num2 num1=num2 num2=temp print("最大公约数是:",num2) 其中第4行下划线的代码应该是_______

A.num2%num1==0

B.num2%num1!=0

C.num1%num2==0

D.num1%num2!=0


相似考题

4.阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。【说明】以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。【C++程序】ifndef H_MiniComplexdefine H_MiniComplexinclude <iostream>using namespace std;class MiniComplex{public: //重载流插入和提取运算符(1) ostream&operator<<(ostream &osObject,const MiniComplex&complex){osObject<<"("<<complex.realPart<<"+"<<complex.imagPart<<"i"<<")";return osObject;}(2) istream&operator>>(istream&isObject, MiniComplex&complex){char ch;isObject >>complex.realPart>>ch>>complex.imagPart>>ch;return isObject;}MiniComplex(double real=0,double imag=0); //构造函数MiniComplex operator+(const MiniComplex&otherComplex)const; //重载运算符+MiniComplex operator-(const MiniComplex&otherComplex)const; //重载运算符-MiniComplex operator*(const MiniComplex&otherComplex)const; //重载运算符*MiniComplex operator/(const MiniComplex&otherComplex)const; //重载运算符/bool perator==(const MiniComplex&otherComplex)const; //重载运算符==private :double (3);double imagPart;};end ifinclude "MiniComplex.h"bool MiniComplex::operator==(const MiniComplex&otherComplex)const{return(realPart==otherComplex.realPart&&imagPart==ortherComplex.imagPart);}MiniComplex::MiniComplex(double real,double imag){realPart== real; imagPart==imagPart;}MiniComplex MiniComplex::operator+(const MiniComplex&otherComplex)const{MiniComplex temp;temp.realPart = realPart+ortherComplex. realPart;temp.imagPart = imagPart +ortherComplex. imagPart;return temp;}(4){ MiniComplex temp;temp.realPart= realPart-ortherComplex. realPart;temp.imagPart = imagPart-ortherComplex. imagPart;return temp;}MiniComplex MiniComplex::operator*(const MiniComplex&otherComplex)const{MiniComplex temp;temp.realPart = (realPart*ortherComplex. realPart)-(imagPart *ortherComplex.imagPart);temp.imagPart = (realPart*ortherComplex. imagPart)+(imagPart *ortherComplex.realPart);return temp;}MiniComplex MiniComplex::operator/(const MiniComplex&otherComplex)const{MiniComplex temp;float tt;tt=1/(ortherComplex.realPart*ortherComplex.realPart+ortherComplex.imagPart *ortherComplex. imagPart);temp.realPart=((realPart*ortherComplex, realPart)+(imagPart *ortherComplex. imagPart))*tt;temp.imagPart =((imagPart *ortherComplex. realPart)-(realPart*ortherComplex. imagPart))*tt;return temp;}include <iostream>include <MiniComplex.h>using namespace std;int main(){MiniComplex numl(23, 34),num2(56, 35);cout<<"Initial Value of num1="<<num1<<"\n Initial Value of num2="<<num2<<end1;cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1; //使用重载的加号运算符cout<<num1<<"-"<<num2<<"="<<num

更多“4、如下代码用欧几里得算法求两个正整数的最大公约数。 num1,num2=eval(input("请输入两个正整数")) if num1<num2: num1,num2=num2,num1 #保证num1大 while_____________: temp=num1%num2 num1=num2 num2=temp print("最大公约数是:",num2) 其中第4行下划线的代码应该是_______”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入 49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。

    请改正函数fun()中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    int fun(int a, int b)

    { int r,t;

    if(a<b)

    /******************found*****************/

    { t=a; b=a; a=t;}

    r=a%b;

    while(r!=0)

    { a=b; b=r; r=a%b;}

    /******************found*****************/

    return(a);

    }

    main()

    { int num1, num2, a;

    printf("Input num1 num2:"); scanf("%d %d",&num1, &num2);

    printf("num1=%d num2=%d\n\n",num1, num2);

    a=fun(num1, num2);

    printf("The maximun common divisor is %d\n\n", a);

    }


    正确答案:(1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b);
    (1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b); 解析:若求两个数的最大公约数,如果b除a的非零余数能够整除a,那么该余数就是最大公约数;若余数为0,则最大公约数为a。该题程序中采用了循环语句,若b除以a的余数不等于0,则继续用a除以所得余数,直至余数为0,如此可以得到 a,b的最大公约数。关于“交换原则”我们在前面已经讲述过了,这里就不再赘述。

  • 第2题:

    在窗体中使用一个文本框(名称为num1)接受输入值,有一个命令按钮run13,事件 代码如下: Private Sub run13_Click() If Me!num1>=60 Then result="及格" Else If Me!num1>=70 Then result="通过" Else If Me!num1>=80 Then result="合格" End If MsgBOx result End Sub 打开窗体后,若通过文本框输入的值为85,单击命令按钮,输出结果是( )。

    A.及格

    B.通过

    C.合格

    D.其他


    正确答案:A

  • 第3题:

    将“TC(inti,intj)”补充完整为“TC(inti,intj):Num2(j)”。 (2)应添加“friendvoidfunc;”。 (3)应添加“intTC::Num3=4;”。 (4)将“obi.AddNum”补充完整为“obj.AddNum(2);”。 【解析】本题在第1处完成类的构造函数初始化类的成员变量,常数据成员也必须初始化,并且不能被更新,常数据成员的初始化只能通过构造函数的成员初始化类表进行,因此第1处的语句应为“TC(inti,intj):Num2(j)”,i用来初始化Num1和Num3,j初始化Num2。第2处完成fune的函数定义,由审题分析可知,函数fune为类的友元,故第2处的语句应为“friendvoidrune;”。第3处的语句是静态成员的初始化,静态数据成员的初始化格式为“(数据类型)<类名>::<静态数据成员)=<初始值>”,因此第3处的语句应为“intTC::Num3=4;”。成员函数AddNum带有一个整型参数,因此调用此函数时必须有参数传入,可由程序运行结果分析得知传入的参数值的大小。在fun函数内,定义TCobj(1,2)后,obj.Num1=1,obj.Num2=2,Num3=16+1=17,obj.Num1=4,Numl为4,obj。Num2为常数据成员,其值不会改变,调用AddNum函数后调用显示函数显示成员变量值,可知Num3为19,因此AddNum的参数为19-17=2,即第4处的语句应为“obj.AddNum(2);”。


    正确答案:
    使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
    (1)完成TC的构造函数,请改正注释1后的错误。
    (2)完成func函数定义,请改正注释2后的错误。
    (3)初始化CmyClass的成员变量Num3为4,请改正注释3后的错误。
    (4)完成func函数,请改正注释4后的错误。
    输出的结果为
    Num1=12
    Num2=18
    Num3=16
    Num1=4
    Num2=2
    Num3=19
    注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
    试题程序:
    #include<iostream.h>
    classTC
    {
    public:
    //********1********
    TC(inti,intj)
    {
    Numl=i;
    Num3+=i:
    }
    voiddisplay
    {
    cout<<"Num1="<<Numl<<endl:
    cout<<"Num2="<<Num2<<endl;
    cout<<"Num3="<<Num3<<endl;
    }
    voidAddNum(inti)
    {
    Num3+=i;
    }
    private:
    intNum1;
    constintNum2;
    staticintNum3;
    //********2********
    };
    //********3********
    voidfunc
    {
    TCobj(1,2);
    obj.Num1=4;
    //********4********
    obj.AddNum;
    ohj.display;
    }
    voidmain
    {
    TCmyObj(12,18);
    myObj.display;
    rune;
    return;
    }

  • 第4题:

    在窗体上有一个名为num2的文本框和run11的命令按钮,事件代码如下: Private Sub run11 Click( ) Select Case num2 Case 0 Result=“0分” Case 60 T0 84 result= “通过” Case IS>=85 result= “优秀” Case Else result=“不合格” End Select MsgBox result End Sub 打开窗体,在文本框中输入80,单击命令按钮,输出结果是( )。

    A.合格

    B.通过

    C.优秀

    D.不合格


    正确答案:B
    输入80时,满足Case60T084条件,因此输出通过。

  • 第5题:

    下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若numl和num2分别为49和21,则输出的最大公约数为7;若numl和num2分别为27和81,则 输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构。


    正确答案:
    【参考答案】
    (1)t=a;a=b;b=t;
    (2)return(b);或return b;
    【考点分析】
    本题考查:return语句,功能是计算表达式的值,并将其返回给主调函数。
    【解题思路】
    求最大公约数算法一般采用辗转相除法。辗转相除法的算法为:首先将m除以n(m>n)得余数r,再用余数r去除原来的除数,得到新的余数,重复此过程直到余数为0时停止,此时的除数就是m和n的最大公约数。程序首先判断参数a和b的大小,如果a<b则进行交换,这里是一个数学逻辑错误,应先将a的值赋给中间变量t,再将h的值赋给a,最后将t的值赋给b。当余数r为0时,除数b即为所求的最大公约数,所以函数应返回b。

  • 第6题:

    根据源代码,完成以下问题。 一个计算三个数中最大数的程序 main() {int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) max=num1; else max=num2; if (num3>MAX) max=num3; printf("MAX is:%d \n",max); } (1) 给出对应的流程图 (2) 计算控制流图复杂度V(G) (3)写出所有的独立路径,并设计测试用例


    正确答案:
    V(G)=3独立路径1->2->3->5->71->2>3->5->6->71->2->4->5->71->2->4->5->6->7设计用例

  • 第7题:

    分析下面程序,哪一行代码能正确赋值?()class Demo {public void method() {final int num1 = 10;static int num2 = 20;abstract int num3 = 30;private int num4 = 40;}}

    A.final int num1 = 10;

    B.static int num2 = 20;

    C.abstract int num3 = 30;

    D.private int num4 = 40;


    答案:A
    解析:final可以修饰局部变量


    解析:虽然是运行时期异常,但是也可以使用try…catch语句进行处理。一旦进入处理语句就不会再回去执行

  • 第8题:

    下列程序编译错误,是由于划线处缺少某个语句,该语句是______。 include class A { pr

    下列程序编译错误,是由于划线处缺少某个语句,该语句是______。

    include<iostream.h>

    class A

    {

    private:

    int numl;

    public:

    A( ):numl(0){}

    A(int i):numl(i){}

    };

    class B

    {

    private:

    int num2;

    public:

    B( ):num2(0){}

    B(int i):num2(i){}

    int my_math(A obj1, B obj2);

    };

    int B::my_math(A obj1,B obj2)

    {

    return(obj1.numl+obj2.num2);

    }

    void main(void)

    {

    A objl(4);

    B obj,obj2(5);

    cout<<"obj1+obj2:"<<obj.my_math(obj1,obj2);

    }


    正确答案:friend class B;
    friend class B; 解析:在B类中出现了对A类中私有成员numl的直接访问,这是不允许的。所以必须要把类B设成类A的友员才可以通过编译。

  • 第9题:

    (36)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

    A)t1=t2;

    B)t2.num1=t1.num1;

    C)t2.mark=t1.mark;

    D)t2.num2=t1.num2;


    正确答案:C

  • 第10题:

    有20个单字节的有符号数,存放在以内存NUM1单元为首地址的存储区中,要求将其取绝对值后,存人到以内存NUM2为首地址的存储区中。请填写下面程序,完成指定功能。 MOV SI,OFFSET NUM1;置源地址指针 MOV DI,OFFSET NUM2;置目的地址指针 MOV CX,() LP:MOV AL,() AND AL,() JNS() NEG() NEXT:MOV[DI],AL ()SI INC() LOOP() INT 3


    正确答案:14H;[SI];AL;NEXT;AL;INC;DI;LP

  • 第11题:

    若数据段中有定义 NUM1 EQU 23H NUM2 DW 0 则指令MOVNUM2,NUM1的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?


    正确答案: 指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM2+1单元的内容是0。

  • 第12题:

    单选题
    以下定义常量不正确的语句是()
    A

    Const Num As Integer=200

    B

    Const  Num1 As Long=200, Sstr$=World

    C

    Const Sstr$=World

    D

    Const Num$=#World#


    正确答案: B
    解析: 暂无解析

  • 第13题:

    有如下程序: #define N2 #define MN+1 #define NUM2*M+1 main() { int i; for(i=1;i<=NUM;i++)printf("%d\n",i);} 该程序中的for循环执行的次数是

    A.5

    B.6

    C.7

    D.8


    正确答案:B
    解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。

  • 第14题:

    在窗体中使用一个文本框名为num1.接受输入值,有一个命令按钮run13,事件代码如下: Private Sub run13_Click If Me!num1 >= 60 Then result = "及格" ElseIf Me!num1 >= 70 Then result = "通过" ElseIf Me!num1 >= 85 Then result = "合格" End If MsgBox result End Sub 打开窗体后,若通过文本框输入的值为85,单击命令按钮,输出结果是 【13】 。


    正确答案:
    及格

  • 第15题:

    阅读以下说明和C++码,填入(n)处。

    [说明]

    建立一个分数类,使之具有下述功能:建立构造函数,它能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。

    [C++代码]

    include<iostream.h>

    include<math.h>

    class Num

    {

    public:

    Num (int a,int b);

    private:

    int num1;

    int num2;

    }:

    Num:: Num (int a,int b)

    {

    if( (1) )

    {

    cout<<"ERROR"<<endl;

    return;

    }

    int min=fabs(a)<fabs (b)?fabs (a): fabs (b);

    int x=1;

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

    if( (2) )

    x=i;

    a/=X;

    b/=x;

    if( (3) )

    {

    a=-a;

    b=-b;

    }

    (4)

    (5)

    }


    正确答案:(1)b==0 (2)a%i==0&&b%i==0 (3)b0 (4)num1=a; (5)num2=b;
    (1)b==0 (2)a%i==0&&b%i==0 (3)b0 (4)num1=a; (5)num2=b; 解析:本题中的代码实现了简单的一个分数类的定义,它的构造函数中能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。根据功能设计要求,仔细阅读代码可以知道a为分子,b为分母。(1)是判断分母b为零的处理;(2)处实现了当分数不是最简形式时进行约分;(3)处避免分母为负数;(4)、(5)处返回处理完毕的数据。

  • 第16题:

    下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。

    例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,

    则输也的最大公约数为27。

    请改正程序中的错误,使它能得出正确结果。

    注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!

    试题程序:


    正确答案:

  • 第17题:

    请编写函数proc(),该函数的功能是:将两个两位数的正整数num1,num2合并形成一个整数放在num中。合并的方式是:将num1数的十位和个位数依次放在num数的十位和千位上,num2数的十位和个位数依次放在c数的百位和个位上。

    例如,当num1=64,num2=18时,调用到该函数后,num=4168。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

    试题程序:


    正确答案:


    【解析】要算出变量num的值,首先需要得到变量num1和hum2个位和十位上的数字。然后将在千位上的数字乘以1000,百位上的数字乘以100,十位上的数字乘以10,各位上的数字乘以1,就能得到要求的hum。

  • 第18题:

    请补充main函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。

    例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填人所编写的若干表达式或语句。

    试题程序:

    include&lt;stdlib.h&gt;

    include&lt;stdio.h&gt;

    void main

    {

    int a,b,numl,num2,t;

    system("CLS"):

    printf("\nInput two numbers:\n");

    scanf("%d,%d",&amp;numl,&amp;num2);

    if(numl&lt;num2)

    {

    a=num2;

    b=num1:

    }

    else

    {

    a=num1;

    b=num2;

    }

    while(【1】)

    {

    t=【2】

    a=b;

    b=t:

    }

    printf(“greatest common divisor:

    %d\n",a);

    printf("least common multiple:

    %d\n",【3】;

    }


    正确答案:

    【1】b!=0【2】a%b[3]numl*num2/a

    【解析】由程序可知,变量b中存放两个正整数中较小的那个数,while循环求两个正整数的公约数。因此【1】填“b!=0”;【2】填“a%b”.【3】处是求两个正整数最小公倍数的表达式,因此【3】填“numl*num2/a”。


  • 第19题:

    阅读一下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某留言板采用ASP+Access开发,其后台管理登录页面如图4-1所示,留言板页面如图4-2所示。

    【问题1】(8分) 以下是该留言板后台管理登录页面的部分html代码,请根据图4-1将(1)-(8)的空缺代码补充完整。 <html> ….. <hera> <title>留言板管理登录</title> </head> <body topmargin=”0”marginheight=”0”> <br> <form method=”post” ______(1)____=”chklogin.asp”> <table border =”0” width=”750” align=center cellspacing=”2” cellpadding=”6”> <tr> …….. <td align=”center”>用户名; <input type=” _____(3)____ ”name=”UserName” size=”20”> </td> </tr> <tr> <td alige=”center”>密&nbsp;码; <input type=”___(4)___” name=”Password”> </td> </tr> <tr> <td align=”center”>验证码; <%dim num1,num2 Randomize DO White Len(num2)<4 Num1=CStr(Chr(57-48)*rnd+48) (5)=num2&num1 (6) (7)(”verifycode”)=num2 %> <input type=”text” name=”Verifycode”><b><span><%=session(”verifycode”)%></span> </b> </td> </tr> <tr> <td align=”center’> <p> <input type=”(8)”name=”Submit’ value=”登录”> </P> …… </html> (1)-(8)的备选答案: A.submit B.action C.text D.</td> E.session F.loop G.num2 H.password 【问题2】(3分) 该留言板数据库采用Access,其数据库名为datA.mdb,留言内容表为content。 请根据留言板要求,在表4-1中给出合适的数据类型。(9)-(11)的备选答案: A.文本 B.备注 C.自动编号 D.日期/时间 【问题3】(4分) 以下是该留言板页面部分代码,请根据题目说明完成该程序,将答案填写在答题纸的对应位置。 <!--include file=conn.asp--> …… <% Set rs2=server.CreateObject(“adodB.recordset”) Rs2.open”select*from__( 12 )____ ” I=0 Do while not rs2.eof I=I+1 Response.Write(“<tr><td><hr><hr><font color=”red“><b>”&__( 13 )____ &“</b>楼 游客 IP:”&rs2(“ip”)& “留言时间:”& rs2(“time”)& ”留言内容↓</font><hr></td></tr></tr><tr> <td align=cener><textarea>“& rs2(” __( 14 )____ ”)& ”</textarea></td></tr>”) Rs2.movenext Loop Rs2. __( 15 )____ 验证码生成 ……. %> <tr valign=middle> <td ”><hr/>我要留言:</td> </tr> ……. ( 12 ) ~ ( 15 ) 的备选答案: A.cont B. close C.content D.I


    正确答案:【问题1】(8分)
    (1)B  
    (2)D 
    (3)C
    (4)H
    (5)G
    (6)F
    (7)E
    (8)A
    【问题2】(3分)
    (9)B
    (10)A
    (11)D
    【问题3】(4分)
    (12)C
    (13)D
    (14)A
    (15)B

  • 第20题:

    在窗体中使用一个文本框(名为num1)接受输入值,有一个命令按钮mn13,事件代码如下:

    Private Sub run13_Click()

    If Me!num1>=60 Then

    result="及格"

    Elself Me!num1>=70 Then

    result="通过"

    ElselfMe!numl>=85 Then

    result="合格"

    End If

    MsgBox result

    End Sub

    打开窗体后,若通过文本框输入的值为85,单击命令按钮,输出结果是【 】。


    正确答案:及格
    及格

  • 第21题:

    以下定义常量不正确的语句是()

    AConst Num As Integer=200

    BConst  Num1 As Long=200, Sstr$="World"

    CConst Sstr$="World"

    DConst Num$=#World#


    D

  • 第22题:

    若在数据段定义:NUM1DW’5D’,则在NUM1单元存放的值为()。

    • A、3544H
    • B、4435H
    • C、00410035H
    • D、00350041H

    正确答案:A

  • 第23题:

    以下定义常量不正确的语句是()

    • A、Const Num As Integer=200
    • B、Const  Num1 As Long=200, Sstr$="World"
    • C、Const Sstr$="World"
    • D、Const Num$=#World#

    正确答案:D

  • 第24题:

    填空题
    对以NUM1为起始地址的字节存储区中存有50个字符,统计非数字字符的个数,并将结果回送到NUM2单元中,请在程序中的空格处填入适当指令使其完整。 XOR BX,BX LEA SI,() MOV CX,() XOR AX,AX AB1: MOV AX,() CMP AL,30H ()AB2 CMP AL,() JA() ()AB3 AB2: INC BL AB3:() LOOP AB1 MOV NUM2,BL INT 3

    正确答案: NUM1,50,[SI],JB,39H,AB2,JMP,INCSI
    解析: 暂无解析