计算机二级

以下函数findmin拟实现在数组中查找最小值并作为函数值返回,但程序中有错导致不能实现预定功能。造成错误的原因是( )。A)定义语句int i,min;中vain未赋初值B)赋值语句min=MAN;中,不应给min赋MAX值C)语句if(minD)赋值语句min=MAX;放错了位置

题目

以下函数findmin拟实现在数组中查找最小值并作为函数值返回,但程序中有错导致不能实现预定功能。

造成错误的原因是( )。

A)定义语句int i,min;中vain未赋初值

B)赋值语句min=MAN;中,不应给min赋MAX值

C)语句if(min

D)赋值语句min=MAX;放错了位置

参考答案和解析
正确答案:D
在C语言中,一个整型变量占用4个字节的内存单元,并按整型数的存储方式存放数据,允许存放的数值范围是:一2147483648-2147483647。所以在这个题目中定义的宏变量MAX的值就是整数范围内最大的数值,因而对于任意一个整数来说,其值都比MAX小,而判断最小值,是当找到的数比rain小时,才交换。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下选项中叙述错误的是

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的形参不可以说明为static型变量


正确答案:A
解析:C程序函数中定义的静态变量,每调用一次函数,不需要对静态变量赋初值,使用的值为上次调用完函数后的值。

第2题:

以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致

不能实现预定功能。

#define MIN-2147483647

int findmax(int x[],int n)

{int i,max;

for(i=0;i<n;i++)

{max=MIN;

if(max<x[i])max=x[i];)

return max;

}

造成错误的原因是( )。

A.定义语句“int i,max;”中max未赋初值

B.赋值语句“max=MIN;”中,不应给max赋MIN值

C.语句“if(max<x[i])max=x[i];”中判断条件设置错误

D.赋值语句“max—MIN;”放错了位置


正确答案:D
“max=MIN;”语句应放在for循环之前,否则每次循环时都重新赋值,值没有变化。

第3题:

以下选项中叙述错误的是( )。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的性能不可以说明为static型变量


正确答案:A
静态变量不是每调用一次就赋一次初值,而是将需要定义许多相同的具有相同属性的值时,使用静态变量来节省空间,所以A选项错误。

第4题:

以下选项中叙述错误的是( )。

A.C程序函数中定义的自动变量,系统不自动赋确定的初值

B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

D.C程序函数的形参不可以说明为static型变量


正确答案:C
A选项描述正确,自动变量未赋初值,为随机值;B选项描述正确,变量定义除在函数开始位置外,在复合语句开始也可以;c选项描述是错误的,函数内的静态变量,只在第一次调用时候赋值,以后调用保留上次值;D选项描述也正确,形参属于局部变量,占用动态存储区,而static型变量占用静态存储区。因此C选项正确。

第5题:

以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

#d越lie MIN-2147483647

int findmax(int X[],int n)

{ int i,max;

for(i=0;i<n;i++)

{max=MIN;

if(max<x[i])max=x[i];}

return max;

}

造成错误的原因是

A.定义语句int i,max;中max未赋初值

B.赋值语句max=MIN;中,不应给max赋MIN值

C.语句if(max<x[i])max=X[i];中判断条件设置错误

D.赋值语句max=MIN;放错了位置


正确答案:D
解析:对max赋初值,应该要放在循环语句之前,不然每次循环都将是从MIN开始比较。

第6题:

以下选项中叙述错误的是( )。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在c程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的形参不可以说明为static型变量


正确答案:A
静态变量只赋值一次,下一次调用.还是使用上次遗留的值。答案选择A)

第7题:

以下函数findmin拟实现存数组中查找最小值作为函数值返回,但程序中有错导致不能实现预定功能。 #define MAX 2147483647 int findmin(int x[],int n) {int i,min; min=MAX; for(i=0;i<n;i++) {if(min<x[i])min=x[i];} } 造成错误的原因是( )。

A.定义语句int i,min;中min未赋初值

B.赋值语句min=MAN;中,不应给min赋MAX值

C.语句if(min<X[i])min=X[i];中判断条件设置错误

D.赋值语句min=MAX;放错了位置


正确答案:D
解析:在C语言中,一个整型变量占用4个字节的内存单元,并按整型数的存储方式存放数据,允许存放的数值范围是:-2147483648~2147483647。所以在这个题目中定义的宏变量MAX的值就是整数范围内最大的数值,因而对于任意一个整数来说,其值都比MAX小,而判断最小值,是当找到的数比min小时,才交换。

第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题:

以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回 , 但程序中有错导致不能实现预定功能

#define MIN -2147483647

int findmax (int x[],int n)

{ int i,max;

for(i=0;i<n;i++)

{ max=MIN;

if(max<x[i]) max=x[i];}

return max;

}

造成错误的原因是

A) 定义语句 int i,max; 中 max 未赋初值

B) 赋值语句 max=MIN; 中,不应给 max 赋 MIN 值

C) 语句 if(max<x[i]) max=x[i]; 中判断条件设置错误

D) 赋值语句 max=MIN; 放错了位置


正确答案:D