二级C语言笔试-95_第1页
二级C语言笔试-95_第2页
二级C语言笔试-95_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级 C 语言笔试 -95( 总分: 100.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 40,分数: 70.00)1. 以下关于函数的叙述中正确的是 ( ) 。(分数: 2.00 )A. 每个函数都可以被其它函数调用(包括main函数)B. 每个函数都可以被单独编译 VC. 每个函数都可以单独运行D. 在一个函数内部可以定义另一个函数解析: 解析 本题考查函数的一些概念。 main() 函数是一个程序的主函数,它由系统调用,所以选项 A) 不正确。一个 C 语言源程序文件可以只包含一个函数,每个源文件都可以被单独编泽成.obj 文件,最后链接成可执行文件。因此每个函数都可以被单

2、独编译,选项B)正确。一个C程序必须从主函数main()开始运行,其他函数只能是直接或间接被main()函数调用才能得以运行,因此选项C)错误。C语言不支持函数的嵌套定义,所有函数只能是全局函数,所以选项D)错误。故应该选择 B)。2. 若有以下定义的语句:struct studentint age ;int num ; struct student stu3=1001, 20, 1002, 19, 1003, 21;main()(struct student *p ;p=stu ;则以下不正确的引用是()。(分数: 2.00 )A. (p+)- > numB. p+C. (*p).nu

3、mD. p=stuageV解析: 解析 考查对结构体成员的引用方法。结构体成员的引用可以用“结构体变量名 . 成员名”或者“结构体变量指针 - >成员名”两种方式来引用。3. 有以下程序:#include < stdio.h >main()FILE *fp ; int a10=1, 2, 3 , i , n;fp=fopen("d1.dat" , "w") ;for(i=0 ; i < 3; i+)fprintf(fp , "%d", ai);fprintf(fp , "/n") ;fclo

4、se(fp) ;fp=fopen("d1.dat" , "r") ;fscanf(fp , "%d,n);fdose(fp) ;printf("%d/n" , n) ;(分数: 2.00 )A. 12300B. 123 VC. 1D. 321解析:解析 本题主要考查的是文件的操作。 程序一开始定义了一个文件指针 FILE *fp ;,然后通过 fopen 函数以只写方式打开 d1.dat 文件,使用一个 for 循环往 d1.dat 文件里面依次写入数组 a 的三个值,再写 入一个换行符,最后通过 fclose 函数关闭 d

5、1.dat 文件。此时, d1.dat 中的内容应该是“ 123”。接下来 又通过 fopen 函数以只读方式打开 d1.dat 文件,使用 fscanf 函数读取 1 个整数,考生可能会认为读取的 只是第1次写入的整数1,其实它将整个123当成1个整数给读进来了,所以读取后n的值为123。4. 变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将 a 的高 4位取反,低 4位不变,所要执行的运算是 ( ) 。(分数: 2.00 )A. aAb VB. a|bC. a bD. a << 4解析:解析本题主要考查的是位运算。

6、选项A)中“a”运算符的作用是:按位异或。即两个运算分量的对应二进制位如果相异,则结果对应二进制位为1,否则为0。所以,01011101A11110000的结果是10101101。选项B)中“I”运算符的作用是:按位或。即两个运算分量的对应二进制位如果有一个是1 ,则结果对应二进制位为1,否则为0。所以,0101110|110000的结果是11111101。选项C)中“&”运算符的作用是:按 位与。即两个运算分量的对应二进制位如果都是 1 ,则结果对应二进制位为 1,否则为 0。所以, 01011101 & 1111000的结果为01010000,选项D)中“<<”

7、运算符作用是:左移运算符,将a左移4位,显然不符合题意。5. 以下选项中不属于字符常量的是 ( ) 。(分数: 2.00 )A. 'C'B. "C"VC. '/xCC'D. '/072'解析:解析在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常 量。选项A)、C)和D)为正确的字符常量,而选项 B)是用双引号括起来的字符,表示一个字符串常量。6. 相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( ) 。(分数: 2.00 )A. 可重用性差B. 安全性差C. 非持久性D. 冗余

8、性 V解析: 解析 文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,文件系 统数据处理存在 3 个缺点,即数据冗余大、数据的不一致性、程序与数据的相互依赖( 简称为数据依赖 )7. 在16位IBM-PC上使用C语言,若有如下定义:struct dataint i ;char ch ;double f ;b;则结构变量 b 占用内存的字节数是 ( ) 。(分数: 2.00 )A. 1B. 2C. 7D. 11 V解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i 所占用的内存是 2字节,字符型变量 ch 所占用的内存是 1 字节,

