参考程序: #include
{ long n,sum=0,i,t=1;
scanf(\for(i=1;i<=n;i++) { sum=sum+t;
t=t+2; }
printf(\} 或
#include
printf(\
}
注:评判系统不对程序实现细节进行分析,只对运行结果进行评测。[题目 1026:累加一行字符中的数字]
由键盘输入一行字符(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),将其中每个数字
字符所代表的数值累加起来,输出结果。
[第一组自测数据] [键盘输入] abc123↙ [正确输出] 6
[第二组自测数据] [键盘输入]
A6H7T+65↙
[正确输出] 24
[提示](1)可以使用下面程序段逐个读入键盘输入的一行字符
char ch; {??}
while((ch=getchar())!='\\n')
(2)数字字符转为对应的数值可用 a=ch-'0'
参考程序: #include
char c; int s=0,a;
while((c=getchar())!='\\n') { if(c>='0'&&c<='9')
{ a=c-48;
s=s+a; } }
printf(\}
10
[题目 1029:求最大公约数]
由键盘输入两个正整数 m、n(m、n 用长整数表示),计算它们的最大公约数。 [第一组自测数据] [键盘输入] 16,24↙ [正确输出] 8
[第二组自测数据] [键盘输入] 17,25↙ [正确输出] 1
[提示]公约数是既能整除 m 又能整除 n 的数,题目要求满足这一条件的最大的一个。 参考程序: #include
{ long r,m,n,temp;
scanf(\while(m!=0) { r=n%m;
n=m; m=r; }
printf(\} 或
#include
long m,n,t,i,s;
scanf(\t=m>n?n:m; for (i=t-1;i>=1;i--) { }
printf(\}
if (m%i==0&&n%i==0) { s=i; break; }
[题目 1030:字符变换]
由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),将其中的大写字 符变成小写(其它类型的字符不变),最后输出变换后的句子。 [第一组自测数据] [键盘输入] How Are You?↙ [正确输出] how are you?
[第二组自测数据] [键盘输入]
ThiS IS My fIrSt C ProgrAm!↙ [正确输出]
this is my first c program!
11
参考程序: #include
char c;
while((c=getchar())!='\\n') {
if(c>='A'&&c<='Z')
c=c+32; putchar(c); } }
[题目 1037:计算数列和]
有数列:
编程实现,由键盘输入 n,计算输出数列前 n 项和。(结果保留四位小数) [第一组自测数据] [第二组自测数据 ] [键盘输入] [键盘输入
] 20↙ 30↙
[正确输出] [正确输出 ] 32.6603
参考程序: 88.0403
#include
main() {
int i,t,n;
float a=2,b=1,s=0; scanf(\ for(i=1;i<=n;i++) { s=s+a/b;
t=a;a=a+b;b=t;
}
printf(\
}
[题目 1044:输出最小值]
从键盘输入十个整数,输出最小值 [自测数据] [键盘输入] 12 45 76 87 5 87 43 55 99 21↙
[正确输出] 5
12
参考程序: #include \main() { int i,t,min;
scanf(\for(i=1;i<10;i++) {
scanf(\if(t printf(\} *[题目 1031:统计单词个数] 由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),以空格分割单词, 要求输出单词的个数。 [第一组自测数据] [键盘输入] How Are You?↙ [正确输出] 3 参考程序: #include int i,num=0,word=0; char c; if(c==' ')word=0; else if(word==0) { } word=1; num++; [第二组自测数据] [键盘输入] There are many students and many trees!↙ [正确输出] 7 for(i=0;(c=getchar())!='\\n';i++) printf(\ } *[题目 1042:百万富翁] 一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你 m 元, 而你第一天只需给我一分钱。第二天我仍给你 m 元,你给我 2 分钱。第三天,我仍给你 m 元,你给我 4 分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月(38)天。百万富翁很高兴,欣然接受这 个契约。现要求,编写一个程序,由键盘输入 m,计算多少天后,百万富翁开始亏钱。 [第一组自测数据] [键盘输入] 100↙ [正确输出] 18 [第二组自测数据] [键盘输入] 10000↙ 13 [正确输出] 25 参考程序: #include int n,m,i; scanf (\for (i=1;i<=38;i++) if (0.01*(pow(2,i-1)-1)-i*m>=0) break; printf(\} 14