
1.2 重点与难点解析
【例题1-1】以下叙述错误的是( )。
A. 一个C程序可以包含多个不同名的函数
B. 一个C程序只能有一个主函数
C. C程序在书写时,有严格的缩进要求,否则不能编译通过
D. C程序的主函数必须用main作为函数名
【解析】一个C程序有且只有一个主函数 main( )。一个C 程序可以包含多个不同名字的子函数。C程序在书写时没有严格的缩进要求。
【正确答案】C
【例题1-2】下面可以作为C语言用户标识符的一组是( )。
A. sum while world
B. a3_b a123 IF
C. sizeof a_b if
D. 2a D0 for
【解析】在C语言中,合法的标识符可以由字母、数字和下划线组成,其中关键字不能作为用户的标识符,且开头的第一个字符必须为字母或下划线。选项A中while为关键字;选项C中sizeof和if为关键字;选项D中for为关键字。
【正确答案】B
【例题1-3】以下叙述中正确的是( )。
A. 预处理命令行必须位于C源程序的起始位置
B. 在C语言中,预处理命令行都以“#”开头
C. 每个C程序必须在开头包含预处理命令行:#include<stdio.h>
D. C语言的预处理不能实现宏定义和条件编译的功能
【解析】预处理命令可以放在程序的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译3类。<stdio.h>只是其中的一个文件,并不是说每次预处理命令都必须用此文件。
【正确答案】B
【例题1-4】下列各选项中,属于C语言程序中语句的是( )。
A. a=b+c
B. for
C. /*c program*/
D. a=100;
【解析】本题旨在考查对C语言中语句概念的理解。选项A中表达式的末尾没有分号,因此只能代表一个赋值表达式;选项B中for为关键字;选项C以/*开头并以*/结束,是C语言程序中的注释部分,是不会被执行的;只有选项D为一正确的赋值语句。
【正确答案】D
【例题1-5】以下说法中,不正确的是( )。
A. C语言程序中必须有一个main( )函数,从main( )函数的第一条语句开始执行
B. 非主函数都是在执行主函数时,通过函数调用或嵌套调用而执行
C. C语言程序中的main( )函数必须放在程序的开始位置
D. C语言程序中的main( )函数位置可以任意指定
【解析】本题旨在考核main( )函数的作用,以及main( )函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main( )函数)。程序总是从main( )函数的第一条语句开始执行,到main( )函数的最后一条语句结束,其他函数都是在执行main( )函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main( )函数在程序中的位置可以是任意的。
【正确答案】C
【例题1-6】C语言中用于结构化程序设计的3种基本结构是( )。
A. 顺序结构、选择结构、循环结构
B. if, switch, break
C. for, while, do-while
D. if, for, continue
【解析】结构化定理表明,任何一个复杂问题的程序设计都可以用顺序结构、选择结构和循环结构这3种基本结构组成,且它们都具有以下特点:只有一个入口;只有一个出口;结构中无死循环,且程序中3种基本结构之间形成顺序执行关系。
【正确答案】A
【例题1-7】以下叙述中错误的是( )。
A. C语言源程序经编译后生成后缀为“.obj”的目标程序
B. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
【解析】并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。选项D中的非执行语句不在其范围内。
【正确答案】D
【例题1-8】试分析以下C语言源程序的错误在于( )。
#include <stdio.h>; void main( ); { ; printf("Good morning!\n"); };
【解析】C语言规定:C语言源程序中每一个说明和每一个语句都必须以分号结尾。但是预处理命令、函数头和花括号“{”“}”之后不能加分号。
【正确答案】预处理命令、函数头和花括号“{”“}”之后不能加分号
【例题1-9】下列选项中不属于结构化程序设计方法的是( )。
A. 自顶向下
B. 逐步求精
C. 模块化
D. 可复用
【解析】结构化程序设计方法的主要原则是:自顶向下,逐步求精,模块化,限制使用goto语句。可复用性是指软件元素不加修改或稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法。面向对象的程序设计具有可复用性的优点。
【正确答案】D
【例题1-10】以下4个程序中,完全正确的是( )。
A. #include <stdio.h> void main( ); { /*programming*/ printf("programming!\n"); } B. #include <stdio.h> void main( ) { /*programming*/ printf("programming!\n"); } C. #include <stdio.h> void main( ) { */*programming*/* printf("programming!\n"); } D. include <stdio.h> void main( ) { /*programming*/ printf("programming!\n"); }
【解析】选项A中void main( )后的分号是多余的;选项C的注释语句多了两个*号;选项D的include前面没有#。
【正确答案】B