北航2007年计算机复试上机

来源:互联网 发布:阿根廷探戈 zh知乎 编辑:程序博客网 时间:2024/04/29 09:21

第一题、从输入的字符串中,统计空格,回车,TAB出现的次数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
    int i=0;
    int len,space_count=0,enter_count=0,tab_count=0;
    char buf[1024];
    char s;
    while(s=getchar()!=0){
        buf[i] = s;
        i++;
    }
    buf[i] = '\0';
        len = strlen(buf);
        for(i=0;i<len;i++){
            if(buf[i] == ' ')
                space_count++;
            if(buf[i] == '\n')
                enter_count++;
            if(buf[i] == '\t')
                tab_count++;
        }
        printf("%d %d %d",space_count,enter_count,tab_count);
        
    
    return 0;
}


第二题、将两个升序字符串合并成一个升序字符串,相同的字母,出现一次。

#include<stdio.h>
#include<string.h>
int cmp(const void * a,const void * b){
    return *(char *)a - *(char*)b;
}
void merge(char str1[],char str2[]){
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    int i;
    char s[100];
    for(i=len;i<len1+len2;i++){
        str1[i] = str2[i-len];
    }
    qsort(str1,len1+len2,sizeof(str1[0]),cmp);
    for(i=0;i<len1+len2;i++){
        if(str1[i] == str1[i-1]){
            continue;
        }else
            s[i] = str1[i];
    }
}


第三题、多项式相加

#include<stdio.h>
#include<malloc.h>
typedef struct polynomial{
    int factor; //系数
    int indice;
    struct polynomial *next;
}*LinkList,polynomial;

void CreateLink(LinkList &L,int n){
    LinkList p,s;
    int i;
    L = (LinkList)malloc(sizeof(polynomial));
    L ->next = NULL;
    p = L;
    for(i=0;i<n;i++){
        s = (LinkList)malloc(sizeof(polynomial));
        printf("依次输入多项式系数和指数:");
        scanf("%d%d",&s->factor,&s->indice);
        s->next = NULL;
        p->next = s;
        p = s;
    }
}

void AddList(LinkList List1,LinkList List2,LinkList &L){
    LinkList p1,p2,list,s;
    L = (LinkList)malloc(sizeof(polynomial));
    L-> next = NULL;
    list = L;
    p1 = List1->next;
    p2 = List2->next;
    while(p1 && p2){
        if(p1 -> indice < p2 ->indice){
            s = p1->next;
            list->next = p1;
            list = p1;
            list->next = NULL;
            p1 = s;

        }
        else if(p1->indice == p2->indice){
            p1->factor = p1->factor + p2->factor;
            if(p1->factor!=0){
                list->next = p1;
                s = p1->next;
                list = p1;
                list->next = NULL;
                p1 = s;
                p2 = p2->next;
            }else{
                p1 = p1->next;
                p2 = p2->next;
            }
        }
        else{
            s = p2->next;
            list->next = p2;
            list = p2;
            list->next = NULL;
            p2 = s;
        }
    }
    if(p1 != NULL) list->next = p1;
    if(p2 != NULL) list->next = p2;
}

void VisitList(LinkList L){
    LinkList p;
    p = L->next;
    if(p == NULL){
        printf("0\n");
    }
    while(p){
        printf("%dX^%d",p->factor,p->indice);
        p = p->next;
        if(p != NULL)
            printf("+");
    }
    printf("\n");
}


int main(){
    LinkList p1,p2,sump;
    CreateLink(p1,3);
    CreateLink(p2,4);

    AddList(p1,p2,sump);
    VisitList(sump);
    free(p1);
    free(p2);
    free(sump);
    return 0;
}




0 0
原创粉丝点击