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");}
第2题:
A.类成员变量的作用域为类定义体
B.方法参数的作用域为方法体
C.对于for语句中定义的变量,当for语句执行完时,该变量就消亡了
D.在方法void f(int i)的for语句块中,可以声明变量“int i;”
第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){ …… }
第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";
}
第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]<<",";
第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)。
第7题:
使用较为广泛的针对企业信用分析的5Ps分析系统包括( )。
A.个人因素(personal factor)
B.资金用途因素(purpose factor)
C.还款来源因素(payment factor)
D.保障因素(protection factor)
E.企业前景因素(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);
第9题:
A.正确,尽管变量var2定义了两次,但程序自动将它们看成一个变量;
B.正确,前面出现的变量var2有效期仅在if中,不会与后面的变量var2重叠;
C.错误,if块中的变量var2有效期从这里直到函数结束,因此会出现变量重叠;
D.错误,不管变量在哪里定义,它们都会在函数入口处初始化,因此会出现变量重叠;
第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);
}
}