2.1 语言基础知识

考点1 C语言概述

真考链接

此考点属于简单识记内容,在选择题中的考核概率为40%。

C语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有9种控制语句、32个关键字(见表2.1)和34种运算符。C语言的数据结构也非常丰富,它的多种数据类型可以实现如链表、树、栈等复杂的运算,并且用结构化控制语句(if...else,for语句等)来实现函数的模块化。C语言的语法不太严格,程序设计自由度大,用C语言编写的程序可以直接访问物理地址,还可以直接对硬件进行操作。C语言是一种移植性比较好的语言。

表2.1 C语言关键字

小提示

C语言的语法要求不太严格,程序设计自由度大。

真题精选

【例1】下列叙述中,正确的是(  )。

A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严谨,要求一行内只能写一个语句

C.C程序的书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

【答案】 C

【解析】C程序中注释可以放在任意位置;C语言的语法限制不严格,所以可以将多条语句放在同一行上;C程序可以放在多个程序文件中,并使用include语句进行文件包含。故本题答案为C。

【例2】下列选项中,由C语言提供的合法关键字的是(  )

A.swicth    B.cher    C.default    D.Case

【答案】 C

【解析】选项A和选项B为拼写错误,选项D中出现了大写字母

考点2 C语言的构成

(1)C语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中,每个C源程序中必须有且只能有一个主函数(main()函数)。

(2)C程序总是从main()函数开始执行。

(3)在函数后面用一对花括号“{}”括起来的部分称为函数体。

(4)C语言规定每个语句以分号(;)结束,分号是语句组成中不可缺少的部分,它在每条语句的最后出现。但预处理命令,函数头之后不能加分号。

(5)程序的注释部分应放在“/ *”与“*/”之间,“/”和“*”之间不能有空格,注释部分允许出现在程序的任何位置。

(6)程序中以“#”开头的语句称为预处理命令。

真考链接

考点2属于简单识记内容,多以选择题形式出现。在选择题中的考核概率为60%。在操作题中的考核概率为10%

下面是一个简单的C程序例子:

#include <stdio.h>    /*预处理命令。 调用输入/输出函数时,应包含头文件stdio.h*/

main()    /*主函数*/

{  int a,b,c;    /*定义变量a、b、c*/

  a = 2;b = 3;    /*给变量赋值*/

  c = a + b;    /*将a与b的和赋给变量c*/

  printf("a = % d,b = % d,c = % d",a,b,c);  /*输出变量a、b、c的值*/

小提示

程序中可以把main函数放在任何位置,但程序是从main函数开始执行的。

真题精选

【例1】下列叙述中,正确的是(  )

A.C程序的基本组成是语句    B.C程序中的每一行只能写一条语句

C.简单C语句必须以分号结束    D.C语句必须在一行内写完

【答案】 C

【解析】函数是C程序的基本组成单位;C语言规定一条语句可以写在多行;C语言允许多条语句写在同一行。故本题答案为C。

【例2】C语言规定,在一个源程序中,main()函数的位置(  )

A.必须在最开始    B.必须在系统调用的库函数的后面

C.可以任意    D.必须在最后

【答案】 C

【解析】程序中可以把main()函数放在任何位置,但程序是从main()函数开始执行的

【例3】以下说法正确的是(  )。

A.C程序是从第一个定义的函数开始执行的

B.在C程序中,要调用的函数必须在main()函数中定义

C.C程序是从main()函数开始执行

D.C程序中的main()函数必须放在程序的开始部分

【答案】 C

【解析】C语言程序总是从程序的main()函数开始执行。main()函数可以放在C程序的任何位置,包括最前面和最后面。C程序中的函数可以任意地相互调用,它们之间的关系是平等的。

【例4】下列给定程序中函数fun()的功能是:求出以下数列的前n项之和,和值通过函数值返回。

1,2,3,4,5,6,…

例如,若n=5,则应输出15。

请改正程序中的错误,使其得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

试题程序

#include <stdlib.h>

#include <stdio.h>

/****found****/

int fun(int n);

{ /****found****/

  int i

  /****found****/

  sum = 0;

  for(i = 1;i < = n;i++)

  { /****found****/

    sum = sum + i;

  }

  return sum;

【答案】错误1:函数头之后不能加分号;错误2:语句末尾没加“;”号;错误3:变量sum未定义

【解析】本题考查C语言的构成,注意程序中的语法错误