阅读以下说明和C++代码,将解答写入对应栏内。【说明】请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。【程序】文件search.cpp的内容如下:include <iostream. h >int SeqSearch( int list[ ] ,int start,

题目

阅读以下说明和C++代码,将解答写入对应栏内。

【说明】

请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。

【程序】

文件search.cpp的内容如下:

include <iostream. h >

int SeqSearch( int list[ ] ,int start,int n,int key)

{

for(int i=start;i<=n;i++) //(1)

{

if( list[i] = key)//(2)

{

return i;

}

}

return -1;

}

void main( )

{

int A[10]

int key,count=0,pos;

cout <<" Enter a list of 10 integers:";

for(pos=0;pos<10;pos++)

{

cin >>A; //(3)

}

cout <<" Enter a key; ";

cin >> key;

pos=0;

while(( pos = SeqSearch ( A, pos, 10, key)) !=-1 )

{

count ++;

pos ++;

}

cout<<key<<"occurs" <<count<< (count!=1?" times":" time") <<" in the list,"

<< endl;

}

第一种情况:输入2 3 12 6 8 45 8 33 7输入key:8

输出:(4)

第二种情况:输入2 3 126 8 45 8 33 7输入k6y:9

输出:(5)


相似考题
更多“阅读以下说明和C++代码,将解答写入对应栏内。【说明】 请编写一个函数int SeqSearch(int list[],int ”相关问题
  • 第1题:

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

    [函数2.1说明]

    函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。main()中给出了调用find函数的一个实例。

    [函数2.1]

    include<stdio.h>

    void find(int *a, int n,int *max,int * min)

    { int i;

    *max =* min=0;

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

    if(a[i]>a[* max]) (1);

    else if(a[i]<a[*min]) (2);

    return;

    main()

    { int a[]={4,6,8,9,0,6},max,min;

    find(a,6,(3));

    printf("%5d%5d\n", max,min);

    }

    [函数2.2说明]

    以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是abcdefg和abceef,则输出为abc。

    [函数2.2]

    include <stdio.h>

    main()

    { char str1[100],str2[100],str[100],c;

    int i=0,s;

    printf("\nInput string 1:");gets(str1);

    printf("\nInput string 2:");gets(str2);

    while(((4))&&(str1[i]!='\0')&&(str2[i]!='\0')){

    (5);

    i++;

    }

    printf("%s\n",str);

    }


    正确答案:(1) * max=i (2) * min=i (3) &max&min (4) str1[i]= =sir2[i] (5) str[i]=str1[i]或str[i]=str2[i]
    (1) * max=i (2) * min=i (3) &max,&min (4) str1[i]= =sir2[i] (5) str[i]=str1[i]或str[i]=str2[i] 解析:(1)若下标i的数大于当前的最大值,则更新最大元的下标;
    (2)若下标i的数小于当前的最小值,则更新最小元的下标;
    (3)根据find函数对形参的要求,此处应传递max和 min的地址;
    (4)此循环用于获取str1和str2从前端起的公共部分,一旦两字符串在某位置上不等即刻退出循环;
    (5)所求的公共子串应保存于str,因此在循环过程中应不断取出公共部分的每一个字符。

  • 第2题:

    阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
    【说明】
    以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5-1所示。




    【Java代码】
    interface?DrawCircle?{? //绘制圆形 public(1) ;}class?RedCircle?implements?DrawCircle?{? ?//绘制红色圆形???????public?void?drawCircle(int?radius,intx,?int?y)??{????????????System.out.println("Drawing?Circle[red,radius:"?+?radius?+",x:"?+?x?+?",y:"?+y+?"]");???????}}class?GreenCircle?implements?DrawCircle?{????//绘制绿色圆形??????public?void?drawCircle(int?radius,?int?x,int?y)?{???????????System.out.println("Drawing?Circle[green,radius:"?+radius+",x:?"?+x+?",y:?"?+y+?"]");??????}}abstract?class?Shape?{????//形状? protected? ? (2)???;? ? public?Shape(DrawCircle?drawCircle)?{? ?this.drawCircle=?drawCircle;? ? ? public?abstract?void?draw();}class?Circle?extends?Shape?{? //圆形? ?private?int?x,y,radius;? public?Circle(int?x,int?y,intradius,DrawCircle?drawCircle)?{? ?(3)???;? this.x?=?x;? ? ? this.y?=?y;? ?this.radius?=radius;? }? ? ?public?void?draw()?{? ? drawCircle.? ?(4)? ?;? ? ? }}public?class?DrawCircleMain?{? public?static?void?main(String[]?args)?{? Shape?redCircle=new?Circle(?100,100,10,? (5) );//绘制红色圆形? Shape?greenCircle=new?Circle(200,200,10,(6) );//绘制绿色圆形? ?redCircle.draw(); greenCircle.draw();? ?}}


    答案:
    解析:
    (1)void drawCircle (int radius,int x,int y)
    (2)DrawCircle drawCircle
    (3)super.drawcircle=drawcircle
    (4)drawCircle(radius,x,y)
    (5)new RedCircle()
    (6)new GreenCircle()【解析】
    第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
    第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
    第三空这里用super,用super. drawcircle来引用父类的成员。
    第四空调用drawCircle(radius,x,y)方法。
    第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。

  • 第3题:

    这道题是给使用C/C++语言的同学准备的。使用其他语言的同学,随便猜一项答案就好啦。 以下C/C++代码: void func(_______ , int); int main(){ int array[10][20]; int n; // 省略array和n的初始化 func(array, n); return 0; } 第1行的函数原型(函数声明)中,______部分的第一个参量应该是

    A.int [ ][ ]

    B.int **

    C.int *[20]

    D.int (*)[20]


    %

  • 第4题:

    阅渎以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。 【说明】函数bubbleSort(int arr [ ] int n, int (*compare)(int, int)的功能是根据调用时传递的比较函数 compare 对数組arr的前n个元素进行排序。 【C代码】

    #define swap(a,b){a=a^b;b=a^b;a=a^b //交换a与b 的值int less(int x, int y){ return((xy)?1: 0);} void bubble Sort(int arr[ ], int n, int (*compare)(int, int)){ int i,j; int swapped= 1; for( i= 0; swapped; 1++) { swapped =0; for(j=0; j
    【问题1】设有如下数组定义:int data1[ ]={4,2.6.3,1};int data2[ ]={4,2,6.3,1}int datas3[ ]={4,2,6.3,1}请分别给出下面的函数调用执行后,数组 data1、data2和 data3 各自的元素序列。(1)bubble Sort(data1, 5, less);(2)bubbleSort(data2, 5, larger)(3)bubbleSort(data3, 3, larger)


    答案:
    解析:
    (1){1,2,3,4,6}(2){6,4,3,2,1}(3){6,4,2,3,1}
    【解析】

    swp 函数是将两元素值进行相互交换。less 数是判断x和y 的关系,如果 xy,则函数值为真; 在)bubbleSort函数中,第二个参数表示进行比素的个数,第三个参数表示进排序的方式,如果传入less函数,则是从小到大排序;如果传入large函数,则是从大到小排序。

  • 第5题:

    阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
    【说明】
    以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图6-1所示。



    【C++代码】
    #include?#include?using?namespace?std;class?DrawCircle?{??????//绘制圆形,抽象类? ? ? public: (1);//定义参数为?int?radius,?int?x,?inty? ?virtual~DrawCircle()?{?}};class?RedCircle:public?DrawCircle?{????//绘制红色圆形? ? ? ? public: void?drawCircle(intradius,?int?x,?int?y)?{cout?<?drawCircle?=?drawCircle;? }? ?virtual~shape()?{?}? public:? ?virtual?void?draw()?=?0;};class?Circle:public?Shape?{????//圆形? ? private:? ? ?int?x,y,radius;? ? public:? Circle(int?x,inty,int?radius,DrawCircle?*drawCircle)? (3)? {? this->x?=?x;? ?this->y?=?y;? ? this->radius?=?radius; }? ? ? public:? void?draw(){? drawCircle?-> (4); }};int?main(){Shape?*redCirclenew?Circle(100,100,10,????(5)????);//绘制红色圆形? Shape?*greenCircle=new?Circle(100,100,10, (6)??);//绘制绿色圆形redCircle >draw();? ?greenCircle?->draw();? ?return?0;}


    答案:
    解析:
    (6)(1)void drawCircle (int radius,int x,int y)
    (2)DrawCircle*drawCircle
    (3)drawcircle
    (4)drawCircle(radius,x,y)
    (5)new RedCircle()
    (6)new GreenCircle()【解析】
    第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
    第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
    第三空这里填drawcircle,用-> drawcircle来引用父类的成员。
    第四空调用drawCircle(radius,x,y)方法。
    第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。