9、双精度型变量 f 所占用的内存是 8字节,三 者相加即可。8. C语言规定,在一个源程序中,main函数的位置()。(分数: 2.00 )A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意 VD. 必须在最后解析:解析不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的9. 数据结构中,与所使用的计算机无关的是数据的 ( ) 。(分数: 2.00 )A. 存储结构B. 物理结构C. 逻辑结构 VD. 物理和存储结构解析: 解析 数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合等。数据的逻辑结构 只抽象地反映数据元素之间的逻辑关系,而不管它

10、在计算机中的存储形式。10. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指( ) 。(分数: 2.00 )A. 模块间的关系B. 系统结构部件转换成软件的过程描述 VC. 软件层次结构D. 软件开发过程解析: 解析 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中,结构设计是定义软件 系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软 件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程 性描述。11. 设变量已正确定义并赋值,以下正确的表达式是 ( ) 。(分数: 1.00 )

11、A. x=y*5=x+zB. int(158%5)C. x=y+z+5 , +y VD. x=25%5.0解析:解析求余运算符“ 两边的运算对象必须是整型,而选项B)和D)中“两边的运算对象有浮点数据,所以选项 B)和D)是错误的表达式。在选项A)中赋值表达式左侧要为“左值”,也是错误的。选项C)是一个逗号表达式,所以正确答案为C)。12. 有以下程序:#include < stdio.h >main()int c ;while(c=getchar( )!='/n')switch(c-'2')case 0 :case 1 : putchar(c+4)

12、 ;case 2 : putchar(c+4) ;break ;case 3 : putchar(c+3) ;case 4 : putchar(c+3) ;break ;printf("/n") ;从第一列开始输入以下数据,/代表一个回车符。27 43 /程序的输出结果是 ( ) 。(分数: 1.00 )A. 66877 VB. 678966C. 6677877D. 6688766解析: 解析 本题主要考查了字符输入输出函数 getchar 和 putchar 的使用。 getchar 函数用来从标准输 入设备上读入一个字符, putchar(c) 函数是将字符变量 c 中

13、的字符输出到标准输出设备上,并且字符可以 看作整数参与运算。13. 有以下程序:main()int i ;for(i=1 ;i < =40;i+)if(i+%5=0)if(+i%8=0)printf("%d", i) ;printf("/n") ;执行后的输出结果是 ( ) 。(分数: 1.00 )A. 5B. 24C. 32 VD. 40解析:解析当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过 两次自加 1 运算,值变为 32,能被 8 整除,故此时第一次执行“ printf("%d"

14、, i) ;”语句,即输出 32。14. 设有关系R和S,关系代数表达式为 R-(R-S)表示的是()。(分数: 1.00 )A. RQS VB. R-SC. RUSD. R+S解析:解析R-S表示属于R但不属于S, R-(R-S)表示既属于R又属于S,即相当于RHS15. 下列程序的输出结果为 ( ) 。main()union uchar *name ;int age ;int income ;)s ;="WANGLIONG;"s.age=28 ;s.income=1000 ;printf("%d/n" , s.age) ;(分数: 1.0

15、0 )A. 28B. 1000 VC. 0D. 不确定解析: 解析 本题对共用体的使用进行了考查。由于共用体所有成员共同占据一段存储空间,所以对成员 变量的赋值,后面的赋值会覆盖掉前面的赋值,因为 s.income=1000 ;是最后一次成员变量赋值,变量 age 与变量income共同占据一段存储空间,所以age的值也为1000。16. 关系表中的每一横行称为一个 ( ) 。(分数: 1.00 )A. 元组 VB. 字段C. 属性D. 码解析: 解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的 一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键

16、或码。17. 下列数据结构中,按“先进后出”原则组织数据的是 ( ) 。分数: 1.00 )A. 线性链表B. 栈 VC. 循环链表D. 顺序表解析: 解析 本题主要考查对于栈的理解。栈是限定在一端进行插入与删除的线性表。在栈中,允许插入 与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而 也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按 照“先进后出”或“后进先出”的原则组织数据的。18. 已知字符'A'的ASQ码值是 65,字符变量cl的值是'A , c2的值是D'。执行语

