电子科技大学820计算机复试自己编写C复试答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、单链表逆序(考频:5次)——不用输入就在函数生成

函数生成数据如下:

Head=malloc(sizeof(struct LNode));

Head->next=NULL;

For(i=5;i>=0;i--)

{

P=malloc(sizeof(struct LNode));

P->val=i;

P->next=head->next;

Head->next=p;//头插法建立数据

}

#include

#include

struct LNode

{

int val;

struct LNode *next;

}LNode[5]={{1,NULL},{2,NULL},{3,NULL},{4,NULL},{5,NULL}}; //建立单链表

void reverse(struct LNode *Head)

{

struct LNode *p,*q;

p=Head->next;

Head->next=NULL;

while(p)//注意这里,重点在这里!

{

q=p->next;

p->next=Head->next;

Head->next=p;

p=q;

}

p=Head->next;

while(p)

{

printf("%-4d",p->val);

p=p->next;

}

printf("\n");

}

void main()

{

int i,e,n;

struct LNode *p,*Head,*q;

Head=(struct LNode *)malloc(sizeof(struct LNode)); p=Head;

printf("输入建立单链表所需的整数个数:");

scanf("%d",&n);

printf("输入%d个数据,以回车键隔开:\n",n);

for(i=0;i

{

q=(struct LNode *)malloc(sizeof(struct LNode));

scanf("%d",&e);

q->val=e;

p->next=q;

p=q;

}

p->next=NULL;//至关重要的一步!!!

p=Head->next;

printf("建立单链表的结果如下\n");

while(p)

{

printf("%-4d",p->val);

p=p->next;

}

printf("\n");

/* for(i=0;i<5;i++)

{

printf("%-7d",LNode[i].val);

}

printf("\n");

*/

printf("单链表逆序结果如下:\n");

reverse(Head);

}

2、计算1-x+x^2/2!-x^3/3!+...+x^n/n!,x是单浮点数,n是整数(考频:3次)

#include

void main()

{

int j,n,flag=-1;

float x,sum1=1,sum2=1,sum=1;

printf("请输入求和用到的x和n,用英文逗号隔开\n");

scanf("%f,%d",&x,&n);

if(n==0)//等于和赋值弄错了!!!

{

printf("求和的值为1.0\n");

return;

}

for(j=1;j<=n;j++)

{

sum1*=x;

sum2*=j;

sum+=flag*(sum1/sum2);

flag=-flag;

}

printf("求和的值=%f\n\n",sum);

}

3、数质因数分解(考频:2次)#include

#define N 20

int isPrime(int n)

{

int i=2;

while(n%i!=0)

i++;

if(i==n)

return 1;

else

return 0;

}

void main()

{

int num,i,a[N],j=-1;

printf("请输入需要分解的正整数:\n");

scanf("%d",&num);

printf("%d=",num);

if(num<=0)

{

printf("输入数据错误!请重新输入!\n");

return;

}

while(num>=4)

{

for(i=2;i<=num;i++)

{

if(num%i==0&&isPrime(i))

{

a[++j]=i;

num/=i;

break;

}

}

}

if(num>1)

{

a[++j]=num;

}

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

{

printf("%d",a[i]);

if(i

printf("*");

}

printf("\n");

}

4、字符串逆序,不申请新的数组空间#include

#include

#define N 100

void reverse(char str[])

{

int len,i;

char temp;

len=strlen(str);

相关文档
最新文档