C语言程序设计竞赛模拟试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、编写程序,从键盘上连续输入若干字符,直到回车换行符结束。统计并输出所输入的空
格、大写字母、小写字母,以及其他字符(不含回车换行符)的个数。
#include ""
main() {
char ch=' ';
int i=0, j=0, k=0, m= ?1;
do {
if (ch>='a' && ch<='z')
i++;
else if (ch>='A' && ch<='Z')
j++;
else if (ch == ' ')
m++;
else
k++;
}while((ch=getchar())!='\n');
printf ("small letter = %d, capital letter = %d\n", i, j);
printf ("space = %d, other = %d\n", m, k);
}
2、编写程序,求100~999之间所有的水仙花数。所谓“水仙花数”,即是一个三位数,
它个位、十位、百位数字的立方和,恰好等于该数本身。
#include ""
main() {
int i, j = 1;
int nf, ns, nt;
for (i =100; i<=999; i++) {
nf = i%10;
ns = i/10%10;
nt = i/100;
nf = nf * nf * nf;
ns = ns * ns * ns;
nt = nt * nt * nt;
if ((nf + ns + nt) == i)
{
printf ("The %d's number is %d\n", j, i);
j++;
}
}
3、编写程序,求1-1/2+2/3-3/4+4/5-5/6+6/7….-99/100=
4、编写程序,随机产生1-35个不重复的数,并打印结果。方法一
#include <>
main()
{ int t,i,j,n, a[35]={0};
srand(time(0));
for(i=0; i<35; )
{ n=rand()%35+1 ;
for(j=0;j<=i;j++)
if (a [j] ==n )
break;
if (j
else
a[i]=n;
i++ ;
}
for(i=0; i<35; i++) printf("%4d",a[i]);
getch();
}
方法二
#include<>
main()
{ int j, i,t;
int d[35]={0};
srand(time(0));
for(i=0;i<35;i++)
d[i]=i+1;
for(i=0;i<35;i++)
{ j=rand()%34+1;
t=d[j];d[j]=d[i];d[i]=t; }
for(i=0;i<35;i++)
{printf("NO_%-3d %3d ",i+1,d[i]);
if ((i+1)%5==0) printf("\n") ; }
getch();
}
5、求1!+3!+...+11!之和
6、有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人
7、编写程序,求使等式xy*840=yx*1470成立数。
8、输入十进制整数,显示打印出十六进制。
9、统计文本单词的个数,输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。#include ""
main()
{char c,string[80];
int i,num=0,word=0;
gets(string);
for(i=0;(c=string)!='';i++)
if(c==' ') word=0;
else if(word==0)
{ word=1;
num++;}
printf("There are %d word in the ",num);
}
10、编写检验密码程序,用户输入密码后,若正确,则显示信息:Now, you can do something!。若输入错误,则显示信息:Invalid password. Try again!,并控制至多重复3次。3次出错,给出信息:I am sorry, bye-bye!。
#include ""
#include ""
main() {
?char str[10];
?int k;
?for (k=0; k<3;k++) ?{
? printf ("Please enter your password:");
? gets(str);
? if (strcmp (str, "913911")) ?{
if (k<2)
?printf ("Invalid password. Try again!\n");
else
? printf ("Invalid password. ");
? }
? else
? break;
?}
?if (k<=2)
? printf ("Now, you can do something!\n");