函数的参数存放在什么地址空间中?说明其作用范围。将答案填入对应栏内。

题目

函数的参数存放在什么地址空间中?说明其作用范围。将答案填入对应栏内。


相似考题
更多“函数的参数存放在什么地址空间中?说明其作用范围。将答案填入对应栏内。 ”相关问题
  • 第1题:

    阅读以下关于输入输出接口设计的说明,回答问题1至问题3,将解答填入对应栏内。

    【说明】

    下图为采用查询方式工作的输入接口,地址译码器中A15~A1直接接到或门的输入端。

    输入设备在向接口传送8位数据的同时,还传送负脉冲STB,该信号的作用是什么?


    正确答案:脉冲除了将输入设备的数据锁存到锁存器的输出端外该脉冲还用来触发D触发器使其输出Q为高电平此高电平表示外设有数据准备好。
    脉冲除了将输入设备的数据锁存到锁存器的输出端外,该脉冲还用来触发D触发器,使其输出Q为高电平,此高电平表示外设有数据准备好。 解析:本题考查输入输出接口设计以及输入输出控制方式应用知识。
    计算机与外设之间进行数据传送主要有三种基本控制方式:查询方式、中断方式和DMA方式。
    查询方式是通过执行输入/输出查询程序来完成数据传送的,其工作原理是:当CPU。启动外设工作后,不断地读取外设的状态信息进行测试,查询外设是否准备就绪,如外设准备好,则可以进行数据传送:否则,CPU继续读取外设的状态信息进行查询等待,直到外设准备好。
    采用程序查询方式进行数据传送时,实际上在外设准备就绪之前,CPU一直处于等待状态,致使CPU的利用率较低。倘若CPU按这种方式与多个外设传送数据时,就需要周期性的依次查询每个外设的状态,浪费的时间就更多,CPU的利用率就更低。因此,这种方式适合于工作不太繁忙的系统。
    中断方式是一种硬件和软件相结合的技术,中断请求和处理依赖于中断控制逻辑,而数据传送则是通过执行中断服务程序来实现的。这种方式的特点是:在外设工作期间,CPU无须等待,可以处理其他任务,CPU与外设可以并行工作,提高了系统效率,同时又能满足实时信息处理的需要。但在进行数据传送时,仍需要通过执行程序来完成。
    采用中断方式可以提高CPU的利用率,但有些I/O设备(如磁盘、光盘等)需要高速而又频繁地与存储器进行批量的数据交换,此时中断方式已不能满足速度上的要求。而直接存储器处理DMA方式,可以在存储器与外设之间开辟一条高速数据通道,使外设与存储器之间可以直接进行批量数据传送。实现DMA传送,要求CPU让出系统总线的控制权,然后由专用硬件设备(DMA控制器)来控制外设与存储器之间的数据传送。这种传送方式的特点是:在数据传送过程中,由DMA控制器参与工作,不需要CPU的干预,批量数据传送时效率很高,通常用于高速I/O设备与内存之间的数据传送。
    本题采用程序查询方式从输入设备读取数据。
    接口图中的选通信号低电平有效,是由外设提供的输入信号。当该信号有效时,将输入设备送来的数据锁存至输入锁存器中临时存储起来,并设置数据已经准备好的状态,标志该状态的是上图中的D触发器。
    D触发器的初始状态为0(数据未准备好),当输入设备的数据准备好时,通过CP将D触发器设置为1,标明数据已准备好,CPU可随时读取。
    要从输入设备读取数据(有效),首先应确定输入设备的端口地址,包括状态端口和数据端口。从题图中可知,要读取输入设备的状态端口(即数据是否准备好),需进行下面的运算:
    A15+A14+A13+…+A2+A1++
    即地址信号A15、A14、…、A2、A1与IOR进行或运算(经过或门)后的输出,与A0经非门后的输出再进行或运算,若为0,则可将D触发器中的状态输出至数据线D7,因此,要求A15、A14、…、A2、A1全部为0且A0为1,即状态端口地址为0001H。同理,要读取输入设备的数据,需进行下面的运算:
    A15+A14+A13+…+A2+A1++A0
    即当A15、A14、…、A2、A1全部为0并且A0也为0,才能通过三态门将数据送往数据总线,因此数据端口地址为0000H。
    若用查询方式将输入设备的一个数据读入CPU的BL寄存器中,则根据其工作方式,需要对I/O接口的状态不断进行测试,一旦满足条件(准备好传送数据即外设就绪),紧接着就执行数据传送指令,程序如下:
    START: MOVDX,0001H;外设的状态端口号送入DX寄存器
    NEXT1: IN AL,DX ;从外设端口读取状态并暂存入AL
    NEXT2: ANDAL,80H;判断数据是否就绪(D7是否为1)
    JZ NEXT1;未就绪(D7为0),则继续查询,否则开始读取数据
    MOVDX, 0000H ;外设数据端口号送入DX寄存器
    IN AL,DX ;从外设端口读取数据到的数据暂存入AL
    NEXT3: MOVBL,AL ;将数据送入BL寄存器
    RET

  • 第2题:

    ()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4) ); (5); }


    正确答案:()
    (1)FILE *fp; (2)NULL  (3)!feof(fp)  (4)fgetc(fp)   (5)fclose(fp)
    从程序功能来看,程序中需要用到文件型指针变量中,而主函数体没有定义,所以(1)应该填写的是“FILE *fp;”。接下来的语句是标准的打开只读文本文件的语句,显示的是文件没打开,说明文件名不存在,也就是为“NULL”。接着的while循环语句中有两处空白。前一个空白是控制循环的条件,从程序功能来看,要将文本文件中的所有字符显示出来,这儿当然只能填写“不是文件尾则继续循环”,具体说,需要填写的是“!feof(fp)”。(4)出现在循环体中的语句中,该循环体的功能是从fp指向的文本文件中读取单个字符并显示在屏幕上,此处使用的是putchar函数,该函数的功能是将形参对应的字符显示在屏幕上,所以该处的空白就是要显示的字符,这个字符必须是从文本文件中读取的单个字符,完成这项工作的可以利用fgetc()函数,所以(4)填写的是“fgetc(fp)”。最后一句应当是关闭文件,所以(5)应填fclose(fp)。

  • 第3题:

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


    答案:
    解析:

  • 第4题:

    认真阅读下列关于计算机网络防火墙的说明信息,回答问题1~5。将答案填入对应的解答栏内。

    [说明] 某单位的内部局域网通过防火墙与外部网络的连接方式及相关的网络参数如下图所示。

    完成下列命令行,对网络接口进行地址初始化配置:

    firewall(config)ip address inside (1) (2)

    firewall(config)ip address outside (3) (4)

    (1)


    正确答案:192.168.0.1
    192.168.0.1

  • 第5题:

    阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。
    阅读以下说明和C函数,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。
    【说明1】
    函数deldigit(char *s) 的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再拷贝给s。
    【C函数】

    char *t = (char *)malloc( (1) ); /*申请串空间*/ int i, k = 0; if (!t) return; for(i = 0; i < strlen(s); i++)if ( !(*(s+i)>=’0’ && *(s+i)<=’9’) ) { t[k++] = (2) ;} (3) = ’\0’; /*设置串结束标志*/ strcpy(s,t);free(t);}

    【说明2】
    函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为"abcd",则逆置后其内容变为"dcba"。
    【C函数】

    void reverse(char *s, int len){ char ch; if ( (4) ) { ch = *s; *s = *(s+len-1); *(s+len-1) = ch; reverse( (5) ); }}


    答案:
    解析:
    (1)strlen(s)+1
    (2)*(s+i),或s[i]或其等价表示
    (3)*(t+k)或t[k] 或其等价表示
    (4)len>1 或len>=1 或其等价表示
    (5)s+1 len-2
    【解析】

    根据说明1,在函数deldigit(char*s)中需先申请一个与s等长的临时字符串空间并令t指向它,因此空(1)处应填入"strlen(s)+1",其中,加1的原因是函数strlen计算s所指向字符串的长度时,没有包含串结束标志字符"\0"。当然,申请比"strlen(s)+1"更大的存储区也可以,只是没有必要。
    由于需要将非数字字符按原来的顺序存入t所指向的存储区,所以空(2)处填入"s[i]",或其等价表示形式。
    最后在设置t所指向字符串的结束标志,即令t[k]='\0'.在这里,空(3)处的t[k]写为t[k++]也可以,而写为t[k+1]或t[++k]则不符合整个代码的处理逻辑。
    函数reverse(char*s,int len)的功能是用递归方式逆置长度为len的字符串s,其中以下代码实现了将s所指字符与串中最后一个字符交换的处理。
    Ch=*s; *s=*(s+len-1); *(s+len-1)=ch;