头部互动开始 -->

数据结构周测错题小结

小题:

1、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()

A.函数的实参和其对应的形参共占同一存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

参考答案:D

2、假定一个顺序存储的循环队列的队头和队尾下标分别为front和rear,队列容量为MaxSize ,则判断队满的条件为

(rear+1)%MaxSize == front|||front==(rear+1)%MaxSize  

代码题:

1、请编写一个函数strip, 用来删除字符串中的所有空格。例如, 输入apple tree, 则输出为 appletree。字符串从键盘输入。

void strip(char *s)
{
    int i,j;  
    for(i=0;s[i];i++)  
    {   
     if(s[i]==' ')   
     {    
       for(j=i;s[j];j++)    
       {       
          s[j]=s[j+1];
       }   
     }   
    }
} 
int main (void) 
{    char s[200];
    bzero(s, 200);
    printf("input:");
    fgets(s, 200, stdin);
    strip(s);
    printf("%s",s);
}

2、编写一个函数,实现单链表逆序,无需实现单链表的具体细节,函数原型如下:
void reverse_list(single_list *head);

void reverse_list(single_list *head)
{
     single_list *p = head->next; //将链表除头节点的节点保存
     head->next = NULL;//将链表断开
     single_list *tmp = NULL;
     while(p != NULL)
     {
        tmp = p->next;//将后面还未逆序的节点保存

        //将p插入到head的后面
        p->next = head->next;
        head->next = p;

       //将tmp的值赋给p
        p = tmp;
     }
}

3、现在已经有如下接口函数(无需实现以下函数)
struct stack *stack_init(); //初始化栈
void push(struct stack *stack,int num); //压栈
bool pop(struct stack *stack); //出栈
int get_top(struct stack *stack); //获取栈顶元素
bool isEmpty(struct stack *stack); //判断栈是否为空
请你利用以上方法实现将键盘输入的十进制数,转换为十六进制输出

int main(void)
{    
   struct stack *s = stack_init();    
   printf("请输入一个十进制数:");   
   int num;    
   scanf("%d",&num);    
   while(num)    
   {        
      push(s,num%16);  
      num /= 16;         
   }    
   int data;    
   char buf[20];    
   int len = 0;    
   while(!isEmpty(s))   
   {        
      data = get_top(s);        
      if(!pop(s))            
        break;        
      if(data >= 10)       
      {           
         buf[len++] = data+55;        
      }        
      else        
      {           
         buf[len++] = data+48;       
      }  
    }   
    printf("0x%s\n",buf);
}
posted @ 2024-04-28 22:25  罗天天  阅读(5)  评论(0编辑  收藏  举报