niusouti.com

语言L={ambn|m≥0,n≥1|的正规表达式是(31)。A.a*bb*B.aa*bb*C.aa*b*D.a*b*

题目

语言L={ambn|m≥0,n≥1|的正规表达式是(31)。

A.a*bb*

B.aa*bb*

C.aa*b*

D.a*b*


相似考题
更多“语言L={ambn|m≥0,n≥1|的正规表达式是(31)。A.a*bb*B.aa*bb*C.aa*b*D.a*b* ”相关问题
  • 第1题:

    str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。 例如,str="abcl23de45f967",结果为:l234567。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。 试题程序: include<stdio.h> define M 80 int bb[M]; int proc(char str[],int bb[],int num) { int i,n=0; for(i=0;i<num;i++) { if( 【1】 ) { bb[n]=【2】 ; n++; } } return 【3】 ; } void main { char str[M]; int num=0,n,i; printf("Enter a string:\n"); gets(str); while(str[num]) num++: n=proc(str,bb,num); printf("\nbb="); for(i=0;i<n;i++) printf("%d",bb[i]); }


    正确答案:
    【1】str[i]>=0str[i]<=9【2】str[i]-O【3】n
    【解析】题目中要求把字符串str中的数字字符转换成数字并存放到整型数组bb中。首先,应判断字符串str中每个字符是否是数字字符。因此,【1】处填“str[i]>=0str[i]<=9”将每一个数字字符转化为数字放在整型数组bb中,因此,【2】处填“str[i]-0;由函数proc可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填n。

  • 第2题:

    请补充main函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。 例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。 注意:部分源程序给出如下。 请勿改动函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: include<stdlib.h> include<stdio.h> define M l0 void main { int i,n=0; int arr[M]=(40,68,62,33,35,52,48,95,66,73); int bb[M]; system("CLS"); for(i=0;i<【1】;i++) if(arr[i]<arr[i+1]) 【2】 ; printf("\n***display bb***\n"); for(i=0;i<n;i++) printf("bb[%d]=%2d",【3】); }


    正确答案:
    【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]
    【解析】由整个for循环可知,变量i为数组arr的下标,题目中要求取出前一个元素比后一个元素小的元素,所以只需要判断前M-1个元素即可。因此,【1】处填“M-1”;如果第i个元素比第i+1个元素小,将第1个元素放入数组bb中,因此,【2】处填“bb[n++]=arr[i]”。最后,要输出数组bb中的每一个元素。因此,【3】处填“i,bb[i]”。

  • 第3题:

    语言L={ambn|m≥0,n≥1}的正规表达式是______。

    A.a*bb*

    B.aa*bb*

    C.aa*b

    D.a*b*

    A.

    B.

    C.

    D.


    正确答案:A

  • 第4题:

    请补充main函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组bb中。

    例如,当scorer[N][M]={{83.5,82,86,65,67),{80,91.5,84, 99,95){90.5,95,86,95,97}}时,三个学生的平均分为76.7 89.9 92.7。

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

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

    试题程序:

    include<stdio.h>

    define N 3

    define M 5

    main()

    {

    int i,j;

    static float score[N][M]={{83.5,82,86,

    65,67},{80,91.5,84,99,95},{90.5,95,

    86,95,97}};

    float bb[N];

    clrscr();

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

    【 】;

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

    {

    for (j=0; j<M; j++)

    【 】;

    bb [i]/=M;

    }

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

    print f (" knstudent %d\t average

    =%5.1f",i+l,bb[i]);

    }


    正确答案:bb[i]=0 bb[i]+=score[i][j]
    bb[i]=0 bb[i]+=score[i][j] 解析:第一空:每个人的平均分都保存在数组bb[N]中,所以在使用前要对数组bb的各元素赋初值0。埴中2:为了求出平均分,首先要求出每个学生的总分,并存于数组bb中。

  • 第5题:

    请补充main函数,该函数的功能是:把一维数组中的元素逆置。结果仍然保存在原数组中。

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

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

    试题程序:

    include <stdio.h>

    define N 10

    main ( )

    {

    int i, j, t;

    int bb[N];

    clrscr ();

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

    bb[i]=i;

    printf("\n*** original list ***\n");

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

    printf ("%4d",bb [i] );

    for(【 】; j<=i;【 】)

    {

    t=bb [j ];

    bb [j ] =bb [i];

    bb[i]=t;

    }

    printf("\n****** new list ******\n");

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

    printf ("%4d",bb [i] );

    }


    正确答案:j=0--I j++i-
    j=0,--I j++,i-, 解析:第一空:逆置一维数组元素的思路是,将第一个元素与最后一个元素对调,将第二个元素与倒数第二个元素对调,依此类推,直到中间的元素。所以第一次执行循环时,第一个元素的下标为0,最后一个元素的下标为N-1,而此时i等于N,故要将i减1。第二空:每执行一次循环,顺方向元素向后移动一个,反方向元素向前移动一个,故下标j要加1,下标i要减1。

  • 第6题:

    已知文法G2=(VT={a,b},VN={S,A},S,P),其中P为, S→Sb|Ab A→aSb|ε 该文法生成的语言是(28)。

    A.{ambn|n>m≥0}

    B.{ambn|m>n≥0}

    C.{ambn|n≥m≥1}

    D.{ambn|m≥n≥1}


    正确答案:A
    解析:根据文法G2的产生式A→aSb|ε,用A的产生式推导出终结符号串,如果仅用A→ε,则产生{ε};如果先用若干次A→aSb推导,再用A→ε,则推导过程如下:因此,由A生成的终结符号集合是{ambm|m>0}。从S出发使用产生式S→Sb|Ab进行推导,或者。最后,L(G2)={ambm|m0}连接{bk|k>0}={ambm+k|m+k>m0}={ambn|n>m0}。

  • 第7题:

    已知a=00l0l0l0B和b=40D,下列关系式成立的是

    A.a>b

    B.a=b

    C.a<b

    D.不能比较


    正确答案:A
    解析:00101010B=(0×27+0×26+1×25+0×24+1×23+0×22+1×21+0×20D=42D,故a>b

  • 第8题:

    不能正确表示条件“两个整型变量A和B之一为0,但不能同时为0”的布尔表达式是 ( )。

    A.A*B=0 And A<>B

    B.(A=0 Or B=0)And A<>B

    C.A=0 And B<>0 Or A<>0 And B=0

    D.A*B=O And(A=0 Or b=0)


    正确答案:D

  • 第9题:

    请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。

    例如,输入6和21,则输出为:7 11 13 17 19 21。

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

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

    试题程序:

    include<conio. h>

    include<stdio. h>

    define N 1000

    int fun (int n, int m, int bb [N])

    {

    int i, j, k=0, flag;

    for (j=n; j<=m; j++)

    {

    【 】;

    for (i=2; i<j; i++)

    if(【 】)

    {

    flag=0;

    break;

    }

    if(【 】)

    bb [k++] =j

    }

    return k;

    }

    main ()

    {

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

    int bb[N];

    clrscr ();

    printf ("Input n\n");

    scanf ("%d", &n);

    printf ("Input m\n");

    scanf ("%d", &m);

    for (i=0; i<m-n; i++)

    bb[i]=0;

    k=fun (n, m, bb);

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

    printf ("%4d",bb [i]);

    }


    正确答案:I p->next=s p->next
    I p->next=s p->next 解析:第一空:题目要求各结点的值为对应的下标,头结点的值为0,其他结点的值从1开始,所以此空应填i。第三空:为了将结点p和结点s连接起来,应将结点p的next 指针指向结点s。第三空:为了通过for 循环形成链表,每执行完一次循环操作,都要将指针p 指向下一个结点。

  • 第10题:

    str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。

    例如,str="abc3de987f9621",结果为:3987621。

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

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

    试题程序:

    include<stdio.h>

    define M 80

    int bb[M];

    int proc(char str[],int bb[],int num)

    {

    int i,n=0;

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

    {

    if(【1】)

    {

    bb[n]=【2】:

    n++:

    }

    }

    return 【3】 ;

    }

    void main

    {

    char str[M];

    int mum=0,n,i;

    printf("Enter a strin9:\n");

    gets(str);

    while(str[num])

    num++:

    n=proc(str,bb,num);

    printf("\nbb=");

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

    printf("%d",bb[i]);

    }


    正确答案:

    【1】str[i]>='0'&&str[i]<='9 '
    【2】str[i]-'0'
    【3】n
    【解析】题目中要求把字箱串str中的数字字符转换成数字并存放到整型数组bb中。首先应判断字符串str中每个字符是否为数字字符,因此【1】填“str[i]>=' 0 ' &&str[i]<='9'”;将每一个数字字符转化为数字放在整型数组bb中,因此【2】填“str[i]-'0'”;由函数proc可知,变量n中存放的是整型数组bb中元素的个数,最后要返回到主函数中,因此【3】填“n”。

  • 第11题:

    已知文法G1=(VT={a,b,d},VN={S,A,B},S,P),其中P为, S→dAB A→aA|a B→bB|ε 该文法生成的语言是(28)。

    A.{dambn|m≥0,n≥O}

    B.{dambn|m≥1,n≥0}

    C.{dambn|m≥0,n≥1}

    D.{dambn|m≥1,n≥1}


    正确答案:B
    解析:已知文法G=(VT,VN,S,P),它所产生的语言定义如下:若有S(11)w,则称w是文法G的一个句型。仅含终结符的句型是一个句子。语言L(G)是由文法G产生的所有句子组成的集合:L(G)={w|Sw且w∈VT*}推导的定义如下:设文法G=(VT,VN,S,P),A→β∈P,γ,δ∈V*,则稀γAδ直接推导出γβδ,表示成这个定义告诉我们,若知道γAδ∈V*,根据A→β∈,可求出γβδ∈V*,方法是用A→β的右部β替换γAδ中的A得到γβδ;相反,若知道γβδ∈V*,根据A→β∈P,可求出γAδ∈V*,方法是用A→p的左部A替换γβδ中的β得到γAδ。若存在一个推导序列:,则称从a0经n步推导出an,表示成根据文法G1的第1条规则S→dAB知道,文法G1产生的句子的第1个字符是d,后跟着由A产生的终结字符串,再后边跟着由B产生的终结字符串。根据文法G1的第2条规则A→aA|a知道,由A产生的终结字符串是{am|m1};根据B的规则B→bB|ε知道,由B产生的终结字符串是{bn|0}。因此,L(G1)={dambn|m1,n0}。

  • 第12题:

    绿色食品标准的技术等级有( )。

    A.A级
    B.B级
    C.AA级
    D.BB级
    E.AAA级

    答案:A,C
    解析:
    本题考查绿色食品认证的标准依据。绿色食品标准分为两个技术等级,即AA级绿色食品标准和A级绿色食品标准。

  • 第13题:

    ●语言L={ambn│m≥0,n≥1}的正规表达式是 (31) 。

    (31) A.a*bb*

    B.aa*bb*

    C.aa*b*

    D.a*b*


    正确答案:A

     

  • 第14题:

    请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。

    例如,输入aeiouAOUpqn,结果为A∶2 E∶1 1∶1 O∶2 U∶2 Other∶4。

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

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

    试题程序:

    include<stdiO.h>

    include<conio.h>

    define N 100

    void fun(char *str,int bb[ ])

    {

    char *p=str;

    int i=0;

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

    【 】;

    while(*p)

    {

    switch(*p)

    {

    case 'A':

    case 'a':bb[0]++;break;

    case 'E':

    case 'e':bb[1]++;break;

    case 'I':

    case 'i':bb[2]++;break;

    case 'O':

    case 'o':bb[3]++;break;

    case 'U':

    case 'u':bb[4]++;break;

    default:【 】;

    }

    【 】

    }

    }

    main()

    {

    char str[N),ss[6]="AEIOU";

    int i;

    int bb[6];

    clrscr();

    printf("Input a string:\n");

    gets(str);

    printf("the string is:\n");

    puts(str);

    fun(str,bb);

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

    printf("\n%c:%d",ss[i],bb[i]);

    printf("\nother:%d",bb[i]);

    }


    正确答案:bb[i]=0 bb[5]++ p++;
    bb[i]=0 bb[5]++ p++; 解析:第一空:数组bb[6]用来存放5个元音字母和其他字符的个数,在使用之前需要清零。第二空:数组元素bb[5]用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。第三空:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。

  • 第15题:

    语言L={ambn|m≥0,n≥1}的正规表达式是什么()。

    A.a*bb*

    B.aa*bb*

    C.aa*b*

    D.a*b*


    正确答案:A

  • 第16题:

    请补充main函数,该函数的功能是:把一个整数插入到一个已经按从小到大排序的数组中。插入后,数组仍然有序。

    例如,在数组bb[N]={12,23,31,44,51,63,71,79,85,95}中插入93,结果为:

    bb[N]{11,21,31,41,51,61,7l,79,8l,93,95}

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

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

    试题程序:

    include<std/o. h>

    define N 10

    main()

    {

    int i,j;

    int n;

    int bb IN+l] ={ t2,23, 31, 44, 51, 63, 71,

    79,85,95};

    clrscr ();

    printf("\nInput n \n");

    scanf ("%d", &n);

    printf ("\nn=%d ",n);

    printf("\n*** original list ***In");

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

    printf ("%4d ",bb [ii );

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

    {

    if (n<=bb [i ] )

    {

    for(j=N;【 】;j--)

    【 】;

    bb [j] =n;

    【 】;

    }

    if (i=N)

    bb[i]=n;

    printf("\n***** new list ******In");

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

    printf ("%4d ",bb [i]);

    }


    正确答案:j>I bb[j]=bb[j-1] break
    j>I bb[j]=bb[j-1] break 解析:第一空:因为原数组是按从小到大排列,所以从第一个元素开始,遂一与待插入的元素进行比较,第一个大于待插入元素n的元素bb[i]的下标i即为插入位置。所以,从bb[i]到bb[N-1]都要依次向后移动一个位置,使待插入元素n存于bb[i]。
    这里,for循环中j取值从N到i+1。填空i+1。为了实现从bb[i]到bb[N-1]依次向后移动一个位置,将当前元素赋给下一个元素,要注意,为了不覆盖未经处理的元素,应该从最后一个元素开始移动。第三空:将整数n插入数组后,函数功能已经实现,应使用break语句跳出for循环。

  • 第17题:

    已知文法 G:S→WZW→X|YX→a|aXY→b|bYZ→c|cZ,G 定义的语言的相应正规式为() 。

    A.aa*|bb*|cc*

    B.(aa*|bb*)cc*

    C.aa*(bb*|cc*)

    D.(a|b|c)*


    正确答案:B

  • 第18题:

    有如下程序:

    #include<iostream>

    using namespace std;

    class AA{

    public:

    AA(){tout<<‘l’;}

    };

    class BB:public AA{

    int k;

    public:

    BB():k(0){cout<<…2;}

    BB(int n):k(n){cout<<‘3’;}

    };

    int main(){

    BB b(4),C;

    return 0;

    }

    A.1312

    B.132

    C.32 D、1412


    正确答案:A
    解析:定义BB b(4)时先执行基类的构造函数,输出‘1’,在执行:BB类的第二个构造甬数,输出‘3’;定义c时先执行基类的构造函数输出‘1’,在执行BB类的第一个构造函数输出‘2’。共输出“1312”,故选A)。

  • 第19题:

    语言的正规表达式是(21) 。

    A.aa*bb*

    B.a*bb*

    C.aa*b*

    D.a*b*


    正确答案:B
    由于m的值大于等于0,因此a的个数可能没有,也可能是多个,与之对应的是a*,而n的值是大于等于1的,因此至少有一个b,那么与之对应的就是bb*,所以本题答案选B。

  • 第20题:

    请补充main函数,该函数的功能是:输出一个N×N矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。

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

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

    试题程序:

    include<stdio. h>

    define N 10

    main ( )

    {

    int bb[N] [N];

    int i, j,n;

    clrscr ();

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

    scanf ("%d", &n);

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

    for (j=0; j<n; j++)

    {

    【 】;

    if (i==j)

    bb[i] [j]=【 】;

    if (【 】)

    bb[i] [j]=1;

    }

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

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

    {

    printf (" \n\n");

    for (j=0; j<n; j++)

    printf ("%4d",bb [i] [j] );

    }

    }


    正确答案:bb[i][j]=0 1 j==n-1-i
    bb[i][j]=0 1 j==n-1-i 解析:第一空:本题的解题思路是先将所有元素都置0,然后再将对角线上的元素置1。所以此空是先将当前元素置0。
    第二空:如果当前元素的下标i和j相等,则此元素是主对角线元素,要将它赋值为1。第三空:如果当前元素的下标i和j满足关j==n-1-i,则此元素也是对角线元素,也要将它赋值为1。

  • 第21题:

    语言L={0m1n|m≥1,n≥1)的正规表达式是(27)。

    A.*

    B.*

    C.*

    D.*


    正确答案:D
    解析:先考虑字和字集的运算。设α,β是∑上的字,则:连接:字α,β的连接αβ是把字β写在字α之后。显然,εα=αε=α。方幂:把连接看作字的乘运算,字α自身连接n次得到的字称为α的n次方幂,记为αn,那么α0=ε,α1=α,αn/sup>=ααn-1=αn-1α(n>0)。以下是字集运算,设L,M是∑上的字集,则并:LUM={w|w∈L或w∈M}。积(连接):LM={w1w2|w1∈L且w2∈M}。幂:L0={ε},Ln=LLn-1=Ln-1L(n>0)。闭包:L*=L0∪L1∪L2∪L3∪…。0*表示集合({0})*={ε,0,00,000,…,0m/sup>,…}={0m/sup>|m0}。0*1*表示集合({0))*({1))*={0m/sup>1n/sup>|m0,n0}。00*表示集合{0}({0))*={0}{ε,0,00,000,…,0m/sup>,…)={0,00,000,…,0m/sup>,…}={0m/sup>|m1}。00*11*={0m/sup>1n/sup>|m1,n1)。

  • 第22题:

    已知文法G[S]:S→A0|B1,A→S1|1,B→S0|0,该文法属于乔姆斯基定义的(18)文法,它不能产生串(19)。

    语言L={ambn|m≥0,n≥1)的正规表达式是(20)。

    一个文法G=(N,T,P,S),其中N是非终结符号的集合,T是终结符号的集合,P是产生式集合,S是开始符号,令集合V=N∪T,那么G所描述的语言是(21)的集合。

    程序设计语言引入“类”的概念是为了解决数据保护问题。C++语言将类的成员封装在类体之中,使之具有一定的存取规则,这些规则规定了存取类的成员的权利,其中对于用Private说明的成员,它(22)。

    A.0型

    B.1型

    C.2型

    D.3型


    正确答案:D

  • 第23题:


    A.A→B
    B.B→C
    C.A→B和B→C都是
    D.A→B和B→C都不是

    答案:A
    解析: