数控机床操作工考试

若I.、J、K、R同时在一个程序段中出现,则R有效,I、J、K被忽略。

题目

若I.、J、K、R同时在一个程序段中出现,则R有效,I、J、K被忽略。

参考答案和解析
正确答案:正确
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有如下程序includemain(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}

设有如下程序 #include<stdio.h> main() { int**k,*j,i=100; j=&i;k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第2题:

若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j } }; 则上述定义中

A.k=i*j;

B.int k;

C.return i;

D.void make()


正确答案:A
解析:本题考核派生类的定义和访问权限。变量i和j都是基类A的私有变量,它们是隐蔽的,在派生类中不能直接访问。

第3题:

阅读下面的程序段: K=0 for I=1 to 3 for J=1 to I K=K+J Next J Next I 执行上面的语句后,K的值为______。

A.8

B.10

C.14

D.21


正确答案:B
解析:本题是两层嵌套循环,外面的循环执行一次,里面的循环就要全部都执行一次。初始时K=0当I=1时,里面循环要全部执行,有forJ=1to1;所以K=K+1,最后K值为1当I=2时,里面循环要全部执行,有forJ=1to2;所以K=K+1,K=K+2,最后K值为4当I=3时,里面循环要全部执行,有forJ=1to3;所以K=K+1,K=K+2,K=K+3,最后K值为10最后得到的K值为10

第4题:

