PTA作业笔记——简单的输入输出

本文介绍了C语言中的基本输入输出操作,包括整数、单精度和双精度实数、字符以及日期格式化,强调了编程习惯和控制格式的重要性。通过实例展示了如何使用scanf和printf进行各种类型的输入输出,并提到了一些注意事项如原样输入和格式化字符。
摘要由CSDN通过智能技术生成

写在前面:不是很难的题目直接放上代码,只作为记录
初学C语言的时候涉及到的输入输出不会很难,但是需注意“原样输入这个问题”。特别是在一些期末考试或者二级题目中会出现这样的问题。
这一部分重要的不是把答案做出来,更重要的是培养一个C语言的语法习惯,比如:括号成对出现、单词拼写正确、不是void的函数直接先写return,这些习惯会让后期写长代码减少很多的编译问题和逻辑问题。写给自己!!!习惯和思维远比刷题本身更重要!!

7-2 输入输出整数

输入1个绝对值不超过100000的整数A。
在这里插入图片描述

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

7-3 输入输出单精度实数

本题目要求读入1个单精度实数,然后输出这个实数,显示两位小数。
小贴士:输入/输出的单精度控制格式用%f,输出用%.nf表示输出的数显示n位小数。
在这里插入图片描述

#include<stdio.h>
int main()
{
    float a;
    scanf("%f", &a);
    printf("%.2f",a);
    return 0;
}

7-4 输入输出双精度实数

本题目要求读入1个双精度实数,然后再输出它,显示两位小数。
小贴士:双精度输入时候用%lf ,不是%f,输出和float相同%f.
在这里插入图片描述

#include<stdio.h>
int main()
{
    double a;
    scanf("%lf", &a);
    printf("%.2f",a);
    return 0;
}

7-5 输入输出字符

本题目要求读入1个字符,输出此字符和其对应的十进制数。
小贴士:字符输入输出控制格式是%c 。题目有逗号,注意一并输出。另外,char 变量在内存中存储的是字符对应的 ASCII 码值,因此 如果以 %d 输出,那么是 ASCII码值整数。反过来一个整型,也能用%c输出。
在这里插入图片描述

#include<stdio.h>
int main()
{
    char a;
    scanf("%c",&a);
    printf("%c,%d",a,a);
    return 0;
}

7-6 整数的各种形式输出

本题目要求读入1个整数,输出此整数的十进制表示,八进制表示和十六进制表示,还有无符号整数表示。
小贴士:%o是八进制整数格式,十六进制请自己查阅资料。
八进制和十六进制是对二进制的改进,增加二进制数的可读性,二进制表示内存地址时候太长了,且容易出错,因此都采用十六进制来表示内存地址,一个32位地址只需要8位十六进制的数,而如果用二进制表示则是32位0和1构成的码,八进制是中间过渡产品,比如工业领域的PLC控制器仍然保留八进制的使用。
在这里插入图片描述

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    printf("%d,%o,%x,%u",a,a,a,a);
    return 0;
}

7-7 混合无间隔输入输出

本题目要求读入1个整数,1个字符和1个双精度实数,然后依次输出它们,用逗号隔开。
小贴士:用%c输入数据时候,要特别小心,%c会把空格当作字符读进来,因此不能用空格当作输入的分隔符。比如scanf(“%d%c”,&p1,&p2);输入的时候:10 a是错误的,因为10和a之间有空格,空格会当作有效输入赋给p2.
在这里插入图片描述

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

7-8 日期格式化

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

本题需要注意的的是输出日和月需要有0来填充十位

在这里插入图片描述

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d-%d-%d",&a,&b,&c);
    //注意需要控制前导零
    printf("%d-%02d-%02d",c,a,b);
    return 0;
}

7-9 区位码输入法

国标 GB2312-80 全部汉字与图形符号排列成 94×94 的一张大表:

每一行称为一个“区”(01 区 ~ 94 区),
每一列称为一个“位”(01 位 ~ 94 位)。
汉字的机内码由高、低字节两个字节组成,它们分别是区码和位码加 160 得到的。即:

高字节 = 区码 + 160
低字节 = 位码 + 160

以汉字“爱”为例,其区位码为 1614,即 16 区、14 位,该汉字的两个字节分别为:

16 + 160 = 176
14 + 160 = 174

依次输出这两个字节(字符)
putchar(176);
putchar(174);
在这里插入图片描述

#include<stdio.h>
int main()
{
    int a, b;
    scanf("%d", &a);
    b = a / 100 + 160;//高两位
    a = a % 100 + 160;//低两位
    putchar(b);
    putchar(a);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值