C码字练习.02.输入输出相关 - 北方连萌

C码字练习.02.输入输出相关

输入ASCII码打印字符

#include<stdio.h>

int main(void)
{
   char c;

   printf("输入一个ASCII码值\n");
   scanf("%d", &c);
   printf("%c\n", c);

   return 0;
}
输入一个ASCII码值
85
U

转义序列

#include<stdio.h>

int main(void)
{
   printf("此处应有警报声\a\n"); //"\a"即发出一声警报
   printf("\"这就是一句带引号的示例\"\n");

   return 0;
}
此处应有警报声
"这就是一句带引号的示例"

同一个数以不同类型输出

#include<stdio.h>

int main(void)
{
   float c;
   
   printf("输入一个小数点形式的数:\n");
   scanf("%f", &c);
   printf("小数点形式:%f\n", c);
   printf("十进制指数形式:%e\n", c);
   printf("十六进制指数形式:%a\n", c);

   return 0;
}
输入一个小数点形式的数:80.254
小数点形式:80.253998
十进制指数形式:8.025400e+001
十六进制指数形式:0x1.410418p+6

数组

基本版

#include<stdio.h>
int main(void)
{
   char fn[20]; //数组的宣言
   char ln[20];
   
   printf("Please enter your first name: \n");
   scanf("%s", fn); //在读取数组时,不用在变量名前加&
   printf("Please enter your last name: \n");
   scanf("%s", ln); //数组的转换说明是%s
   printf("Hello, %s %s.\n", fn, ln);
   
   return 0;
}
Please enter your first name:
ASD
Please enter your last name:
QAZ
Hello, ASD QAZ.

指定格式版

#include<stdio.h>
int main(void)
{
   char fn[20]; //数组的宣言
   char ln[20];
   
   printf("Please enter your first name: \n");
   scanf("%s", fn); //在读取数组时,不用在变量名前加&
   printf("Please enter your last name: \n");
   scanf("%s", ln); //数组的转换说明是%s
   printf("Hello, \"%20s %-20s\".\n", fn, ln);
   /*
   这是在宽度20的字段右端打印名,
   在宽度20的字段左端打印姓
   */
   return 0;
}
Please enter your first name: 
ASD
Please enter your last name: 
QAZ
Hello, "                 ASD QAZ                 ".

输入并打印小数

#include<stdio.h>
int main(void)
{
   float a;
   float b;
   
   printf("输入个小数(小数点形式):\n");
   scanf("%f", &a);
   printf("以小数点形式输出:%f\n", a);
   printf("以指数形式输出:%e\n", a);
   printf("输入个小数(指数形式):\n");
   scanf("%e", &b);
   printf("以小数点形式输出:%f\n", b);
   printf("以指数形式输出:%e\n", b);
    
   return 0;
}
输入个小数(小数点形式):
21.3
以小数点形式输出:21.299999
以指数形式输出:2.130000e+001
输入个小数(指数形式):
2.1e+001
以小数点形式输出:21.000000
以指数形式输出:2.100000e+001
输入个小数(小数点形式):
+21.290
以小数点形式输出:21.290001
以指数形式输出:2.129000e+001
输入个小数(指数形式):
2.129e+001
以小数点形式输出:21.290001
以指数形式输出:2.129000e+001

打印表达式

打印出的会是表达式的计算结果

(1)

#include<stdio.h>
int main(void)
{
   float h;
   char name[20];
   
   printf("输入姓名:\n");
   scanf("%s", name);
   printf("输入身高(单位:cm):\n");
   scanf("%f", &h);
   printf("%s的身高是%.2fm.\n", name, h / 100);

   return 0;
}
输入姓名:
Alan
输入身高(单位:cm):
178
Alan的身高是1.78m.

(2)

#include<stdio.h>
int main(void)
{
   float siz;
   float spd, tim;
   
   printf("输入文件大小(单位:MB):\n");
   scanf("%f", &siz);
   printf("输入下载速度(单位:Mb/s):\n");
   scanf("%f", &spd);
   printf("下载所需时间(单位:秒):%f\n", siz * 8.0 / spd);

   return 0;
}
输入文件大小(单位:MB):
2.20
输入下载速度(单位:Mb/s):
18.12
下载所需时间(单位:秒):0.971302

字符串长度strlen()

欲使用strlen(),须在预处理部分包含string.h

(1)左对齐

#include<stdio.h>
#include<string.h>
int main(void)
{
   char fn[20]; 
   char ln[20];
   
   printf("Please enter your first name: \n");
   scanf("%s", fn); 
   printf("Please enter your last name: \n");
   scanf("%s", ln); 
   printf("%-9s %-9s\n", fn, ln);
   printf("%-9d %-9d\n", strlen(fn), strlen(ln));
   /*
   使用足够大的固定字段宽度可使输出整齐,负号表示左对齐
   */
   return 0;
}
Please enter your first name: 
ERT
Please enter your last name: 
KIJH
ERT       KIJH     
3         4

(2)右对齐

#include<stdio.h>
#include<string.h>
int main(void)
{
   char fn[20]; 
   char ln[20];
   
   printf("Please enter your first name: \n");
   scanf("%s", fn); 
   printf("Please enter your last name: \n");
   scanf("%s", ln); 
   printf("%9s %9s\n", fn, ln);
   printf("%9d %9d\n", strlen(fn), strlen(ln));
   /*
   使用足够大的固定字段宽度可使输出整齐
   */
   return 0;
}
Please enter your first name: 
DRFTG
Please enter your last name: 
EDRFGV
    DRFTG    EDRFGV
        5         6

define的单纯替换作用

基本格式

#include<stdio.h>
#define //常量名 常量(可以是数字例如1234,字符例如'a''b''c''d',字符串例如"efgh"...) 
int main(void)
{
   //处理中用常量名代替具体量

   return 0;
}

#include<stdio.h>
#define V 3.785
#define S 1.609
#define H 100.0

int main(void)
{
   float ml, g, am, eu;

   printf("输入里程(英里):\n");
   scanf("%f", &ml);
   printf("输入油耗(加仑):\n");
   scanf("%f", &g);
   am = ml / g;
   printf("美式(英里/加仑):%.1f\n", am);
   eu = g * V * H / ml / S;
   printf("欧式(升/100千米):%.1f\n", eu);

   return 0;
}
输入里程(英里):
1
输入油耗(加仑):
1
美式(英里/加仑):1.0
欧式(升/100千米):235.2

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。