设关系模式R,其中U{H,I,J,K,L},若F={H→IJ,J→K,IJK→L,L→H,L→K),则F的最小函数依赖集Fmin={(5

设关系模式R<U,F>,其中U{H,I,J,K,L},若F={H→IJ,J→K,IJK→L,L→H,L→K),则F的最小函数依赖集Fmin={(54)},关系模式R的候选关键字是(55)。

A.H→I,H→J,J→K,IJK→L,L→H

B.H→I,H→J,J→K,IJ→L,L→H

C.H→I,H→J,J→K,IJ→L,J→K

D.H→I,J→K,IJ→L,L→H,L→K


正确答案:B

第5题:

在执行完下面的程序后,变量k的值为【 】。

int i, j, k;

for(i=0, j=10; i<:j; i++,j--) k=i+j;


正确答案:10
10

第6题:

假定有下面的程序段: For i=1 To 3 For j=1 To i For k=j To 3 Print"i=";i,"j=";j,"k=";k Next k Next j Next i 这是一个三重循环程序,在这个程序中,外层、中层和内层循环的循环次数是

A.3、6和14

B.3、8和16

C.3、4和12

D.3、9和18


正确答案:A
解析:本题主要考查多重循环的循环次数。在这个程序中外层循环由循环变量i控制,它只可以取3个值,故循环次数为 3。中层循环次数会受到外层循环的影响。 i=1时,中层执行1次;i=2时,中层执行2次;i=3时,中层执行3次;故中层循环一共执行了(1+2+3)次,即6次。内层循环次数会同时受到中层、外层变量的影响。 当i=1,j=1时,内层执行3次;当i=2,j=1时,内层执行3次;当i=2,j=2时,内层执行2次;当i=3,j=1时.内层执行3次;当i=3,j=2时,内层执行2次;当i=3,j=3时,内层执行1次;故内层循环的循环次数为(3+3+2+3+2+1)次,即14次。选项A正确。

第7题:

23 有如下程序段,该程序段循环的次数是______。 Dim i As Integer Dim j As Integer Dim k As Integer k=0 For i = 0 To 10 Step 3 For j = 1 To 5 If j > 3 Then k = k + 4: Exit For k=k+1 Print k Next j If i > 8 Then Exit For Next i

A.9

B.10

C.11

D.12


正确答案:D

第8题:

下面程序段的执行结果为( )。 int i=3,j=0,k=0; for(;i>0;--i) { ++k; do { ++j; if (i!=j) break; ++k; }while(j<5); } printf("i=%d j=%d k=%d\n",i,j,k);

A.i=0 j=4 k=12

B.i=0 j=5 k=5

C.i=0 j=4 k=4

D.i=0 j=3 k=3


正确答案:C
解析:程序开始时(i,j,k)三个值分别为(3,0,0),然后进入for循环,由于for的第一条语句空缺,所以不做初始化,此时i为3满足循环条件,进入循环体。然后执行“++k;”使k变成1,再无条件进入do-while循环体执行“++j;”使j变成1,此时i和j不相等所以执行break;语句跳出do-while循环。准备开始第二遍for循环,i的值被减1,此时3个值分别为(2,1,1),i为2满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j同为2相等,所以跳过break;语句再执行一次++k;使k为3,由于此时j满足do-while的循环条件,所以下一步回到前面执行do后面的++j;语句,使j为3,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第三遍for循环,i的值被减1,此时3个值分别为(1,3,3),i为1满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第四遍for循环,i的值被减1,此时3个值分别为(0,4,4),i为0不满足for语句的循环条件,所以执行循环体后面的printf()函数输出3个值,故正确答案为C。

第9题:

阅读以下说明,将应填入(n)处的字句写在答卷纸的对应栏内。

【说明】

下面的程序为堆排序程序,其中函数adjust(i,n)是把以R[i](1≤i≤┕i/2┙)为根的二叉树调整成堆的函数,假定R[i]的左、右子树已经是堆,程序中的,是在主函数中说明的结构数组,它含有要排序的n个记录。

【程序】

Void adjust(i,n)

Int i,n;

{

iht k,j;

element extr;

extr=r[i];

k=i;

j=2*i;

while (j<=n )

{if ((j<n) && (r[j].key<r[j+1].key))

(1);

if (extr. key<r[j].key)

{

r[k]=r[j];

k=j;

(2);

}

else

(3);

}

r[k]=extr;

}

/*让i从┗i/2┛逐步减到1, 反复调用函数adjust, 便完成建立初始堆的过程。*/

void heapsort (r,n)

list r;

int n;

{

int i,1;

element extr;

for (i=n/2;i>=1;- -i)

(4); /* 建立初始堆*/

for (k--n;k>=2;k- -)

{

extr=r[1];

r[1]=r[k];

r[k]=extr;

(5);

}

}


正确答案:(1)j++ (2)j*=2或j=k*2 (3)j=n+1或break (4)adjust(in) (5)adjust(1k-1)
(1)j++ (2)j*=2或j=k*2 (3)j=n+1或break (4)adjust(i,n) (5)adjust(1,k-1) 解析:函数adjust(i,n)是把以R[i](1≤i≤┗i/2┛)为根的二叉树调整成堆的函数,假定R[i]的左、右子树已经是堆,程序中的r是在主函数中说明的结构数组,它含有要排序的n个记录。
Void adjust(i,n)
Int i,n;
{
int k,j;
element extr;
extr=r[i];
k=i;
j=2*i;
while(j=n)
{if((jn)&&(r[j].keyr[j+ 1].key))
j++;
if(extr.keyr[j].key)
{
r[k]=r[j];
k=j;
j*=2;
}
else
j=n+1;
}
r[k]=extr;
}
/* 让i从┗i/2 ┛逐步减到1, 反复调用函数adjust, 便完成建立初始堆的过程。堆排序程序heapsort 如下*/
void heapsort(r,n)
list r;
int n;
{
int i,l;
element extr;
for (i=n/2;i>= 1 ;--i)
adjust(i,n); /*建立初始堆*/
for(k=n;k>=2;k--)
{
extr=r[1];
r[1]=r[k];
r[k]=extr;
adjust(1,k-1);
}
}
函数heapsoff的第一个for循环建立初始化。没待排序的n个记录组成—棵深度为h的完全二叉树,因此有2h-1n≤2h+1-1,即2h≤n2h+1。完全二叉树的第i层(设根结点的层次为0)上最多有2i个结点,对每个非叶结点,都要调用过程adjust,同时可能移动结点(向下移动),第i层上的结点可能要移动的最大距离为h-i,若设向下移动一层花费的时间为c,则第i层2i个结点调整的时间最多为c*(h-i)*2i建立初始堆的全部时间应是:
令j=h-1,则i=h-j,所以有:
对第二个for循环,调用adjust函数n-1次,每次总是由根向下调整,调整的最大距离为log2n(实际上,调整的距离是逐渐变小的),所以总的时间不多于c*(n-1)log2n=O(log2n).堆排序总的时间为:
O(n)+O(nlog2n)=O(max(n,n log2n))=O(n log2n)
算法需要的存储空间是存储n个记录的数组以及少量暂存单元。
堆排序算法是不稳定的。

第10题:

假定有下面的程序段: For i=1 To 3 For j = 1 To i For k=j To 3 Print "i = ";i,"j=";i,"k =";k Next k Next j Next i 这是一个三重循环程序,在这个程序中,外层、中层和内层循环的循环次数是

A.3、6和14

B.3、8和16

C.3、4和12

D.3、9和18


正确答案:A
解析:在多重循环中,外层循环变化一次,内层循环从头到尾执行一遍。该题是一个三重循环,而且中层循环变量的终值和内层循环变量的初值是随上一层循环的循环变量变化而变化的,因此需要逐层加以计算后累加出各层的循环次数。模拟计算机的计算过程,计算各层的循环次数为:①外层循环:i=1To3,循环次数为3:②中层循环:由于i是中层循环的终值,当i=1、2、3时,其循环次数分别为1次、2次、3次,中层循环的循环总次数为6:③内层循环:由于j是内层循环的初值,j=1、1、2、1、2、3时,其循环次数分别为3次、3次、2次、3次、2次、1次,内层循环的循环总次数为14。

更多相关问题