niusouti.com

下列程序段实现的是顺序查找功能()intSearch(intarray[],intn,intkey){inti;array[n]=key;for(i=0;key!=array[i];i++);return(in?i:-1);}。()此题为判断题(对,错)。

题目
下列程序段实现的是顺序查找功能()intSearch(intarray[],intn,intkey){inti;array[n]=key;for(i=0;key!=array[i];i++);return(in?i:-1);}。()

此题为判断题(对,错)。


相似考题
更多“下列程序段实现的是顺序查找功能()intSearch(intarray[],intn,intkey){inti;array[n]=key;for(i=0;key!=array[i];i++);return(in?i:-1);}。() ”相关问题
  • 第1题:

    阅读以下说明和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)


    正确答案:(1)for(int i=start;in;i++) (2)if(list[i]==key) (3)cin>>A[pos] (4)8 occurs 2 times in the list (5)9 occurs 0 time in the list
    (1)for(int i=start;in;i++) (2)if(list[i]==key) (3)cin>>A[pos] (4)8 occurs 2 times in the list (5)9 occurs 0 time in the list 解析:数组下标从0开始,所以n次循环要在i=n-1时结束,而不是在i=n时结束。判断是否相等使用“==”,一个等号是赋值。将输入数字逐个赋给A的pos处的元素。8出现2次,注意结果中的 times。9出现0次,注意结果中的time。

  • 第2题:

    以下函数的功能是计算n!,请完善程序。 long mul(int n) { int i=1; long sum; if(n==0) return 1; else sum=1; while(i<=n) { sum= ; i++; } return sum; }


    (1)错误:result*=--n; 正确:result*=n--;(2)错误:return; 正确:return result; (1)错误:result*=--n; 正确:result*=n--;(2)错误:return; 正确:return result; 解析:该题采用循环语句计算n的阶乘。当n大于1且小于170时,令result与n相乘,同时n自动减1,循环至n=2(n=1时无需相乘):注意:o和1的阶乘都等于1,可用条件语句和循环语句实现上述功能。

  • 第3题:

    下面程序的功能是求数组中所有元素之和,根据现有代码,请问修改哪一行代码可以解决所求问题()。#include <stdio.h> int main() { float array[5]={0}; float sum=0; int i; for(i=0;i<5;i++) scanf("%f",&array[i]); for(i=1;i<=5;i++) sum+=array[i]; printf("sum=%fn",sum); return 0; }

    A.第10行 sum+=array[i];

    B.第4行 float array[5]={0};

    C.第5行 float sum=0;

    D.第7行 for(i=0;i<5;i++)


    C

  • 第4题:

    下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。 include inelude

    下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。

    include<iostream. h>

    inelude<iomanip, h>

    template<class T>

    class Array

    {

    T * elems;

    int size;

    public:

    Array(int.s);

    ~Array()

    T& operator[](int)

    void perator=(T)

    };

    template<class T>

    Array<T>::Array(int s)

    size=s;

    elems=new T[size]

    for(int i=0;i<size;i++)

    elems[i]=0

    }

    template<celass T>

    Array<T>::~Array()

    {

    ______

    template <class T>

    T& Array<T>::operator[](int index)

    {

    return elems[index];

    }

    template<class T>

    void Array<T>::operator=(T temp)

    {

    for(int i=0;i<size;i++)

    elems[i]=temp;

    }

    void main()

    {

    int i,n=26;

    Array<int> arr1(n)

    Array<char> arr2(n)

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

    { -.

    arr1[i]='a'+i;

    arr2[i]='a'+i;

    }

    cout<<"ASCII 字符"<<endl;

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

    cout<<setw(8)<<arr1[i]<<setw(8)<<arr2[i]<<endl;

    }


    正确答案:delete elems;
    delete elems; 解析:注意,用new动态申请的内存在使用完成后一定要用delete释放。

  • 第5题:

    下列程序运行后的结果是:_____ #include<stdio.h> int main() { int array[]={1,2,3,4,5},y=0x10,i,*p; p=array+3; for(i=0;i<4;i++) { y=y+*p; p--; } printf("%dn",y); return 0; }


    c