栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2020同济大学电子与信息工程学院计算机系夏令营机试题目【含题解、注释】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2020同济大学电子与信息工程学院计算机系夏令营机试题目【含题解、注释】

第一题:签到题(10分)

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

【输入要求】:
1、四个字符串均不含空格,长度不超过 40
2、不考虑输入错误

【输出要求】:
1、共四行,不要有多余的空行
2、每行最后无多余的空格或其它字符

【输入示例1】:

2020999
张三
硕士
同济大学
 2020999 : 临时学号
    张三 : 姓名
    硕士 : 报考类别
同济大学 : 本科院校

【输入示例2】:

123456789012345
测试账号
直博
上大
123456789012345 : 临时学号
       测试账号 : 姓名(这里没对齐是因为csdn的编辑格式问题)
           直博 : 报考类别
           上大 : 本科院校


免责声明:由于本人没有系统学过acm,所以代码格式有点怪也请勿喷,结果对就算胜利捏。

【源代码】:

#include
using namespace std;
const int maxn = 100;
int main(){
	char str1[4][maxn];
	char str2[4][maxn]={"临时学号","姓名","报考类别","本科院校"};
	for(int i=0;i<4;i++){
		scanf("%s",str1[i]);
	}
//	for(int i=0;i<4;i++){
//		printf("%sn",str1[i]);
//	}
	int btemp = 0;
	int len[4][1];
	for(int i=0;i<4;i++){
		int temp = 0;
		for(int j=0;str1[i][j];j++){
			temp += 1;
		}
		len[i][0] = temp;
		if(temp>btemp) btemp = temp;       //获得最长的行的长度 
	}
//	printf("%dn",btemp);
	for(int i=0;i<4;i++){
		while(len[i][0]
			len[i][0] += 1;
			printf(" ");
		}
		if(i<3)	printf("%s : %sn",str1[i],str2[i]);
		else printf("%s : %s",str1[i],str2[i]);
	}
	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-9 间的数字
7
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1

【输入示例2】:

请输入 2-9 间的数字
9
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1

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

#include 
using namespace std;

int main()
{
int k;
cout << "请输入 2-9 间的数字" << endl;
cin >> k; //不考虑输入错误
output(k);
return 0;
}

【源代码】:

#include 
using namespace std;
void output(int k);
void output1(int k);

int main()
{
int k;
cout << "请输入 2-9 间的数字" << endl;
cin >> k; //不考虑输入错误
output(k);
return 0;
}

void output(int k){
	if(k==1){
		cout<
		output(k-1);    
		cout< 
	cout<=2) output1(k-1);
}

//后面两道题先空着

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

【题目要求】:
用 main 函数带参数方式传入一个文件名,打开该文件,统计文件中出现的大写字母、小写字母、数字、空格及其它字符的个数,并输出五种类型字符的总数。
注:other 的计数方法,不允许取文件大小后减去其余四种,必须是判断该字符的值不属于前4 种后再归入 other 计数。

【输入要求】:
1、文件名以 main 函数带参数方式给出(不考虑文件名输入错误)
2、假设文件中字符均为基本 ASCII 码 (不含扩展 ACII 码/中文,不考虑字符集不同带来的统计差异)
3、文件大小不大于 1GB
4、DevC++的集成环境下调试时,菜单“运行”-“参数”中可设置 main 函数的参数

【输出要求】:
1、共六行,不要有多余的空行
2、每行最后无多余的空格或其它不可见字符
3、前五行的值之和应等于第六行,第六行的值应与该文件的文件属性中显示的字节大小一致

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号