1.C语言在屏幕上显示内容

我们有两种方式从计算机获得信息:一是看屏幕上的文字、图片、视频等,二是听从喇叭发出来的声音。
 
让喇叭发出声音目前还比较麻烦,我们先来看看如何在屏幕上显示一些文字吧。例如在屏幕上显示“C语言中文网”:
  1. puts("C语言中文网");
这里有一个生疏的词汇puts,用来让计算机在屏幕上显示文字。
 
更加专业的称呼:
  1. "在屏幕上显示文字"叫做输出(Output);
  2. 每个文字都是一个字符(Character);
  3. 多个字符组合起来,就是一个字符序列,叫做字符串(String)。
 
puts 是 output string 的缩写,意思是”输出字符串“。
 
在C语言中,字符串需要用双引号" "包围起来,C语言中文网 什么也不是,计算机不认识它,"C语言中文网"  才是字符串。
 
puts 在输出字符串的时候,需要将字符串放在( )内。
 
在汉语和英语中,分别使用 。和. 表示一句话的结束,而在C语言中,使用 ; 表示一个语句的结束。puts("C语言中文网")表达了完整的意思,是一个完整的语句,需要在最后加上;,表示当前语句结束了。
 
总结起来,上面的语句可以分为三个部分:
  1. put( )命令计算机输出字符串;
  2. "C语言中文网"是要输出的内容;
  3. ; 表示语句结束。

①.puts("C语言中文网");的各种写法

在教程中我们讲到,puts("C语言中文网");可以输出“C语言中文网”几个字,那么,下面的写法对不对呢?
 
A) 用两个语句输出:
  1. puts("C语言");
  2. puts("中文网");
 
 
B) 换行
  1. puts("C语言
  2. 中文网");
  3. 或者
  4. puts
  5. ("C语言中文网");
  6. 或者
  7. puts
  8. (
  9. "C语言中文网"
  10. )
  11. ;
 
C) 带空格
  1. puts ("C语言中文网");
  2. 或者
  3. puts ("C语言中文网");
分析:
  1. 这些写法当中,只有 B 选项的第1种写法错误,其他都是正确的。
  2. C语言会忽略空白符,包括空格、Tab缩进、换行等,但是字符串不能换行。
 

②.输入法的选择

puts("C语言中文网");中的括号、双引号、分号都是英文符号,而且是半角的,所以在编写代码的时候需要切换到英文半角输入法。
 
C语言起源于美国,单词、标点、特殊符号都需要使用英文半角输入法才有效,否则无法识别,读者要注意区分中英文标点。
 
相似的中英文标点有:
中文分号;和英文分号;;
中文逗号,和英文逗号,;
中文冒号:和英文冒号:;
中文括号()和英文括号();
中文问号?和英文问号?;
中文单引号’‘和英文单引号' ';
中文双引号“ ”和英文双引号" "。
 

③.C语言程序的整体框架

 
puts 可以在显示器上输出内容,但是仅有 puts 是不够的,程序不能运行,还需要添加其他代码,构成一个完整的框架。完整的程序如下:
  1. #include<stdio.h>
  2. int main()
  3. {
  4. puts("C语言中文网");
  5. return0;
  6. }
 
第 1~3 行、第 5~6 行是固定的,所有C语言源代码都必须有这几行。你暂时不需要理解它们是什么意思,反正有这个就是了,以后会慢慢讲解。
 
但是请记住,今后我们写的所有类似 puts 这样的语句,都必须放在{ }之间才有效。
 

2.C语言转义字符

通过puts可以输出字符串,例如:
  1. puts("123abc");
"123abc" 对应的ASCII码值的八进制分别是 61、62、63、141、142、143,上面的代码也可以写为:
  1. puts("\61\62\63\141\142\143");
在C语言中,所有的ASCII码都可以用反斜杠 \ 加数字(默认是8进制)来表示,称为转义字符(Escape Character),因为\后面的字符都不是它原来的ASCII字符的意思了。
 
除了八进制,也可以用十六进制来表示。用十六进制表示时数字要以x开头。"123abc" 对应的ASCII码值的十六进制分别是 31、32、33、61、62、63,所以也可以写为:
  1. puts("\x31\x32\x33\x61\x62\x63");
 
注意:只能使用八进制或十六进制,不能使用十进制。
一个完整的例子:
  1. #include<stdio.h>
  2. int main(){
  3. puts("The string is: \61\62\63\x61\x62\x63");
  4. return0;
  5. }
运行结果:
The string is: 123abc
 
