小甲鱼C语言【课后笔记第一章——打印(printf)

news2024/12/24 10:16:29

目录

1、“打印”就是“输出”的意思

2、使用 GCC 编译程序:gcc 源代码 -o 可执行文件。

 3、printf 是格式化输出函数

a、函数概要

b、函数原型

c、参数分析

d、返回值

e、演示

4. 转义字符

5. 反斜杠的奥义

6、课后习题(编程题)

 


1、“打印”就是“输出”的意思

下面就是我们上手C语言的第一个程序。(也大概是我们学习任何语言上手的第一个程序)

#include <stdio.h>

int main()
{
        printf("I love FishC.com!\n");
        return 0;
}

2、使用 GCC 编译程序:gcc 源代码 -o 可执行文件。

 3、printf 是格式化输出函数

确实有了函数的加入我们方便了许多!!!

a、函数概要

printf 函数用于打印格式化字符串到标准输出流。

b、函数原型

#include <stdio.h>
...
int printf ( const char * format, ... );

c、参数分析

format 参数

format 参数是一个格式化字符串,由格式化占位符和普通字符组成。

格式化占位符(以 % 开头)用于指明输出的参数值如何格式化。

格式化占位符的语法如下:

%[flags][width][.precision][length]specifier

每一个格式化占位符均以 % 开始,以转换字符结束。

specifier转换字符,必选)的内容及含义如下:

转换字符

参数类型;转换结果

c

char;字符

d

int;有符号十进制整数

i

同上

e

double;以指数形式输出单、双精度浮点数(小写 e)

E

同上(大写 E)

f

double;以小数形式输出单、双精度浮点数

g

double;以 %f 或 %e 中较短的输出宽度输出单、双精度浮点数(指数显示小写 e)

G

同上(指数显示大写 E)

o

unsigned int;无符号八进制(无前导 0)

s

char *;字符串

u

int;无符号十进制

x

unsigned int;无符号十六进制(无前导 0x)

X

同上(无前导 0X)

p

void *;指针值

n

int *;存放已写字符的个数

%

不进行参数转换;% 自身

注:如果 % 后边的字符不是转换字符,则其行为没有定义。

flags标志,可选)的内容即含义如下:

标志

含义

-

指定被转换的参数在其字段内左对齐(默认是右对齐)

+

指定在输出的数前面加上正负号

空格

如果第一个字符不是正负号,则在其前面加上一个空格

0

对于数值转换,当输出长度小于字段宽度时,添加前导 0 进行填充

#

指定另一种输出形式:
1. 如果转换字符为 o,则第一个数字为 0
2. 如果转换字符为 x 或 X,则指定在输出的非 0 值前加 0x 或 0X
3. 对于转换字符为 e、E、f、g 或 G 的情况,指定输出总是包含一个小数点。另外,对于转换字符为 g 或 G,还指定输出值尾部无意义的 0 将被保留


注:flags 可同时出现多个,且无顺序要求。

width(宽度,可选)是一个数值,用于指定最小字段的宽度

转换后的参数输出宽度至少要达到这个数值。如果参数的字符数小于该数值,则在参数左边(如果 flags 设置为 -,要求左对齐的话则在右边)填充一些字符。填充字符通常为空格,但是如果 flags 设置为 0,则填充字符为数字 0。

.precision(.精度,可选),通过点号(.)分隔字段的宽度和精度

  • 对于字符串,它指定打印的字符的最大个数
  • 对于整数,它指定打印的数字位数(必要时可加填充位 0 以达到宽度要求)
  • 对于转换字符为 e、E 或 f,它指定打印的小数点后的数字位数
  • 对于转换字符为 g 或 G,它指定打印的有效数字位数

length(长度修饰符,可选)的值可以是 h、hh、l、ll 或 L

  • hh 表示将相应的参数按 signed char 或 unsigned char 类型输出
  • h 表示将相应的参数按 short 或 unsigned short 类型输出
  • l 表示将相应的参数按 long 或 unsigned long 类型输出
  • ll 表示将相应的参数按 long long 或 unsigned long long 类型输出
  • L 表示将相应的参数按 long double 类型输出

d、返回值


如果函数调用成功,返回值是实际打印的字符数(不包含表示字符串结束的 '\0');

如果函数调用失败,返回值是一个负数。

e、演示

#include <stdio.h>

int main()
{
        int a = 325;
        char b = 'Y';
        float c = 3.14;
        double d = 3.141592653;

        printf("小王出生在2000年的的%d\n", a);
        printf("I love %cou!\n", b);
        printf("圆周率是:%.2f\n", c);
        printf("精确到小数点后9位的圆周率是:%11.9f\n", d);

        return 0;
}

