c语言练习1

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; 
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值