C语言100题(模板专用)
考研初试C语言复习 2021.9.23
前言
。
提示:以下是本篇文章正文内容,下面案例可供参考
第一题、
1.题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
2.代码
#include <stdio.h>
int main() {
int n, m, temp, cn,cm;//
printf("请输入两个数字:");
scanf_s("%d %d", &n, &m);
if (n < m) {//换大小
temp = n;
n = m;
m = temp;
}
cn = n % m;
cm = n * m;
//最小公倍数利用辗转相除法(欧几里得算法)
while (cn != 0) {
n = m;
m = cn;
cn = n % m;
}
printf("两个输的最小公倍数为%d,最小公约数为%d", cm / m, m);
return 0;
}
题目思考:先利用辗转相除的出最小公约数,在再n*m/最小弓约数即可求出最小弓倍数
第二题、
1.题目描述
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2.代码
#include<stdio.h>
int main()
{
char c;
int letters=0,spaces=0,digits=0,others=0;
printf("请输入一些字母:\n");
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letters++;
else if(c>='0'&&c<='9')
digits++;
else if(c==' ')
spaces++;
else
others++;
}
printf("字母=%d,数字=%d,空格=%d,其他=%d\n",letters,digits,spaces,others);
return 0;
}
题目思考:注意判断程序
第三题、
1.题目描述
求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
2.代码
#include <stdio.h>
int main() {
int a, n;
printf("请输入a和n:");
scanf_s("%d %d\n", &a, &n);
int num=0, every=a;
while (n > 0){
num += every;
a = a * 10;
every += a;
n--;
}
printf("值为=%d\n", num);
return 0;
}
题目思考:求出每一项的值,利用循环来实现
第四题、
1.题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
2.代码
#include<stdio.h>
int main()
{
float h,s;
h=s=100;
h=h/2; //第一次反弹高度
for(int i=2;i<=10;i++)
{
s=s+2*h;
h=h/2;
}
printf("第10次落地时,共经过%f米,第10次反弹高%f米\n",s,h);
return 0;
}
题目思考:同14改编
第五题、
1.题目描述
一球从100米高度自由落下,每次落地后反跳回原高度的一半
2.代码
#include <stdio.h>
int main() {
double h=100.0, total=0.0;
int n;
scanf_s("%d", &n);
for (int i=0;i<n;h=h/2,++i) {
total += 2*h;
}
printf("%lf %lf", total-100, h);
return 0;
}
题目思考:注意调整参数