阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[说明]
循环队列的类型定义如下(其中队列元素的数据类型为datatype):
typedef struct{
datatype data[MAXSIZE]; /*数据的存储区*/
int front,rear; /*队首、队尾指针*/
int num; /*队列中元素的个数*/
}c _ SeQueue; /*循环队*/
下面函数及其功能说明如下:
(1) c_SeQueue* Init_SeQueue():新建队列;
(2) int ln_SeQueue( c_SeQueue *q, datatype x):将元素x插入队列q,若成功返回1否则返回0;
(3) int Out_SeQueue (c_SeQueue *q, datatype *x):取出队列q队首位置的元素,若成功返回1否则返回0。
[函数]
c_SeQueue* Init_SeQueue()
{ q=malloc(sizeof(c_SeQueue));
q->front=q->rear=MAXSIZE-1;
(1);
return q;
}
int In_SeQueue( c_SeQueue *q, datatype x)
{ if(q->num= =MAXSIZE) return 0; /*队满不能入队*/
else {
q->rear=(2);
q->data[q->rear]=x;
(3);
return 1; /*入队完成*/
}
}
int Out_SeQueue( c_SeQueue *q, datatype *x)
{ if (q->num= =0) return 0; /*队空不能出队*/
else{
*x=(4); /*读出队首元素*/
q->front=(5);
q->num- -;
return 1; /*出队完成*/
}
}
第1题:
阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。
【说明】
阅读下面几段C++程序回答相应问题。
比较下面两段程序的优缺点。
①for (i=0; i<N; i++ )
{
if (condition)
//DoSomething
…
else
//DoOtherthing
…
}
②if (condition) {
for (i =0; i<N; i++ )
//DoSomething
}else {
for (i=0; i <N; i++ )
//DoOtherthing
…
}
第2题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
已知r[1...n]是n个记录的递增有序表,用折半查找法查找关键字为k的记录。若查找失败,则输出“failure",函数返回值为0;否则输出“success”,函数返回值为该记录的序号值。
[C函数]
int binary search(struct recordtype r[],int n,keytype k)
{ intmid,low=1,hig=n;
while(low<=hig){
mid=(1);
if(k<r[mid].key) (2);
else if(k==r[mid].key){
printf("succesS\n");
(3);
}
else (4);
}
printf("failure\n");
(5);
}
第3题:
试题三(共 15 分)
阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
第4题:
阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
下面程序的功能是计算x和y的最小公倍数。
[函数2.1]
main()
{ int m,n,d,r;
seanf("%d %d",&m,&n);
if(m<n) {r=m;m=n;n=r;}
(1);
while (d%n! =0) (2);
printf("%d\n",d);
}
[函数2.2说明]
下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。
[函数2.2]
include <stdio.h>
main()
{ char c,preChar='\0';
c = getchar();
while(c! = '.'){
if((3)) putchar(c);
else if(preChar! =' ') putchar(c);
(4);
c=(5);
}
}
第5题:
●试题二
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
该程序运行后,输出下面的数字金字塔
【程序】
include<stdio.h>
main ()
{char max,next;
int i;
for(max=′1′;max<=′9′;max++)
{for(i=1;i<=20- (1) ;++i)
printf(" ");
for(next= (2) ;next<= (3) ;next++)
printf("%c",next);
for(next= (4) ;next>= (5) ;next--)
printf("%c",next);
printf("\n");
}
}
第6题: