2、在MIPS处理器中,假定int型变量f 、g、h、i和j,依次分配到寄存器$s0, $s1, $s2, $s3, $s4中,假设int型数组A和B的基地址依次放置寄存器$s6和 $s7中 下面那段代码表示 f=g-A[B[4]] ?A.lw $t0, 16($s7) add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0B.lw $t0, 16($s7) lw $s0, 0($t0) sub $s0, $s1,$s0C.lw $t0, 4($s7) add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0D.lw $t0, 16($s7) sll $t0, $t0, 2 add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0

2、在MIPS处理器中,假定int型变量f 、g、h、i和j,依次分配到寄存器$s0, $s1, $s2, $s3, $s4中,假设int型数组A和B的基地址依次放置寄存器$s6和 $s7中 下面那段代码表示 f=g-A[B[4]] ?

A.lw $t0, 16($s7) add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0

B.lw $t0, 16($s7) lw $s0, 0($t0) sub $s0, $s1,$s0

C.lw $t0, 4($s7) add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0

D.lw $t0, 16($s7) sll $t0, $t0, 2 add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0


参考答案和解析
lw $t0, 16($s7) sll $t0, $t0, 2 add $t0, $t0, $s6 lw $s0, 0($t0) sub $s0, $s1,$s0

相关考题:

●设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为 (35) 。(35) A.2B.3C.4D.5