17、句printf("%d , %d", cl, c2-2);后,输出结果是()。(分数: 1.00 )A. A, BB. A 68C. 65, 66 VD. 65, 68解析:解析在C语言中,字符型数据在内存中的存储形式是ASCI码值。当需要以整型格式输出字符时,输出的也是ASQ码值。字符'A'和'D'的ASQ码值分别为65和68。19. 有以下程序:#include < stdio.h >main()inc x=1 , y=0, a=0, b=0;switch(x)case 1 :switch(y)case 0 :a+;break

18、case 1 :b+;breakcase 2 :a+; b+; breakcase 3 :a+; b+;printf("a=%d , b=%d/n" , a, b) ;程序的运行结果是 ( ) 。(分数: 1.00 )A. a=1 , b=0B. a=2, b=2C. a=1 , b=1D. a=2, b=1 V解析: 解析 本题考查 switch 语句,首先, x=1 符合条件 case 1 ,执行 switch(y) 语句, y=0 符合 case0 语句,执行a+并跳出switch(y)语句,此时a=1。因为case 1语句后面没有break语句,所以向后执行 cas

19、e 2 语句,执行 a+,b+,然后跳出 switch(x),得 a=2,b=1。20. 若有定义 float x=15; int a=1,b=3,c=2;,则正确的 switch 语句是()。分数: 1.00 )A. switch(x)case 1.0 : printf("*/n") ;case 2.0 : printf("*/n") ;B. switch(int)x) ;case 1 : printf("*/n") ;case 2 : printf("*/n") ;C. switch(a+b)case 1 :

20、printf("*/n") ;case 2+1 : printf("*/n") ; VD. switch(a+b)case 1 : printf("*/n") ;case c : printf("*/n") ;解析: 解析 C 语言中, switch 语句专用于实现多分支结构程序,其特点是各分支清晰且直观。 switch 后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且 类型必须是整型、字符型或枚举型,备常量表达式备不相同。21. 结构化程序设计方法的 3 种基本控制结构

21、中不包括 ( ) 。(分数: 2.00 )A. 循环结构B. 递归结构 VC. 顺序结构D. 选择结构解析: 解析 本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3 种基本结构组成,由这些基本结构顺序构成一个结构化的程序。这 3 种基本结构为:顺序结构、选择结构和循环 结构。22. 下列程序的运行结果为 ( ) 。#include < stdio.h >void abc(char *str)int a ,b;for(a=b=0 ; stra!='/0'; a+)if(stra!='c')sfrb+=stra ;strb=&#

22、39;/0';void main()char str="abcdef" ;abc(str) ;printf("str=%s",str) ;(分数: 2.00 )A. str=abdefVB. str=abcdefC. str=aD. str=ab解析: 解析 本题考查用字符指针引用字符数组中的字符及对字符的操作。函数abc() 的 for 语句执行过程是: 从字符指针 str 所指向的字符数组的第一个元素开始, 逐一判断字符是否为 'c' ,若不是就执行一次 数组元素的赋值过程,若字符为 'c' 就不执行。23.

23、有以下程序:#include stdio.h main()char c1 ,c2,c3,c4,c5,c6;scanf("%c%c%c%c", c1, c2, c3, c4) ;c5=getchar() ;c6=getchar() ;putchar(c1) ;putchar(c2) ;printf("%c%c/n" ,c5,c6) ;程序运行后,若从键盘输入 (从第 1列开始 ):123回车45678回车 则输出结果是 ( ) 。(分数: 2.00 )A. 1267B. 1256C. 1278D. 1245 V解析: 解析 putchar(c1) 输出 1

24、,putchar(c2) 输出 2,printf("%c%c/n",c5,c6) 输出 45。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明 外,可以包含任意的合法字符。24. 下列关于单目运算符 +、- 的叙述中正确的是 ( ) 。(分数: 2.00 )A. 它们的运算对象可以是任何变量和常量B. 它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量C. 它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量D. 它们的运算对象可以是 char 型

25、变量、 int 型变量和 float 型变量 V解析: 解析 +( 或-) 的运算结果是使运算对象增 1(或减 1 ) ;运算对象可以是整型变量、实型变量,也 可以是字符型变量,但不能是常量或表达式。+( 或-) 的结合方向是“自右向左”。25. 下列程序执行后的输出结果是 ( ) 。main()int a33,*p;P= a00 ;for(i=1 ;i 9;i+)pi=i+1;printf("%d/n" ,a1 2);(分数: 2.00 )A. 3B. 6VC. 9D. 随机数解析: 解析 本题中, a12 是二维数组中的第 6个元素,对应 for 循环中 i 的值为 5

