C语言刷题

绪论

  1. 设某个学生班级共有n名同学,要求计算该班至少有两位同学具有相同生日的概率是多少(要求保留3位小数,假设一年有365天)?
    #include<stdio.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int i = 0;
    	double sum = 1.0; 
    	for(i=0;i<n;i++)
    	{
    		sum *= (365.0-i)/365.0;
    	}
    	printf("%.3f\n",1-sum);
    	return 0;
    }
  2. 输出这两行语句。 
    // printf("Hello World!\n");
    // cout<<"Hello World!"<<endl;
    #include<stdio.h>
    int main()
    {
    	printf("printf(\"Hello World!\\n\");\n");
    	printf("cout<<\"Hello World!\"<<endl;\n");
    	return 0;
    }
  3. 输入一个3位整数,输出该数各位上的数字之和。
    #include<stdio.h>
    int main()
    {
    	int a;
    	scanf("%d",&a);
    	int sum = 0;
    	int i = 0;
    	for(i=0;i<3;i++)
    	{
    		sum += a % 10;
    		a = a / 10;
    	}
    	printf("%d\n",sum);
    	return 0;
    }
  4. 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,作为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int i = 0;
    	int t = 0;
    	int a = 0;
    	for(i=0;i<4;i++)
    	{
    		t = n % 10;
    		t = (t+9)%10;
    		a += t * int(pow(10,i));
    		n = n / 10;
    	}
    	int thousand = a/1000;
    	int hundred = a/100%10;
    	int ten = a/10%10;
    	int one = a%10;
    	int temp;
    	temp = thousand;
    	thousand = ten;
    	ten = temp;
    	temp = hundred;
    	hundred = one;
    	one = temp;
    	a = 1000*thousand+100*hundred+10*ten+one;
    	printf("%d\n",a);
    	return 0;
    }
  5. 体质指数BMI = 体重kg ÷ (身高m)^2
    #include<stdio.h>
    int main()
    {
    	int height,weight;
    	double BMI = 0;
    	scanf("%d %d",&weight,&height);
    	BMI = weight/(height/100.0)/(height/100.0);
    	printf("%.2lf\n",BMI);
    	return 0;
    }
  6.  输入三个小写字母,将其转换成对应的大写字母。
    #include<stdio.h>
    int main()
    {
    	char a,b,c;
    	scanf("%c%c%c",&a,&b,&c);
    	printf("%c%c%c\n",a-32,b-32,c-32);
    	return 0;
    }

分支结构

  1. 输入一个年份,判断该年份是否是闰年,若是闰年则输出1,否则输出0。年份能被4整除并且不能被100整除或者能被400整除的是闰年。
    #include<stdio.h>
    int main(void)
    {
    	int n;
    	scanf("%d",&n);
    	if((n%4==0 && n%100!=0)||n%400==0)
    	{
    		printf("1\n");
    	}
    	else
    	{
    		printf("0\n");
    	}
        return 0;
    }
  2. 给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。如果这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积。
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	double x1,y1,x2,y2,x3,y3;
    	scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,
### C语言编程练习及在线平台 对于希望提升C语言技能的学习者来说,在线是一个非常有效的方法。通过解决不同类型的目,可以加深对语法的理解并提高实际编码能力。 #### 基础输入输出操作 一段简单的程序展示了如何读取字符并将它们转换成小写形式输出[^1]: ```c #include<stdio.h> int main() { char ch=0; while (~(ch=getchar())) { printf("%c\n",ch+32); getchar(); } return 0; } ``` 另一个例子则演示了利用嵌套`for`循环来构建特定模式的图形[^2]: ```c #include <stdio.h> int main() { char n=0; scanf("%c",&n); int i=0; for(i=0;i<5;i++) { int j=0; for(j=0;j<4-i;j++) { printf(" "); } for(j=0;j<=i;j++) { printf("%c ",n); } printf("\n"); } return 0; } ``` 此外还有其他基础性的练习,比如处理EOF条件下的字符流变换[^3]: ```c #include <stdio.h> int main() { int ch = 0; while ((ch = getchar()) != EOF) { putchar(ch + 32); printf("\n"); getchar(); } return 0; } ``` 这些代码片段覆盖了一些常见的主,如简单输出、基本数据类型的操作以及格式化的字符串打印等[^4]。 为了获得更多的实践机会,推荐访问以下几个知名的在线判网站: - **LeetCode**: 提供丰富的算法挑战,虽然主要面向高级程序员,但也有一些适合初学者的任务。 - **Codeforces**: 定期举办竞赛活动,拥有活跃社区支持新手成长。 - **HackerRank**: 设有专门针对多种编程语言(含C/C++)的基础教程与习集。 - **牛客网 (NowCoder)**: 面向中国用户的综合性学习平台,内含大量中文资料和真解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值