C语言程序设计 翁恺 中M2020春C入门练习第I段——变量、表达式、分支、循环 (2021/09/25 更新:AC代码 翻新至78题)

这篇博客详细介绍了C语言初学者的练习题目,包括变量、表达式、分支、循环等基本概念的应用,涵盖了从简单的数学计算、字符串处理到逻辑判断的多种实例,旨在帮助读者巩固C语言基础知识。
摘要由CSDN通过智能技术生成

入门练习

第一段:变量、表达式、分支、循环

1. 重要的话说三遍

#include <stdio.h>
int main(){
   
	int i;
	for(i=0;i<3;++i)
	{
   
		printf("I'm gonna WIN!\n");
	}
	return 0;
}

2. I Love GPLT

#include <stdio.h>
int main(){
   
	printf("I\n \nL\no\nv\ne\n \nG\nP\nL\nT\n");
	return 0;
}

3. 输出带框文字

#include <stdio.h>
int main(){
   
	printf("************\n  Welcome\n************");
	return 0;
}

4. 输出菱形图案

#include <stdio.h>
int main(){
   
	printf("  A\nA   A\n  A\n");
	return 0;
}

5. 输出倒三角图案

#include <stdio.h>
int main(){
   
	printf("* * * *\n * * *\n  * *\n   *\n");
	return 0;
}

6. 厘米换算英尺英寸

#include <stdio.h>
int main(){
   
	int cm,foot,inch;
	scanf("%d",&cm);
	inch=(int)(cm*1.0/30.48*12)%12;
	foot=(int)(cm*1.0/30.48*12)/12;
	printf("%d %d",foot,inch);
	return 0;
}

7. 计算摄氏温度

#include <stdio.h>
int main(){
   
	int F,C;
	scanf("%d",&F);
	printf("Celsius = %d",5*(F-32)/9);
	return 0;
}

8. 是不是太胖了

#include <stdio.h>
int main(){
   
	int H;
	scanf("%d",&H);
	double weight;
	weight = (H-100)*0.9*2;
	printf("%.1f",weight);     
	return 0;
}

9. 求整数均值

#include <stdio.h>
int main(){
   
	int i,num=0,sum=0;
	for(i=0;i<4;++i)
	{
   
		scanf("%d",&num);
		sum+=num;
	}
	printf("Sum = %d; Average = %.1f",sum,sum*1.0/4.0);     
	return 0;
}

10. 算术入门之加减乘除

#include<stdio.h>
int main(){
   
	int a,b;
	double c;
	scanf("%d %d",&a,&b);
	c=1.0*a/b;
	if(a%b==0) printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %d\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,(int)c);
	else printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %.2f\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,c);
	return 0;
} 

11. 计算平均分

#include<stdio.h>
int main(){
   
	int math=87,eng=72,comp=93;
    double average=0;
	average=(math+eng+comp)*1.0/3;
	printf("math = 87, eng = 72, comp = 93, average = %.0lf\n",average);
	return 0;
} 

12. 日期格式化

#include<stdio.h>
int main(){
   
	int y,m,d;
	scanf("%d-%d-%d",&m,&d,&y);
	printf("%d-%02d-%02d",y,m,d);
	return 0;
} 

13. 后天

#include<stdio.h>
int main(){
   
	int day,result;
	scanf("%d",&day);
	if(day>=1&&day<=5)result=day+2;
	else result=(day+2)%7;
	printf("%d",result);
	return 0;
} 

14. 然后是几点

#include<stdio.h>
int main(){
   
	int t1,perid,h1,m1,h2,m2,temp;
	scanf("%d %d",&t1,&perid);
	h1=t1/100;
	m1=t1%100;
	temp=h1*60+m1;
	temp+=perid;
	h2=temp/60;
	m2=temp%60;
	printf("%d%02d",h2,m2);//注意这里分钟保证为输出两字符用%02d表示
	return 0;
} 

15. BCD解密

