大数据智能办公系统知识

var?factor?=?3???val?multiplier?=?(i:Int)?=>?i?()?factor??这里我们引入一个自由变量?factor,这个变量定义在函数外面,这就是闭包

题目

var?factor?=?3???val?multiplier?=?(i:Int)?=>?i?()?factor??这里我们引入一个自由变量?factor,这个变量定义在函数外面,这就是闭包

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若变量n中的值为24,则pint函数共输出【】行。void pint(int n,int aa[]){ int i; for(i=1; i<=n; i++) { printf("%6d",aa[i]); if(!(i%5))printf("\n"); }printf("\n");}


正确答案:5
if(!(i%5))的意思就是i为5的倍数就换行,即每行5个,因为公24个输出,所以为5行。

第2题:

关于变量的作用域,下列说法错误的是( )。

A.类成员变量的作用域为类定义体

B.方法参数的作用域为方法体

C.对于for语句中定义的变量,当for语句执行完时,该变量就消亡了

D.在方法void f(int i)的for语句块中,可以声明变量“int i;”


参考答案:D

第3题:

若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是

A)

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b){ …… }

B)

float fun(int a,int b){ …… }

main()

{ …… x=fun(i,j); …… }

C)

float fun(int,int);

main()

{ …… x=fun(2,10); …… }

float fun(int a,int b) { …… }

D)

main()

{ float fun(int i,int j);

…… x=fun(i,j); …… }

float fun(int a,int b){ …… }


正确答案:A
(20)A) 解析 : 在调用子函数时 , 应对其进行说明。选项 A) 中 , 调用时 , 没有对子函数进行说明 。选项 B) 、 C) 中被调用函数在主调函数之前定义 , 不用说明 ; 选项 D) 中在主调函数中对被调用函数的返回值类型进行了说明。

第4题:

使用VC6打开考生文件夹下的工程test38_1,此工程包含一个源程序文件test38_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:

2 is a factor of 10

源程序文件test38_1.cpp清单如下:

include <iostream.h>

class myclass

{

/***************** found *****************/

int n,d

public:

myclass(int i, int j){ n=i; d=j; }

friend int factor( myclass ob);

};

/***************** found *****************/

int myclass::factor(myclass ob)

{

/***************** found *****************/

if(ob.n%ob.d)

return 1;

else

return 0;

}

void main()

{

myclass ob1(10,2),ob2(13,3);

if(factor(ob1))

cout<<"2 is a factor of 10\n";

if(factor(ob2))

cout<<"3 is not a factor of 13\n";

}


正确答案:(1) 错误:int nd 正确;int nd; (2) 错误:int myclass::factor(myclass ob) 正确:int factor(myclass ob) (3) 错误:if(ob.n%ob.d) 正确:if(ob.n%ob.d))
(1) 错误:int n,d 正确;int n,d; (2) 错误:int myclass::factor(myclass ob) 正确:int factor(myclass ob) (3) 错误:if(ob.n%ob.d) 正确:if(ob.n%ob.d)) 解析:(1)主要考查考生对于变量定义的理解,同类型的变量定义中间使用逗号分开,同时可以进行初始化,但是在整个定义的结尾必须使用分号,这是C++的规定:
(2)主要考查考生是否掌握了友元函数的定义,友元是在类的内部声明,类的外部实现的一种特殊的函数,它可以访问类内的所有成员,不过在类外的实现和调用的时候均不需要使用作用域符号“::”限制:
(3)主要考查考生对于if条件语句的掌握,只有括号内的条件为真,即值为1时,才执行if后面的语句,根据题目要求应该执行的是对象ob1,即2可以整除10,所以应该定义函数factor的返回值为能整除返回1,否则为0,而能够整除即取余运算值为0,所以在判断前应该加上非运算。

第5题:

定义如下变量和数组:

int i;

int y[2][3]={2,4,6,8,10,12};

则下面语句的输出结果是【 】。

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

cout<<y[1-i)[i+1]<<",";


正确答案:106
10,6 解析:for循环所输出的数组元素分别为y[1][1]、y[O][2],即输出10和6。

第6题:

阅读下列程序说明和C代码,回答问题1~2。

[说明]

本程序用古典的Eratosthenes的筛法求从2起到指定范围内的素数。如果要找出2至10中的素数,开始时筛中有2到10的数,然后取走筛中的最小的数2,宜布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9:重复上述步骤,再取走最小数3,宣布它为素数,井取走3的倍数,于是留下5、7。反复重复上述步骤,直至筛中为空时,工作结束,求得2至 10中的全部素数。

程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走。

[程序]

include < stdio, h >

define MAX 22500

main( )

