为计算a“的值,某人编写了函数power如下:
Private Function power(a As Integer,n As Integer)As Long
Dim P As Long
P=a
For k=l T0 n
P=P * a
Next k
poWer=P
End Function
在调试时发现是错误的,例如Print power(5,4)的输出应该是625,但实际输出是3125。程序需要修改。下面的修改方案中有3个是正确的,错误的一个是
A.把For k=1 To n改为For k=2 To n
B.把P=P*a改为P=p^n
C.把Fork=1 To n改为For k=1 To n-1
D.把P=a改为P=1
第1题:
下列程序的运行结果为______。 #define MS DOS #ifdef MS DOS #define INTEGER SIZE 32 #else #define INTEGER SIZE 16 #endif main () { printf ("integer_size=%d\n", INTEGER_SIZE); }
A.integersize=32
B.integer_size=16
C.integersize=32,integer_size=16
D.错误
第2题:
四、排序算法
A.快速排序:
procedure qsort(l,r:integer);
var i,j,mid:integer;
begin
i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数}
repeat
while a[i]<mid do inc(i); {在左半部分寻找比中间数大的数}
while a[j]>mid do dec(j);{在右半部分寻找比中间数小的数}
if i<=j then begin {若找到一组与排序目标不一致的数对则交换它们}
swap(a[i],a[j]);
inc(i);dec(j); {继续找}
end;
until i>j;
if l<j then qsort(l,j); {若未到两个数的边界,则递归搜索左右区间}
if i<r then qsort(i,r);
end;{sort}
第3题:
链表的定位函数
loc(I:integer):pointer; {寻找链表中的第I个结点的指针}
procedure loc(L:linklist; I:integer):pointer;
var p:pointer;
j:integer;
begin
p:=L.head; j:=0;
if (I>=1) and (I<=L.len) then
while j<I do begin p:=p^.next; inc(j); end;
loc:=p;
end;
第4题:
素数的求法
A.小范围内判断一个数是否为质数:
function prime (n: integer): Boolean;
var I: integer;
begin
for I:=2 to trunc(sqrt(n)) do
if n mod I=0 then begin
prime:=false; exit;
end;
prime:=true;
end;
第5题:
排列的生成:(1..n)
procedure solve(dep:integer);
var
i:integer;
begin
if dep=n+1 then begin writeln(s);exit; end;
for i:=1 to n do
if not used[i] then begin
s:=s+chr(i+ord(''0''));used[i]:=true;
solve(dep+1);
s:=copy(s,1,length(s)-1); used[i]:=false;
end;
end;
第6题:
A.DPCCH_Initial_power=DPCCH_Power_offset+CPICH_RSCP
B.DPCCH_Initial_power=DPCCH_Power_offset-CPICH_RSCP
C.DPCCH_Initial_power=DPCCH_Power_offset+CPICH_RSCP+ConstantValue
D.DPCCH_Initial_power=DPCCH_Power_offset+CPICH_RSCP-ConstantValue