首页 > 学院 > 开发设计 > 正文

北航2007年计算机复试上机

2019-11-06 07:04:51
字体:
来源:转载
供稿:网友

第一题、从输入的字符串中,统计空格,回车,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;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表