请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。例如:二维数组中的数据为333333334444444455555555则一维数组中的内容应是334455334455334455334455。注意:部分源程序以存在文件test_2.cpp中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。文件test39_2.cpp的内容如下:include<stdio.h>include<iostream.h>void fun(int(*s) [10],int *b, int *n,int mm,int nn){}void main( ){int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;int a[100]={0}, n=0;cout<<"The matrix:\n"for(i=0; i<3; i++){for(j=0; j<4; j++cout<<w[i] [j];cout<<endl;}fun(w, a, n, 3, 4);cout<<"The A array:\n";for(i=0; i<n; i++)cout<<a[i];cout<<"\n\n";}

进程P1、P2、P3、P4和P5的前趋图如下:若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号量Sl、S2、S3、S4、S5和S6,且信号量S1~S 6的初值都等于零。下图中a和b处应分别填写(23);c和d处应分别填写(24),e和f处应分别填写(25)。(62)A.P(S1)P(S2)和P(S3)P(S4)B.P(S1)V(S2)和P(S2)V(S1)C.V(S1)V(S2)和V(S3)V(s4)D.P(S1)P(S2)和V(S1)V(s2)

求主次对角线之和。 main {static int a[ ][3]={9,7,5,1,2,4,6,8}; int I,j,s1=0,s2=0; for(I=0;I3;I++) for(j=0;j3;j++) {if(__________) s1=s1+a[I][j]; if( __________ ) s2=s2+a[I][j]; } printf(“%d\n%d\n”,s1,s2); }

有以下程序:include void f(int a[],int i, int j){int t; if(i 有以下程序: #include <stdio.h> void f(int a[],int i, int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n"); } 执行后的输出结果是( )。A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

下面的代码段中,执行之后i和j的值是( )。 int i=1; int j; j=i++;A.1,1B.1,2C.2,1D.2,2

有以下程序:include int f(int b[] [4]){int i,j,s=0; for(j=0;j2) 有以下程序: #include <stdio.h> int f(int b[] [4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main() { int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 执行后的输出结果是( )。A.12B.11C.18D.16

阅读以下程序: include void main() { static int a[][3]={9,7,5,3,1,2,4,6,8}; int 阅读以下程序:include<iostream.h>void main(){static int a[][3]={9,7,5,3,1,2,4,6,8};int i,j,s1=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++){if(i==j)s1=sl+a[i][j];if(i+j==2)s2=s2+a[i][j];}cout<<s1<<","<<s2<<endl;}则该程序的输出结果为【 】。

● 进程P1、P2、P3、P4和P5 的前趋图如下:若用PV操作控制进程P1~P5并发执行的过程,则需要设置 6 个信号量 S1、S2、S3、S4、S5和S6,且信号量S1~S6的初值都等于零。下图中 a和 b 处应分别填写 (23) ;c和d处应分别填写 (24) ,e和f处应分别填写 (25) 。(23)A. P(S1) P(S2) 和P(S3) P(S4)B. P(S1) V(S2) 和P(S2) V(S1)C. V(S1) V(S2) 和V(S3) V(S4)D. P(S1) P(S2) 和V(S1) V(S2)(24)A. P(S1) P(S2) 和V(S3) V(S4)B. P(S1) P(S3) 和V(S5) V(S6)C. V(S1) V(S2) 和P(S3) P(S4)D. P(S1) V(S3) 和P(S2) V(S4)(25)A. P(S3) P(S4) 和V(S5) V(S6)B. V(S5) V(S6) 和P(S5) P(S6)C. P(S2) P(S5) 和P(S4) P(S6)D. P(S4) V(S5) 和P(S5) V(S6)

下列程序中,定义了一个3行4列的数组A,并将A的内容转换为ASCII码值,并复制到数组B中,然后打印出来。注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。public class Example1_4{private char A[] [] = {{'a', 'b', 'c', 'd'},{'e', 'f', 'g', 'h'},{'i', 'j', 'k', 'l'}};public int ______; //生成一个空的3行4列的数组Bpublic void copy(){for(int i = 0; i < 3; i++)for(int j = 0; j < 4; j++)______;}public static void main(______ argv[]){Example1_4 example = new Example1_4();example.copy();for(int i = 0; i < 3; i ++){for(int j = 0; j < 4; j++)System.out.print(example. B[i] [j] *+" ");System.out.println ();}}}

● 进程P1、P2、P3、P4、P5的前趋图如下:若用PV操作控制进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4且信号量初值都等于零。下图中a和b应分别填写 (50) ,c和d应分别填写 (51) e和f应分别填写 (52) 。(50)A. P(S1)和P(S2)B. P(S1)和V(S2)C. V(S1)和V(S2)D. V(S1)和P(S2)(51)A. P(S1)、P(S2)和V(S3)、V(S4)B. P(S1)、P(S2)和P(S3)、P(S4)C. V(S1)、V(S2)和P(S3)、P(S4)D. V(S1)、V(S2)和V(S3)、V(S4)(52)A. P(S3)和P(S4)B. P(S3)和V(S4)C. V(S3)和V(S4)D. V(S3)和P(S4)

设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s5,s6,s1,则栈的容量至少应该是 ( )A.2B.3C.5D.6

设i是int型变量,f是float型变量,用下面的语句给这2个变量输入值。为了将,100和765.12分别赋给i和f,则正确的输入为______。 scanf("i=%d,f=%f”,i,f);A.100<空格>765.12<回车>B.i=100,f=765.12<回车>C.100<回车>765.12<回车>D.x=100<回车>y=765.12<回车>

设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。A.2B.3C.4D.5

下面属于重载函数的有 【 】a. void f(int x)(…) b. int f(int y)(…)c.int f(int i,int j)(…) d.float k(int x) (…)A. 4个全部B.a和dC.b和cD.c和d

进程P1 、P2、P3、P4、P5 和 P6 的前趋图如下所示:若用 PV 操作控制这6个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为( ); 空③和空④处应分别为( );空⑤和空⑥处应分别为( )。A. V (S1) V (S2) 和 P (S2) B. P (S1) P (S2) 和 V (S2) C. V (S1) V (S2) 和 P (S1) D. P (S1) P (S2) 和 V (S1) A. V (S3) 和 V (S5) V (S6) B. P (S3) 和 V (S5) V (S6) C. V (S3) 和 P (S5) P (S6) D. P (S3) 和 P (S5) P (S6) A. P (S6) 和 P (S7) V (S8) B. V (S6) 和 V (S7) V (S8) C. P (S6) 和 P (S7) P (S8) D. V (S7) 和 P (S7) P (S8)

试题三(共15分)阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。【说明1】下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。【C代码1】Int countchar(char*text){int i,sum=O; /*sum保存不同的英文字母数*/char *ptr;int c[26]={0}; /*数组c保存每个英文字母出现的次数*//*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ptr=(1); /* ptr初始时指向字符串的首字符*/while (*ptr) {if (isupper (*ptr) )c[*ptr一’A’]++;else if (islower (*ptr) )c[*ptr一’a’]++;(2); /*指向下一个与字符*/}for ( i=0. i26; i++ )If(3)sum++;return sum;}【说明2]将下面C代码2中的空缺补全后运行,使其产生以下输出。f2: f2:f2:2f3: f3:1【C代码2]include stdio . hint fl (int (*f) (int)) .int f2 (int) ;int f3 (int) ;int main (){Printf(“%d\n”,f1(4))Printf(“%d\n”,f1(5))return 0;}int fl(int (*f) (int) }{int n=O;/*通过函数指针实现函数调用,以返回值作为循环条件*/While(6) n++return n;}int f2 (int n){printf (f2: ) ;return n*n-4;}int f3 (int n){printf (f3: ) ;return n-1}

(51)A.P(S1) 和P(S2)、V(S3)和 V(S4)B.P(S1)和P(S2)、P(S3)和P(S4)C.V(S1) 和V(S2)、P(S3)和 P(S4)D.P(S1)和V(S3)、P(S2)和V(S4)

main(){ char *s2=“I love China!”,**s1=s2;char *s3,c,*s4=“w”;s3=c;*s3=‘H’;s2=s2+2;printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1);}

阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明1]下面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-'A']++; else if (islower(*ptr)) c[*ptr-'a']++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++; return sum; }[说明2]将下面C代码2中的空缺补全后运行,使其产生以下输出。f2:f2:f2:2 f3:f3:1 [C代码2] #include<stdio.h> int f1(int(*f)(int)); int f2(int); int f3(int); int main() { printf("%d\n",f1(______)); printf("%d\n",f1(______)); return 0; } int f1(int(*f)(int)) { int n=0; /*通过函数指针实现函数调用,以返回值作为循环条件*/ while (______) n++; return n; } int f2(int n) { printf("f2:"); return n*n-4; } int f3(int n) { printf("f3:"); return n-1; }

