C语言的简单应用(一)
来源:互联网 发布:免费手机代理软件 编辑:程序博客网 时间:2024/06/06 03:38
最近得到一份C语言的简单题库,感觉学一学还是挺不错的,打算每天更新10题,不定期天数。
第一天
1、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔
子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数
为多少?
#include<stdio.h>int main(){ int i,f1=1,f2=1; for(i=1;i<=20;i++) { printf("%10d %10d",f1,f2); if(i%2==0) putchar('\n'); f1=f1+f2; f2=f1+f2; } return 0; }
2、 题目:判断100以内有多少个素数,并输出所有素数。
程序分析:一个数如果是合数,那么它的因数不会超过该合数的平方根。此题可用简单素数筛选法—–筛选法百度百科
#include<stdio.h>#define max 100int main(){ int i,j=1,a[max]={0}; a[0]=a[1]=1; for(i=2;i*i<=max;i++) { if(!a[i]) for(j=i+i;j<=max;j+=i) a[j]=1; } printf("2 "); for(i=3;i<=max;i+=2) { if(!a[i]) { printf("%3d ",i); j++; } if(j%10==0) putchar('\n'); } return 0; }
3、题目:打印出100—1000之间所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方
#include<stdio.h>int main(){ int i,j,k,n,m=1; for(n=100;n<1000;n++) { i=n/100; j=n/10%10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) { m++; if(m%2==0) putchar('\n'); printf("%d ",n); } } return 0;}
4、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
#include<stdio.h>int main(){ int n,i; printf("input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { while(n!=i) { if(n%i==0) { printf("%d*",i) ; n=n/i; } else break; } } printf("%d",n); return 0;}
5、题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
#include<stdio.h>int main(){ int grade,score; printf("input the score:");scanf("%d",&score); grade=score>=90?'A':score>=60?'B':'C'; printf("%d belongs to %c",score,grade); return 0;}
————————————————————————————————
6、题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
定理:设两个数是a,b最大公约数是p,最小公倍数是q,那么有这样的关系:ab=pq,所以q=ab/p
#include<stdio.h>int main(){ int num1,num2,a,b,temp; printf("input num1,num2:");scanf("%d,%d",&num1,&num2); if(num1<num2) { temp=num1; num1=num2; num2=temp; } a=num1;b=num2; while(b) { temp=a%b; a=b; b=temp; } printf("the common measure:%d\nthe common multiple:%d",a,num1*num2/a); return 0;}
7、题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
#include<stdio.h>int main(){ char c; int letters=0,space=0,digit=0,others=0; printf("input some characters:"); while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else others++; } printf("the char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);return 0; }
8、题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如
2+22+222+2222+22222(此时共有5个数相加),个数由n来控制。
#include<stdio.h>int main(){ int a,n,t,count=1; long s; printf("input a and n:");scanf("%d,%d",&a,&n); while(count<=n) { t+=a; s+=t; a*=10; count++; } printf("a+aa+....=%ld",s); return 0; }
9、题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
#include<stdio.h>int main(){ int i,n,sum; for(n=6;n<=1000;n++) { sum=1; for(i=2;i<=n/2;i++) if(n%i==0) sum+=i; if(n==sum) { printf("%d 's perfect number is:",n); for(i=1;i<n/2;i++) if(n%i==0) printf(",%d",i); putchar('\n'); } } return 0;}
10、题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
#include<stdio.h>int main(){ int n; float s=100,h=s/2; for(n=2;n<=10;n++) { s+=2*h; h/=2; } printf("the sum:%f\nthe heigh:%f",s,h); return 0; }
总结
第一天的题目相对比较简单,都是经典题目,当然,有些确实是十分的灵活,以后需要多多注意一下。
- C语言的简单应用(一)
- C语言的简单应用(二)
- C语言的简单应用(三)
- C语言的简单应用(四)
- c语言简单应用
- 简单C语言应用
- C语言简单应用
- 简单结构体的应用(商品排序C语言)
- C语言的简单应用(五)上
- C语言的简单应用(五)下
- C语言学习知识点(三):简单的学习应用
- 简单的指针应用 成绩表 c语言
- C语言简单示例(宏定义一应用)
- 浅谈C语言指针的有趣应用(一)
- Python 调用 C 语言的简单流程(一)
- 一些简单知识的整理—C语言(一)
- C语言二维数组的应用的简单举例
- C语言中三角函数的简单应用——HDU2080
- c/c++中关于qsort的使用
- 异步加载js不允许使用document.write的解决方法
- 相对布局解析以及Android studio 连接夜神模拟器
- js中对call()函数和apply()函数的深入探索
- 请求筛选模块被配置为拒绝超过请求内容长度的请求。
- C语言的简单应用(一)
- 如何使用Arduino和SIM900A GPRS / GSM模块将数据发送到Web服务器
- multipath -ll输出结果中的三个状态列的解释
- Anroid_监听手机来信
- BZOJ 3527 [Zjoi2014]力
- 适配器模式
- 【转】Integer.valueof ,Integer.parseInt的区别
- 【android】ListView 的 transcriptMode 选项
- 关于try、catch、finally语句块中含有return语句的几点说明