A. 任何一个问题,它的实现算法都是的 B. 描述算法常用的工具有流程图、NS图、PAD图、伪代码等 C. 算法的终实现是计算机程序 D. 正确和清晰易读是一个好算法的基本条件 【分析】为了使算法表达得更清晰、使算法更容易实现,通常使用专门的算法表达工具对算法进行描述,例如流程图、NS图、PAD图、伪代码等。复杂的问题可以先用算法表达工具对算法进行描述,再进行编程,算法的终实现是计算机程序。算法的评价有多个指标,但正确和清晰易读永远是一个好算法的基本条件。一个问题可以有不同的解决办法,自然也会有不同的算法。 【答案】A 2. 以下是关于算法特性的叙述,正确的是。 A. 算法具有可读性、可行性、正确性 B. 算法具有多样性、通用性、正确性 C. 算法的每个步骤必须具有确定性、有效性,而且算法必须具有输出步骤 D. 算法具有可移植性、可描述性、可实现性 【分析】算法具有4个基本特性,即有穷性、确定性、有效性、输入和输出特性。其中“输入和输出特性”是指每个有意义的算法有零个或多个输入,并且提供一个或多个输出。 【答案】C 3. 以下是关于算法的叙述,正确的是。 A. 计算机程序能够有效地描述算法 B. 算法的伪代码描述和实现该算法的计算机程序完全相同 C. 用伪代码表达算法要遵守严格的语法 D. 描述算法的简洁的工具是数学公式 【分析】算法是用计算机解决问题的方法和步骤,因此数学公式不是算法。伪代码是常用的算法描述工具,它没有统一的标准,描述算法以清楚明了为原则,算法的终实现是计算机程序。 【答案】A 4. 以下叙述不正确的是。 A. C程序的书写格式规定一行内只能写一个语句 B. main()函数后面有一对花括号,花括号内的部分称为函数体 C. 一个C程序必须有main()函数 D. C规定函数内的每个语句以分号结束 【分析】C程序的书写格式自由,一行内可以写多个语句,一个语句也可以写在多行上,但每个语句必须以分号结束。一个C程序必须有main()函数,它称为主函数,程序总是从main()函数开始执行。 【答案】A 5. 在以下各标识符中,合法的用户标识符是。 A. A#C B. mystery C. main D. ab* 【分析】C语言规定,标识符可以由字母、数字或下画线组成,且第1个字符必须是字母或下画线。此外,不允许用户将C语言中的保留字作为用户标识符来使用。该题A和D中分别包含有非法的标识符字符#和*,而C使用了保留字main,因此它们都不是合法的用户标识符。 【答案】B 6. C语言中的标识符只能由字母、数字和下画线3种字符组成,而且第1个字符。 A. 必须为字母 B. 必须为字母或下画线 C. 必须为下画线 D. 可以是字母、数字和下画线中的任意一种字符 【分析】C语言规定,标识符可以由字母、数字或下画线组成,且第1个字符必须是字母或下画线。 【答案】B 7. 一个C语言程序可以包括多个函数,程序总是按照所描述的方式执行当前的程序。 A. 从本程序的main()函数开始到本程序文件的后一个函数结束 B. 从本程序文件的第1个函数开始到本程序文件的后一个函数结束 C. 从main()函数开始到main()函数结束 D. 从本程序文件的第1个函数开始到本程序的main()函数结束 【分析】C语言程序可以包括多个函数,但有且仅有一个main()函数,不管它在程序的什么位置,它总是程序中被执行的第1个函数,并且执行完main()函数后该程序的执行就结束了。程序中的其他函数都是因为在main()函数中发生了直接或间接的函数调用才得以执行,并且在执行完后返回到调用它的函数中。 【答案】C 8. 以下叙述正确的是。 A. 在C程序中main()函数必须位于程序的前面 B. 在C程序的每行中只能写一条语句 C. 在对一个C程序进行编译的过程中可以发现注释中的拼写错误 D. C语言程序是由函数构成的 【分析】main()函数可以位于程序的任何位置; C语言程序的一个程序行允许有多个语句; 程序中的注释可以是任何文本内容,编译系统不检查注释内容; 函数化结构是C语言程序的典型特点,任何C语言程序都是由一个或多个函数构成的。 【答案】D 9. 以下叙述不正确的是。 A. 良好的程序风格对于编辑阅读程序十分有益 B. 程序中的注释信息与程序算法无关 C. C程序的主函数既可以使用main(),也可以使用Main() D. 在编辑C语言程序时,一般使用.c作为源程序文件的扩展名 【分析】编写程序时应注意养成良好的程序风格,程序中的注释信息有助于人们阅读程序。在编辑C语言程序时使用“.c”作为源程序文件的扩展名是一种良好的习惯。 【答案】C 10. 以下叙述不正确的是。
A. 程序=数据结构 算法 B. 算法的逻辑结构有顺序结构、选择结构、循环结构,由C语言实现的程序也有相应的3种逻辑结构 C. 程序中的while是一个保留字,它用于程序的循环控制 D. 编辑完成的C语言程序可以在任意环境中直接运行 【分析】“程序=数据结构 算法”是关于程序的一个著名定义; 算法的逻辑结构有3种,即顺序结构、选择结构、循环结构,C语言程序也有相应的3种逻辑结构; while是循环控制命令的关键字,是C语言的关键字之一; 编辑完成的C语言程序经过编译、连接建立可执行文件后才能运行。 【答案】D 二、 简答题 1. 什么是算法?根据自己的理解说明算法与数学公式的区别。 【解答】算法是计算机逐步求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义明确的规则,是计算机处理问题所需要的具体步骤。算法与数学公式是两个完全不同的概念。 2. 算法的表示方法有哪几种? 【解答】算法的表示方法有多种,主要有流程图表示法、NS图表示法、PAD图表示法、伪代码表示法、自然语言表示法等。 3. 程序的语法错误和逻辑错误有什么不同? 【解答】程序的语法错误是程序编写时因不符合程序语言的语法规则而造成的错误。当程序存在语法错误时不能运行。程序的逻辑错误是指程序的算法存在逻辑问题,与问题求解的正确步骤不符,程序即使能够运行也得不到正确的结果。 4. 简述C语言程序的特点。 【解答】任何一个C语言程序都由一个或多个函数构成,这些函数在结构上互相独立,而且在程序中的位置是任意的; 每个C语言程序有且仅有一个main()函数; C语言程序中标识符字母的大写和小写形式是不等价的。 三、 算法设计题 设计求解下列问题的算法,用流程图将算法表达出来。 1. 计算直角三角形的面积。设直角三角形的两个直角边分别为a、b,具体数据通过键盘输入。 【解答】流程图如图21所示。
A. 输出格式描述符不合法 B. *008765* C. *8765* D. *-08765* 【分析】在printf()函数中,“%”是格式说明项的起始符号,“-”指定输出为左对齐,“0”指定数字前的空位用0填补。本题的格式描述符为“%6d”,表示输出占6列,左对齐,当位数不足时右边补空格。若使用“%6d”作格式描述符,则输出结果为*008765*。 【答案】C 2. 有如下程序段:
char str1,str2;
str1=getchar();
str2=getchar();
以下输入方式中,能将字符M、N分别输入给变量str1、str2的是。 A. M N B. MNOPGR C. M N D. M,N 【分析】程序段有两个连续的getchar()函数,依次读取输入字符串中的前两个字符,答案A的前两个字符为'M'和回车符,答案B的前两个字符为'M'和'N',答案C的前两个字符为'M'和空格符,答案D的前两个字符为'M'和','。 【答案】B 3. 已知a是int型变量,b是float型变量,下列输入语句正确的是。 A. scanf("%f,%d",&b,&a); B. scanf("%f,%d",&a,&b); C. scanf("%f,%d",b,a); D. scanf("%f,%d",a,b); 【分析】scanf()函数的一般格式为scanf("格式控制字符串",变量地址表),要求接收数据的变量必须使用其地址形式,并且变量的含义及数据类型要与格式控制字符串中的各个格式控制符按位置对应一致。选项C和D中的变量未使用其地址形式; 选项B中的%f对应a、%d对应b,格式控制符与变量的数据类型不匹配。 【答案】A 4. C语言中的实数可以写成不同的表示形式,下列表示形式中正确的是。 A. 5.4321 B. 5.43E2.1 C. e5.4321 D. e6 【分析】在C语言中实型常数有两种表示形式,一是十进制小数形式,由数字和小数点组成; 二是指数形式,例如将543000表示为5.43E 5,字母e(或E)之前的部分不能省略,且e后面的指数部分必须有且为整数。 【答案】A 5. 当程序中有语句时,必须在程序开始使用宏命令#include<math.h>。 A. printf("Result:%f\n",sqrt(a));
以下为对购买帮助不大的评价