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

点赞(0) 反对(0) 本站小编 福瑞考研网 2017-04-22 21:10:58 阅读(0)

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 <stdio.h>
#include<malloc.h>
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<n;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 <stdio.h>
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<stdio.h>
#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<j)
            printf("*");
    }
    printf("\n");
}
4、字符串逆序,不申请新的数组空间
#include <stdio.h>
#include <string.h>
#define N 100
void reverse(char str[])
{
    int len,i;
    char temp;
    len=strlen(str);
    for(i=0;i<(len/2);i++)//次数这里出错,相当于没有交换
    {
        temp=str[i];
        str[i]=str[len-i-1];
        str[len-i-1]=temp;
    }
//    str[i]='\0';        结束符一直在

}

void main()
{
    char    str[N],*res;
    printf("请输入字符串:\n");
    scanf("%s",str);
    reverse(str);
    printf("逆序的结果如下:\n%s\n",str);
}
5、file1的内容全部复制到file2中,且在file2的每一行都要加上行号,最后返回file1中的字符个数。
#include <stdio.h>
#include <stdlib.h>
/*
void main()
{
    FILE *fp1,*fp2;
    fp1=fopen("c:\\1.txt","r");//重要,不存在不会创建新文件!!!
    if(fp1!=NULL)
        printf("成功打开\n");
}
*/

/*
#define MAX 1000
void main()
{
    FILE *fp1,*fp2;
    char c='\n';
    fp1=fopen("1.txt","r");
    fp2=fopen("2.txt","w");

    while(!feof(fp1))
    {
        char       temp[MAX];
        fgets(temp,MAX,fp1);//每次都读到换行符结束,换行符算一位,字符串最后面一定是'\0',有换行符则加在'\0'前面,'\n'==10==换行符
        fputs(temp,fp2);
    }
    fclose(fp1);
    fclose(fp2);
   
}*/


void main()
{
    FILE *fp1,*fp2;
    char temp;
    int  counts=0,row=1;
    fp1=fopen("file1.txt","r");
    fp2=fopen("file2.txt","w+");

    while(!feof(fp1))
    {
        temp=fgetc(fp1);
        if(temp!=32&&temp!='\n'&&temp!=EOF)//32代表'',10代表'\n'
        {
            ++counts;
        }       
        if(temp!='\n')
        {
            fputc(temp,fp2);

 1/6    1 2 3 4 5 6 下一页 尾页
发表评论 已经有0条评论 查看全部评论

关键字

相关信息