【C入门】1、Hello World!

反射冰川
• 阅读 1133

Summary

  • printf是<stdio.h>工具包中的打印工具,将数据打印到屏幕上。第二个参数的数据,替换第一个参数中的格式化字符(printf("%s\n", "Hello World!"))
  • scanf是<stdio.h>工具包中的输入工具,从键盘输入数据到程序里的变量中。scanf的第一个参数中只能有格式化字符,第二个参数是接收输入的变量的地址(scanf("%d", &intVal))

1、前言

1.1 什么是软件

  • 软件是一种计算机部件,是计算机的组成部分;
  • 软件是指挥硬件完成具体功能的“意识形态”;
  • 硬件是软件的“躯干”,接收并执行软件的命令;

当代计算机软硬件架构:
最底层的是计算机硬件,包括CPU、内存、显卡、网卡、键盘、鼠标等。
然后是运行于计算机硬件之上的各类操作系统,如Linux、Windows、MacOs等。(操作系统也是一种软件)
再就是基于操作系统的各类软件,如设计软件、办公软件、聊天软件等。

1.2 什么是程序设计语言

  • 使用一组固定规则和符号表达思想的方式;
  • 人类使用这组规则和符号描述需要计算机完成的功能;
  • 计算机能够读懂由这组规则和符号构成的描述语言,并严格执行;

即:程序设计语言是程序员和计算机进行交流沟通的语言,是计算机能够读懂并执行的语言。同我们日常所用汉语一样,也有自己的一系列的规则。我们只需要严格遵守规则,就能写出计算机可以执行的程序。

2、C程序中的数据输出

2.1 C语言是怎么执行的

一般情况下,C语言程序从main()开始执行,从左花括号“{”开始,到右花括号“}”结束,
默认情况下,C语言程序是以自上而下的顺序来执行,执行的基本单位是语句,每条语句使用分号“;”隔开。(正如中文中对一段文章的阅读,一般也是自上而下,按句子来读,每个句子的结束符号是句号“。”)

【C入门】1、Hello World!
上图中,C程序:单纯的文本文件,无法直接执行
编译软件的工作:1)检测C程序的语法是否合规;2)将C程序翻译成二进制
可执行程序:如Windows系统下的.exe文件,Linux系统下的.out文件

2.2 使用C语言如何打印“Hello World!”

  • C语言中内置了很多实用的“工具包”
  • 工具包都有一个固定的名字,通过名字使用#include <name>
  • 每个工具包中提供了很多“工具”,如stdio.h工具包中就提供了一个用于“打印”输出的工具:printf,printf通过设置参数后能在屏幕上打印出文本。
// 在屏幕上打印Hello World。
// 代码注意点以注释形式给出

#include <stdio.h>    // #include用于声明需要使用的工具包
                      // stdio.h:程序中需要用到的stdio.h工具包

int main()
{
    printf("%s\n", "Hello World!"); // printf是用来打印输出的工具
                                    // %s是对应于字符串的“格式化字符”,第一个参数中除了格式化字符外的,都是一些说明性字符
                                    // 第二个参数"Hello World!"是要打印到屏幕上的数据
    
    return 0;
}

打印参数解析:

  • printf使用数据对参数中的格式化字符进行替换(%s等)
  • 不同类型的数据对应于不同的格式化字符:如%s对应字符串,%d对应整数,%f对应浮点数等
  • 最终打印的数据是一个字符串。

3、C程序中的数据输入

3.1 如何从键盘输入数据

  • stdio.h工具包中提供了一个数据输入工具scanf
  • scanf通过正确设置后,能够获取键盘输入的数据
  • scanf将键盘获取的数据“填入”变量
// scanf工具使用示例

#include <stdio.h>    // scanf工具在stdio.h工具包中

int main()
{
    int i = 0;
    
    scanf("%d", &i);    // 1)scanf是从键盘输入的工具
                        // 2)接收键盘输入的变量名前要加上“&”
                        // 3)输入数据的类型必须和变量i的类型一致
                        // 4)scanf的第一个参数中,只能有格式化字符,不能包含任何与类型无关的字符(如\n)
    return 0;
}

3.2 使如何连续地从键盘中输入数据


#include <stdio.h>

int main()
{
    int i = 0;
    int j = 0;
    
    // 1)一次性输入
    scanf("%d%d", &i, &j);    // 输入时使用空格或回车对不同数据进行分隔
    
    // 2)分开输入
    scanf("%d", &i);
    scanf("%d", &j);
    
    return 0;
}

本文总结自“狄泰软件学院”唐佐林老师《C语言入门课程》。
如有错漏之处,恳请指正。

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
4年前
用了这 7 个 VS Code 插件,想写一辈子代码
0\.往期精彩工具推荐译文来自https://levelup.gitconnected.com/7vscodeextensionsthatmakeyouwanttokeepcodingforeverf205e597ae34原作者Daan译者:蓝色的秋风(github
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
Mysql数据库的优化
一:Mysql参数优化1.查看mysql参数最大连接!(https://oscimg.oschina.net/oscnet/0e4e34a1cc875042ecb1d51e365443b7a66.png)调大mysql参数连接(最大可设置12384)!(https://oscimg.oschina.net/oscnet/b213d5
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
C++如何输入含空格的字符串
1、scanf函数(包含头文件include<stdio.h)  scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格,tab或者回车的字符串是不可以的。解决方法如下:1)利用格式符“%\\”它的作用为扫描字符集合。Scanf(“%\^c\”,str);其中“
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
Java8为什么提供LocalDate、LocalTime、LocalDateTime 时间类
Java8为什么提供LocalDate、LocalTime、LocalDateTime时间类?Date不格式化打印可读性差。TueSep1009:34:04CST2019使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线程不安全
Stella981 Stella981
3年前
Python time模块 返回格式化时间
常用命令  strftimetime.strftime("%Y%m%d%H:%M:%S",formattime)第二个参数为可选参数,不填第二个参数则返回格式化后的当前时间日期201812112:00:00time.strftime('%H:%M:%S')返回当前时间的时分秒time.strftim
Wesley13 Wesley13
3年前
Java的实验程序之输出单个文件中的前 N 个最常出现的英语单词
日期:2018.10.11星期四博客期:016题目:输出单个文件中的前N个最常出现的英语单词,并输出到文本文件中  在程序运行之前,我试着先写了字符的字母的总结,加载代码如下:1//如下是第一个程序的CharBasic文件2packagesrc;34publicfinalc