计算机二级c语言1-3章先择题(带答案)
- 格式:docx
- 大小:15.87 KB
- 文档页数:5
第一套(1)下列叙述中正确的是A)所谓算法就是计算方法B)程序可以作为算法的一种描述方法C)算法设计只需考虑得到计算结果D)算法设计可以忽略算法的运算时间答案:B【解析】算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序,A选项错误。
算法设计需要考虑可行性、确定性、有穷性与足够的情报,不能只考虑计算结果,C选项错误。
算法设计有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的,D选项错误。
算法在实现时需要用具体的程序设计语言描述,所以程序可以作为算法的一种描述方法,B选项正确。
(2)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)算法的时间复杂度与空间复杂度没有直接关系答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。
(3)下列叙述中错误的是A)数据结构中的数据元素不能是另一数据结构B)数据结构中的数据元素可以是另一数据结构C)空数据结构可以是线性结构也可以是非线性结构D)非空数据结构可以没有根结点【答案】A【解析】数据元素是一个含义很广泛的概念,它是数据的“基本单位”,在计算机中通常作为一个整体进行考虑和处理。
数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。
满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。
空数据结构可以是线性结构也可以是非线性结构。
非空数据结构可以没有根结点,如非性线结构“图”就没有根结点。
故选A选项(4)结构化程序设计的基本原则不包括()。
计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。
A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。
A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。
A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。
A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。
答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。
答案:return3. 在C语言中,用于计算字符串长度的函数是____。
答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。
答案:'\0'5. 当使用指针变量时,必须先对其进行____。
答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。
```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a; int b) { return a + b; }C. int add(int a, int b) { return a - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。
答案:scanf2. 在C语言中,用于输出的函数是___________。
答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。
答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。
答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。
1.2算法1[填空题]一颗二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【2】O参考解析:[2】DEBFCA【解析】根据二叉树的中序遍历原则可知D为二叉树的最左边的叶子结点,根据二叉树的前序遍历原则可知A是二叉树的根结点,就可以确定二叉树的结构,所以二叉树的后序遍历结果为:DEBFCA02[填空题]队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。
允许删除的一端称作。
参考解析:队头【解析】队列是只允许在一端删除,在另一端插入的顺序表,在队列中。
允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
3[填空题]在最坏情况下,堆排序需要比较的次数为。
参考解析:0(nlog2n)【解析】在最坏情况下,冒泡排序所需要的比较次数为n(nr1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为0(nl.5);堆排序所需要的比较次数为0(nlog2n)。
4[单选题]算法的有穷性是指()。
Λ,算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用参考答案:A参考解析:算法具有5个特性:①有穷性:一个算法必须(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。
③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
,④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
⑤输出:一个算法有一个或多个输出。
5[单选题]下列叙述中正确的是()。
A.数据的逻辑结构与存储结构是一一对应的B.算法的时间复杂度与空间复杂度一定相关C.算法的效率只与问题的规模有关,而与数据的存储结构无关D.算法的时间复杂度是指执行算法所需要的计算工作量参考答案:D参考解析:根据时间复杂度和空间复杂度的定义可知,算法的时间复杂度与空间复杂度并不相关。
计算机二级c语言试题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0123C. 0x123.456D. 0123456答案:A解析:在C语言中,十六进制常量以0x或0X开头,后跟十六进制数字。
选项A表示十六进制数,是合法的整型常量。
选项B表示八进制数,选项C表示浮点数,选项D是无效的表示。
2. 下列哪个选项是C语言中的关键字?A. switchB. caseC. defaultD. all of the above答案:D解析:在C语言中,switch、case和default都是关键字。
switch用于条件分支,case用于指定分支条件,default用于指定默认分支。
3. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. '\t'D. 'AB'答案:C解析:在C语言中,字符常量用单引号括起来,可以是单个字符或转义字符。
选项A是合法的字符常量,但选项B是字符串常量。
选项C 是合法的转义字符,表示水平制表符。
选项D是两个字符,不是合法的字符常量。
4. 在C语言中,以下哪个选项是合法的数组声明?A. int a[];B. int b[10];C. int c[10] = {0};D. all of the above答案:D解析:在C语言中,A选项声明了一个未指定大小的整型数组,B选项声明了一个大小为10的整型数组,C选项声明了一个大小为10的整型数组并初始化所有元素为0。
所有选项都是合法的数组声明。
5. 在C语言中,以下哪个选项是合法的函数声明?A. int func(int x);B. int func(int);C. int func();D. int func(int, int);答案:D解析:在C语言中,函数声明需要指定返回类型、函数名和参数列表。
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bprintf是预定义标识符,而预定义标识符可以是用户标识符,所以printf可以是用户标识,int是关键字,而关键字不能是用户标识符,所以int不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是Ab=10;这句被注释了。
计算机二级c语言考试题库和答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12U答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello"B. 'Hello'C. "Hello", "World"D. 'Hello', 'World'答案:A3. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. _variableD. variable-2答案:B4. 在C语言中,以下哪个选项是正确的浮点型常量?A. 3.14E2B. 3.14e-2C. 3.14ED. 3.14e答案:B5. 下列哪个选项是C语言中的保留字?A. defineB. sizeofC. includeD. myFunction答案:B6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. int myFunction();C. int myFunction(int x);D. All of the above答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = 0;D. All of the above答案:D11. 下列哪个选项是C语言中的循环结构?A. forB. whileC. do-whileD. All of the above答案:D12. 在C语言中,以下哪个选项是正确的条件语句?A. ifC. if-elseD. All of the above答案:D13. 下列哪个选项是C语言中的输入输出函数?A. printf()B. scanf()C. Both A and BD. None of the above答案:C14. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;B. struct myStruct {int a;float b;};C. Both A and BD. None of the above答案:C15. 下列哪个选项是C语言中的动态内存分配函数?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. Both A and BD. None of the above答案:C17. 下列哪个选项是C语言中的联合体声明?A. union {int a;float b;} myUnion;B. union myUnion {int a;float b;};C. Both A and BD. None of the above答案:C18. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. const double PI = 3.14;C. Both A and BD. None of the above答案:A19. 下列哪个选项是C语言中的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C20. 在C语言中,以下哪个选项是正确的递归函数声明?A. int factorial(int n);B. void printNumbers(int n);C. int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}D. All of the above答案:D二、填空题(每题2分,共20分)21. 在C语言中,`sizeof`运算符用于获取______的字节大小。
1.第一章第二章
1.C语言的函数体由()括起来。
A)<> B){} C)[] D)()
2.下面叙述错误的是()
A)一个C源程序可由一个或多个函数组成
B)构成C语言源程序的基本单位是语句
C)C源程序中大、小写字母是有区别的
D)若一条语句较长,可分写在下一行或多行上
3.下面叙述正确的是()
A)每行最多只能写两条语句
B)main()函数必须位于源程序文件的开头C)所有语句都必须以分号;结束
D)程序中必须含有自定义函数
4.C源程序中main()函数的位置()。
A)必须位于程序的最前面
B)必须在自定义函数前面C)必须在系统库函数后面
D)可以在自定义函数后面
5.结构化程序设计不包括()。
A)最优化
B)自顶而下,逐步细化C)模块化设计
D)结构化编码
6.下面叙述中,()不是结构化程序设计中的三种基本结构之一。
A)数据结构B)选择结构C)循环结构D)顺序结构
2.第三章数据类型、运算符和表达式
1.(B )为非法的字符串常量
A)“056”B)‘123’C)““D)“case”
2.( B )为正确的用户标识符。
A)min-5 B)max_at C)3_row D)union
3.以下(D )是正确的变量名。
A) a.bee B) -p11 C) int D) p_11
4.以下(D )是正确的变量名。
A)5f B)if C) f.5 D)_f5
5.以下(D )是正确的常量。
A)E-5 B)1E5.1 C)'a12' D)32766L
6.以下(A )是不正确的字符串常量。
A)'abc' B)"12'12" C)"0" D)" "
7.以下(BC )是正确的字符常量。
A)"c" B)'\\' C)'W' D)"\32a"
8.char型变量存放的是(A)。
A)ASCII代码值
B)字符本身C)十进制代码值
D)内码值
9.( B)为合法的常量。
A)5,236 B) 1.23E+8 C)‘b_k’D) 3.21E-6.5
10.(D)为正确的字符常量
A)‘\084’B)‘bcd’C)‘165’D)‘@’
11.若有定义:int b=-15;则(D)为正确的赋值表达式。
A)*b=6 B)b=*5 C)b+10=-5 D)b+=b*3
12.若有定义:int x=2;则正确的赋值表达式是(A )。
A)a-=(a*3) B)double(-a) C)a*3 D)a*4=3
13.若有定义:float x=2,y;int a=3 ;语句y=1*(x+a)/3;运行后,y的值为(B)。
A)2.0 B)1.666667 C)1.0 D)0
14.若有定义:int a,b=5;语句a=(b/2)+b%2;运行后,a的值为(A )
A) 3 B) 4 C)0 D)2
15.下面叙述正确的是(B)
A)2/3与2%3等价
B)5/(int)4.0与5/4等价C)++2与--3等价
D)++2与3等价
16.若有定义:int a,b=6;语句a=--b;运行后,a、b的值分别是(C)。
A) 6 6 B) 5 6 C) 5 5 D) 6 5
17.若有定义:int i=3,j=6;则表达式(--i)*(j++)的值为( D)。
A)10 B)18 C)15 D)12
18.语句x=(a=3,b=++a);运行后,x、a、b的值依次为(C )。
A)3,3,4 B)4,4,3 C)4,4,4 D)3,4,3
19.已知int a='R'; 则正确的表达式是(D )。
A)a=int(3e2)
B)2*a=a++ C)a=a+a=a+3
D)a%10
20.已知char a='R'; 则正确的赋值表达式是(A )。
A)a=(a++)%4 B)a+2=3 C)a+=256-- D)a='\078'
21.语句a=(3/4)+3%2;运行后,a的值为(B )。
A)0 B) 1 C) 2 D)3
22.若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(C)。
A)3,3 B)4,4 C)4,3 D)3,4
23.设整型变量a为5,使b不为2的表达式是(C )。
A)b=(++a)/3 B)b=6-(--a) C)b=a%2 D)b=a/2
24.设单精度型变量f、g的值均为2.0,使f为4.0的表达式是(A )。
A)f+=g B)f-=g+2 C)f*=g-6 D)f/=g*10
25.若有定义:int k,i=2,j=4;则表达式k=(++i)*(j--)的值是(B )。
A)8 B)12 C) 6 D)9
26.若有定义:int a=3;语句a+=a-=a*a;运行后,a的值为(C)
A)-6 B)0 C)-12 D)-3
27.若有定义:float x=3.5,y=5.5;则表达式(B)的值为2.
A)(int)x+y%7
B)(int)(x+y)%7 C)int(x+y)%7
D)(x+y)%7
28.若有定义:int b=-15; 则(D)为正确的赋值表达式。
A)b=*5 B)*b=6 C)b+10=-5 D)b+=b*3
29.下面叙述正确的是(B )。
A)2/3 与 2.0/3.0 等价
B) (int)2.0/3 与 2/3 等价C)++5 与 6 等价
D)'A'与"A"等价
30.若有定义int x=1,y=2,n=3;则(A)为正确的表达式。
A)x=y*3,y=(x+n)/y
B)(x+y)(y+n) C)float(y/n)
D)x=ny
31.若有定义:int x,y,z;语句x=(y=z=3,++y,z+=y);运行后,x的值为(A)
A)7 B) 3 C)8 D)6
32.若有定义:float x=3.5;int z=8;则表达式x+z%3/4的值为(B)。
A) 3.75 B) 3.5 C) 3 D)4
33.若有定义:float x=3.5,y=3.6,则表达式(A)的值为6。
A)(int)x+(int)y
B)(int)(x+y) C)int(x+y)
D)x+y
34.下面叙述正确的是(C)。
A)(3+9)++是正确的表达式
B)“abc”+”xxx”是正确表达式
C)c语言中整型与字符型变量的混合运算表达式的结果是整型
D)模运算符%两边运算数的数据类型是任意的
35.若有定义:int x;char c=’A’;则正确的赋值表达式是(B).说明‘A’的ASCII码的十进制值为65,‘a’
的ASCII码的十进制值为97
A)x=c+’ABC’
B)x=c+32 C)x=c+’CBA’
D)x=’ABC’
36.若有定义:char c1=’A’,c2=’B’;语句printf(“%d+%d=%d”,c1,c2,c1+c2); 运行后的结果为(C)。
说明:
‘A’的ASCII码的十进制值为65
A)65+65=AB B)A+B=131 C)65+66=131 D)A+B=AB
37.下面叙述错误的是(A)。
A)算术运算符中只有“*”、“/”优先级高于关系运算符
B)模运算符“%”是C语言基本的算术运算符
C)算术运算符中不包含“=”运算符
D)自加和自减运算符只能用于变量,而不能用于常量或表达式
38.下面叙述正确的是(A )。
A)强制类型转换运算的优先级高于算术运算
B)若a和b是整型变量,(a+b)++是合法的
C)'A'*'B' 是不合法的
D)"A"+"B"是合法的
39.下面关于算术运算符的叙述,错误的是(D )。
A)%(模运算符)的运算对象只能为整型量
B)算术运算符的结合方向是"自左至右"
C)自加和自减运算符的结合方向是"自右至左" 其运算对象不包。