电子科技大学820计算机复试自己编写C复试答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);