#include<stdio.h>
int main(){
   
	int x,a,b;
	scanf("%d",&x);
	a=x/16;
	b=x%16;
	if(b>=10&&b<16)
	{
   
		a+=1;
		b-=10;
	}
	printf("%d",a*10+b);
	return 0;
} 

16. 计算符号函数的值

#include<stdio.h>
int main(){
   
	int n,sign;
	scanf("%d",&n);
	if(n<0)
		sign=-1;
	else if(n==0)
		sign=0; 
	else sign=1;
	printf("sign(%d) = %d",n,sign);
	return 0;
} 

17. 成绩转换

#include<stdio.h>
int main(){
   
	int scores;
	char res;
	scanf("%d",&scores);
	if(scores>=90)res='A';
	else if(scores>=80)res='B';
	else if(scores>=70)res='C';
	else if(scores>=60)res='D';
	else res='E';
	printf("%c",res);
	return 0;
} 

18. 出租车计价

#include <stdio.h>

int main()
{
   
	double p, sum = 0;
	int t;
	scanf("%lf %d", &p, &t);
	if (p <= 3)
		sum += 10;
	else if (p <= 10)
		sum = 10 + (p - 3) * 2;
	else
		sum = 24 + (p - 10) * 3;
	sum += (t / 5) * 2;
	printf("%.0lf", sum);
	return 0;
}

19. 计算天数

#include <stdio.h>
int main()
{
   
	int a[12]={
   31,28,31,30,31,30,31,31,30,31,30,31};
	int y,m,d,sum=0,i;
	scanf("%d/%d/%d",&y,&m,&d);
	for(i=0;i<m-1;++i)
		sum+=a[i];
	sum+=d;

	if((y%4==0&&y%100!=0||y%400==0)&&m>2)
		sum+=1;
	printf("%d",sum);
	return 0;
}

20. 简单计算器

这是我的解法,相对复杂,推荐我解法后面的解法

#include <stdio.h>
int main()
{
   
	char ch[100];
    scanf("%s",ch);
    int i=0,res=0,flag=-1,sum,num1,num2,fh;
//num1与num2为操作数,sum为每个整数(用于计算超过两位数的数据),flag=-1则需要计算num1,flag=0则考虑符合,flag=1则计算num2
    while(ch[i]!='=')
    {
   
        if(flag&&ch[i]>='0'&&ch[i]<='9')
        {
   
            sum=0;
            while(ch[i]>='0'&&ch[i]<='9')
            {
   
                sum*=10;
                sum+=ch[i]-'0';
                ++i;
            }
            if(flag==-1)
                num1=sum;
            else if(flag==1)
            {
   
                num2=sum;
                switch (fh)
                {
   
                case 1:
                    num1=num1+num2;
                    break;
                case 2:
                    num1=num1-num2;
                    break;
                case 3:
                    num1=num1*num2;
                    break;
                case 4:
                    if(num2)
                        num1=num1/num2;
                    else
                        flag=-100;
                    break;
                }
            }
            if(flag==-100)
                break;
            flag=0;
        }
        if(flag==0&&ch[i]!='=')
        {
   
            switch (ch[i])
            {
   
            case '+':
                fh=1;
                break;
            case '-':
                fh=2;
                break;
            case '*':
                fh=3;
                break;
            case '/':
                fh=4;
                break;
            default :
                flag=-100;
            }
            if(flag==-100)
            {
   
                break;
            }
            ++i;
            flag=1;
        }
    }
    if(flag!=-100)
        printf("%d",num1);
    else
    {
   
        printf("ERROR");
    }
    
	return 0;
}

简单计算器 https://zhuanlan.zhihu.com/p/116734673

#include <stdio.h>
int main()
{
   
	int sum,a;
	char c;
	scanf("%d",&sum);
	while(scanf("%c",&c))
	{
   
		switch(c)
		{
   
			case '+':scanf("%d",&a);sum+=a;break
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值