26、,p5=5+1 。26. 有以下程序:int fun(int n)if(n=1)return 1 ;elsereturn(n+fun(n-1) ;main()int x ;scanf("%d" , x) ;x=fun(x) ; printf("%d/n" ,x) ;执行程序时,给变量 x 输入 10,程序的输出结果是 ( ) 。(分数: 2.00 )A. 55 VB. 54C. 65D. 45解析:解析 本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数 本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9

27、+10=55。27. 有以下程序:#include < stdio.h >main()char a , b,C,d; scanf("%c%c" , a, b) ; c=getchar() ; d=getchar() ; printf("%c%c%c%c/n" ,a,b,C,d) ;当执行程序时,按下列方式输入数据(从第1列开始,<。9代表回车,注意:回车也是一个字符)12< CR>34< CR> 则输出结果是 ( ) 。(分数: 2.00 )A. 1234B. 12C. 12 3 VD. 12 34解析:解析本题

28、的考查点是C语言字符数据的输入和输出。程序定义了四个字符型变量a、b、c、d,字符型变量只能存放一个字符。 getchar() 函数的值就是从输入设备得到的字符,在输入时,空格、回车符 将作为字符读入,请注意, getchar() 只能接收一个字符。所以变量 a 被赋予 1 ,变量 b 被赋予 2,变量 c 被赋予回车符,变量 d被赋予3,所以选项C)正确。故本题答案为 C)。28. 以下叙述中错误的是 ( ) 。分数: 2.00 )A. 计算机不能直接执行用C语言编写的源程序B. C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C. 后缀为 .obj 的文件,经连接程序生成

29、后缀为 .exe 的文件是一个二进制文件D. 后缀为.obj和.exe的二进制文件都可以直接运行V 解析:解析一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由 编译程序再将汇编语言程序翻译成机器指令程序,即目标程序 ( 后缀为 .obj) ,目标程序不可以直接运行, 它要和库函数或其他目标程序连接成可执行文件 ( 后缀名为 .exe) 后方可运行。29. 需求分析阶段的任务是确定 ( ) 。(分数: 2.00 )A. 软件开发方法B. 软件开发工具C. 软件开发费用D. 软件系统功能V解析: 解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调

30、查现实世界要处理的对 象( 组织、部门、企业等 ) ,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系 统的功能。选项A)软件开发方法是在总体设计阶段需完成的任务;选项B)软件开发工具是在实现阶段需完成的任务;选项C)软件开发费用是在可行性研究阶段需完成的任务。30. 若在定义语句:int a, b, c, *p= &c;之后,接着执行以下选项中的语句,则能正确执行的语句是()(分数: 2.00 )A. scanf("%d" , a, b, c) ;B. scanf("%d%d%d" , a, b, c) ;C. scanf(

31、"%d" , p); VD. scanf("%d" ,& p);解析: 解析 本题考查的知识点是:标准输入函数 scanf() 。 scanf() 函数要求,除了第 1 个参数为格式 化字符串以外,其余参数均为相应变量的地址值。本题中,只有p是地址值,故应该选择C)o31. 阅读下列程序段,程序的输出结果为 ( ) 。#include"stdio.h"#define M(X , Y)(X)*(Y)#define N(X , Y)(X)/(Y)main()int a=5 , b=6, C=8, k ;k=N(M(a , b) ,

32、 c) ;printf("%d/n" , k) ;(分数: 2.00 )A. 3VB. 5C. 6D. 8解析:解析带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行 N 的宏替换,替换后的表达式为 (a)*(b)/(c) o32. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。(分数: 2.00 )A. auto 和 register VB. extern 和 registerC. auto 和 staticD. static 和 register解析:解析在C语言中只有自动变量和寄存器变量在使用时才占用内

33、存单元。33. 若执行下面的程序时,从键盘输入 5和 2,则输出结果是 ( ) 。 main()int a ,b,k ;scanf("%d , %d", a, b) ;k=a;if(a v b)k=a%b;else k=b%a ; printf("%d/n" ,k) ;(分数: 2.00 )A. 5B. 3C. 2VD. 0解析:解析本题考查简单的ifelse语句。先执行条件if(a v b),显然不成立,再执行else语句34. 在下列关于二叉树的叙述中,正确的一项是 ( ) 。(分数: 2.00 )A. 在二叉树中,任何一个结点的度都是 2B. 二叉

