C语言错题 2

简介: C语言错题 2

导言

这篇文章也是给大家来找乐子的

关于这个专栏的详细介绍可以看这个专栏的第一篇文章

话不多说,直接上题

1.

题干:

描述

输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。

数据范围:年份满足

1990≤y≤2015

,月份满足

1≤m≤12

,日满足

1≤d≤30

输入描述:

输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符

输出描述:

三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。

代码:

#include<stdio.h>
int main()
{
int a;
int b;
int c;
scanf("%4d%2d%2d",&a,&b,&c);
printf("year=%d\n",a);
printf("month=%02d\n",b);//根据备注的提醒信息,%02d表示输出的格式为2位,不足在前面添0
printf("date=%02d\n",c);
return 0;
}

知识点:

1.通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据

2.通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

如:根据备注的提醒信息,%02d表示输出的格式为2位,不足在前面添0

2.

题干:

描述

实现字母的大小写转换。多组输入输出。

输入描述:

多组输入,每一行输入大写字母。

输出描述:

针对每组输入输出对应的小写字母。

先看错误代码及运行结果:

正确代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    char ch;
    char c;
    while (scanf("%c", &ch) != EOF)
    {
        getchar();
        //因为回车也算一个字符,所以在输入第一个字符换行后,getchar会读取换行的回车键
        //换行的回车被读取,若防止回车被读取,可在其前面多读取一次消耗回车       
        c = ch + 32;
        printf("%c\n", c);
    }
    return 0;
}

知识点:

回车也算一个字符,所以在输入第一个字符换行后,getchar会读取换行的回车键

getchar读取走回车键

3.

题干:

描述

不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。

数据范围:

0≤n≤31

输入描述:

一行输入整数n(0 <= n < 31)。

输出描述:

输出对应的2的n次方的结果。

代码:

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d",1<<n);
  //在2进制中,2的表示为00000010
  //我们只使用移位符来完成2的n次方,仅需使这个1往左移动。
  //如4:00000100;8:00001000
  //所以最终表示式为1<<n
    return 0;
}

知识点:

知识点:移位符移动的是二进制位

4.

题干:

输入五个字符,求平均数(保留一位小数)

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int q, a, z, w, s;
    float x;
    scanf("%d %d %d %d %d", &q, &a, &z, &w, &s);
    x = (q + a + z + w + s)/5.0f;
    printf("%.1f", x);
    return 0;
}

知识点:

5.0被自动识别为double类型,在后面加上f,使其被识别为float

如图:

5.

题干:

描述

将浮点数转换为整数类型,要求四舍五入。

输入描述:

随机输入的浮点数

输出描述:

四舍五入之后的整数

代码:

#include <stdio.h>
#include<math.h>
int main()
{
    double a;
    scanf("%lf", &a);
    int b = round(a);
    printf("%d",b);
    return 0;
}

未完待续,各位明天晚上七点半见



相关文章
|
28天前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
12 0
|
7月前
|
存储 编译器 C语言
C语言错题之 10
C语言错题之 10
91 0
|
1月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
21 0
|
8月前
|
存储 C语言
C语言错题之 8
C语言错题之 8
52 0
|
8月前
|
C语言
C语言错题之 5
C语言错题之 5
38 0
|
5月前
|
C语言
C语言分支语句和循环语句经典题及易错题
C语言分支语句和循环语句经典题及易错题
60 0
|
8月前
|
存储 编译器 开发工具
C语言错题之 7
C语言错题之 7
47 0
|
8月前
|
C语言
C语言错题之 6
C语言错题之 6
39 0
|
8月前
|
存储 C语言
C语言错题4
C语言错题4
55 0
|
8月前
|
存储 C语言
C语言错题 1
C语言错题 1
69 0