工学

问答题编写程序,求10元素字数组LIST中绝对值最小的数,存入MIN单元。

题目
问答题
编写程序,求10元素字数组LIST中绝对值最小的数,存入MIN单元。
参考答案和解析
正确答案: DATA SEGEMNT
LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18
MIN DW ?
MINABS DW ?
DATA ENDS
CODES EGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,LIST
MOV MIN,AX;将数组第一个元素假设为绝对值最小的数
MOV MINABS,32767;最小的绝对值假设为32767
LEA SI,LIST
MOV CX,10
AGAIN:
MOV AX,[SI]
CMP AX,0
JGE SKIP1
NEG AX;求绝对值
SKIP1:
CMP AX,MINABS;绝对值与假设的最小绝对值比较
JGE SKIP2;假设的绝对值较小,跳过
MOV MINABS,AX;保存新的最小绝对值
MOV AX,[SI];取出新的绝对值最小的数
MOV MIN,AX;保留新的绝对值最小的数
SKIP2:
ADD SI,2
LOOP AGAIN
MOV AX,4C00H
INT 21H
CODEENDS
END START
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器中,主存储器字长为16位。求: ① 存放该数组所需多少单元? ② 存放数组第4列所有元素至少需多少单元? ③ 数组按行存放时,元素A[7,4]的起始地址是多少? ④ 数组按列存放时,元素A[4,7]的起始地址是多少?


参考答案:
  每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11。
   1、242 2、22 3、s+182 4、s+142

第2题:

阅读以下说明和流程图,回答问题将解答填入对应栏。

[说明]

本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。

注:int min(int X,int y)为返回两数中最小数的函数。

int minInArray(int a[],int n)为返回数组中最小数的函数。

minA为数组中最小值。

[问题l]

将流程图的(1)~(4)处补充完整。

[问题2]

min()函数的定义为(5)。


正确答案:(1) minInArray(an); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(an-1)a[n]); (5) xy?x:y;
(1) minInArray(a,n); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(a,n-1),a[n]); (5) xy?x:y; 解析:本题目考查流程图。
题目是利用递归来求数组中的最小值,则一定是反复的调用一个求数组最小值的函数,直到比较数组中最后只剩下两个数,则(1)中填入的应是“minlnArray(a,n)”,然后,判断n的值是否为1,如果是,则说明数组中只有一个数,则它一定就是最小值,可以直接输出,所以(2)应填入“1”,(3)应填入“minA=a[n]”;如果n的值不是1,则说明要继续递归,则再次调用求数组最小值的函数,把数组前n-1项的最小值同第n项做比较,所以(4)填入“minA=min(minInArray(a,n-1),a[n])”,由于min()是一个比较函数,返回两数中较小的数,我们可以用三元运算符直接定义为x y?x:y。

第3题:

● 在Excel 中,函数Min(A1:A10)的功能是(57) 。

(57)

A.求出 A1~A10 单元格数组中的最小值

B.求出 A1~A10 单元格数组中的最大值

C.求出 A1~A10 单元格数组中的平均值

D.求出 A1~A10 单元格的个数


正确答案:A

第4题:

编程,找出长度为10\的数组中,数组元素的最大值和最小值,并输出。


答案:public class a{public static void main(String[] args){double x[]={25.3,56.3,15.3,125.25,465.36,456.32,458.21,456.325,4856.3215,41.6};double max=x[0];int i;for(i=0;i<10;i++){ if (max<=x[i])max=x[i];}double min=x[0];int j;for(j=0;i<10;i++){ if (min>=x[j])min=x[j];}System.out.println("最大数是"+max);System.out.println("最小数是"+min);}}

第5题:

在Excel中,函数Min(A1:A10)的功能是(57)。

A.求出A1~A10单元格数组中的最小值

B.求出A1~A10单元格数组中的最大值

C.求出A1~A10单元格数组中的平均值

D.求出A1~A10单元格中已有数据的个数


正确答案:A
解析:函数Min(A1:A10)表示单元格A1~A10中各数的最小值。求最大值用函数Max,求平均值用函数Average,求数据个数用函数Count。

第6题:

找出数组a(共10个数)的最小值不能用以下哪个函数()。

A、MIN(A)

B、LARGE(a,10)

C、SMALL(a,1)

D、MAX(a,10)


答案:D

第7题:

工作表中,公式=MIN(A5:E10)表示求A5:E10单元格区域的最小值。()


正确答案:对

第8题:

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

下面一段程序从给定的数组b中找出值最小的元素,并输出该元素的数组下标、内存地址minaddr以及元素值本身。函数findmin负责在给定的数组中查找最小值,并返回最小值所在的内存地址,函数有三个参数:array是所要处理的数组;size是数组的大小;index负责从函数返回具有最大值的元素在数组中的数组下标。请填充空白,使其成为一个合乎要求的完整程序。

【程序】

//程序开始

include<iostream.h>

int *findmin(int *array, int size, int &index);

void main()

{

/****** 变量定义部分 ***********/

int b[10] = {34, 34, 23, 89, 1, 2, 13, 42, 5, 54};

(1);

int idx;

/******* 寻找最小值 ************/

minaddr = findmin(b, sizeof(b)/sizeof(int), idx);

/******* 输出最小值的有关信息 ************/

cout << "Min value index: "<<idx<<end1

<<"Min value address: "<<minaddr<<end1

<<"Min value: "<<(2)<<end1;

}

/******* 函数findmin的定义部分 ************

int *findmin(int *array, int size, int &index)

{

int min = 0;//max 是当前具有最小值的数组元素下标值

for(int i = 1;(3); i++)

{

if(array[i]<(4))

min = i;

}

(5);

return array + min;//返回最小值所在内存地址

}


正确答案:(1)int *minaddr (2) b[idx] (3)isize (4) array[min] (5) index = min
(1)int *minaddr (2) b[idx] (3)isize (4) array[min] (5) index = min

第9题:

编程,找出长度为10的数组中,数组元素的最小值,并输出。


答案:public class a{public static void main(String[] args){double x[]={25.3,56.3,15.3,125.25,465.36,456.32,458.21,456.325,4856.3215,41.6};double m=x[0];int i;for(i=0;i<10;i++){ if (m>=x[i])m=x[i];}System.out.println("最小数是"+m); }}

第10题:

使用一维整型数组可以完成的功能不包含()

  • A、求和及平均值
  • B、求最大及最小值
  • C、对数组元素排序
  • D、数组整体引用

正确答案:D

更多相关问题