34、树的度为 2C. 在二叉树中至少有一个结点的度是 2D. 一棵二叉树的度可以小于 2 V解析: 解析 本题考查了二叉树的基本概念。在二叉树中,叶子节点的度是 1;当该二叉树为空树时,根 节点的度为 0;为非空树时,根节点的度最大为2。35. 下列选项可以正确表示字符型常量的是 ( ) 。(分数: 2.00 )A. '/r'VB. "a"C. "/897"D. 296解析: 解析 C 语言中,一个字符常量代表 ASCII 字符集中的一个字符,在程序中用单引号括起来作为字 符常量,字符常量的的范围是0127。由于字符常量用单引号括起来,所以选

35、项B)、C)错误,选项D)超过了字符常量的表示范围。36. 以下不是面向对象思想中的主要特征的是 ( ) 。(分数: 2.00 )A. 多态B. 继承C. 封装D. 类比性 V解析: 解析 面向对象思想中的三个主要特征是:封装性、继承性和多态性。37. 若有定义: int a23 ;,以下选项中对 a 数组元素正确引用的是 ( )(分数: 2.00 )A. a21B. a23C. a03D. a1 > 2!1 V解析: 解析 C 语言中数组下标是从 0开始的,所以二维数组 a23 的第一维下标取值为 0、 1 ;第二维 的下标取值为0、1、2,因而选项A)、B)、C)都是错误的,选项 D

36、)表示数组元素a00。38. 若变量已正确定义,要求程序段完成求 5! 的计算,不能完成此操作的程序段是 ( ) 。(分数: 2.00 )A. for(i=1, p=1 ;i v =5; i+)p*=i ;B. for(i=1; i v =5; i+)p=1 ; p*=i ; VC. i=1 ; p=1; while(i v =5)p*=i ; i+ ;D. i=1 ; p=1; dop*=i ; i+ ; while(i v =5)解析:解析本题考核的知识点是 C语言在生活中的简单应用。选项 B)中for循环了 S次,而每次循环 的时候,都将 p 的值重新赋值为 1 后,再乘以当前数字 i

37、,最后的结果为 5,显然不是 5! 的值,同样的分 析可知选项A)、选项C)和选项D)计算的都是5!。所以,4个选项中选项B)符合题意。39. 下面程序的输出结果是 ( ) 。#include v stdio.h >#include v string.h >main()char p120="abc", *p2="ABC" , str50="xyz";strcpy(str+2 , strcat(p1 , p2) ;printf("%s/n" , str) ;(分数: 2.00 )A. xyzabzacB.

38、 bAcBACBCC. xyabcABC VD. yzabcABC解析: 解析 本题考查的重点是复制字符串使用 strcpy() 函数,该函数的调用方式是 strcpy( 字符数 组,字符串 ) ,其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整 地复制到“字符数组”中,字符数组中原有的内容被覆盖。使用该函数时注意:字符数组必须定义得足够 大,以便能容纳复制过来的字符串。复制时,连同结束标志 '/0' 一起复制;不能用赋值运算符“ =”将一个 字符串直接赋值给一个字符数组,只能用 strcpy() 函数处理。另外,本题还考查连接字符串的 strc

39、at() 函数,其调用方式是: strcat( 字符数组,字符串 ) 。功能是把“字符串”连接到“字符数组”中的字符串 尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而 “字符串”在操作中未被修改。使用该函数时注意:由于没有边界检查,编程者要注意保证“字符数组” 定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;连接前两个字符串都有 结束标志 '/0' ,连接后“字符数组”中存储的字符串的结束标志 '/0' 被舍弃,只在目标串的最后保留一个 '/0' 。40. 现有格式化输入语句,

40、 scanf("x=%d , sumy=%d, line z=%dL", x, y, z) ;,已知在输入数据后,x、 y、 z 的值分别是 12、 34、 45,则下列选项中是正确的输入格式的是 ( ) 。(分数: 2.00 )A. 12 , 34, 45v Enter >B. x=12 , y=34, z=45v Enter >C. x=12 ,sumy=34,z=45v Enter >D. x=12 ,sum y=34 , line z=45 v Enter > V解析:解析若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应

