0704梳理+作业

1.梳理

  • 输入输出

A:按字符输入输出

  1. Getchar用法

man函数中查找getchar用法

功能:向终端输入一个字符

参数:无

输出:字符的ascii码值

例:

#include<stdio.h>

int main(int argc, char const *argv)

{

    int res=getchar();//输入a

    printf("%d\n",res);//输出97

    return 0;

}

输入一个字符,输出该字符的ascii码值

  1. putchar用法

man函数中查找putchar用法

功能:向中断输出一个字符

参数:字符的ascii码值

输出:字符的ascii码值

注意!Putchar没有换行功能需要自己添加

例:

#include<stdio.h>

int main(int argc,char const *argv[])

{

    int res=getchar();

    putchar(res);

   int num= putchar('\n');

   printf("%d\n",num);//q q 10

    return 0;

}

B:按格式输入输出

  1. Printf:

功能:按指定格式输出

参数:多个

返回值:输出正确的字符个数

格式:

Int       %d

Char      %c

Float     %f

Double   %lf

字符串   %s

指针     %p

八进制   %o

十六进制 %x

  1. Scanf:

功能:按指定的格式输入

参数:多个

返回值:正确输入的字符个数

例:

#include<stdio.h>

int main(int argc,char const *argv)

{

    int  a=0 ,b=0;

    scanf("%d %d",&a,&b);//输入2 12

    printf("a:%d b:%d\n",a,b);//输出a:2 b:12

    return 0;

}

C:垃圾字符处理(三种方式)

1.空格:回收一个或多个空格

2.%*c抑制符,可以回收任意一个字符

3.getchar()吸收\n垃圾

例:#include<stdio.h>

int main(int argc,char const *argv)

{

    int  a=0 ,b=0;

    scanf("%d %d",&a,&b);//输入2 12

    getchar();//回收垃圾字符\n

    printf("a:%d b:%d\n",a,b);//输出a:2 b:12

     char c=0 ,d=0;

    scanf("%c %c",&c,&d);//输入q w  这里有两种回收垃圾字符的方式:空格、%*c

    printf("a:%d b:%d\n",c,d);//输出c:113 d:119

    return 0;

}

  • 分支语句

A:if语句

基础结构:

If(常量值/表达式)

{

//代码块

}

Else if()

{

//

}

Else

{

//

}

================================

例题:判断平年闰年

#include<stdio.h>

int main(int argc,char const *argv)

{

   printf("请输入年份\n");

    int a=0;

    scanf("%d",&a);

    if(a%4==0&&a%100!=0)

    {

        printf("普通闰年\n");

    }

    else if(a%400==0)

    {

        printf("世纪闰年\n");

    }

    else

    {

        printf("平年\n");

    }

return 0;    

}

嵌套结构:

If(常量值/表达式)

{

if(常量值/表达式)

{

//代码块

}

}

Else

{

//

}

注意!!!

  1. if后面可以没有else但有else就必须要有if

2.分支代码只有一句时可以省略{}

B:switch

  1. 结构:

Switch(常量值/表达式)

{

Case 常量值1:

     代码块;

     Break;

Case 常量值1:

     代码块;

     Break;

Default:

代码块:

Break;

......

}

例题:100-90优秀;80-89良好;70-79一般;70以下补考

#include<stdio.h>

int main(int argc,char const *argv)

{

    printf("请输入一个字符\n");

    char x=0;

    scanf("%c",&x);

    if(x>=65&&x<=90)

    {

        printf("%c\n",x+32);

    }

     else if(x>=97&&x<=122)

    {

        printf("%c\n",x-32);

    }

    else

    {

        printf("erro\n");

    }

    return 0;

}

注意!!!

  1. case后面的常量是整形常量或字符常量
  2. Case中遇到break分支才会结束且可以没有break,在没有时会一直运行整个swich函数。

2.  题目:终端输入一个日期,判断是这一年的第几天

scanf("%d-%d-%d",&y,&m,&d);

闰年2月29天,平年2月28天

#include<stdio.h>

int main(int argc, char const *argv)

{

    int a=0,b=0,c=0;

    printf("输入一个年 月 日的日期\n");

    scanf("%d %d %d",&a,&b,&c);

    if(b>=1&&b<=2)

    printf("%d\n",(30*(b-1)+c));

    else if(b>2&&b<=12&&b%2==1)

    {

          if(a%4==0&&a%100!=0)

    {

       printf("%d\n",((b/2)*61+c-1));

    }

    else if(a%400==0)

    {

          printf("%d\n",((b/2)*61+c-1));

    }

    else

    {

         printf("%d\n",((b/2)*61+c-2));

    }

    }

     else if(b>2&&b<=12&&b%2==0)

     {

             if(a%4==0&&a%100!=0)

    {

        printf("%d\n",((b/2)*31+(b/2-1)*30+c-1));

    }

    else if(a%400==0)

    {

           printf("%d\n",((b/2)*31+(b/2-1)*30+c-1));

    }

    else

    {

          printf("%d\n",((b/2)*31+(b/2-1)*30+c-2));

    }

     }

     else

     printf("error");

     return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值