以下这段代码 for(i=0; i<n; i++) i从0循环到n-1,每次循环 +1 for(j="i;" j+="j)" j从i循环到n-1,每次循环 +j printf("%d,%d\n", i, j); 打印i和j> A、
B、
C、
D、
B、
C、
D、
B、021021
C、000122
D、012
某程序中有如下循环代码段P: for (i=0; i<n; 1 2 3 4 5 6 i++) sum+="A[i];" 假设编译时变量sum和i分别分配在寄存器r1和r2中。常量n在寄存器r6中,数组a的首地址在寄存器r3中,程序段p的起始地址为08048100h,对应汇编代码和机器代码如下表所示: 编号 地址 机器码 汇编码 操作注释 08048100h 00022080h loop: sll r4,r2,2 08048104h 00083020h add r4,r4,r3 (r4)+(r3)→r4 08048108h 8c850000h load r5,0(r4) ((r4)+0)→r5 0804810ch 00250820h r1,r1,r5 (r1)+(r5)→r1 08048110h 20420001h addi r2,r2,1 (r2)+1→r2 08048114h 1446fffah bne r2,r6,loop if (r2) ≠ (r6) goto loop 如果执行上述代码的计算机采用32位定长指令字,其中的分支指令bne格式如下: 31:26 25:21 20:16 15:0 op rs rd offset 其中的op为操作码,rs和rd为寄存器编号,offset为偏移量(用补码表示),请回答下列问题: 计算机的存储器编址单位是( ) a. 8位 b. 16位 c. 32位 d. 64位>
A、range函数产生的序列从0开始
B、range函数产生的序列从1开始
C、range函数产生的序列到10结束(包括10)
D、range函数产生的序列到9结束(包括9)
A、int n=0 do {++n;} while (n<=0);> B、int n=0; while (1) n++;
C、int n=10; while (n); n--;
D、int n=0,i; for (n=0,i=1; ;i++) n+=i;
【说明】
幼儿园有n(<20)个孩子围成一圈分糖果。老师先随机地发给每个孩子若干颗糖果,
然后按以下规则调整:每个孩子同时将自己手中的糖果分一半给坐在他右边的小朋友。如共有8个孩子,则第1个将原有的一半分给第2个,第2个将原有的一半分给第3个,……,第8个将原有的一半分给第1个,这样的平分动作同时进行。若平分前,某个孩子手中的糖果是奇数颗,则必须从老师那里要一颗,使他的糖果数变成偶数。小孩人数和每个小孩的初始糖果数由键盘输入。下面的程序可求出经过多少次上述这样的调整,使每个孩子手中的糖果—样多,调整结束时每个孩子有糖果多少颗,在调整过程中老师又新增发了多少颗糖果。
【程序】
include
define N 20
int allEqual (int a[ ],int n) /*检查每个孩子手中的糖果是否一样多*/
{ iht i;
for(i=1; i<n; i++)
if(a[O]!=a[i]) return O;
return 1;
}
int a[N], b[N];
void main ()
{ int i, n, addk, loopc;
printf("Enter n((20)\n"); scanf("%d", &n);
printf ("Enter data\n");
for(i=O; i(n; i++) scanf("%d", &a[i]);
addk=O;(1);
while (2){ /*平分循环*/
loopc++;
for (i=O; i (n; i++){ /*为一次调整作准备*/
if(a[i]%2) { a[i]++;(3); }
if (i<n-1) b[i+1]=a[i]/2; else(4)
a[i]/=2;
}
for(i=O; i<n; i++)(5); /*完成一次调整*/
}
printf("调整%d次\n", loopc); printf("每个孩子有%d颗糖果\n", a[0]);
printf("调整过程中新增发%d颗糖果。\n", addk); }
阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
【说明1】
下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字
母出现的次数(英文字母不区分大小写)。
【C代码1】
Int countchar(char*text)
{
int i,sum=O; /*sum保存不同的英文字母数*/
char *ptr;
int c[26]={0}; /*数组c保存每个英文字母出现的次数*/
/*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/
ptr=(1); /* ptr初始时指向字符串的首字符*/
while (*ptr) {
if (isupper (*ptr) )
c[*ptr一’A’]++;
else &39;
if (islower (*ptr) )
c[*ptr一’a’]++;
(2); /*指向下一个与字符*/
}
for (i=0. i<26; i++ )
If(3)sum++;
return sum;
}
【说明2]
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2: f2:f2:2
f3: f3:1
【C代码2]
include
int fl (int (*f) (int)) .
int f2 (int) ;
int f3 (int) ;
int main ()
{
Printf(“%d\n”,f1(4))
Printf(“%d\n”,f1(5))
return 0;
}
int fl(int (*f) (int) }
{
int n=O;
/*通过函数指针实现函数调用,以返回值作为循环条件*/
While(6) n++
return n;
}
int f2 (int n)
{
printf ("f2: ") ;
return n*n-4;
}
int f3 (int n)
{
printf ("f3: ") ;
return n-1
}
#include
int main()
{
int i=0;
for(;i<2;)
{
i++;
}
printf("%d\n",i);
return 0;
}
A.程序编译出错
B.输出结果为2
C.输出结果为1
D.程序死循环
给定如下图所示的有向图哪一项是该图的拓扑排序序列:
A、ACFBDEG
B、BEADCFG
C、ABCDFEG
D、BADCEGF
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!