阅读下列说明和C代码,回答问题,将解答填入答题纸的对应栏内。【说明】计算一个整数数组a的最长递增子序列长度的方法描述如下:假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长度为 ;其中b[i]满足最优子结构,可递归定义为:【C代码】下面是算法的C语言实现。(1)常量和变量说明a:长度为n的整数数组,待求其最长递增子序列b:长度为n的数组,b[i]记录以a[i](0≤ilen:最长递增子序列的长度i, j:循环变量temp:临时变量(2)C程序#include int maxL(int*b, int n) {int i, temp=0;for(i=0; itemp) temp=b[i]; } return temp;}int main() { int n,a[100], b[100], i, j, len; scanf("%d", for(i=0;i【问题1】(8分)根据说明和C代码,填充C代码中的空(1)~(4)。【问题2】(4分) 根据说明和C代码,算法采用了 (5) 设计策略,时间复杂度为 (6) (用O符号表示)。【问题3】(5分) 已知数组a={3,10,5,15,6,8},据说明和C代码,给出数组b的元素值。

进程P1、P2、P3、P4、P5的前趋图如下。若用PV操作控制进程并发执行的过程,则需要相应于进程执行过程设置5个信号量S1、S2、S3、S4和S5,且信号量初值都等于零。下图中a处应填写( );b和c、d和e处应分别填写(请作答此空),f、g和h应分别填写( ) 。A.P(S1)和P(S2)、V(S3)和V(S4)B.P(S1)和P(S2)、P(S3)和P(S4)C.V(S1)和V(S2)、P(S3)和P(S4)D.P(S1)和V(S3)、P(S2)和V(S4)

进程P1、P2、P3、P4和P5的前趋图如下:若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4、S5和S6,且信号量S1-S6的初值都等于零。下图中a和b处应分别填写( );c和d处应分别填写(请作答此空),e和f处应分别填写( )。A. P(S1)P(S2)和V(S3)V(S4)B. P(S1)P(S3)和V(S5)V(S6)C. V(S1)V(S2)和P(S3)P(S4)D. P(S1)V(S3)和P(S2)V(S4)

设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()。A、i = i + 2B、a [0]= 7;C、i++- --j;D、a(0)= 66;

设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。

假设调用函数有以下定义和函数f调用,则函数f中对形参数组错误定义的是()。 charc[5]={‘a’,’b’,’0’,’c,’0’}; printf(“%s”,c);A、f(int array[][6])B、f(int array[3][])C、f(int array[][4])D、f(int array[2][5])

填空题在C语言和C55x汇编语言的混合程序设计中,C函数的参数和返回值传递到C55x的寄存器中。在函数“long func(int *p1, int i2, int i3, int i4)”中,*p1传递到()寄存器,i2传递到()寄存器,i4传递到   ()寄存器,返回值由()寄存器传递。

单选题设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()。Ai = i + 2Ba [0]= 7;Ci++- --j;Da(0)= 66;