C语言的基本构成

知识点:C语言的注释;关键字;书写风格;常量和变量

重要程度:★★★★

1、C语言的良好风格

用C语言编写的程序,称为C语言源程序,简称C程序。

本节将通过一个简单的C程序例子,向大家介绍C语言的一些基本构成和如何写出风格良好的程序,使读者对C语言有一个初步的认识。

1:计算两个整数之和的C程序

#include  "stdio.h"

main( )                   /*求两数之和*/

{

int a,b,sum;            /*变量说明*/

a=10;                 /*把整数10赋值给变量a */

b=20;                 /*把整数20赋值给变量b */

sum=a+b;              /*把两数之和赋值给变量sum */

printf("a=%d,b=%d,sum=%d\n",a,b,sum);  /*把计算结果输出到用户屏幕上*/

}

好的风格     1. 花括号独占一行,有对应关系的花括号在同一列;

         2. 有层次关系的代码有必要的缩进;

                3. 一条语句独占一行

                4. 有适当的注释

2、关于注释的说明(考点一)

²  程序中以“/*”开头并且以“*/”结尾的部分表示程序的注释部分。

²  注释可以加在程序的任何位置。

²  注释是为了提高程序的可读性而增加的,不属于C语言。

²  /*/*ddddddd*/*/ 这样的注释不是合法的。注释是从“/*“开始到”*/“结束的。以该例为准,属于注释的就是/*  */两个之间的/*ddddddd,所以最后剩下的*/就是多余了。

1: 阅读以下程序,想一想结果是多少?

main( )

{     int a=0,b=0;

a =10;            /*给a赋值

b=20;              给b赋值 */

printf("a+b=%d\n",a+b);   /*输出计算结果*/

}

