niusouti.com

●试题七阅读以下说明和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 st

题目

●试题七

阅读以下说明和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 12 6 8 45 8 33 7 输入key:9

输出: (5)


相似考题
参考答案和解析
正确答案:

●试题七

【答案】 (1)for(int i=starti<ni++)

(2)if(listi==key)

(3)cin>>Apos

(4)8 occurs 2 times in the list

(5)9 occurs 0 time in the list

【解析】数组下标从0开始,所以n次循环要在i=n-1时结束,而不是在i=n时结束。判断是否相等使用"==",一个等号是赋值。将输入数字逐个赋给Apos处的元素。8出现2次,注意结果中的times9出现0次,注意结果中的time

 

更多“●试题七 阅读以下说明和C++代码,将解答写入答题纸的对应栏内。 【说明】 请编写一个函数int SeqS ”相关问题
  • 第1题:

    阅读以下两个说明、c函数和问题,将解答写入答题纸的对应栏内。

    【说明1】

    函数main()的功能旨在对输入的一个正整数n,计算12+22+32+…+n2,但是对该函数进行测试后没有得到期望的结果。

    【c函数】

    1.输入5测试上述main函数时,显示结果如下所示。

    input an integer:5

    result:-582598909

    2.将行号为7的代码修改为:prinff(”n=%d\nresuh:%d\n”,n,sum);并再次

    输入5测试main函数,显示结果如下所示。

    input an interger:5

    n=2293632

    result:-582598909

    阅读以上两个说明、c函数和问题,将解答写入答题纸的对应栏内。

    【问题1】

    请给出上述main函数中需要修改的代码行号,并给出修改后的整行代码。

    【说明2】

    函数test_f2{}编译时系统报告有错,修改后得到函数12_B{}。对函数12_B{}

    进行编译时顺利通过,在某些C系统中执行时却由于发生异常而不能正确结束。

    【c函数2】

    【问题2】(1)请指出函数test_f2中不能通过编译的表达式;(2)请指出可能导致函数f2_B运行异常的表达式。


    正确答案:问题(1):     以上的答案仅供参考并没有先后顺序。另外对sum进行初始化的“sum=O;”也可以加在第3行第4行以及第5行的适当的位置。 问题(2):(1)str++ (2) str:‘a’
    问题(1):     以上的答案仅供参考,并没有先后顺序。另外对sum进行初始化的“sum=O;”也可以加在第3行,第4行以及第5行的适当的位置。 问题(2):(1)str++ (2) str:‘a’ 解析:问题(1)解析:程序中的错误可以分为语法错误和语义错误,其中语义错误又可以分为静态语义错误和动态语义错误。语法错误和静态语义错误可以在编译的时候发现,而动态的语义错误只有在程序运行的结果中才能表现出来。C函数1中的main函数通过编译但是运行结果不对,虽然输出的是sum的值,但是在for循环中sum的值的得到与k以及n的值是相关的,因此我们需要从n、k、sum的定义和初始化查起。首先来看k,在定义的时候没有被初始化,但是在for循环进行使用的时候被初始化为1,后面通过k++进行改变的,这一部分是正确的。接下来看n,n在定义的时候也没有被初始化,n的值是通过scanf(“%d”,n)取得的,由第二次测试的显示结果可以看出,n的值并不是我们的输入值5,很显然n的值设定不对,回头仔细检查scanf函数的调用才发现n的前面缺少取地址运算符“&”,作为一名程序员都应该知道scanf中的变量使用的是地址,所以正确的写法为“scanI。(“%d”,&m);”;再来看sum,sum的值主要是通过for循环中的语句“sum+=k*k”来改变的。“sum+=k*k”实际上等同于“sum=sum+k*k”,可是我们知道sum在定义的时候并没有初始化,那么在我们第一次进入for循环的时候sum的值是不确定的,在这种情况下执行语句“sum+=k*k”得到的值自然也就无法预料了,所以我们需要在sum使用之前对其进行初始化“sum=0”。另外,在程序中还有一处就是第5行,可以看到在句末有一个分号,这样就等于for循环语句的循环体为空,“sum+=k * k”语句并没有被包含到for循环语句中,只是在循环结束后执行一次,最后输出地结果sum是等于n * n,不符合题目要求的结果(12+22+32+……+n2),正确的做法就是删除第5行末位的分号。问题(2)的解析:函数test~12()编译时系统报错,检查函数能够发现“char str[ ]=“test string”;”定义了字符数组str,并进行了初始化,因此str就是数组名,也是数组在内存中的首地址,*str则表示的是str[O],通过“* str=‘a’”改变str[O]的值是对的,但是“str++”就不对了,在c语言中str是数组名是地址常量,是不能修改的,所以系统在编译的时候会报告错误。如果我们将str定义为一个char类型的指针的话,则可以通过str++来修改str的值,使它指向不同字符对象,但是在函数f2_B()中定义“char *str=‘test string’;”的时候,直接对指针str用常量进行了初始化,使得str为一个指针常量,这样即使我们可以通过str++取得字符串中的任何一个字符,但是却不能够通过“*str=‘a’”修改*str的值,所以在运行的时候就会发生异常不能够正常结束。

  • 第2题:

    阅读下列说明,补充(1)-(9),将解答填入答题纸的对应栏内。


    答案:
    解析:

  • 第3题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析:

  • 第4题:

    阅读以下C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。【C代码1】


    【问题2】写出【代码2】的运行时的输出结果。


    答案:
    解析:
    (1)输入-1331的结果是:Palindromic number.a=-1331 b=1331 输入795的结果是:a=795 b=597(2) Passed,point=4 Passed,point=1 Passed,point=1Passed,point=1 Failed

  • 第5题:

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

    【问题1】(9分)
    以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。



    【问题2】(6分)
    1.在登录页面 login.asp 中通过<!--#include file=“bbb.asp”-->导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。



    答案:
    解析:


  • 第6题:

    阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
    【说明】
    某企业网络拓扑如图1-1所示,A~E是网络设备的编号。










    答案:
    解析:
    【问题1】参考答案:1.B,2.A,3.C 4.D【问题2】5.ethernet 1 6、59.74.221.254【问题3】7) C.deny 8、A 9.F【问题4】10)192.168.4.1
    11)192.168.100.0 12)设置接口的类型是trunk
    【解析】
    【问题1】试题分析:这是一道简单的概念题,考察我们对企业园区网络的基本拓扑结构的了解。通常的企业为了确保内部网络的安全,会设置防火墙,防火墙有3个区域,外网,内网和DMZ区。DMZ通常用于存放各种服务器。因此首先可以选出B这个位置是防火墙,A用于连接Internet,是路由器。DMZ区内部有多台服务器,需要使用交换机连接。【问题3】试题分析:这是网络工程师考试第一次考华为的设备配置,而我们考前准备的都是ios的命令。那这道题是不是很难呢,其实这道题非常简单,只要我们有IOS的命令经验,这道题完全可以自己凭经验做出来,题目出题也是以选择题的形式,因此更加容易,对于没有用过华为设备的考生来说,也是非常简单的。
    【问题4】试题分析:这道题同样是基本的配置,掌握基本命令即可。