成信大807程序综合设计2019年试题答案(部分)

此答案系学长自己做出来的答案,并非官方答案,有问题欢迎留言交流!由于答案不完整,大家也可以将自己做的以及相关想法写在留言栏里面,方便大家交流查阅,谢谢!

一、单项选择题

  1. C
  2. D
  3. A
  4. C
  5. B
  6. C
  7. A
  8. D
  9. A
  10. B

二、判断题

  1. ×
  2. ×
  3. ×
  4. 应该是 ×
  5. ×
  6. ×
  7. ×

三、程序分析题

21题:

22题:
判断字符串2是否为字符串1的子串,如果是则输出“yes”,否则输出“no”

23题:

四、程序设计题

24题:

25题:

#include <stdio.h>
#define N 3

int main(void)
{
    struct student {
        int num;
        int math;
        int c_language;
    }stu[N];
    int i, max_score, count;
    for (i=0, max_score=0; i<N; i++)
    {
        scanf("%d%d%d", &stu[i].num, &stu[i].math, &stu[i].c_language);
        if (max_score < stu[i].c_language)
            max_score = stu[i].c_language;
    }
    printf("C语言分数最高的学生各项数据如下:\n");  
    for (i=0, count=0; i<N; i++)
    {
        if (max_score == stu[i].c_language)
        {
            printf("%d\t%d\t%d\n", stu[i].num, stu[i].math, stu[i].c_language);
            count++;
        }
    }
    printf("C语言分数最高的学生人数为:%d\n", count);
    return 0;
} 

const与#define相比,区别和优点超详解总结!

26题:

声明

此答案系学长自己做出来的答案,并非官方答案,有问题欢迎留言交流!由于答案不完整,大家也可以将自己做的以及相关想法写在留言栏里面,方便大家交流查阅,谢谢!

欢迎加入 成信大计算机考研交流群 343659014

文章最后更新时间为:2019 年 10 月 20 日 12:07:07

已有 8 条评论
  1. 豆

    判断题6题(原16题)答案是不是错了?

    1. 是的,错了,应该是以形参为准

  2. 唐钦檄 唐钦檄

    想问下学长有该试题得真题嘛

    1. 文末有群号,群里面有

  3. cd cd

    //24题

    include<iostream>

    using namespace std;

    define M 4define N 5

    int fun(int a[][N], int m, int n) {

    int sum = 0;
    for (int i = 0; i < m; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            if (i == 0 || j == 0 || i == m - 1 || j == n - 1)
            {
                sum += a[i][j];
            }
        }
    }
    return sum;

    }
    int main()
    {

    int a[M][N] = { 1,3,5,7,9,
        2,9,9,9,4,
        6,9,9,9,8,
        1,3,5,7,0
    };
    int sum = fun(a, M, N);
    cout << "sum is:" << sum<<endl;
    system("pause");
    return 0;

    }

  4. cd cd

    //25题

    include<iostream>include<vector>

    using namespace std;

    define N 5

    typedef struct student{

    int num;
    int math;
    int C;

    };
    int main() {

    student Stu[N] = { {1000, 100,107},
    {1001, 101,104},
    {1002,102,104},
    {1003,103,104},
    {1004,104,104} };
    student max = Stu[0];
    vector<student> maxC;
    for (int i = 1; i < N; ++i) {
        if (Stu[i].C>max.C)
        {
            max = Stu[i];
        }
    }
    for (int i = 0; i < N; ++i) {
        if (Stu[i].C == max.C)
        {
            maxC.push_back(Stu[i]);
        }
    }
    //通过迭代器遍历
    cout << "C语言成绩最高分学生共有:" << maxC.size() << "个" << endl;
    cout << "C语言成绩最高分学生信息如下:" << endl;
    for (vector<student>::iterator iter = maxC.begin(); iter != maxC.end(); iter++)
    {
        cout << "学号:" << iter->num<<"  math:"<<iter->math<<" C:"<<iter->C<<endl;
    }
    return 0;

    }

  5. cd cd

    //25题不用迭代器做的方法

    include<iostream>include<vector>

    using namespace std;

    define N 5

    typedef struct student{

    int num;
    int math;
    int C;

    };
    int main() {

    student Stu[N] = { {1000, 100,107},
    {1001, 101,107},
    {1002,102,100},
    {1003,103,107},
    {1004,104,104} };
    student max = Stu[0];
    student max_C[N];//记录C语言成绩最高分学生信息,可能不止一个
    //vector<student> maxC;//迭代器方法记录C语言成绩最高分学生信息,可能不止一个
    for (int i = 1; i < N; ++i) {//找出其中一个最高分成绩的学生信息
        if (Stu[i].C>max.C)
        {
            max = Stu[i];
        }
    }
    int count=0;//统计最高分人数
    for (int i = 0; i < N; ++i) {
        if (Stu[i].C == max.C)
        {
            max_C[count++] = Stu[i];
            //maxC.push_back(Stu[i]);//通过迭代器遍历
        }
    }
    cout << "C语言成绩最高分学生共有:" << count << "个" << endl;
    cout << "C语言成绩最高分学生信息如下:" << endl;
    for (int j = 0; j < count; j++)
    {
        cout << "学号:" << max_C[j].num << "  math:" << max_C[j].math << " C:" << max_C[j].C << endl;
    
    }
    //通过迭代器方法遍历
    //cout << "C语言成绩最高分学生共有:" << maxC.size() << "个" << endl;
    //for (vector<student>::iterator iter = maxC.begin(); iter != maxC.end(); iter++)
    //{
    //    cout << "学号:" << iter->num << "  math:" << iter->math << " C:" << iter->C << endl;
    //}
    return 0;

    }

  6. cd cd

    //26题C++写的简单版本

    include<string>include<iostream>

    using namespace std;
    void sort(string ss[10], int means) {//means表示排序方式,1则字母递增排序,0则字母递减排序

    int i, j;
    string temp;
    if (means==1)//字母递增排序
    {
        for ( i = 0; i < 10-1; i++){//冒泡排序
            for (j = 0; j < 10 - 1 - i; j++) {
                if (ss[j]>ss[j+1]){
                    temp = ss[j];
                    ss[j] = ss[j + 1];
                    ss[j + 1] = temp;
                }
            }//end for 内
        }//end for 外
    }//end if
    else if (means == 0)//字母递减排序
    {
        for (i = 0; i < 10 - 1; i++) {//冒泡排序
            for (j = 0; j < 10 - 1 - i; j++) {
                if (ss[j] < ss[j + 1]) {
                    temp = ss[j];
                    ss[j] = ss[j + 1];
                    ss[j + 1] = temp;
                }
            }//end for 内
        }//end for 外
    }//end if

    }
    int main() {

    string ss[10];
    int means;//means表示排序方式,0则字母递增排序,1则字母递减排序
    int i;//控制输入
    printf("请输入10个字符串,以空格隔开:\n");
    for (i = 0; i < 10; i++)//键盘录入10个字符串
    {
        cin >> ss[i];
    }
    printf("请输入排序方式,1则字母递增排序,0则字母递减排序:");
    cin >> means;
    sort(ss, means);
    for (i = 0; i < 10; i++)//输出排序后的字符串
    {
        cout << ss[i]<<" ";
    }
    return 0;

    }

添加新评论