这是2006年9月全国计算机等级考试二级考试的第19题。需要特别注意的是,程序第三行“/*”开始的注释部分,直到第四行末尾才结束。因此上面的程序等价于以下的程序:

main( )

{     int a=0,b=0;

a =10;

printf("a+b=%d\n",a+b);

}

3、标识符(考试重点)

在C语言中用于标识名字的有效字符序列称为标识符。标识符可以用作常量名、变量名、符号名、函数名和后面要学到的指针名、数组名等。C语言中标识符的命名规则如下:

1)标识符只能由字母、数字和下划线组成;

2)标识符的第一个字符必须是字母或下划线。

3)标识符区分大小写字母。如int与Int是两个完全不同的标识符。

合法的标识符:

a  x  sum  spels  program  ab1   _to   file_5   a1b2c3  _2   B3

非法的标识符:

ab12#            (含有不合法的字符“#”)

a1-c        (含有不合法的字符“-”)

ab c       (空格不是合法标识符)

pr           (“p”不是字母,为不合法标识符字符)

23ab       (第一个字符不能为数字)

C语言的标识符分为如下三类:

1)关键字

关键字是具有特定含义的、专门用来说明C语言特定成分的一类标识符。关键字均由小写字母构成。Int 就不是关键字。

2)预定义标识符

预定义标识符(如printf,scanf,sin,isalum等)和编译预处理命令名(如define,include等)。注意,预定义标识符可以作为“用户标识符”使用。

3)用户标识符(考试重点)

不能是关键字;只能由字母、数字和下划线组成;第一个字符必须是字母或下划线。

Int可以作为用户标识符,int就不可以作为用户标识符。

考点:1. 识别哪些是(或不是)标识符

2. 识别哪些是(或不是)用户标识符

2: 以下不能定义为用户标识符的是

A) scanf        B) Void       C) _3com_       D) int

分析:本题答案选D。因为int是关键字,关键字不能作为用户标识符。答案(A)的scanf虽然是预定义标识符,但是预定义标识符可以作为用户标识符使用。(B)中Void的第一个字符V大写,它与关键字void是两个不同的标识符,故它可以作为用户标识符。(C)中的_3com_符合标识符的命名规则,且不是关键字,故可以定义为用户标识符。

3:以下不合法的用户标识符是

A)  j2_KEY           B)  Double           C)  4d               D)_8_

分析:本题答案选C。答案(A)是一个用户标识符,符合标识符的命名规则。答案(B)也是用户标识符,需要注意的是,它与关键字double是两个不同的标识符。答案(D)是用户标识符,由数字和下划线组成,且第一个字符为下划线。只有答案(C)是不合法的用户标识符,因为它的第一个字符是数字,不符合标识符的命名规则。

  • 标识符的常见错误:

1. 数字开头

2. 包含减号“-”

3. 用户标识符使用的是关键字

4、常量。

C语言中,还有另外一种常量是用标识符命名的,称为符号常量。下面程序的PI就是符号常量。

4: 计算圆面积的C语言程序

#define  PI  3.14159

main( )

{     float r,area;

r=12.5;

area=PI*r*r;

printf("area=%f\n",area);

}

程序的第一行是宏定义,以后遇到PI就用其后的内容——3.14159来原样替换。这里的PI就是一个符号常量。通常,符号常量用大写字母表示,但这并不是语法上的要求,只不过用大写字母书写符号常量,便于辨认。当进行宏定义后,程序中只要用到相应的数值常量都可以用符号常量代替,这就给程序的修改提供了方便。例如,如果需要进一步提高圆周率的精度,可以直接修改宏定义中的数值常量:

#define  PI  3.1415926

这样,程序中只要用到PI的地方,其值都自动变为3.1415926。

5、变量

与常量对应的是变量。顾名思义,变量就是在程序的运行过程中其值可以改变的量。例1中的a,b都是变量,它们是由用户定义的标识符,变量的命名必须遵循标识符的命名规则。

用盒子的理论来描述:

1) 变量就是盒子,里面装的内容可以改变。

2) 通过赋值语句就可以改变盒子里的内容。

3) 每次使用盒子时,盒子里都应该有确切的内容而不能是不确定的值。

4) 每次使用盒子时,都是用的现在盒子里装的内容。以前装过什么内容没有任何影响。

C语言的基本构成的更多相关文章

  1. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

  2. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  3. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  4. C语言 · Anagrams问题

    问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...

  5. C语言 · 字符转对比

    问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...

  6. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  7. Atitit 项目语言的选择 java c#.net  php??

    Atitit 项目语言的选择 java c#.net  php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...

  8. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  9. InstallShield 脚本语言学习笔记

    InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加.     一.基本语法规则      ...

  10. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

随机推荐

  1. tmpx75 I2C 温度传感器驱动程序添加

    在kernel 内 make menuconfig 加入相关选项 Device Drivers ---> <*> Hardware Monitoring support ---> ...

  2. Remote Desktop Connection没法全屏解决方案

    Remote Desktop Connection无法全屏解决方案Sometimes, Remote Desktop Connection总是一个窗口,不自动全屏,任务栏不能自动隐藏起来,要拖动滚动条 ...

  3. javascript中全局变量的定义

    首先确实简单,在js脚本的函数外面使用. 但是要注意点: 不能写到jquery的框框代码里面,之前粗心放到$(function(){ })里面去了. <script type="tex ...

  4. hdu 1595 find the longest of the shortest(dijstra + 枚举)

    http://acm.hdu.edu.cn/showproblem.php?pid=1595 大致题意: 给一个图.让输出从中删除随意一条边后所得最短路径中最长的. . 思路: 直接枚举每条边想必是不 ...

  5. xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义

    xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义 XSS攻击的防范 XSS攻击造成的危害之所以会发生,是因为用户的输入变成了可执 ...

  6. WHAT EXACTLY IS WASM ?!

    终于, 我入门了当初很仇视的技术.... 什么是WebAssembly? WebAssembly或WASM是一个编译器目标(由编译器生成的代码),具有二进制格式,允许我们在浏览器上执行C,C ++和R ...

  7. Go开发环境与LIteIDE安装、配置、搭建

    Go开发环境搭建 1.下载准备好安装包(Go-1.8.3.Git-2.9.2-64-bit) 下载链接:http://www.golangtc.com/download 2.配置环境变量 系统变量:新 ...

  8. glob 遍历函数

    例子 1 <?php print_r(glob("*.txt")); ?> 输出类似: Array ( [0] => target.txt [1] => s ...

  9. linux cpio

    在使用bootimg tools压缩和打包android的ramdisk时,用到了cpio命令.所以了解一下用法. 参考 http://man.linuxde.net/cpio http://cn.l ...

  10. Spring RestTemplate 小结

    关于RestTemplate 首先,你可以把它理解为一个发起请求并接收响应的工具类(功能类似浏览器). 其次,它其实是一个壳,具体还是通过调用别的接口来实现(如jdk自带的连接,或者HttpClien ...