30、数据段和附加段分别定义字符串变量STR1和STR2如下,其中,变量STR1和STR2的偏移地址都为0。 STR1 DB ‘Hello1ABC‘ STR2 DB ‘Hello2ABC’ 则执行以下程序段后,SI=______H,AL=______H。 (注:(1)字符全部大写,并且为半角字符。(2)答案和答案之间用一个半角空格分开。) LEA SI,STR1 LEA DI,STR2 MOV CX,9 CLD REPE CMPSB JZ STOP DEC SI MOV AL,[SI] STOP:

题目

30、数据段和附加段分别定义字符串变量STR1和STR2如下,其中,变量STR1和STR2的偏移地址都为0。 STR1 DB ‘Hello1ABC‘ STR2 DB ‘Hello2ABC’ 则执行以下程序段后,SI=______H,AL=______H。 (注:(1)字符全部大写,并且为半角字符。(2)答案和答案之间用一个半角空格分开。) LEA SI,STR1 LEA DI,STR2 MOV CX,9 CLD REPE CMPSB JZ STOP DEC SI MOV AL,[SI] STOP:


相似考题
更多“30、数据段和附加段分别定义字符串变量STR1和STR2如下,其中,变量STR1和STR2的偏移地址都为0。 STR1 DB ‘Hello1ABC‘ STR2 DB ‘Hello2ABC’ 则执行以下程序段后,SI=______H,AL=______H。 (注:(1)字符全部大写,并且为半角字符。(2)答案和答案之间用一个半角空格分开。) LEA SI,STR1 LEA DI,STR2 MOV CX,9 CLD REPE CMPSB JZ STOP DEC SI MOV AL,[SI] STOP:”相关问题
  • 第1题:

    以下程序段的作用是将STR1的后【 】个数据传送到STR2中。

    STR1 DB 300 DUP(?)

    STR2 DB 100 DUP(?)

    MOV CX,100

    MOV BX,200

    MOV SL,0

    MOV DI,0

    NEXT:MOV AL,STRl1[BX][SI]

    MOV STR2[DI],AL

    INC SI

    INC DI

    LOOP NEXT


    正确答案:100
    100

  • 第2题:

    请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。

    例如:str1=“How do”,str2=“you do?”,结果输出: How do you do?

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

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

    试题程序:

    include<stdio.h>

    include<conio.h>

    define N 40

    void fun(char*str1,char *str2)

    {

    int i=0;

    char *pl=str1;

    char*p2=str2;

    while(【 】)

    i++;

    for(;【 】;i++)

    *(p1+i)=【 】;

    *(p1+i)='\0';

    }

    main()

    {

    char str1[N],str2[N);

    clrscr();

    printf("*****Input the string str1 & Str2*****\n");

    printf("\nstr1:");

    gets(str1);

    printf("\nstr2:");

    gets(str2);

    printf("**The string str1 & str2**\n");

    puts(str1);

    puts(str2);

    fun(str1,str2);

    printf("*****The new string *****\n");

    puts(str1);

    }


    正确答案:*(p1+i) *p2 *p2++
    *(p1+i) *p2 *p2++ 解析:第一空:变量i用来记录字符串str1的长度,当指针指列宁符串str1结束标志符‘\0’时,while循环结束,变量 i停止累加。第二空:指针p2指向字符串str2,通过for循环将字符中str2按在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘\0’。第三空:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将宁符串str2接在str1后面的功能。

  • 第3题:

    下面的程序段 DAT DB 1,2,3,4 MOV AL,0 MOV CX,4 MOV SI,3 LP: ADD AL,DAT [SI] DEC SI LOOPE LP HLT 执行结束后,AL和CX寄存器中的内容分别是

    A.4和3

    B.7和2

    C.9和1

    D.10和0


    正确答案:A
    解析:该题考查考生对汇编指令的理解。LOOPE循环指令只有在ZF=1且CX> 0时,才进行循环,本题中当执行到LOOPE指令时,ZF=0而且CX=3,不满足循环条件,所以退出循环,此时AL和CX的值分别是4和3,所以应该选择A。

  • 第4题:

    执行下列指令后: STR1 DW ‘AB’ STR2 DB 16 DUP(?) CNT EQU $ -STR1 MOV CX,CNT (CL)= ( )

    A.10H

    B.12H

    C.OEH

    D.0FH


    正确答案:B
    解析:由于STR1为2字节,STR2为16字节,故CX=CNT=$-STR1=2+16=180

  • 第5题:

    执行下列指令后,(CL)=______。 STR1 DW 'AB' STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT

    A.10H

    B.0EH

    C.12H

    D.0FH


    正确答案:C

  • 第6题:

    下面几个字符串处理表达式中能用来把字符串str2复制到字符串str1后的是()。

    A.strcat(str1,str2);

    B.strcat(str2,str1);

    C.strcpy(str1,str2);

    D.strcmp(str1,str2);


    正确答案:C

  • 第7题:

    函数strcpy(str1,str2)是将字符串str2连接到字符串str1之后。


    正确答案:错误

  • 第8题:

    假如有字符串str1和字符串str2,下列选项不能利用于比较这两个字符串是否相等的是()。

    • A、string.Compare(str1,str2)
    • B、str1= =str2
    • C、string.Equals(str1,str2)
    • D、string.CompareTo(str1,str2)

    正确答案:D

  • 第9题:

    如果strcmp(str1,str2)的返回值为0,则说明()

    • A、str1比str2大
    • B、str1比str2小
    • C、str1与str2相等
    • D、字符串无法比较

    正确答案:C

  • 第10题:

    函数调用strcat(strcpy(str1,str2),str3)的功能是()

    • A、将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
    • B、将字符串str1复制到字符串str2中后再连接到字符串str3之后
    • C、将字符串str1复制到字符串str2中后再复制到字符串str3之后
    • D、将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

    正确答案:A

  • 第11题:

    设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()

    • A、str1=”Fujian”
    • B、strcpy(str1,str2)
    • C、strcpy(str2,str1)
    • D、str1=str2

    正确答案:B

  • 第12题:

    单选题
    假如有字符串str1和字符串str2,下列选项不能利用于比较这两个字符串是否相等的是()。
    A

    string.Compare(str1,str2)

    B

    str1= =str2

    C

    string.Equals(str1,str2)

    D

    string.CompareTo(str1,str2)


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

  • 第13题:

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

    [函数2.1说明]

    函数strcpy的功能是将字符串str2的内容复制到字符申str1。

    [函数2.1]

    (1) strcpy (char *slr1, const char *str2)

    { char * temp;

    while( * str2!='\0') *cp++ =(2);

    (3)='\0';

    return str1;

    }

    [函数2.2说明]

    函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。

    [函数2.2]

    int strcmp(const char *str1, const char *str2)

    { while( *str1= =* str2) {

    if(* s1= =(4)) return 0;

    s1++;

    (5);

    }

    if( *str1<*str2) return -1;

    return 1;

    }


    正确答案:char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2
    char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2 解析:(1)根据函数说明,char *是函数strcpy的返回值类型;
    (2)while循环是字符串复制的关键,它将str2的字符一个个复制到cp;
    (3)字符复制完成后,应在字符串cp的末尾添加结束符;
    (4)~(5):while循环的功能是从字符串首开始逐个比较str1和str2的每一字符,如果循环一直执行到两字符串末尾,则说明两串相等,应返回0值。

  • 第14题:

    请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。

    例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。

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

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

    试题程序:

    include< stdio, h>

    include<conio. h>

    define N 80

    char *fun (char *str1,char *str2)

    {

    char *p1=str1, *p2=str2;

    while (*p1 & & *p2 )

    {

    if (【 】)

    return "<";

    if(【 】)

    return ">";

    p1++;

    p2++;

    }

    if (*p1=*p2)

    return "==";

    if (*p1==【 】)

    return "<";

    else

    return ">";

    }

    main()

    {

    char str1 [N], str2 [N];

    clrscr ();

    printf ("Input str1: \n");

    gets (str1);

    printf ("Input str2: \n");

    gets (str2);

    printf ("\n*****the result*****\n");

    printf ("\nstr1 %s str2", fun (str1, str2) );

    }


    正确答案:*p1*p2 *p1>*p2 \0’
    *p1*p2 *p1>*p2 \0’ 解析:第一空:比较两个字符串的大小,是从第一个字符开始比较,如果两字符不相等,则由字符的大小决定字符串 P2指向字符串str2,如果p1所指的字符小于p2所指的字符,则字符串str1小于字符串str2。第三空:如果p1所指的字符大于p2所指的字符,则字符串str1 大于字符串str2。第三空:如果str1是str2 的前一部分,则str1 的所有字符都等于str2 中的对应字符,而字符串结束标记符‘\0’小于其他字符,所以,这里如果p1所指的字符等于‘\0’,则表示字符串str1小于字符串str2。

  • 第15题:

    请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。

    例如:str1=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。

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

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

    试题程序:

    include<stdio.h>

    include<conio.h>

    define N 40

    void fun(char *str1,char *str2)

    {

    int i=0,j=0,k=0,n;

    char ch;

    char *p1=str1;

    char *p2=str2;

    while(*(p1+i))

    i++;

    while(*(p2+j))

    j++;

    n=【 】;

    for(;k=j/2;k++,j--)

    {

    ch=*(p2+k);

    *(p2+k)=*(p2+j);

    *(p2+j)=ch;

    }

    【 】;

    for(;【 】;i++)

    *(p1+i)=*p2++;

    *(p1+i)='\0';

    }

    main()

    {

    char str1[N],str2[N];

    int m,n,k;

    clrscr();

    printf("***Input the string str1 & str2

    ***\n");

    printf("\nstr1:");

    gets(str1);

    printf("\nstr2:");

    gets(str2);

    printf("***The string str1 & str2 ***\n");

    puts(str1);

    puts(str2);

    fun(str1,str2);

    printf("*** The new string ***\n");

    puts (str1);

    }


    正确答案:j-- *(p2+n)='\0' *p2
    j-- *(p2+n)='\0' *p2 解析:第一空:while循环执行后,变量j中保存了字符串str2的长度,而后面的for循环是将字符串str2倒置,即将第一个字符与最后一个字符对调,第二个字符与倒数第二个字符对调,如此循环直到中间的字符。第一次执行循环时,*(p2+j)指向最后一个字符,所以j要减1,并将未减1之前的数赋给n。第二空:将字符串str2倒置后,在字符串的最后要加上结束标记符,'\0'。第三空:当*p2所指的字符为,'\0'时,说明已经将倒置后的字符串str2都接在字符串str1后面了,for循环应该结束。当*p2所指的为其他字符时,for循环要继续执行。

  • 第16题:

    函数调用strcat(strcpy(str1,str2),str3)的功能是( )。

    A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

    B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

    C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后

    D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中


    正确答案:C
    strcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证sl的容量。

  • 第17题:

    函数调用“streat(strcpy(str1,str2),str3)”的功能是 ______。

    A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

    B.将字符串str1连接到字符串str2中后再复制到字符串str3之后

    C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

    D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


    正确答案:C

  • 第18题:

    下列程序的输出结果是 ()。 #include  #include   main( ) {    int i=0;    char str1[10]=“1234”, str2[10]= “567”;    strcat(str1,str2);    while(str2[i++]!=‘/0’)     str2[i]=str1[i];    puts(str2);   }


    正确答案:5234567

  • 第19题:

    有变量定义语句“Dim Str1,Str2 As String *10”,其中Str1变量的类型应为(),其中Str2变量的类型应为()。


    正确答案:变体型;字符串型

  • 第20题:

    设有两字符串“Good”、“Morning”分别存放在字符数组str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是()

    • A、strcpy(str1,str2)
    • B、strcpy(str1,"Morning")
    • C、strcat(str1,"Morning")
    • D、strcat("Good",str2)

    正确答案:C

  • 第21题:

    在C语言中,将字符串str2连接到str1尾部的操作正确的是()

    • A、str1=str2
    • B、strcpy(str1,str2)
    • C、str1+str2
    • D、strcat(str1,str2)

    正确答案:D

  • 第22题:

    程序段如下: BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7 LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后: (AL)=? (BL)=?


    正确答案: (AL)=-5或0FBH
    (BL)=14H或20

  • 第23题:

    填空题
    有变量定义语句“Dim Str1,Str2 As String *10”,其中Str1变量的类型应为(),其中Str2变量的类型应为()。

    正确答案: 变体型,字符串型
    解析: 暂无解析

  • 第24题:

    单选题
    设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()
    A

    str1=”Fujian”

    B

    strcpy(str1,str2)

    C

    strcpy(str2,str1)

    D

    str1=str2


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