题目一
输入一个字符串,求它包含多少个单词。单词间以一个或者多个空格分开。
第一个单词前,最后一个单词后也可能有0到多个空格。
比如:" abc xyz" 包含两个单词,"ab c xyz " 包含3个单词。
如下的程序解决了这个问题,请填写划线部分缺失的代码。
注意:只填写划线部分的代码,不要填写任何多余的内容。比如已经存在的小括号,注释或说明文字等。
int get_word_num(char* buf)
{
intn = 0;
inttag = 1;
char*p = buf;
//个人感觉 *p!=13 && *p!=10,这里有点多余,
//好像字符数组里面不能保存换行和回车符吧,所以也就不需要判断字符是否为换行和回车符了。
{
if(*p=='' && tag==0) tag=1;
//填空
n++;
tag=0;
}
returnn;
}
int main()
{
charbuf[1000];
fgets(buf,1000,stdin);
printf("%d\n",get_word_num(buf));
return0;
}
解析:横线部分填:((*p>='a' && *p<='z')||(*p>='A' && *p<='Z'))&&(tag==1);
题目二
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
答案:1835421;
代码如下:
#include<stdio.h>
int main()
{
double i=1.0;
double sum=0.0;
int count=0;
for(;sum<=15.0;i++)
{
sum=sum+(1.0/i);
count++;
}
printf("%d\n",count);
return 0;
}
题目三
如果x的x次幂结果为10,你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。
答案:2.506184
完整代码如下:
#include <cstdio>
#include <cmath>
int main()
{
double x=2.4;
for(;x<3;x+=0.00000001)
{
if(fabs((pow(x,x)-10.0))<0.000001)
{
printf("%.8lf\n",x);
}
}
return 0;
}
题目四
合数,指自然数中除了能被1和本身整除外,还能被其他的数整除(不包括0,1)的数。与之相对的是质数(因数只有1和它本身,如2,3,5,7,11,13等等,也称素数)。
已知n=99999999是一个合数,那么能被他整除的数有几个(1和本身除外):
合数n=9999999,能被他整除的数又有几个(1和本身除外):
代码如下:可以自己修改程序中n的值。
#include<stdio.h>
int main()
{
long long n=9999999;
int count=0;
for(int i=2;i<n;i++)
{
if(n%i==0)
{
count++;
printf("%d ",i);
}
}
printf("%d\n",count);
return 0;
}
题目五
从键盘上输入一个整数n,要求计算n+nn+nnn+nnnn+nnnnn+......(共n项)的和,
例如n=5,
则计算5+55+555+5555+55555的结果
【数据格式】
输入一个整数 n (0<n<10) 。
要求输出一个整数,计算结果。
例如,输入:
5
程序应该输出:
61725
再例如,输入:
3
程序应该输出:
369
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
完整代码如下:
#include<stdio.h>
int main()
{
int i=1,n;
long long sum1=0.0,sum2=0.0;
scanf("%d",&n);
for(sum2=sum1=n;i<n;i++)
{
sum1=sum1*10+n;
sum2+=sum1;
}
printf("%lld\n",sum2);
return 0;
}
读者可以自行运行结果。
题目六
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。
【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。
例如,输入:
5
程序应该输出:
1
再例如,输入:
100
程序应该输出:
2
再例如,输入:
3
程序应该输出:
0
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
完整代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,c2,b2,count=0;
scanf("%d",&c);
c2=c*c;
for(a=1;a<c/sqrt(2);a++)
{
b=sqrt(c2-a*a);
if((a*a+b*b)==c2)
{
count++;
}
}
printf("%d\n",count);
return 0;
}
题目七
输出一个数字n,计算(0 - n)之间所有数字的全排列。
【数据格式】
输入一个整数 n (0<n<10) 。
要求输出(1 - n)之间所有数字的全排列,中间逗号分开。
例如,输入:
3
程序应该输出:
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
再例如,输入:
2
程序应该输出:
1,2
2,1
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
标签:count,输出,include,int,代码,蓝桥,校赛,解析,输入 From: https://blog.51cto.com/u_15907770/5926131