若定义int i=0,j=0;语句while(i++<10)i++;的循环次数为()。
A.9
B.4
C.5
D.10
A.9
B.4
C.5
D.10
以下为冒泡排序的算法。请分析算法,并在______处用适当的语句予以填充。
void bubblesort(int n,list r) /*fiag为特征位,定义为布尔型*/
{ for(i=1;i<=______,i++)
{______;
for(j=1;j<=______;j++)
if(r[j+1].key<r[j].key){flag=0;p=r[j];r[j]=r[j+1];r[j+1]=P;}
if(flag)return;
}
}
根据文字说明,请在以下______处填充适当的语句。
采用静态链表作存储结构,设置一个大小为2n-1的数组,令数组的每个元素由四个域组成:wt是结点的权值;lehild、rchild分别为结点的左、右孩子指针;parent是结点的双亲在数组中的下标。其数组元素类型定义如下:
typedef struet
{ float wt; /*权值*/
int parent,lchild rchild; /*指针域*/
}node;
typedef node hftree[2*n-1];
在这种存储结构上的哈夫曼算法可描述如下:
void huffman(int k,float W[k],hftree T) /*求给定权值W的哈夫曼树T*/
{ int i,j,x,y;
float m,n;
for(i=0;i<2*k-1;i++)
{ T[i].parent=-1;T[i].lchild=-1;T[i].rchild=-1;
if(______)T[i].wt=W[i];
else T[i].wt=0
}
for(i=0;i<k-1;i++)
{ x=0;y=0;m=maxint;n=maxint;
for(j=0;j<k-i,j++)
if(T[j].wt<m)&&(T[j].parent==-1){n=m;y=___;m=___;x=j;}
else if(T[j].wt<n)&&(T[j].parent==-1)){n=T[j].wt;y=j;)
}
T[x].parent=______;T[y].parent=______;
T[k+i].wt=______;
T[k+i].lchild=______;T[k+i].rchild=______;
}
阅读下列算法,并回答问题:
(1)设串s="OneWorldOneDream",t="One",pos是一维整型数组,写出算法f32(s,t,pos)执行之后得到的返回值和pos中的值;
(2)简述算法f32的功能。
int strlen(char*s); /*返回串S的长度*/
int index(char*st,char*t);
/*若串t在串st中出现,则返回在串st中首次出现的下标值,否则返回-1*/
int f32(char*s,char*t,int pos[])
{ int i,j,k,ls,It;
Is=strlen(s);
lt=strlen(t);
if(ls==0|| It==0)return-1;
k=0;
i=0;
do {
j=index(s+i,t);
if(j>=0)
{ pos[k++]=i+j;
i+=j+it;
}
}while(i+it<=is&&j>=0);
return k;
}
编写程序,输出一维数组a中的元素最小值及其下标。 编程提示: 1.定义一个整型变量存放最小值下标,将其初始化为0 ,例如:int p=0;即从数组第零个元素开始判断。 2.通过循环,依次判断数组中的每一个元素a[i]是否小于a[p],如果是,则将p和a[p]的值作相应的改变。/* c6-5.c 输出一维数组中元素的最小值及其下标*/ #include "stdio.h" int main() { int i,m,p,a[10]={9,8,7,6,1,3,5,18,2,4}; /* m为最小值,p为其下标 */ m=a[0]; p=0; for(i=1;i<10;i++) if { ; p="i;}" * 请补充完整此语句 printf("%d,%d\n",a[p],p); 输出一维数组a中的最小值及其下标 return 0;>
A.9
B. 6
C. 3
D. 0
A.min=7 at (x,y):(3,1)
B.min=7 at (x,y):(3,3)
C.min=3 at (x,y):(1,3)
D.7 3 3
int binsearch(sqtable R,keytype K)
{ low=l;hig=R.n;/*置查找区间初值。low,hig分别标记查找区间的下、上界*/
while(low<=hig)
{ mid=(low+hig)/2;
switch
{ case K==R.item[i].key:return(mid); /*找到,返回位置mid*/
case K<R.item[i].key:______.break;/*缩小区间*/
case K>R.item[i].key:______;break/*缩小区间*/
}
}
return(0); /*若区间长度已为0但仍不成功,则返回0,表示查找不成功*/
}
以下为求单链表表长的运算,分析算法,请在______处填上正确的语句。
int length_lklist(lklist head) /*求表的长度。 */
{______;
j=0;
while(p—>next!=NULL)
{______;
j++;}
return(j);
} /*回传表长*/
A.定义char a[3]; 则数组a在内存中占6个字节
B.语句int a[]={0};是不合法的,遗漏了数组的大小
C.语句int a[8]={0};是合法的
D.语句char a[2]={12, 125, 1};是合法的
A.float m=map(mouseX,0,width,1,8);
B.int m=map(mouseX,0,width,1,8);
C.float m=constrain(mouseX,0,width,1,8);
D.int m=constrain(mouseX,0,width,1,8);