41、的位置原样输入 这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串 中除了合法的格式说明外,可以包含任意的合法字符。二、填空题(总题数: 13,分数: 30.00)41. 对长度为 n 的有序链表进行查找,最坏情况下需要比较的次数为 1 。(分数: 2.00 )填空项 1: (正确答案: n)解析:解析对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log 2n次,而顺序查找需要比较 n 次。42. 某二叉树中度为 2的结点有 18个,则该二叉树中有 1 个叶子结点。(分数: 2.00 )填空项 1: (正确答案: 19)解析: 解析 在任意

42、一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。43. 1 测试方法完全不考虑程序的内部结构和内部特征。(分数: 2.00 )填空项 1: (正确答案:黑箱)解析: 解析 黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处 理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。44. 关系模型的数据操纵即是建立在关系上的数据操纵,一般有 、增加、删除和修改四种操作。(分数: 2.00 )填空项 1: (正确答案:查询)解析: 解析 关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操 作。数

43、据查询即用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。 数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。 数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。数据修改是在一个关系中修改指定的元组和属性。45. 数据模型按不同的应用层次分为三种类型,它们是 数据模型、逻辑数据模型和物理数据模型。(分数: 2.00 )填空项 1: (正确答案:概念)解析: 解析 数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数据 模型。概念数据模型简称概念模型, 它是一种面向客观世界、 面向用户的模型; 它与具体的数据库

44、管理系统无关。 逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。物理数据模型又称物理模型,它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物 理结构的表示。46. 设有定义: float x=1234567 ;,则执行以下语句后的输出结果是 。printf("%f/n", (int)(x*100+0.5)/100.0);(分数: 2.00 )填空项 1: (正确答案: 123.46 或 123.460000 )解析: 解析 本题考查表达式的计算。解本题的关键是计算表达式 (int)(x*100+0.5)/100.0

45、 的值。将 x=123.4567 代入表达式:原式 =(int)(12345.67+0.5)/100.0=(int)(12346.17)/100.0=12346/100.0=123.46 故本题的答案为: 123.46 或 123.460000 。47. 有以下语句段:int n1=10 , n2=20;printf("" ,n1,n2) ;要求按以下格式输出 n1 和 n2 的值,每个输出行从第一列开始,请填空。n1=10n2=20(分数: 2.00 )填空项 1: (正确答案:n仁d/nn2=%d/n 或 n仁d/nn2=%c或 n仁2d/nn2=%2d/n 或n1=%

46、2d/nn2=%2d)解析: 解析 本题考核的知识点是 printf 函数的应用。 printf 函数有两种参数:格式控制参数和输出项 参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说 明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和2=就是普通字符,可以直接显示,又因为 n1、n2为整数,所以格式说明项为 %d,也可以在%与 d之 间加上域宽,另外还要在每行输出结束时加转义字符/n进行换行。所以,应填写n仁%d/nn2=%d/n或n1=%d/nn2=%d或 n仁%2d/nn2=%2d48. 有以

47、下程序:#include < stdio.h >main()char ch1 , ch2;int n1 , n2; ch1=getchar() ;ch2=getchar() ; n1=ch1-'0' ;n2=n1*10+(ch2-'0');printf("%d/n" , n2) ;程序运行时输入: 12<回车>,执行后输出结果是 。(分数: 2.00 )填空项 1: (正确答案: 12)解析: 解析 本题考核的知识点是字符类型数据的表示方法和存储形式。字符类型的数据在内存中以相应的ASCI码存放,在C语言中,字符数据可

48、以等价为与其相应的ASQ码的整数,还可以作为整数参加运算。在本题中, n1=ch1-'0'='1'-'0'=49-48=1, n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为 12。以下程序的功能是:输出 a、b、c三个变量中的最小值。请填空。#include < stdio.h >main()int a , b, c, t1 , t2 ;scanf("%d%d%d",& a,& b, & c

49、);t1=a < b? (9);t2=c < t1? (10);printf("%d/n" , t2);(分数:4.00 )填空项1: (正确答案:a: b)解析:填空项1: (正确答案:c: t1 )解析:解析本题考查的知识点是条件表达式。条件表达式类似于if语句,根据“ ?”前面子表达式的逻辑值来判断应该计算“:”前面的子表达式还是后面的作为整个条件表达式的结果。题目要求输岀a、b、c三个变量中的最小值,所以当a<b时,应该选a,否则选b,故第9空应填a: b。同样的道理,第10空应填c: t1 o49. 以下程序运行后的输岀结果是 omain()int a=3 , b=4, c=5 , t=99 ;if(b < a && a< c)t=a ; a=c ; c=t ;iff a <c&& b<c)t=b ; b=a; a=c; pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论