某C语言程序中对数组变量b的声明为“short b[10][5];”,sum为int型,有一条for语句如下: for (i=0; i<10, i++) for (j=0; j<5; j++) sum+= b[i][j]; 假设执行到“sum+= b[i][j];”时,sum的值在EAX中,b[i][0]所在的地址在ECX中,j在EDI中,则“sum+= b[i][j];”所对应的指令或指令序列(ATT格式)可以是()。A.addl 0(%edi, %ecx, 2), %eaxB.addl 0(%ecx, %edi, 2), %eaxC.movzwl 0(%edi, %ecx, 2), %edx addl %edx, %eaxD.movswl 0(%ecx, %edi, 2), %edx addl %edx, %eax

某C语言程序中对数组变量b的声明为“short b[10][5];”,sum为int型,有一条for语句如下: for (i=0; i<10, i++) for (j=0; j<5; j++) sum+= b[i][j]; 假设执行到“sum+= b[i][j];”时,sum的值在EAX中,b[i][0]所在的地址在ECX中,j在EDI中,则“sum+= b[i][j];”所对应的指令或指令序列(AT&T格式)可以是()。

A.addl 0(%edi, %ecx, 2), %eax

B.addl 0(%ecx, %edi, 2), %eax

C.movzwl 0(%edi, %ecx, 2), %edx addl %edx, %eax

D.movswl 0(%ecx, %edi, 2), %edx addl %edx, %eax


参考答案和解析
A定义无符号型变量的关键字是unsigned。

相关考题:

以下程序的输出结果是 【 8 】 。#includestdio.hmain(){int i,j,sum;for(i=3;i=1;i--){sum=0;for(j=1;j=i;j++) sum+=i*j;}printf("%d\n",sum);}

设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【14】 。for(i=0, j=10; i=j; i++, j--)k=i+j;