{ unsigned int i , range , factor , k;

int sieve[MAX];

prinff( "please input the 'range:" );

scanf(" %d" ,&range); /* range 指出在多大的范围内寻找素数* /

for(i=2 ;i<=range; i++) (1); /*筛子初始化*/

factor = 2 ;

while (factor < = range) {

if((2)= = 1)l /*筛子中最小数是素数*/

pfinff( "% d\t" ,factor);

k = factor;

while (k < =range) { /* 取走素数的倍数*/

(3);

k=(4);

factor + +;

}

}

[问题1]将程序代码中的(1)~(4)处补充完整。

[问题2]在上述代码的执行过程中,若factor为5,从筛子中取走的头两个数是5和(5)。


正确答案:[问题1](1)sieve[i]=1 (2)sieve[factor] (3) sieve[k]=-1 (4)k+factor [问题2](5)25
[问题1](1)sieve[i]=1 (2)sieve[factor] (3) sieve[k]=-1 (4)k+factor [问题2](5)25 解析:初始时,2到range以内的数i都在筛子中,即sieve[i]=1;
(2)每用一次筛法,筛子中留存的最小数都不是前面素数的倍数,因而也是素数,我们只需用这个数来继续筛选。例如,用factor=2、3筛选以后,筛于中最小数是5,所以factor=4的情形不需考虑,只需对fsctor=5,即 sieve[factor]==1的情形继续执行筛选;
(3)若k是素数factor的倍数,则将k从筛子中移出,即设置sieve[k]=-1;
(4)由于k应该是素数factor的倍数,因此从韧值factor开始需要每次自增factor;
(5)当factor为2时,取走了2的倍数;当factor为3时,取走了3的倍数;于是当factor为5时取走的第二个数是5的倍数、但不是2或者3的倍数,这个数应该是 25。

第7题:

使用较为广泛的针对企业信用分析的5Ps分析系统包括( )。

A.个人因素(personal factor)

B.资金用途因素(purpose factor)

C.还款来源因素(payment factor)

D.保障因素(protection factor)

E.企业前景因素(perspective factor)


正确答案:ABCDE
解析:除5Cs系统外,使用较为广泛的专家系统还有针对企业信用分析的5Ps系统。5Ps分析系统包括:个人因素(personal factot)、资金用途因素(purpose factor)、还款来源因素(payment factor)、保障因素(protection factor)、企业前景因素(perspective factor)。

第8题:

已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义

struct a *f(int t1,int *t2,strcut a t3,struct a *t4)

struct a p,*p1;int i;

则正确的函数调用语句为

A.&p=f(10,&i,p,p1);

B.p1=f(i++,(int *)p1,p,&p);

C.p=f(i+1,&(i+2),*p,p);

D.f(i+1,&i,p,p);


正确答案:B

第9题:

下面的代码是否有错误?()If(true){Stringvar2=”变量2”;System.out.println(var2);}Stringvar2=”变量2B”;System.out.println(var2);

A.正确,尽管变量var2定义了两次,但程序自动将它们看成一个变量;

B.正确,前面出现的变量var2有效期仅在if中,不会与后面的变量var2重叠;

C.错误,if块中的变量var2有效期从这里直到函数结束,因此会出现变量重叠;

D.错误,不管变量在哪里定义,它们都会在函数入口处初始化,因此会出现变量重叠;


参考答案:B

第10题:

阅读下列算法说明和代码,将应填入(n)处的语句写在对应栏内。

【说明】

本程序用古典Eratosthenes;筛选法求从2起到指定范围内的素数。如果要找出2~10中的素数,开始时筛中有2~10的数,然后取走筛中最小的数2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9;重复上述步骤,再取走最小数3,宣布它为素数,并取走3的倍数,于是留下5、7。反复重复上述步骤,直到筛中为空时,工作结束,求得2~10中的全部素数。

【代码】

include <stdio.h>

define MAX 22500

/*程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走*/

main()

{ unsigned int i, range, factor, k;

int sieve[MAX];

printf("please input the range:");

scanf("%d", &range);/* range 指出在多大的范围内寻找素数*/

for(i=2; i<=range; i++)

(1);

factor=2;

while (factor<=range)

{ if((2)) /* 筛中最小数是素数 */

{ printf("%d\t", factor);

k=factor;

while (k<=range) /*移走素数的倍数 */

{ (3);

k=(4);

}

}

(5);

}

}


正确答案:(1)sieve[i]=i (2)sieve[factor]>0 (3)sieve[k]=-1 (4)k+factor (5)factor++
(1)sieve[i]=i (2)sieve[factor]>0 (3)sieve[k]=-1 (4)k+factor (5)factor++ 解析:本题考查在C语言中实现素数的选取。
题目要求从指定范围内的数中选取其中的素数,并给出了相关的选取方法。在做题前我们首先需要清楚什么是素数,素数又叫质数,是指除1和自身之外,没有其他约数的正整数。—下面我们来分析程序。
第(1)空在第一层循环体下面,题目要求用数组sieve表示筛子,但在程序中并没有给数组输入值,此空应该是在循环下往数组中存放数值,其存放的位置与数值的大小对应,因此,此空答案为sieve[i]=i。
第(2)空是条件判断语句的条件,从注释中我们可以知道,这个条件判断语句的作用是筛中最小数是素数,是素数的话一定在数组中,元素的值就应该大于0。那么条件应该是判断数组中当前位置的值是否大于0,如果是,则执行判断语句下的语句,即筛选出这个数且这个数是素数。结合题目给出的条件,知道此空答案为sieve[factor]>0。
第(3)空是移走素数的倍数这个循环下面的语句,此循环的作用就是移走当前最小素数的倍数,题目要求在移走了数值以后,数组中相应的值为-1,那么此空的作用应该是将数组中该移走数的相应值变为-1,因此,此空答案为sieve[k]=-1。
第(4)空是紧接着上面一空来的,变量k中存放的是数组当前的下标,而变量factor中存放的是当前最小的素数。此空所在循环体的作用是移走当前最小素数的倍数,求倍数时,只要在该数的基础上加上该数,那就是两倍,再加一个就是三倍,由此直到最大范围。因此,此空答案应该是k+factor。
第(5)空是while(factor=range)循环下的最后一条语句,我们从程序中可以看出,factor中存放的是当前的最小素数,同时也是此素数在数组中的下标位置。题目告诉我们在处理完当前素数后,应该去取下一个素数,下标位置往后移动。因此,此空答案为factor++。

更多相关问题