程序设计题目及答案3
更新时间:2023-10-19 03:57:01 阅读量: 综合文库 文档下载
首字母大写
Time Limit:1000MS Memory Limit:65536K
Total Submit:588 Accepted:427
Description
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\\t')、回车符('\\r')、换行符('\\n')。
Input
输入一行:待处理的字符串(长度小于80)。
Output
输出一行:转换后的字符串。
Sample Input
if so, you already have a google account. you can sign in on the right.
Sample Output
If So, You Already Have A Google Account. You Can Sign In On The Right.
Source
? ? ? ? ? ? ? ? ? ?
#include
string b; while(cin>>b) {
if(b[0]>='a'&&b[0]<='z') b[0]=b[0]-32; cout<
? ? ?
}
return 0; }
古代密码
Time Limit:1000MS Memory Limit:65536K
Total Submit:427 Accepted:342
Description
古罗马帝王有一个包括各种部门的强大政府组织。其中有一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。 替换方法是将所有出现的字符替换成其它的字符。有些字符会碰巧替换成它自己。例如:替换规则可以是将'A' 到 'Y'替换成它的下一个字符,将'Z'替换成 'A',如果原词是 \则它变成 \。 排列方法改变原来单词中字母的顺序。例如:将顺序 <2, 1, 5, 4, 3, 7, 6, 10, 9, 8> 应用到 \上,则得到\。 人们很快意识到单独应用替换方法或排列方法,加密是很不保险的。但是如果结合这两种方法,在当时就可以得到非常可靠的加密方法。所以,很多重要信息先使用替换方法加密,再将加密的结果用排列的方法加密。用两中方法结合就可以将\加密成\。 考古学家最近在一个石台上发现了一些信息。初看起来它们毫无意义,所以有人设想它们可能是用替换和排列的方法被加密了。人们试着解读了石台上的密码,现在他们想检查解读的是否正确。他们需要一个计算机程序来验证她,你的任务就是写这个验证程序。
Input
输入有两行。第一行是石台上的文字。文字中没有空格,并且只有大写英文字母。第二行是被解读出来的加密前的文字。第二行也是由大写英文字母构成的。 两行字符数目的长度都不超过计划100。
Output
如果第二行经过某种加密方法后可以产生第一行的信息,输出 \,否则输出\。
Sample Input
JWPUDJSTVP
VICTORIOUS
Sample Output
YES
Source
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
#include
int n,m,i,j,k,h,g,f;
int b[10]={2, 1, 5, 4, 3, 7, 6, 10, 9, 8}; char s[100],a[100],c[100];//string s,a,c; while(cin>>s)//getline(cin,s)) { j=0;
for(i=0;i<10;i++) {
n=b[i];
a[j]=s[n-1]; j++; }
h=strlen(a);//h=a.length(); for(i=0;i if(a[i]>'A'&&a[i]<='Z') a[i]=a[i]-1; if(a[i]=='A') a[i]='Z'; } /*getline(cin,c),*/cin>>c;k=0;f=strlen(c);//f=c.length(); for(i=0;i if(k==strlen(s))//s.length()) cout<<\ else cout<<\} return 0; ? ? } 打印数字字符串 Time Limit:1000MS Memory Limit:65536K Total Submit:500 Accepted:417 Description use recursion to write a function to do this “123456789987654321”(请大家用数组做) Input Output Sample Input 1 Sample Output 123456789987654321 Source ? ? ? ? ? ? ? ? ? ? ? #include int a[10]={1,2,3,4,5,6,7,8,9}; int b,i; while(cin>>b) { for(i=0;i<9;i++) cout< for(i=8;i>=0;i--) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cout< return 0; } #include int a[10]={1,2,3,4,5,6,7,8,9}; int b,i; while(cin>>b) { for(i=0;i<9;i++) cout< for(i=8;i>=0;i--) cout< return 0; } #include bool cm(char *p,char *q) { int i,j,h,k; h=strlen(p); k=strlen(q); j=0; for(i=0;i if(p[j]==q[i]) j++; } if(j==h) return 1; else return 0; } int main() { int n,m,f,g,i,j; while(cin>>n) { char a[n][50]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? for(i=0;i cin>>a[i]; } f=1; for(i=0;i if(cm(a[i],a[i+1])==1) f++; } cout< return 0; } 英雄数字 Time Limit:1000MS Memory Limit:65536K Total Submit:121 Accepted:94 Description 有n个数字,其中有一个数字的出现次数超过总个数的一半,这个数称之为英雄数。 例如,n=12,整数序列5,5,5,5,5,5,1,2,3,4,5,6,其中的英雄数为5。 对于给定的n个整数组成的序列,请使用数据结构堆栈,设计出一个时间复杂度为O(n)算法,计算出序列中的英雄数。 Input 由键盘提供输入数据。文件的第1行有1个正整数n<=1000000,表示整数序列有n个整数。第2行是整数序列,整数大小都在32位有符号整型内,数字之间以一个空格隔开。 输入数据保证必然存在一个数字,其出现次数超过总个数的一半。 Output 程序运行结束时,将指定序列的英雄数输出到屏幕上。 Sample Input 12 5 5 5 5 5 5 1 2 3 4 5 6 Sample Output 5 Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int cm(const void *p1,const void *p2) { return *((int *)p2)>*((int *)p1)? -1:1; } int main() { int k,i,j,n,max,m,a[1000]; while(cin>>n) { for(j=0;j cin>>a[j]; } qsort(a,n,sizeof(int),cm); m=0; for(i=0;i if(a[i]==a[i+1]) { m++; k=i; } } if((m+1)>n/2) cout< return 0; } 最大公约数 Time Limit:1000MS Memory Limit:65536K Total Submit:709 Accepted:232 Description 给定两个正整数,求它们的最大公约数。 Input 有多组数据,每行为两个正整数,且不超过int可以表示的范围。 Output 行对应输出最大公约数。 Sample Input 4 8 8 6 200 300 Sample Output 4 2 100 Hint 系统的测试文件中数据有很多组,因此同学们在程序里要写循环读取数据并判断是否读完文件的代码。 如果不知道如何处理,可以参考下面的两个模板: C++这样写: while(cin>>x>>y) { 求x和y最大公约数的代码 } C这样写: while(scanf(%x %y\ { 求x和y最大公约数的代码 } Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int m,n,u,r; while(cin>>n>>m) { if(m { u=m;m=n,n=u; } while(n!=0) { r=m%n; m=n; n=r; } cout< return 0; } 最小公倍数 Time Limit:1000MS Memory Limit:65536K Total Submit:683 Accepted:286 Description 给定两个正整数,求它们的最小公倍数。 Input 有多组数据,每行为两个正整数,且不超过int可以表示的范围。 Output 每行对应输出最小公倍数。 Sample Input 11 21 25 35 44 54 Sample Output 231 175 1188 Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int x=0,y=0,z=0,u=0; while(cin>>x>>y) { if (x u=x;x=y;y=u; } if(x==0 || y==0) {cout<<\ else{z=x; while(x%y!=0) { x=x+z;}} if(x%y==0) ? ? ? cout< 求分数序列和 Time Limit:1000MS Memory Limit:65536K Total Submit:389 Accepted:92 Description 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。 Input 有多组数据,每行为一个正整数,且小于等于100。 Output 每行对应输出:分数序列的和(浮点数,精确到小数点后4位)。 Sample Input 99 Sample Output 160.4849 Hint 最好在程序中使用双精度浮点数(double)记录求得的和。 Source ? ? ? #include ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int main() { int i,n=0; while(cin>>n) { double sum=0.0; double a[500],b[500]; double s[500]; a[0]=2;b[0]=1; for(i=1;i a[i]=a[i-1]+b[i-1]; b[i]=a[i-1]; s[i]=a[i]/b[i]; } for (i=0;i sum=sum+a[i]/b[i]; } cout< return 0; } 公共C练习--选择结构--判断偶数 Time Limit:1000MS Memory Limit:65536K Total Submit:981 Accepted:631 Description 从键盘输入一个整数,判断其是否为偶数. Input 输入一个x(在0到100之间)。 Output 如果是偶数输出\否则输出\ Sample Input 2 1 Sample Output yes no Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int n,a,b; while(cin>>n&&n>0&&n<100) { if(n%2==0) { cout<<\ } else cout<<\ } return 0; } #include int n,a,b; while(cin>>n&&n>0&&n<100) { if(n%2==0) { cout<<\ } else cout<<\ } ? return 0; ? } ? 公共C--选择结构--综合 Time Limit:1000MS Memory Limit:65536K Total Submit:1116 Accepted:359 Description 任意输入3个0到20000之间的整数,求出这3个数中的最大数、奇数的和、偶数的乘积,以及这3个数的平均值。如果没有奇数,对应的输出位置输出0。如果没有偶数对应的输出位置输出1。 Input 输入只有一行,3个0到20000之间的整数 Output 输出只有一行,分别输出3个数中的最大数、奇数的和、偶数的乘积,以及这3个数的平均值(保留2位小数)。每个输出之间用一个空格隔开。 Sample Input 1 2 3 1 1 1 2 2 2 Sample Output 3 4 2 2.00 1 3 1 1.00 2 0 8 2.00 Source ? #include ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int a[3],i,j,f; while(cin>>a[0]>>a[1]>>a[2]) { double h=0.0;int n=0,max=0,k=1,g=0; for(i=0;i<3;i++) { if(a[i]>max) { max=a[i]; } if(a[i]%2!=0) { n=n+a[i]; }if(a[i]%2==0) { k=k*a[i]; } g=g+a[i];} h=g*1.0/3; cout< \} return 0; } #include int a[3],i,j,f; while(cin>>a[0]>>a[1]>>a[2]) { double h=0.0;int n=0,max=0,k=1,g=0; for(i=0;i<3;i++) { if(a[i]>max) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? max=a[i]; } if(a[i]%2!=0) { n=n+a[i]; }if(a[i]%2==0) { k=k*a[i]; } g=g+a[i];} h=g*1.0/3; cout< \} return 0; } 公共C测试--选择结构--字符转换 Time Limit:1000MS Memory Limit:65536K Total Submit:813 Accepted:504 Description 由键盘输入一个字符,若为大写字母,则输出对应的小写字母。若为小写字母,则输出对应的大写字母。若为数字,则输出一个“#”。 Input 输入只有一行,由键盘输入一个字符。 Output 输出只有一行,若为大写字母,则输出对应的小写字母。若为小写字母,则输出对应的大写字母。若为数字,则输出一个“#”。 Sample Input a b C d E F 6 Sample Output A B c D e f # Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include char a,n,m,i,j; while(cin>>a) { if(a>='0'&&a<='9') { cout<<\} else if(a>='A'&&a<='Z') { n=a+32; cout< else if(a>='a'&&a<='z') { m=a-32; cout< return 0; } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include char a,n,m,i,j; while(cin>>a) { if(a>='0'&&a<='9') { cout<<\} else if(a>='A'&&a<='Z') { n=a+32; cout< else if(a>='a'&&a<='z') { m=a-32; cout< return 0; } 数据录入 Time Limit:1000MS Memory Limit:65536K Total Submit:364 Accepted:219 Description 把数据录入一个二维数组中,按要求输出 Input 输入m,n(都大于0,小于50),接下来有m行n列共m*n个数据(每个数据都在int范围内);接着输入一个整数q,q大于0小于等于m. Output 输出第q行的所有数据。 Sample Input 3 4 1 2 3 4 5 6 7 8 1 2 3 4 2 Sample Output 5 6 7 8 Source ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #include int m,n,i,j,g; while(cin>>m>>n) { int a[m][n]; for(i=0;i cin>>a[i][j]; } cin>>g; for(j=0;j cout< return 0; } #include ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { int m,n,i,j,g; while(cin>>m>>n) { int a[m][n]; for(i=0;i cin>>a[i][j]; } cin>>g; for(j=0;j cout< return 0; } 偶数求和 Time Limit:1000MS Memory Limit:65536K Total Submit:185 Accepted:63 Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 Input 输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。 Output 对于每组输入数据,输出一个平均值序列,每组输出占一行。 Sample Input 3 2
正在阅读:
程序设计题目及答案310-19
我的梦作文400字07-12
SQL SERVER函数大全08-29
一岗双责心得体会12-03
组织部 电教中心 个人工作总结 集锦12-02
第一次种花作文500字07-10
惊险的周末作文600字06-18
集中热水供应设计秒流量计算方法分析10-17
大学生安全教育09-10
_西游记_与西方流浪汉小说之比较07-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 题目
- 答案