习题一 C语言的结构
1. 以下叙述中错误的是______。
A、计算机不能直接执行用C语言编写的源程序
B、C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C、后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D、后缀为.obj和.exe的二进制文件都可以直接运行
解析:本题考查的是C语言的特征。C语言被称为计算机的"高级语言",我们把由高级语言编写的程序称为"源程序",对于计算机本身来说,它并不能直接识别由高级语言编写的程序。C程序经C编译程序编译后,生成后缀为.obj的二进制文件 (称为目标文件)。最后还要由称为"连接程序"(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.exeprintf函数括号内参数的构成解说的可执行文件。.obj文件是目标文件不可以直接执行,所以选项D错误。故本题答案选D。
2. 对于一个正常运行的C程序,以下叙述中正确的是 。
A、程序的执行总是从main函数开始,在main函数结束
B、程序的执行总是从程序的第一个函数开始,在main函数结束
C、程序的执行总是从main函数开始,在程序的最后一个函数中结束
D、程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
解析:本题考查的是C语言的函数。在C语言中,所有的函数定义,包括主函数main在内,都是平行的。C程序的执行总是从main函数开始, 完成对其它函数的调用后再返回到main函数,最后由main函数结束整个程序。一个C源程序必须有,也只能有一个主函数main。故本题答案选A。
3. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。
A、大写字母 B、连接符 C、数字字符 D、下划线
解析:本题考查的是标识符。C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。故本题答案B。
4. 下列叙述中正确的是______。
A、每一个C程序文件中都必须要有一个main()函数
B、在C程序中main()函数的位置是固定的
C、C程序中所有函数之间都可以相互调用,与函数所在位置无关
D、在C程序的函数中不能定义另一个函数
解析:本题考查的是函数的定义方法。 每一个C程序由多个C程序文件组成,而每个C程序都必须有一个main()函数,故每一个C程序文件中都必须有一个main()函数的说法是错误的。在C程序中所有函数都是平行的,即在定义函数时是相互独立的,一个函数并不能从属于另一个函数,即函数不能嵌套定义,函数间可以相互调用,但不能调用main()函数,main()函数的位置也不是固定的。 故本题答案为D。
5. 下列叙述错误的是______。
A、一个C语言程序只能实现一种算法
B、C程序可以由多个程序文件组成
C、C程序可以由一个或多个函数组成
D、一个C函数可以单独作为一个C程序文件存在
解析:本题考查的是C程序的构成。一个C语言程序可以实现多种算法。一个C程序可以由一个或多个源程序文件组成,一个源程序文件由一个或多个函数组成,构成C语言程序的基本单位是函数,函数也是C程序中模块化程序设计的基础,C函数可分为标准库函数和用户定义函数两类。 故本题答案为A。
6. 以下不合法的用户标识符是______。
A、j2_KEY B、Double C、4d D、_8_
解析:本题考查的是标识符。C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到"见名知意",且不允许使用关键字作标识符。故本题答案为C。
7. 以下叙述中错误的是______。
A、C语言源程序经编译后生成后缀为.obj的目标程序
B、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
解析:本题考查的是C语言程序的基本组成。在C语言中,注释是用于协助读者更好地理解程序,它不会被系统转换成二进制,所以非执行语句是不会被转换成二进制的机器指令。故本题答案为D。
8. 以下叙述中错误的是______。
A、算法正确的程序最终一定会结束 B、算法正确的程序可以有零个输出
C、算法正确的程序可以有零个输入
D、算法正确的程序对于相同的输入一定有个相同的结果
解析:本题考查的是算法的概念。算法的目的是为了求解,"解"就是输出。算法的输出不一定就是计算机的打印输出,一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。故本题答案为B。
9. 以下四个程序中,完全正确的是______。
A、#include <stdio.h> B、#include<stdio.h>
main(); main()
{ {
/*programming*/ /*/programming/*/
printf("programming!\n"); printf("programming!\n");
} }
C、#include <stdio.h> D、include<stdio.h>
main() main()
{ {
/*programming*/ /*/*programming*/*/
printf("programming!\n"); printf("programming!\n");
} }
解析: 本题考查的是C语言中注释的格式。 C语言中注释用"/*"和"*/"括起来,它可以出现在程序中任何合适的地方。选项A 中"main();"是一个函数声明语句,下面的大括号及其内容作为一个语句块,应放在程序的大括号中,故选取项A错误;选项B中的注释语句不正确,因为
程序在编译时认别到两次"/*"作为注释的开始,但未识别到"*/"作为注释的结束,故选项B错误;选项D的"include"前缺少"#",故选项D错误。故本题答案为C。
10. 算法具有五个特性,以下选项中不属于算法特性的是______。
A、有穷性 B、简洁性 C、可行性 D、确定性
解析:本题考查的是算法的特性。有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的五大特性。故本题答案为B。
11. 一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
A、有零个或多个输入 B、有零个或多个输出
C、有穷性 D、可行性
解析:本题考查的是算法的特性。故本题答案为B。
12. 请选出可用做C语言用户标识符的一组标识符______。
① void ② a3_b3 ③ For ④ 2a
define _123 _abc DO
WORD IF case sizeof
A、① B、② C、③ D、④
解析:本题的考查点是C语言的标识符。 ①中的void是C语言的关键字,不合法;③中的case和C语言的关键字,不合法;④中的2a是数字打头而且sizeof和C语言的关键字重名,不合法。故本题答案为B。
13.以下叙述中正确的是______。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号"{"和"}"只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语句之间的分隔符,不是语句的一部分
解析:本题的考查点是C程序设计的初步知识。
选项A,C程序中/*……*/表示注释部分,注释只是给人看的,对编译和运行不起作用,可以加在程序中任何位置,所以选项A是对的;
选项B,函数体是函数的主体,从左花括号开始,到与之匹配的右花括号结束。
选项C,一个C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户自行命名。
选项D,C语句是组成C程序的基本单位,具有独立的程序功能。所有的C语句都以分号结尾。
故本题答案为A。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论