西南交通大学840数据结构编程大题-2012年

文章目录

      • 第一题
      • 第二题
      • 第三题
      • 第四题

第一题

1.编写一个程序,实现的功能是:首先从键盘的终端上输入10 个数序存放于数组a中,然后输入一个数x,并查找x是否在数组中,若在数组中,则输出在数组中的元素序号,否则给出未查找到的信息。要求查找过程用一函数来实现。

/*
1.编写一个程序,实现的功能是:首先从键盘的终端上输入10 个数序存放于数组a中,然
后输入一个数x,并查找x是否在数组中,若在数组中,则输出在数组中的元素序号,否则
给出未查找到的信息。要求查找过程用一函数来实现。
*/

#include 
int find(int x, int arr[], int n) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) return i;
    }
    return -1;
}

int main() {
    int n = 10, arr[n], x;
    for (int i = 0; i < n; i++)
        scanf("%d", &arr[i]);
    scanf("%d", &x);
    int idx = find(x, arr, n);
    if (idx != -1)
        printf("%d\n", idx);
    else
        printf("not find");
    return 0;
}

第二题

1、输入一个四位正整数, 然后按数字的相反次序输出。如:输入9187,则输山: 7819
又如: 输入为7000,则输出为: 0007。
要求:只能用一个整型变量接收键盘输入。

/*
1、输入一个四位正整数, 然后按数字的相反次序输出。如:输入9187,则输山: 7819
又如: 输入为7000,则输出为: 0007。 
要求:只能用一个整型变量接收键盘输入。
*/
#include 

int main() {
    int a;
    scanf("%d", &a);
    while (a) {
        printf("%d", a % 10);
        a /= 10;
    }
    return 0;
}

第三题

3.若二叉树结点指针类型定义如下:

typedef struct bt_node {
    int data;
    struct bt_node *lchild, *rchild;
} BiTNode, *BiTree;

// 下面C++ 函数用先根遍历算法复制一棵二叉树设原来的二叉树根为t, 复制的二叉树根为bt,请填空。

BiTreeCopy(BiTree t) { //复制二叉树t
    BiTree bt;
    if (__________)
        bt = NULL;
    else {
        __________________;
        __________________;
        bt->lchild = Copy(t->lchild);
        bt->rchild = Copy(t->rchild);
    }
    __________________;
} // 结束copy
/*
3.若二叉树结点指针类型定义如下:

typedef struct bt_node {
    int data;
    struct bt_node *lchild, *rchild;
} BiTNode, *BiTree;

// 下面C++ 函数用先根遍历算法复制一棵二叉树设原来的二叉树根为t, 复制的二叉树根为bt,请填空。

BiTree Copy(BiTree t) { //复制二叉树t
    BiTree bt;
    if (__________)
        bt = NULL;
    else {
        __________________;
        __________________;
        bt->lchild = Copy(t->lchild);
        bt->rchild = Copy(t->rchild);
    }
    __________________;
} // 结束copy
*/

#include 
#include 
//3.若二叉树结点指针类型定义如下:

typedef struct bt_node {
    int data;
    struct bt_node *lchild, *rchild;
} BiTNode, *BiTree;

// 下面C++ 函数用先根遍历算法复制一棵二叉树设原来的二叉树根为t, 复制的二叉树根为bt,请填空。

BiTree Copy(BiTree t) { //复制二叉树t
    BiTree bt;
    if (t == NULL)
        bt = NULL;
    else {
        bt = (BiTree)malloc(sizeof(BiTree));
        bt->data = t->data;
        bt->lchild = Copy(t->lchild);
        bt->rchild = Copy(t->rchild);
    }
    return bt;
} // 结束copy

第四题

4.假设称正读和反读都是相同的字符序列为“回文”,例如“abba”和“abcba”是回文,“abcde”
和“ababab"则不是回文。试写一个算法判别读入的一个以’@’为结束符的字符序列是否为回文。

/*
4.假设称正读和反读都是相同的字符序列为“回文”,例如“abba”和“abcba”是回文,“abcde”
和“ababab"则不是回文。试写一个算法判别读入的一个以'@’为结束符的字符序列是否为回文。
*/

#include 
int is_huiwen(char *str, int n) {
    int i = 0, j = n - 1;
    while (i < j && str[i] == str[j])
        i++, j--;
    return i >= j;
}
int main() {
    char str[100], ch = 0;
    int n = 0;
    while ((ch = getchar()) != '@') {
        str[n++] = ch;
    }
    if (is_huiwen(str, n))
        puts("Yes");
    else
        puts("No");

    return 0;
}
getchar()) != '@') {
        str[n++] = ch;
    }
    if (is_huiwen(str, n))
        puts("Yes");
    else
        puts("No");

    return 0;
}

你可能感兴趣的:(考研,英语四六级,python,c++,linux)