c语言第二次作业pta,c语言第二次作业pta.doc

c语言第二次作业pta

4-1 求单链表结点的阶乘和 (15分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

{

int sum=0,i,N=1;

while(L!=NULL)

{

N=1;

for(i=1;i<=L->Data;i++)

{

N=N*i;

}

sum=sum+N;

L=L->Next;

}

return sum;

}

4-2 提桶寻宝 (10分)

给你准备好一个小桶,告诉你一片广袤的天地,随手一指,挖宝去吧~ 说计算机话!

好吧,题目是这样的:

假设一个二维区域内藏有财宝,对于给定的此前寻到的财宝数量以及坐标(x,y),按照以下规则在该位置寻回财宝,并更新财宝数量。

规则: ?

?

? 如果x、y均为奇数,则获得原有三分之一数量的财宝,小数部分忽略不计 如果x、y均为偶数,则获得 5 财宝 如果x、y奇偶性不同,则不获得财宝

注意:财宝数量、坐标x、坐标y都是int类型范围内的非负整数,在同一个位置可以重复寻找并获得财宝。

函数接口定义:

输入样例:

输出样例:

{

if(x%2==0)

{

if(y%2==0)

{

*pBucket=*pBucket+5;

return (1);

}

else

return (0);

}

else

{

if(y%2!=0)

{

*pBucket=*pBucket+*pBucket/3; return (1);

}

else

return (0);

}

}

4-3 递增的整数序列链表的插入 (15分)

本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。

函数接口定义:

输入样例:

输出样例:

{

List pt1,pt2,pt;

if(L->Next==NULL)

{

pt=(List)malloc(sizeof(List)); pt->Data=X;

pt->Next=NULL;

L->Next=pt;

return L;

}

pt1=L;

pt2=L->Next;

while(pt2!=NULL&&X>=pt2->Data) {

pt1=pt2;

pt2=pt2->Next;

}

pt=(List)malloc(sizeof(List)); pt->Data=X;

pt->Next=pt2;

pt1->Next=pt;

return L;

} 4-5 函数实现字符串逆序 (15分) 本题要求实现一个字符串逆序的简单函数。 函数接口定义:

输入样例:

输出样例:

{

// p指向字符串头部

char *s=p;

// q指向字符串尾部

char *q = s ;

while(*q)

q++;

q -- ;

// 交换并移动指针,直到p和q交叉

while(q > s)

{

char t = *s ;

*s++ = *q ;

*q-- = t ;

}

return p ;

} 4-6 长整数转化成16进制字符串 (15分)

本题要求实现一个将长整数转化成16进制字符串的简单函数。 函数接口定义:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

{

char q;

static int i=0,j=0;

if(x<0)

{

x=-x;

*p='-';

p++;

}

q=x%16;

if(q<10)

q=('0'+q);

else

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值