结果:

4. 转义字符

在 C 语言中,用双引号括起来的内容我们称之为字符串,也就是我们平时所说的文本。

转义字符一般是表示特殊含义的非可见字符,以反斜杠开头:

5. 反斜杠的奥义

在字符串中反斜杠 + 字符是转义字符,表示特殊含义。

但反斜杠如果后边不带任何字符(直接换行),表示我们希望 C 语言将该行以及下一行看做是一

个整体。

比如:

#include <stdio.h>

int main()
{
        printf("Hello World!\n");
        return 0;
}

 可以写成:

#in\
clude \
<stdio.h>

int ma\
in()
{
        print\
f("Hello World!\n");
        return \
0;
}

6、课后习题(编程题)

要求打印出这一架飞机!!!

 

#include <stdio.h>

int main()
{
        printf("\n\
                 @\n\
                / \\\n\
                * *\n\
                * *\n\
                * *\n\
          * * * * * * * *\n\
        * * * * * * * * * *\n\
      * * * * * * * * * * * *\n\
                * *\n\
                * *\n\
              * * * *\n\
            * * * * * *\n");

        return 0;
}

 结果:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能工具之JMeter模拟多IP地址访问

文章目录一、前言二、前置条件三、操作步骤一、前言 今天一同事在压测时提到怎么用 JMeter 里虚拟多个 IP 来发送请求&#xff0c;我想了一下以前用LR时用过虚拟ip地址&#xff0c;JMeter 还没有使用过。想着原理应该是相通的&#xff0c;既然 LR 都能支持的话&#xff0c;那 …

多线程学习笔记(四)-- 常见类及使用

1. thread的方法 Thread.sleep()&#xff1a;占用cpu资源 Thread.yeild()&#xff1a;当前线程让渡cpu资源&#xff0c;大家竞争&#xff0c;也有再抢到cpu的机会 t1.join()&#xff1a;在t2线程中&#xff0c;调用t1.join()&#xff0c;是等待t1执行完成 2. 线程状态 3. sy…

力扣(LeetCode)142. 环形链表 II(C++)

哈希表 最直观的思想&#xff0c;哈希表记录遍历的结点&#xff0c;如果结点重复出现&#xff0c;则有环。如果遍历到空结点&#xff0c;无环。 class Solution { public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode *> ad;auto tail head;while(…

java计算机毕业设计ssm医患交流平台93xzr(附源码、数据库)

java计算机毕业设计ssm医患交流平台93xzr&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。…

用Excel自带图表插入带分类变量的箱形图(单坐标轴并列箱)

箱型图主要用来观察一个或多个类别下&#xff0c;数值型变量的分位数及离群值的特征和分布&#xff0c;以及在一定程度上观察到偏度和峰度的状态。网上有一些自己计算分位数来绘制箱型图的方法&#xff0c;但一方面是没有直接使用excel自带的箱型图好看和功能全面&#xff0c;二…

qq群聊机器人接入ChatGPT-简介和源码

qq群聊机器人接入ChatGPT 最近 ChatGPT 很火&#xff0c;也注册了账号玩了玩&#xff0c;确实灰常强大。但是也有的小伙伴可能没办法注册账号&#xff0c;我就想着把qq群机器人接入ChatGPT。 过程还是比较简单顺利的。下面简单介绍一下 直接跳过介绍&#xff0c;查项目代码 1…

绘制金字塔-第10届蓝桥杯Scratch选拔赛真题精选

[导读]&#xff1a;超平老师计划推出Scratch蓝桥杯真题解析100讲&#xff0c;这是超平老师解读Scratch蓝桥真题系列的第100讲。 蓝桥杯选拔赛每一届都要举行4~5次&#xff0c;和省赛、国赛相比&#xff0c;题目要简单不少&#xff0c;再加上篇幅有限&#xff0c;因此我精挑细选…

基于java(springboot)校园新闻管理系统源码(java毕业设计)

基于java(springboot)校园新闻管理系统 校园新闻管理系统是基于java编程语言&#xff0c;MySQL数据库&#xff0c;和springboot框架&#xff0c;用idea开发工具开发的设计&#xff0c;本设计分为学生用户&#xff0c;管理员两个角色&#xff0c; 学生的主要功能是可以注册登陆…

Cpolar实现虚拟机内网穿透,搭建私人云服务器