有如下程序: include using namespace std; int main(){ int sum; 有如下程序: #include<iostream> using namespace std; int main(){ int sum; for(int i=0;i<6;i+=3){ sum=i; for(int j=i;j<6;j++)sum+=j; } cout<<sum<<end1; return 0; } 运行时的输出结果是( )。A.3B.10C.12D.15

执行下列语句后,变量n的值是______。int n=0;for(int i=1;i<=3;i++)for(int j=1;j<<=i;j++)n++;

( 7 )执行下列语句后,变量 sum 的值是 ___________ 。int sum=0;for(int i=1;i=3;i++)for(int j=1;j=i;j++)sum++;

设i,j,k均为int型变量,则执行完for(i=0,j=10;i=j;i++,j-- k=i+j;语句后,k的值为【8】 。

执行下列语句,变量sum的值是______。int sum=0;for(inti=1;i<=3;i++)for(intj=1;j<=i;j++) sum++;

以下程序的输出结果是【 】。include main() {int i,j,sum; for(i=3;i>=-1;i-) (sum=0; fo 以下程序的输出结果是【 】。include<stdio.h>main(){int i,j,sum;for(i=3;i>=-1;i-)(sum=0;for(j=1;j<=i;j++) sum+=i*j;}printf("%d\n,sum);}

给定程序MODllC中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。inClude<coMo.h>inClude<stdio.h>dehne M 5/************fOUnd************/int fun(int n,int xx[][]){int i,j,sum=0;printf("\n The%dx%d matrix:\n"M,M);for(i=0;i<M;i++){ for(j=0;j<M;j++)/************found************/printf("%f",xx[i][j]);printf("\n");}for(i=0;i<n;i++)sum+=xx[i][i]+XX[i][[n-i-1];return(sum);}main( ){int aa[M][M]={{1,2,3,4,5),{4,3,2,1,0),{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};clrscr( );printf("\n The sum Of all elements On 2 diagnals is %d."fun(M,aa));}

请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>include<stdlib.h>define N 20void fun(【 】){int i j;int t;for(i=0;i<n;i++)for(j=0;j<n;j++)if(【 】)b[i]=a[i][j];for(i=0;i<n;i++){for(j=0;i<n;j++)if(【 】){t=b[i];b[i]=b[j];b[j]=t;}}}main(){int a[N][N];int b[N];int n;int i,j;clrscr();printf("*****Input the dimension of array N*****\n");scanf("%d",n);printf("*****The array *****\n");for(i=0;i<n;i++){for(j=0;i<n;j++){a[i][j]=rand()%20;while(a[i][j]==0)a[i][j]=rand()%30;printf("%4d",a[i][j]);}printf(”\n\n”);}for(i=0;i<n;i++)b[i]=0;fun(a,b,n);printf("***** THE RESULT *****\n");for(i=0;i<n;i++)printf(“%d”,b[i]);}

下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为a=1 9 72 3 84 5 6则返回主程序后a数组中的值应为0 9 70 0 80 0 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <conio.h>include <stdio.h>include <stdlib.h>define N 5int fun (int a[] [N]){}main(){int a[N] [N],i,j;clrscr();printf("*****The array*****\n");for(i=0;i<N;i++)/*产生—个随机的5*5矩阵*/{ for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d", a[i][j]);}printf("\n");}fun (a);printf("THE RESULT\n");for(i=0;i<N;i++){ for(j=0;j<N;j++)printf("%4d",a[i][j));printf("\n");}}

下列程序用来判断数组中特定元素的位置所在,则输出结果为()。includeinclude 下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。 #include<conio.h> #include<iostream.h> int fun(int*p,int n,int*j) {int i; *j=0; for(i=0;i<n;i++) if(p[*j]<p[i])*j=i; return p[*j];} void main() {int a[10]={1,3,9,0,8,7,6,5,4,2)j;int j; fun(a,10,j); cout<<j<<','<<a[j];}A.2,9B.3C.9D.3,9

以下程序的输出结果是#include stdio.hmain(){ int i,j,sum; for(i=5;i=1;i--) { sum=0; for(j=i;j=i;j++) sum+=i*j; } printf("%d\n",sum);}

下列程序执行后的结果是______。public class ex24{public static void main(String[] args){int j=10;a1: for(int i=3;i>0;i--){j-=i;int m=l;a2: while (m<j){if (i<=m)continue a1;j/=m++;}}System.out.println(j);}}下列嵌套的循环程序执行后,结果是______。 public class ax25 { public static void main(String[] args) { int sum=0; for(int i=0;i<=5;i++) { for(int j=10;j>3*i;j--) { sum+=j*i; } } System.out.println(sum); } }A.136B.127C.147D.153

阅读以下函数说明和C语言函数,将应填入(n)处的字句填写在对应栏内。[函数2.1说明]函数fun1 (int m, int k, int xx [])的功能是:将大于整数m且紧靠m的k个素数存入数组xx中传回。例如:若输入17,5,则应输出:19,23,29,31,37。[函数2.1]fun1 (int m, int k, int xx [] ){inti, j, s=0;for ( i=m+1; k>0; i++ ){for (j=2; j<i; j++ )if ( i %j=0 )(1)if( i==j ){(2)k--; }}}[函数2.2说明]函数void fun 2 ()的功能是:打印出杨辉三角形(要求打印出10行)。[函数2.2]void fun2 ( ){int i, j;int a[10][10];printf ("\n" );for (i=0; i<10; i++{a [i] [0]=1;(3))for (i=2; i<l0; i++ )for (j=1; j<i; j++)(4)for (i=0; i<10; i++ ){for (j=0; j<=i; j++ )(5)printf ( "\n" );}}

在执行完下面的程序后,变量k的值为【 】。int i, j, k;for(i=0, j=10; i<:j; i++,j--) k=i+j;

请补充main函数,该函数的功能是:把1~100间的所有素数保存在数组aa中,然后输出这些素数并计算它们的和。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>main(){int n, i, j, k, flag, sum;int aa [50];sum=O;k=O;clrscr ();for (i=2; i<100; i++){【 】;for (j=2; j<i&&flag; j++)if (i%j==O){【 】;}if (flag){sum+=i;【 】;}}printf("\n*** prime number ***\n");for (i=0; i<k; i++){if (i%10==0)printf ("\n");printf ("%4d", aa [i]);}printf ("\nsum=%d", sum);}

下面程序用于计算矩阵的两条对角线上的元素之和。补充下列语句,实现该功能。include<iostream.h>void main(){int a[3],[3]={9,8,7,6,5,4,3,2,1};int sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)sum1+=a[i][j];for(i=0;i<3:i++)for(j=2;【 】;j--)if(i+j==2)sum2+=a[i][j];}

执行下列程序,其输出为( )。 int Sum,j; Sum=0; j=0; do{ j++; for(int i=5:i>j;i--). Sum=Sum+(i+j); {while(j<11=; } }A.45B.50C.60D.65

在窗体中添加1个命令按钮(其Name属性为Command1)和1个标签(其Name属性为Lable1),然后编写如下代码: Private Sub Commandl_Cliek() Dim arrayl(10, 10)As Integer Dim i, j, Sum AsInteger Sum=0 For i=1 To 10 Forj=1 To 10 arrayl(i, j)=i+j Nextj Next i End Sub 此程序的功能是求数组arrayl主对角线元素的和,并把结果显示在标签中,为实现此功能,省略号处的程序段应该是 ( )A.For i=1 To 10 For j=1 To 10 If i=j Then Sum = Sum+ arrayl (i,j) End If Next j Next i Labelt. Caption=SumB.For i=l TO 10 Forj=1 To 10 If i= =j Then Sum=Sum+array1 (i,j) End If Next j Next i Labell. Caption=SumC.For i=1 To 10 For j=1 To l0 If i=j Then Sum=Sum+arrayl (i,j) End If Next i Next j Lahell. Caption=SumD.For i=1 To 10 For j=1 To l0 If i=j Then Sum=arrayl (i,j) End If Next j Next i Labell. Caption=Sum

写出模板函数实现数值型数组元素值按从小到大排序的程序。includeiostreamusing namespace std;template class Tvoid sort(T b[],int n){T temp;int i,j;T *a=new T[n];for (i=0;in;i++){a[i]=b[i];}for(i=0;in-1;i++){for(j=i+1;jn;j++){ if(a[i]a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}for(i=0;in;i++){couta[i] ;}coutendl;delete []a;}void main(){int i,n=6;int a[]={5,1,9,10,3,8};____________;for(i=0;in;i++){couta[i] ;}coutendl;}

下面程序的运行结果是()。include void main(){static int a[][4]={ 1,2,3,4,5,6,7, 下面程序的运行结果是( )。#include <iostream.h>void main(){static int a[][4]={ 1,2,3,4,5,6,7,8,9,10,11,12};int i, j, sum=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(j>i)sum+=a[i][j];cout<<sum<<end1;}A.24B.30C.36D.40

以下程序输出结果是 ______。includevoid main(){ int a[3][3]={1,3,5,7,9,10,13,1 以下程序输出结果是 ______。 #include<iostream.h> void main(){ int a[3][3]={1,3,5,7,9,10,13,15,17},sum=0,i,j; for(i=0;i<3:i++) for(j=0;j<3;j++){ a[i][j]=i+j; if(i= =j)sum=sum+a[i][j]; } cout<< "sue="<<sum; }A.15B.25C.6D.9

执行下列语句后,变量sum的值是【 】。int sum=0;for(int i=1;i<=3;i++)for(int j=1;j<=i;j++)sum++;

设i、j、k均为int型变量,则执行完for(i=0,j=10;i<=j;i++,j--) k=i+j;语句后,k的值为______。

以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:3 0 0 32 5 7 31 0 4 2则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(int m,int n,int arr[]){ int i,j,sum=0;for(i=0;ifor(j=0;jN;J++)sum=sum+ (7) ;for(j=0;jfor(i=1; (8) ;i++)sum=sum+arr[i*n+j];return(sum);}

i,j,k均为int型变量,则执行完for循环 for(i=0,j=10;i=j;i++,j--) k=i+j; 后,k的值为()

设i,j,k均为int型变量,则执行完for循环 for(i=0,j=10;i=j;i++,j--) k=i+j;     后,k的值为()