1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 同济大学电子与信息工程学院计算机系夏令营机试题目

同济大学电子与信息工程学院计算机系夏令营机试题目

时间:2020-02-24 13:45:04

相关推荐

同济大学电子与信息工程学院计算机系夏令营机试题目

第一题:签到题(10分)

题目要求:

键盘依次输入 4 个字符串,分别是临时学号、姓名、报考类别和本科学校,按右对齐方式输出,要求其中最长的字符串输出时左边无空格,4 行的冒号对齐,冒号为半角字符,前后各一个空格

输入要求:

1、四个字符串均不含空格,长度不超过 40

2、不考虑输入错误

输出要求:

1、共四行,不要有多余的空行

2、每行最后无多余的空格或其它字符

输入示例1:

输出示例1:

输入示例2:

输出示例2:

源代码

#include<bits/stdc++.h>using namespace std;void OutputChar(int n){for(int i = 0; i < n; i++)cout << " ";}int main(){string input[4], output[4] = {"临时学号", "姓名", "报考类别", "本科院校"};int maxLen = 0;for(int i = 0; i < 4; i++){cin >> input[i];if(input[i].size() > maxLen)maxLen = input[i].size();}for(int i = 0; i < 4; i++){OutputChar(maxLen - input[i].size());cout << input[i] << " : " << output[i];if(i < 3)cout << endl;}return 0;}

第 2 题:递归(20 分)

题目要求:

1、键盘输入 2-9 间的数字,输出对应的数字三角形

2、采用递归方式完成,整个程序中不允许出现循环(for、while、do-while、if-goto 均不允许)

3、给出预置的 cpp 文件,其中 main 函数不允许改动

输入要求:

1、输入一个 2-9 间的整数

2、不考虑输入错误

输出要求:

1、若输入的数字是 n,则共输出 n 行

2、每个数字之间加一个空格,每行的最后一个 1 后面,既可以有空格,也可以无空格

示例输入输出1:

示例输入输出2:

预置的 b2.cpp(可将下面文本框中代码复制到 DevC++中):

#include <iostream>using namespace std;/* 本题限制要求:1、用递归方式完成,不准用循环(while、do-while、for、if-goto 均不允许)2、除 output 函数外,还允许定义其它函数3、不允许改动 main 函数*/int main(){int k;cout << "请输入 2-9 间的数字" << endl;cin >> k; //不考虑输入错误output(k);return 0;}

源代码:

#include <iostream>using namespace std;/* 本题限制要求:1、用递归方式完成,不准用循环(while、do-while、for、if-goto 均不允许)2、除 output 函数外,还允许定义其它函数3、不允许改动 main 函数*/bool flag = true;int n;void outputLine(int k){if(k < 1)return;cout << k << " ";outputLine(k - 1);}void output(int k){if(flag){//记录用户输入的数字flag = false;n = k;}if(k < 1)return ;output(k - 1);outputLine(k);if(k != n)//k不等于n,说明不是输出的最后一行,所以应该输出一个换行cout <<endl;}int main(){int k;cout << "请输入 2-9 间的数字" << endl;cin >> k; //不考虑输入错误output(k);return 0;}

第 3 题:文件处理(30 分)

题目要求:

用 main 函数带参数方式传入一个文件名,打开该文件,统计文件中出现的大写字母、小写字母、数字、空格及其它字符的个数,并输出五种类型字符的总数。

注:other 的计数方法,不允许取文件大小后减去其余四种,必须是判断该字符的值不属于前4 种后再归入 other 计数。

输入要求:

1、文件名以 main 函数带参数方式给出(不考虑文件名输入错误)

2、假设文件中字符均为基本 ASCII 码 (不含扩展 ACII 码/中文,不考虑字符集不同带来的统计差异)

3、文件大小不大于 1GB

4、DevC++的集成环境下调试时,菜单“运行”-“参数”中可设置 main 函数的参数

输出要求:

1、共六行,不要有多余的空行

2、每行最后无多余的空格或其它不可见字符

3、前五行的值之和应等于第六行,第六行的值应与该文件的文件属性中显示的字节大小一致

示例输入与输出:(假设 main 函数带的参数是 helloworld.cpp)

源代码

#include <bits/stdc++.h>using namespace std;int main(int argc, char** argv) {FILE* fp;fp = fopen(argv[1], "r");long long bc = 0, lc = 0, di = 0, sp = 0, other = 0;while (true) {char c = fgetc(fp);if (c == -1)break;if (c >= 'A' && c <= 'Z')bc++;else if (c >= 'a' && c <= 'z')lc++;else if (c >= '0' && c <= '9')di++;else if (c == ' ')sp++;else if(c == '\n')//换行在win中占两个字节,即回车换行 other += 2;elseother++;}cout << "upper : " << bc << endl;cout << "lower : " << lc << endl;cout << "digit : " << di << endl;cout << "space : " << sp << endl;cout << "other : " << other << endl;cout << "total : " << bc + lc + di + sp + other;return 0;}

注:我的这个代码的运行结果和题目中给出的示例输入输出不一样,我没有找出问题在哪,还希望知道的大佬不吝赐教。

第 4 题:算法(40 分)

炸飞机游戏摆放规则描述:

1、在 m 行*n 列的矩阵方格中随机摆放 k 架飞机,互相不得重叠、交叉

2、每架飞机的形状固定,占 9 格,其中翼展 5 格、尾翼 3 格、头尾 4 格

3、每架飞机的方向有四种

题目要求:

键盘依次输入行数 m,列数 n,飞机数 k,输出在 m 行*n 列的矩阵中摆放 k 架飞机的所有可能排列的总数(若出现轴对称、对角线对称,均重复计数即可)

输入数据要求:

1、依次输入 m/n/k 三个整数(4≤m≤11,4≤n≤11,1≤k≤min(m,n))

2、不考虑输入错误

输出数据要求:

1、仅一行,输出一个整数,表示排列总数

2、不要有多余的空行,整数后不要有多余的空格或其它字符

示例输入与输出:

时间要求:

1、键盘输入完成后,运行时间>15s 则认为不通过(正常 6 代以上低压笔记本,运行时间不超过 3s)

2、DevC++中显示的时间,包含了键盘输入时间,可自行估算后扣除

这个题没看懂考的什么!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。