在ASCII码中,从 0~31(十进制)的字符为控制字符,它们都是看不见的字符,不能在显示器上显示,也没法书写,只能以转义字符的形式来表示。不过,直接使用ASCII码值记忆不方便,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
转义字符示例:
  1. #include<stdio.h>
  2. int main(){
  3. puts("C\tC++\tJava\nC first appeared!\a");
  4. return0;
  5. }
 
运行结果:
C       C++     Java
C first appeared!
同时会听到喇叭发出“嘟”的声音,这是使用\a的效果。
 
 
 

C语言初探的更多相关文章

  1. Squirrel语言初探(可以使用VC6或者MinGW编译)

    Squirrel语言初探 为啥我要关注Squirrel语言?原来Squirrel就很像我希望设计出的理想中的语言(当然也不完全符合).比如我觉得Lua的语法表述不清晰,累赘,于是想用C系语法来代替Lu ...

  2. GO语言初探

    1.GO使用UTF-8编码,纯Unicode文本编写. 2.$ go verson (windows) 3.windows下,需要设置go语言的环境变量,新建一个名为 GOROOT的变量,指向go的具 ...

  3. lua语言初探

    写在最前面 <cocos2d-x lua核心编程>是我首次购买电子书,坑的就不谈了,书里的代码部分基本上不是少空格就是多换行,让阅读变得十分困难. 所以又购买了实体书,加上看一些大佬视频和 ...

  4. [java]java语言初探 servlet+jsp架构

    <<head first java>> https://www.tutorialspoint.com/jsp/jsp_architecture.htm JSP Processi ...

  5. Ruby学习之对象模型

    这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl. ...

  6. C: printf参数执行顺序与前置后置自增自减的影响

    起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf(" ...

  7. C++中的三种继承方式

    1,被忽略的细节: 1,冒号( :)表示继承关系,Parent 表示被继承的类,public 的意义是什么? class Parent { }; class Child : public Parent ...

  8. windows下的go语言的环境搭建和初探

    闲话不说,直入主题. 1.准备工具 a.windows下的Go语言开发安装包 官方下载地址:https://code.google.com/p/go/downloads/list b.Go语言中文官网 ...

  9. GO语言的进阶之路-初探GO语言

    GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...

随机推荐

  1. sqlserver 复制表结构(可以含有数据 或 只要表结构)

    sqlserver 复制表结构(可以含有数据 或 只要表结构) SELECT * INTO bb FROM aa(NOLOCK) WHERE 1=0

  2. 怎样用DOS命令创建txt文本文档

    单击运行, 打开命令提示符. 例如在D盘创建文本文档,那么就先进入D盘,在后面写 D: 于是就进入了D盘怎样用DOS命令创建txt文本文档 然后在后面写命令 copy con 文件名.txt ,然后回 ...

  3. angular.js ng-repeat渲染时出现闪烁问题解决

    当我们前端运用到angular.js框架时,想必大家都会遇到一些坑.其中,我也来分享一个常见的angular.js渲染时出现的坑. 当我们进行页面渲染时,绑定表达式最开始会用{{data.name}} ...

  4. 伙计,给我来一杯package.json!不加糖

    前言:夜深了,我熬了一锅热气腾腾的package.json,给大家端上来,希望大家喜欢 json和JS对象的区别 package.json,顾名思义,它是一个json文件,而不能写入JS对象. 所以我 ...

  5. ReIn

    package JBJADV003; import java.io.*;import java.util.Scanner; public class ReIn { /** * @param args ...

  6. Swift3 GCD队列优先级说明

    从ios8开始,苹果引入了一个新的概念 QoS(quality of service),用于指定GCD队列的优先级. swift3之前:只有4个优先级 high > default > l ...

  7. iOS动画学习-CALayer

    iOS中有很多方法可以实现动画,我们可以用CAKeyframeAnimation, CABasicAnimation,CASpringAnimation(iOS9.0中添加的,实现弹簧的效果),也可以 ...

  8. FZU 1015 土地划分

        Description 在Dukeswood这块土地上生活着一个富有的农庄主和他的几个孩子.在他临终时,他想把他的土地分给他的孩子.他有许多农场,每个农场都是一块矩形土地.他在农场地图上划上一 ...

  9. [基础架构]PeopleSoft都有哪些进程运行在进程服务器上

    PSPRCSRV:(PSPRCSRV.EXE) 该进程负责启动所有服务进程. 每隔15s,该进程就会去看进程调度器中是否有需要运行的进程请求.如果没有需要运行的则sleep15s,然后再次检查. 如果 ...

  10. CJOJ 2482 【POI2000】促销活动

    CJOJ 2482 [POI2000]促销活动(STL优先队列,大根堆,小根堆) Description 促销活动遵守以下规则: 一个消费者 -- 想参加促销活动的消费者,在账单下记下他自己所付的费用 ...