1、从键盘输入一个小写字母,转化为大写字母并输出。
#include <stdio.h>
int main()
{ char c1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1-32;
printf("%c,%d\n",c2,c2);
return 0;
}
2、从键盘输入两个整数,输出最小数。
#include <stdio.h>
int main()
{ int a,b;
scanf("%d%d",&a,&b);
if (a<b)
printf("最小数是:%d\n",a);
else
printf("最小数是:%d\n",b);
return 0;
}
3、对于给定的正整数 N,需要计算 S=1!+2!+3!+...+N!。
#include <stdio.h>
int main()
{
int i;
long sum = 0;
long f = 1;
int N;
printf("请输入 N:\n");
scanf("%d", &N);
for (i = 1; i <= N; i++) {
f *= i;
sum += f;
}
printf("S=%ld", sum);
return 0;
}
4、从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输 入,程序中用变量 i 统计大于零的整数个数,用变量 j 统计小于零的整数个数。
#include <stdio.h>
int main()
{
int i = 0, j = 0;
int x;
printf("请输入数据,用空格隔开每个数
\n");
scanf("%d", &x);
while (x != 0)
{
if (x > 0)
i++;
else
j++;
scanf("%d", &x);
}
printf("大于 0 的个数为%d\n 小于 0 的个数
为%d\n", i, j);
return 0;
}
5、求 ax2+bx+c=0 方程的解,要求 (1) a=0,不是二次方程。 (2) b2-4ac=0,有两个相同的实根。 (3) b2-4ac>0,有两个不等的实根。 (4) b2-4ac,有两个共轭的复根。
#include <stdio.h>
#include<math.h>
int main ( )
{
float a, b,c,disc,x1,x2,realpart,imagpart;
scanf ("%f,%f,%f", &a, &b,&c);
printf("The equation");
if(fabs(a)<1e-6)
printf("is not a quadratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal
roots:%8.4f\n",-b/(2*a));
else
if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real
roots:%8.4f and %8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
return 0;
}
6、某学校需要搬运图书,已知男教师一人搬 3 箱子,女教师一人搬 2 箱,学生两人搬一 箱。问用 45 人正好搬 45 块箱,有多少种搬法?(每人至少搬 1 箱)
#include <stdio.h>
int main()
{
int men,women,child;
for (men = 1; men <= 45; men++)
for (women = 1; women <= 45; women++)
for (child = 1; child <= 45; child++)
if ((men+women+child==45) &&
(men*3+women*2+child*0.5==45))
printf("men=%d women=%d child=%d\n",
men, women, child);
return 0;
}
7、编程求 1-100 这 100 个整数中 9 出现的次数。
#include<stdio.h>
int main()
{
int i,sum=0;
for (i = 1; i<=100; i++) //遍历所有数字
{
if (i/10 == 9)//判断十位是否是 9
sum++;
if (i%10 == 9)//判断个位是否是 9
sum++;
}
printf("%d", sum);
return 0;
}
8、一球从 100 米高度自由落下,每次落地后反弹回原来高度的一半,再落下时,按照这 个规律运动,试编程求它在第 10 次落地时,共经过多少米?第 10 次反弹会达到多高?
#include <stdio.h>
int main()
{
float s=100,h=s/2;
for(int i=2;i<=10;i++){
s=s+2*h;
h=h/2;
}
printf("它在第 10 次落地时共经过%f米\n",s);
printf("第 10 次反弹%f 米\n",h);
return 0;
}
9、计算 k 以内能被 13 或 17 整除的自然数之和
功能:计算出 k 以内最大的 10 个能被 13 或 17 整除的自然数之和。如果不足 10 个,则 仅计算符合条件的数字之和。
输入格式:
输入一个整数 k,1。
输出格式:
输出符合条件的自然数之和的值
输入样例 1:
2000
输出样例 1:
19525
输入样例 2:
5
输出样例 2:
0
#include<stdio.h>
int main()
{
int k,s=0,n=0;
scanf("%d",&k);
while(n<10)
{
if(k%13==0||k%17==0)
{
s+=k;
n++;
}
k--;
if(k<13)
break;
}
printf("%d",s);
return 0;
}
10、国王的奖赏
阿基米德与国王下国际象棋(64 格),国王输了,国王问阿基米德要什么奖赏?阿基米德 对国王说:“只要在棋盘上第一个放一粒米,第二格放二粒,第三格放四粒,第四格放八 粒……按这个方法放满整个棋盘就行。”国王以为要不了多少粮食,就随口答应了,结果 国王输了。假设国王有 1 至 10 吨麦子,1 吨=1000 千克=1000000 克,1 粒麦子有 0.1 克, 请问这些麦子能放到多少格?
输入格式:
输入国王拥有的麦子吨数,设麦子吨数 x 大于等于 1 吨,小于等于 10 吨,x 为一个单精度 实型数。
输出格式:
输出麦子占用的格数
输入样例 1:
1
输出样例 1:
24
输入样例 2:
10
输出样例 2:
27
#include<stdio.h>
#include<math.h>
int main()
{
float s=0,x;
int i=0;
scanf("%f",&x);
while(s<x*1000*1000*10)
{
s+=pow(2,i);
i++;
}
printf("%d",i);
return 0;
}