考试
2020-03-16 02:08:06

6679 试题五(共 15分) 阅读以下关于 C语言及 C代

题目描述

试题五(共 15分) 阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对



试题五(共 15分)

阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。

【说明】

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:

【C代码 1】是李工为了在嵌入式平台上开发一段可变参数函数,在X86 平台上实现的一个参数个数可变函数实例。

【C代码 2】是王工在编写软件时,自己编写的内存拷贝函数。

【C代码 3】是赵工编写的一段数据处理的程序,其中 fun()的含义为从已创建的一个单向链表中查找倒数第index 个节点。他的设计思路为:首先创建两个指针 ptrl,ptr2,并且都指向链表头,然后 ptrl向前走index 步,这样ptrl和 ptr2 之间就间隔 index 个节点,然后 ptrl和ptr2 同时向前步进,当 ptrl到达最后一个节点时,ptr2 就是倒数第 index 个节点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。

【C代码 1】

long sum(int i,...)

{

int *p,j;

long s = 0;

p=&i+1;

for(j=0;j<i;j++)

s+=p[j]

return s;

}

long Sum = sum(3,l,2,3);

【C代码 2】

static int pent;

……

void *MyMemcpy(void * dest, const void* src, int n )

{

char *pDest = (char *)dest;

char *pSrc = (char *)src;

for (int i=0;i<n; i++) {

*(pDest +i) = *(pSrc+i);

} return dest;

}

【C代码 3】

node *fun(node * head, int index)

{

node *ptr1,*ptr2;

int 1 = 0;

ptr1 = head;

ptr2 = head;

if(head == NULL || head->next == NULL)

return ptrl;

while(i<index)

{

(1)

if(ptrl == NULL)

return head;

i++;

}

while(ptrl->next != NULL)

{

ptrl = ptrl->next;

(2) ;

}

return (3) ;

}

node* ReverseList(node *head)

{

node *templ = NULL;

node *temp2 = NULL;

node *temp3 = NULL;

if((head->next == NULL) || (head == NULL))

{

return head;

} templ=head;

temp3= templ->next;

templ->next= NULL;

while(temp3->next!=NULL)

{

temp2 = temp3;

temp3= temp3->next;

(4) ;

templ=temp2;

}

temp3->next= templ;

retum (5)

}

【问题1】(3分)

执行【C代码 1】后,Sum的值应为多少?请用十进制表示。

【问题2】(7分)

请问【C代码2】中 static的作用是什么?const的作用是什么?王工自己编写的内存拷贝函数安全吗?

如存在缺陷,请指出缺陷在哪里。

【问题3】(5 分)

仔细阅读并分析【C代码 3】,填补其中的空(1)~(5)。

答案解析

00****05 试题五(共1

加载中...
AI正在思考中,请稍候...