Cpolar实现虚拟机内网穿透,搭建私人云服务器 一、Cpolar功能介绍 Cpolar官网 Cpolar是一个安全的内网穿透的服务&#xff0c;可以将内网下的本地服务器通过安全隧道暴漏给公网。允许公网用户可以正常访问内网服务&#xff0c;是一款免费的内网穿透软件。只需要一行命令&#…

Python小炼(1):初识Python

"也许对我来说&#xff0c;太多拘束可能" 本篇的主要内容,针对的是一些常见的语法&#xff0c;在python中是怎样表示的&#xff0c;例如,python变量如何定义、选择、循环、判断结构是如何表示的&#xff1f;python函 数定义是怎么定义的…… ----前言 一、认识pyt…

无需代理及注册在VsCode中使用ChatGPT

无需代理及注册在VsCode中使用ChatGPT 安装 要安装扩展&#xff0c;请按照下列步骤操作&#xff1a; 1.打开 Visual Studio Code 2.单击左侧栏中的扩展程序图标 3.搜索"ChatGPT中文版" 4.点击安装按钮安装扩展 5.重启VSCode 用法 开始使用 在编辑器中右键触发…

【LeetCode每日一题:1691. 堆叠长方体的最大高度~~~排序+贪心】

题目描述 给你 n 个长方体 cuboids &#xff0c;其中第 i 个长方体的长宽高表示为 cuboids[i] [widthi, lengthi, heighti]&#xff08;下标从 0 开始&#xff09;。请你从 cuboids 选出一个 子集 &#xff0c;并将它们堆叠起来。 如果 widthi < widthj 且 lengthi < …

Java学习笔记6.3.3 文件操作 - 对象序列化与反序列化

文章目录零、本讲学习目标一、对象序列化与反序列化&#xff08;一&#xff09;对象序列化与反序列化概念&#xff08;二&#xff09;对象序列化与反序列化示意图&#xff08;三&#xff09;实际开发中序列化和反序列化的场景&#xff08;四&#xff09;实现对象序列化的两种方…

26岁,干了三年测试,月薪才12k,能跳槽找到一个更高薪资的工作吗?

在我们的身边&#xff0c;存在一个普遍现象&#xff1a;很多人从事软件测试岗&#xff0c;不计其数&#xff0c;经历的心酸难与外人道也。可是技术确难以提升、止步不前&#xff0c;薪资也只能看着别人水涨船高&#xff0c;自己却没有什么起色。 虽然在公司里属于不可缺少的一…

计算机网络:数据链路层

数据链路层 数据链路层主要处理单个链路上如何传输数据&#xff0c;并且向网络层向上提供服务 1. 数据链路层概述 1.1 术语介绍 主机拥有全部的计算机网络结构&#xff0c;路由器只有一部分 各个路由器之间由物理层连接 红线为发送的信息 1.2 数据链路层的三个重要问题 封装…

职业危机:从无到有,从弱到强;反思再反思和应对措施

一、写在开头 每天每周不写点东西&#xff0c;不把脑中的疑惑写明白&#xff0c;就感觉不到每天的进步。 每天没进步&#xff0c;这北漂生活&#xff0c;何时是个头啊。 可以北漂10年&#xff0c;也可以20年&#xff0c;但不可能是一辈子。 因为我不是北京人呐。 二、持续转…

Redis的字符串是怎么实现的

本篇会讲以下内容&#xff1a; Redis字符串的实现 Redis字符串的性能优势 Redis字符串的实现 Redis虽然是用C语言写的&#xff0c;但却没有直接用C语言的字符串&#xff0c;而是自己实现了一套字符串。目的就是为了提升速度&#xff0c;提升性能&#xff0c;可以看出Redis为…

Nacos的服务注册之客户端

服务注册到Nacos以后,会保存在一个本地注册表中,这个注册表是一个map. private Map<String, Map<String, Service>> serviceMap new ConcurrentHashMap<>(); key是namespace,用来隔离环境 value又是一个map      key是group      value又是一个s…

java计算机毕业设计springboot+vue远程教育系统

项目介绍 通篇文章的撰写基础是实际的应用需要,然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程,以远程教育系统的实际应用需要出发,架构系统来改善现远程教育系统工作流程繁琐等问题。不仅如此以操作者的角度来说,该系统的架构能够对多媒体课程进…

以太网 DHCP(简介、DHCP工作原理、租期时间)

2.13.0 以太网 DHCP&#xff08;简介、DHCP工作原理、租期时间&#xff09; DHCP的作用&#xff1a;企业网络中存在大量的终端设备&#xff08;PC&#xff09;&#xff0c;管理员配置设备上网参数工作量大&#xff0c;而且效率不高&#xff0c;手动配置容易出错&#xff0c;DH…