最新国信蓝点杯软件专业人才设计与开发大赛选拔赛上机编程试题汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011国信蓝点杯软件专业人才设计与开发大赛选拔赛上机编程
试题
2011“国信蓝点杯”全国软件专业人才设计与开发大赛上机编程试题
一、倒序数是将一个阿拉伯数的各位上的数字以逆序的形式写成的数。该阿拉
伯数的第一位变成最后位,最后位变成第一位。例如数1245被写成
5421。注意产生的新数字前边所有的数字0是被略去的。倒序数的尾部无多余的数字0。请将阿拉伯数转变为倒序数。
输入
输入的第一行仅有一个正整数n,表示有n组测试数据。下来有接n行,每一行是一组测试数据,长度不超过100。每一行上的字符串表示一个非负整数,它是你需要转换的数。
输出
对每一组测试数据在一行上输出倒序数,该倒序数中前导的数字0被略去了。
输入样例输出样例
3
24 42
43400 434
305503 (25
分)
#include"stdio.h"
void fan(int m)
{
int j,k,i=0;
int a[100]={0};
while(m)
{
a[i]=m%10;
m=m/10;
i++;
}
k=i;
printf("转置后的数据:\n");
for(i=0;i { if(a[i]==0) j=i; else break; } for(j=0;i printf("%d",a[i]); printf("\n"); } main() { int m; printf("输入原始数据 :m \n"); scanf("%d",&m); fan(m); } 二、对一个正整数n,求出n!中末尾0的个数。 输入 输入有若干行。每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000)。 输出 对输入行中的每一个数据n,输出一行,其内容是n!中末尾0的个数。 输入样例输出样例 3 3 0 100 24 1024 253 (25分) #include"stdio.h" int jie(int m) { int i ; long sum; sum=i=1; for(i=2;i<=m;i++) sum=sum*i; return sum; } int fan(long k) { int count,i; int a[100]={0}; i=count=0; while(k) { a[i]=k%10; if(a[i]!=0) break; k=k/10; i++;count++; } return count; } main() { int m,count; long k; printf("输入目标数 m :"); scanf("%d",&m); k=jie(m); printf("m的阶层为:%ld \n",k); count=fan(k); printf("最终0的个数为%d \n",count); } 三、给定两个字符串a和b,定义式子a*b表示两个字符串的连接。例如a= “abc”,b=“def”,则a*b=“abcdef”。如果将连接看成乘法,则按照普遍的方法,一个非负整数的幂表示为:a0=“”(the empty string),a(n+1)=a*(a n)。 输入 输入字符串s,每组样例一行,s为可打印字符。s的长度在1—1000000之间。最后一组数据后为句号(.)。 输出 每个字符串s输出最大的n满足s=a n,其中a为任意字符串。 输入样例输出样例 abcd 1 aaaa 4 ababab 3 (25分) #include"stdio.h" #define max 100 #include"string.h" main() { int i,j,k,flog,len; char a[max]; printf("请输入数据"); gets(a); len=strlen(a); for(k=1;k { for(i=0;i { j=i; do { flog=1; if(a[j]!=a[j+k]) { printf(" 不相等时: a[%d]=%d ;a[%d]=%d",j ,a[j],j+k,a[j+k]); flog=0; } j++; printf(" flog=%d ; k== %d \n",flog,k); }while(j if(flog==1) break; } if(flog==1) { printf(" dsfsd== %d \n",k); break; } } if(k==len) printf("结果=%d \n",len); else printf("结果=%d \n",len/k); }