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

下载本文档

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

文档简介

1、级 C 语言笔试 30( 总分: 84.00 ,做题时间: 90 分钟 )一、 B 选择题 /B( 总题数: 50,分数: 50.00)1. 以下模式中, _ 是用户模式。(分数: 1.00 )A. 内模式B. 外模式VC. 概念模式D. 逻辑模式解析: 评析 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,指数据库 用户所看 到的数据结构,是用户看到的数据视图。模式,是数据库中对全体数据的逻辑结构和特 性的描述,是所有 用户所见到的数据视图的总和。内模式是指数据在数据库系统内的存储介质上 的表示,即对数据的物理结 构和存取方式的描述。2. 假设 fp 是指向某文件的指针,且已

2、读到此文件的末尾,那么函数 feof(fp) 的返回值是 。 (分数: 1.00 )A. EOFB. 0c.非零值VD. NULL解析: 评析 函数 feof 是用来判断文件是否已读到末尾,如果已读到末尾那么返回非零值,否那么返回0。3. 请读程序: #include < stdio.h > #include <string.h > main() char*s1="AbCdEf" ,*s2="aB" ; s1+ ; s2+; printf("%d/n",strcmp(s1,s2); 上面程序的输出结果是 _ 。

3、(分数: 1.00 )A. 正数VB. 负数C.零D.不确定的值解析:评析strcmp(X1 ,X2)是串比拟函数,此题中“si 、“ s2分别表示这两个串中第一个字符的地 址,S1+和S2+是将指针指向串的第二个字符,那么*s1为“ bCdEf ,*s2为“ B。在字符串比拟中, 划、确实定是各个字符串相应位置字符的 ASCII 码值的大小决定的, s1 > s2 , 返回值为正数。4. 下面程序的输出结果是 _。 union un int a4; long b ; char c6 ; main() union unu; printf("%d%d" , Sizeof

4、(u),Sizeof(uA) ); (分数: 1.00 )A. 82B. 88 VC. 188D. 182解析: 评析 Sizeof 函数计算类型所占的字节数。共用体变量所占的内存长度等于最长的成员 的长度。5. 以下可用于 C 语言标识符的一组是 。(分数: 1.00 )A. void WORD defineB. a 6$SyS ForC. 2a Sizeof abcD. Int define sizeof V解析: 评析 C 语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为 字母或下 划线。注意,大写字母和小写字母被认为是两个不同的字符。 C 语言中的关键字不 能用作

5、标识符。6. 以下说法中正确的选项是 _ 。( 分数: 1.00 )A. C 语言程序总是从第一个函数开始执行B. 在 C 语言程序中,要调用函数必须在 main() 函数中定义C. C 语言程序总是从 main() 函数开始执行 VD. C 语言程序中的 main() 函数必须放在程序的开始局部 解析: 评析 C 语言的程序是由主函数 main() 开始运行, 由主函数来调用其他函数, 函数必须是并列的, 定义后使用, 不能在一个函数中定义其他函数, main() 函数不一定要放在程序的开始局部,应选C。7. 在 C 语言中,不正确的 int 类型的常数是 。( 分数: 1.00 )A. 3

6、2768 VB. 0C. 037D. 0xAF解析:评析C语言中int类型的常数的范围是:-3276832767。C整常数可用三种形式表示:十 进制整 数,八进制整数,十六进制整数。选项 A 超出范围,不正确。8假定下面程序可执行文件名prg.exe,那么该程序所在的子目录下输入命令行:prg hello good V回车后, 程序的输出结果是。 main(int argc , char*argv) int i; for(i=1 ;iV argc;i+)printf("%c",argvi); ( 分数: 1.00 )A. hello goodB. hg VC. helD.

7、hellogood解析: 评析 带参数的 main() 函数常用形式为: main(int argc,char*argv) ,其中,整型变量 argc 用 来记录命令行中的参数个数。 参数的个数由 C 程序运行时自动计算出来。 字符型指针数组 argv 的 第一个元 素存放命令名, 其后各个元素依次存放命令行中各个参数的首地址, 数组的大小由 argc 确 定。 for 循环语 句实现输出各参数的第一个字母。9. 以下数据结构属于非线性数据结构的是 。( 分数: 1.00 )A.队列B.线性表C.二叉树 VD.栈 解析: 评析 线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。

8、栈又称后进先出表 (Last In First Out) ;队列又称先进先出表(First In First Out) 。二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。10. 以下选项中属于 C语言的数据类型是 。( 分数: 1.00 )A. 复数型B. 逻辑型C. 双精度型 VD. 集合型 解析: 评析 C 语言的数据类型分为根本类型、 构造类型、 指针类型、 空类型四大类 其中,根本类型分 为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种 类型。11. 以下程序的运行结果是 _ 。 #include "stdio

9、.h" main() int a=1 ,2,3,4, 5, 6,7,8,9, 10, 11,12 ; int *p=a+5,*q=NULL ; *q=*(p+5); printf("%d %d/n", *p, *q) ; 分数: 1.00 A.运行后报错 VB.6 6C.6 12D.5 5解析:评析题目中没有给q分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是 6 11 NULL pointer assignment ,也就是运行后报错。12. 下面表达正确的选项是 _ 。( 分数: 1.00 )A. 算法的执行效率与数据的存储结构无关B. 算法的空间

10、复杂度是指算法程序中指令(或语句 ) 的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止VD. 算法的时间复杂度是指执行算法程序所需要的时间 解析: 评析 算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。13. 在使用程序流程图来表示算法时,菱形用来表示。( 分数: 1.00 )A. 输入与输出B. 子程序C. 判断分支 VD. 循环边界 解析: 评析 美国国家标准化协会 ANSI 规定了一些常用的流程图符号,其中椭 圆框表示起止框,方框表 示处理框,菱形框表示判断分支,箭头表示流程线。

11、14. 以下程序的输出结果是 _ 。 main() int w=5; fun(w) ; printf("/n"); fun(int k) if(k> 0) fun(k-1) ; printf("%d" , k) ; ( 分数: 1.00 )A. 5 4 3 2 1B. 0 l 2 3 4 5 VC. 1 2 3 4 5D. 5 4 3 2 1 0解析: 评析 函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。fun 函 数共被调用 6 次,即 fun(5) 、 fun(4) 、 fun(3) 、 fun(2) 、 fun(1

12、) 、 fun(O) 。其中 fun(5) 是 main 函数 调用 的。15. 设有 static char str="Beijing" ; 那么执行 printf("%d/n" , strlen(strcpy(str,"China"); 后的输出结果为 。( 分数: 1.00 )A. 5 VB. 7C. 12D. 14解析: 评析 在执行 printf() 函数前,数组 str 的长度是 7,但是当使用 strcpy() 函数将新的值赋给str 后, strlen() 函数返回的应当是现在的 str 字符串的字符个数,即是5。16

13、. 以下概念中,不属于面向对象方法的是 。( 分数: 1.00 )A. 对象、消息B. 继承、多态C. 类、封装D.过程调用 V解析:评析面向对象方法是一种运用对象、类、封装、继承、多态和消息 等概念来构造、测试、重构软 件的方法。面向对象方法从对象出发,开展出对象、类、消息、继 承等概念。17. 假设有以下说明和语句,请选出哪个是对 c数组元素的正确引用。intc45,(*cp)5 ; cp=c ;( 分数: 1.00 )A. cp+1B. *(cp+3)C. *(cp+1)+3D. *(*cp+2) V解析: 评析 cp=c 这个语句是将数组第 0 行的地址赋给了 cp。 cp+1 使指针

14、指向二维数组 c 的第一 行; *(cp+3) 是数组 c 的第三行的第 0 列的地址值; *(cp+1)+3 是数组 c 的第一行第三列的地址值。18. 在一棵二叉树上第 8 层的结点数最多是 。( 分数: 1.00 )A. 8B. 16C. 128 VD. 256解析:评析根据二叉树的性质:二叉树第j(i > 1)层上至多有2i-1个结点。得到第8层的结点数最多是128。19. 设有以下语句 char a=3,b=6,c ; c=aAb VV 2;贝U c的二进制值是 。( 分数: 1.00 )A. 00011011 VB. 00010100C. 00011100D. 0001100

15、0 解析:评析“VV 是 C语言中规定的左移运算符,a是异或运算符,所以,c的二进制值应为 00011011。20. 下面描述中,不符合结构化程序计风格的是。( 分数: 1.00 )A. 使用顺序、选择和重复( 循环 )三种根本控制结构表示程序的控制逻辑B. 自顶向下C. 注重提高程序的执行效率 VD. 限制使用 goto 语句解析: 评析 结构化程序设计方法的四条原贝是:1 自顶向下; 2 逐步求精; 3 模块化; 4限制使用 goto 语句。21. 设变量 x 为 float 型且已经赋值, 贝以下语句中能够将 x 中的数值保存到小数点后面两位, 并 将第三位 四舍五入的是 。( 分数:

16、1.00 )A. x=x*l00+0.5/100.0B. x=(x*100+5)/100C. x=(in(x*100+0.5)/100.0VD. x=(x/100+0.5)*100.0解 析 : 评 析 本 题 通 过 算 术 表 达 式 的 运 算 实 现 小 数 保 保 留 两 位并 四 舍 五 入 的 操 作 , 其 中 (int)(x*100+0.5)是指将 (x*100+0.5) 的值强制转换成整型。22. 以下选项中不能正确定义结构体的是 。 ( 分数: 1.00 )A. typedef structB. struct color cl int red ; int red ; in

17、t green ; int green ; int blue ; int blue ; COLOR ; ; COLOR cl ; VC. struct colorD. struct int red; int red ; int green; int green ; int blue ;int blue ; cl ; cl ;解析: 评析 将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变 量为结 构体类型,而且要求指定为某一特定的结构体类型 (例如, struct color) ,不能只指定结构 体名。其中可 以不出现结构体名,答案 D 就是缺省结构体名的隋况。而变量名

18、歹婊必须放在成员 列表后面,所以 B答案不能正确将cl定义为结构件变量。23. 下面能正确定义数组,并正确赋值的语句是。( 分数: 1.00 )A. int N=5 , bB. int a12=1 , 3C. int c2=1,2,3,4D. int d32=1,2 , 34 V解析: 评析 可以用下面的方法对二维数组初始化: 1 、分行给二维数组赋初值。 如 int a 34=1 , 2, 3, 4 , 5 , 6, 7,8 , 9, 10, 11 , 12 ;。2、将所有数据写在一个花括弧内,按数组排列的顺序对 各元素赋初值。如int a34=1 , 2, 3, 4, 5, 6, 7, 8

19、, 9, 10, 11, 12;。3、对局部元素赋初值。如 int a34=1 , 5 , 9 ;,它的作用是只对各行第一列的元素赋初值,其余元素值自动为 0。4、 如果对全部元素都赋初值(即提供全部初始数据) ,那么定义数组时对第一锥的长度可以不指定,但第二锥的 长度不能省。 如 int a34=1 , 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;与下面的定义 等价: int a4=1 ,2, 3, 4, 5, 6, 7, 8, 9, 10, 11 , 12 ;。24. 有如下程序 float fun (int x,int y)return(x+y) ; main

20、() int a=2,b=5, c=8; printf("%3.Of/n" ,fun(int)fun(a+c,B) ,(a-C) ) 程序运行后的输出结果为 _ 。( 分数: 1.00 )A. 编译出错B. 9 VC. 21D. 9.0解析: 评析 此题中先执行 (int)fun(a+c , b) 函数的调用,值为整型数值15;然后再执行 fun(15,(a-c)函数调用,值为单精度实型数值 9.000000 。输出为 %3.of, 即有效数长度为 3,没有小数位数,所以 最后结 果为 9。25. 以下描述中不正确的选项是 _ 。 ( 分数: 1.00 )A. 字符型数组中

21、可以存放字符串B. 可以对字符型数组进行整体输入、输出C. 可以对整型数组进行整体输入、输出VD. 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值解析: 评析 C 语言规定只能逐个引用数组元素而不合下次引用整个数组。字符数组的输入、输出 可以将整个字符串一次输入或输出。所以,选项 C 的说法是不正确的。26. 请选出司用作 C 语言用户标识符的一组标识符 。(分数: 1.00 )A. voidB. a3 b3 VC. ForD. 2a define 123 abc OO WORD IF case sizeof解析: 评析 C 语言规定标识符只能由字母、数字和下划线三种符号组成,而且第

22、一个字符必须 是字母或 下划线。选项 A 中的 void 是 C 语言的关键字, 不合法;选项 C 中的 case 和 C 语言的 关键字重名,不合法;选项D中的2a是数字打头而且sizeof和C语言的关键字重名,不合法。27. 以下程序的输出结果是 _ 。 main() int a=-1,b=1, k; if(+a < 0)&&!(b- <=0)printf("%d %d/n", a,b) ; else printf("%d %d/n",b,a);(分数: 1.00 )A. -1 1B. 0 1C. 1 0 VD. 0 0解

23、析:评析逻辑运算符的优先次序如下:!(非)&&(与)1|(或),但此题特别注意的是短路的概念。28. 下面程序的输出结果是 _。#define P1(x)printf(x) main() char d="p" P1(d) ;P1("d") ; (分数: 1.00 )A. pd VB. d"d"C. "p"dD. "p""d"解析: 评析 带参数的宏定义的一般形式为: #define 宏名 (参数表 )字符串程序中的P1(d) ;经宏置换后为 printf(d)

24、 ;,所以输出字符串 p ;程序中的 P1("d") ;经宏置换后 printf("d") 。29. 库函数 strcpy 用以复制字符串,假设有以下定义和语句: char str1="china",str210,*str3,*str4="china" ;那么对库函数 strcpy 的正确的调用是 。(分数: 1.00 )A. strcpy(strl,"people") ;B. strcpy(str2,"people"); VC. strcpy(str3,"peop

25、le") ;D. strcpy(str4,"people");解析: 评析 strcpy( 字符数组 1,字符串 2)其作用是将字符串 2 复制到字符数组 1 中去。注: (1)字符数组 1 必须定义得足够大; (2) “字符数组 1必须写成数组名的形式; (3) 复制时连同字符 串后面的 '/0' 一起复制到字符数组 1 中。30. 以下程序的输出结果是 _ 。 main() int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11 ;for(i=0;i < 4;i+=2)printf("%d",p

26、i); (分数: 1.00 )A. 5 2B. 5 1C. 5 3 VD. 9 7 解析:评析题中*P二&x11;是指将数组x的数组元素x11的地址赋值给指针变量 p,使p指 向 x11 这个数组元素,那么 p0 即为指针变量 p 当前所指向的数组元素 x11 的值。31. C 语言规定,程序中各函数之间 。(分数: 1.00 )A. 既允许直接递归调用也允许间接递归调用VB. 不允许直接递归调用也不允许间接递归调用C. 允许直接递归调用不允许间接递归调用D. 不允许直接递归调用允许间接递归调用 解析: 评析 C 语言规定,程序中各函数之间既允许 直接递归调用也允许间接递归调用。32.

27、 假设已定义: int a9 ,*p=a ;并在以后的语句中未改变 p 的值,不能表示 a1 地址的表达式是(分数: 1.00 )A. p+1B. a+1C. a+ VD. +p解析: 评析 数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使 这个指针常驻量“移动,指向数组的其他元素。33. 以下程序的输出结果是 _ 。 #include < stdio.h > main() int i ; for(i=1 ; i <5;i+) if(i%2)printf("*"); else continue; printf("#&qu

28、ot;); printf("$/n"); (分数: 1.00 )A. *#*#*#$B. #*#*#*$C. *#*#$ VD. #*#*$解析:评析 当 i 不可以整除 2 时打印“ * 然后打印“#,不能整除 2 那么执行 continue ,跳挝 printf("#") 语句,结束本次循环,返回到循环的起始点。当循环结束后,打印“$34. 运行以下程序后,如果从键盘上输入 china# <回车>,贝愉出结果为。 #include <stdio.h >main() int v1=0 ,v2=O; char ch ;while(

29、ch=getchar()!='#') switch(ch) case'a': case'h' :default :v1+ ;case'O' : v2+; printf("%d,%d/n",v1,v2); (分数:1.00 )A. 2,0B. 5,0C. 5,5VD. 2,5解析:评析执行完一个 case 后面的语句后,流程控制移到下一个case 继续执行。 “case量表达式 只是起语句标号作用,并不是在该处进行条件判断。在执行 switch 语句时,根据 switch 后面表达式的值 找到匹配的入口标号,就从

30、此标号开始执行下去,不再进行判断。35. 在结构化方法中,用数据流程图 (DFD) 作为描述工具的软件开发阶段是 。(分数: 1.00 )A. 可行性分析B. 需求分析 VC. 详细设计D. 程序编码解析:评析软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶 段常用的工具是数据流图和数据字典。36. 数据库系统的核心是 _ 。分数: 1.00 A. 数据模型B. DBMS VC. 软件工具D. 数据库解析: 评析数据库管理系统 DBMS 是数据库系统的核心。 DBMS 是负责数据库的建立、 使用 和维护的软件。 DBMS 建立在操作系统之上,实施对数据库的统一管

31、理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。37.请读程序:#include < stdio.h > func(int a,intb) int c; c=a+b ;return c ; main() intx=6,y=7,z=8,r, r=func(x-,y+, x+y),z-) ; printf("%d/n",r); 上面程序的输出结果是 _ 。(分数: 1.00 )A. 11B. 20C. 21 VD. 31解析: 评析函数 func 的作用是返回两个形参的和,第一个形参是x、y 分别自减和自增后的和,其中x- , y+ ,

32、 x+y 是一个逗号表达式,它的值应该等于 x+y ,所以整个表达式 x- , y+ , x+y 的值为 13, 而第二个形参的值为 8 根据语法规那么,应领先使用,后自增,所以 func 的返回值为 13+8=21 。上面程序片段的 输38. 请读程序片段 字符串内没有空格字符: printf"%d/n",strlen"ATS/n012/1/"出结果是分数: 1.00 A. 11B. 10C. 9 VD. 8解析: 评析 这个语句的目的是输出“ATS/n012/1/ 这个串的长度,在串中“ / 代表一个“ /,而“/1 代表数字1,也占一个字符,“/n

33、 是回车换行符,也占一个字符,加上A、T、S、0、1、2,共 g个字符。39. 能正确表示 a 和 b 同时为正或同时为负的逻辑表达式是 分数: 1.00 A.(a > =0|b >=0)&&(a<0|b =0)B.(a > 0&&b>=0)&&(a<0&&b<0)C.(a+b >0)&&(a+b <=0)D.a*b > 0 V解析: 评析 选项 A 中,表达式表示的是a,b 为异号;选项B 中,表达式表示的是 0,因为没有满足条件的值;选项 C 中,表达

34、式表示的是 0,因为没有满足条件的值;选项 D 表示的是 a 和 b 为同号。40. 请读程序: #include < stdio.h > main int a,b ; fora=1 , b=1 ; a<=100 : a+ ifb >=20break ; ifb%3 =1 b+=3 ; continue ; b=5 ; printf"%d/n",A;上面程序的输出结果是 。分数: 1.00 A. 7B. 8 VC. 9D. 10解析: 评析 break 语句的作用是用刊曲循环体; Continue 语句的作用是用于跳出本次循环。执行 第一次 循环时,

35、(b%3 = 1)为真,b=4,继续下一次循环,如此反复,当b=22时结束循环,共循环8 次,即 a=8 。41. 有以下程序 #include < stdio.h> main() int c ;while(c=getchar()!='/n')switch(c-'2') caseO: case1 : putchar(c+4) ; case 2:putchar(c+4); braeak ; case3 :putchar(c+3); default :putchar(c+2);break ; 从第一列开始输入以下数据,J代表一个回车符。2473 J程序的

36、输出结果是 。( 分数: 1.00 )A. 668977 VB. 668966C. 66778777D. 6688766解析: 评析 getchar() 函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进 入一个 多分支选择语句,根据 C-'2' 的值进行分支选择; putchar() 是在屏幕上打印一个字符,最后 的结果应当为 668977 。42. 请读程序: #include < stdio.h > main() int a=5,b=7,c=9; pintf("%d,%d,"a,b,C) ;printf("%d ,%

37、d",a,D) ; 上面程序的输出结果是 。( 分数: 1.00 )A. 5,7,9,5,7B. 5,7,5 , 7C. 5 , 7,不定 7,9D. 5 , 7, 5, 7,不定 V解析: 评析 printf 函数按格式控制符的个数输出表列中对应的数据,假设输出表列的个数大于格式控制 符个数,那么输出与格式控制符对应的输出表列的数据,输出表列中多的那么省略;假设格式控制 符个数大于输 出表列的个数,那么输出与格式控制符对应的输出表列的数据,格式控制符多的局部 输出的数据是随机的。43. 以下选项中,能定义s 为合法的结构件变量的是 。( 分数: 1.00 )A. typedef s

38、truct abc double a; char b10 ; s ;B. struct double a ; char b10 ; s VC. struct ABC double a ; char b10 ; ABCs ;D. typedef ABC double a ; char b10 ; ABCs ;解析: 评析 定义一个结构体类型的变量,可采用三种方法: 先定义结构体类型, 再定义变量名;在 定义类型的同时定义变量;直接定义结构类型变量,即不出现结构体名;选项B符合第三种定义方法。44. 请选出以下程序的输出结果 _ 。 #include < stdio.h > sub(i

39、nt*s,inty) static int t=3,y=st;t- ; main() int a=1,2,3,4,i,x=0; for(i=0 ; i < 4;i+) sub(a,x);printf("%d",x); printf("/n"); ( 分数: 1.00 )A. 1234B. 4321C. 0000 VD. 4444x 的值解析:评析x作为函数sub()的实参时,函数对 x值的改变没有返回主函数,并不能使得变化,所以在打印时, x 的值是始终不变的,即为0。45. 以下程序输出的结果是 。 main int a=65535 ; prin

40、tf"%d%u" , a,A ; 分数: 1.00 A. -1-1B. 65535 65535C. -1 65535 VD. 65535-1解析: 评析 printf 函数中不同类型的数据用不同的格式字符,其中 %d 是按整型数据的实际 长度输出十-1 :%u 用来输出 unsigned进制整数。变量a=65535以d格式输出时溢出输出值为该数的补码值,即型数 据,无符号整型变量的数值范围为065535 ,所以变量a=65535以%u格式输出的值为6553546. 以下表达中正确的选项是 _ 。分数: 1.00 A. 数据处理是将信息转化为数据的过程B. 数据库设计是指设计

41、数据库管理系统C. 如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,那么称其 为本关系 的外关键字 VD. 关系中的每列称为元组,一个元组就是一个字段解析:评析数据处理是指将数据转换成信息的过程,应选项A表达错误:设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型:关系中的行称为元组,对应存储文件中的记录,关系中的 列称为属性,对应存储文件中的字段,故 D 选项表达错误。47. 设有如下定义 struct ss char name 10; int age ; char sex ; std3 , *p=std; 以下各输入语句中错误的选项是 _。(分数: 1.

42、00 )A. scanf("%d" ,&(*.ag ;B. scanf("%s" , &stnam ;VC. scanf("%c",&std0.se ;D. scanf("%c" ,&(p- >se) ;解析: 评析 在 C 语言中,结构体变量的引用有三种等价方式: 1 、结构体变量成员名; 2、*p. 成员名;3、p- >成员名。因为std . name是字符数组名,本身代表地址,其前面不应该使用“&符号,所以选项 B 错误。48. 软件生命周期中所花费用最多的

43、阶段是 。分数: 1.00 A. 详细设计B. 软件编码C. 软件测试D. 软件维护 V解析: 评析 软件生命周期分为软件定义、软件开发及软件运行维护3 个骱段。此题中详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段。49. 以下程序段中,不是死循环的是 。分数: 1.00 A. int i=100 ;VB. unsigned k=0 ; while 1 do i=i%100+1;+k ifi >=100 )break ; while (k >=0);C. for (; ) ;D. int s=3379 ; while s+%2+s%2 s+ ;解析

44、: 评析当表达式为非0值时,执行 while 语句中的内嵌语句, 可用 break 语句跳出循环, 用 continue 语句结束本次循环。选项 A 不是死循环, 当 i=100 时跳出循环。选项C 为空循环语句。50. C 语言中以下表达正确的选项是 。分数: 1.00 A. 不能使用d . while语句构成的循环B. d while 语句构成的循环,必须用 break 语句才能退出C. d while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环D. d while 语句构成的循环,当 while 语句中的表达式值为零时结束循环"解析:评析选项A是错误的,C

45、语言支持do? while语句;选项 B 是错误的, do? while 构成的循环, 当 while 语句中的表达式值为零时结束循环,而不是非 零;选项C 也是错误的。二、 B 填空题 /B 总题数: 17,分数: 34.00 51. 算法的复杂度主要包括时间复杂度和 U 【1】 /U 复杂度。 分数: 2.00 填空项 1: 正确答案:空间解析:评析习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时 间复杂度。 算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。52. 数据的物理结构在计算机存储空间中的存放形式称为数据的U 【2】 /U 。分数: 2.00 填空

46、项 1: 正确答案:内模式 或物理模式 或存储模式解析:评析一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据库内部 的表示方 法。例如,记录的存储方式是顺序存储、索引按照什么方式组织;数据是否压缩存储, 是否加密等。53. 假设按功能划分,软件测试的方法通常分为U 【3】 /U 测试方法和黑盒测试方法。分数:2.00 填空项 1: 正确答案:白盒解析:评析软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方 法一般有两 类:黑盒测试方法和白盒测试方法。54. 数据库三级模式体系结构的划分,有利于保持数据库的U 【4】 /U 。分数: 2.00 填空项 1:正

47、确答案:数据独立性解析:评析数据库的三级模式体系结构把数据的组织管理工作进行了划分,把数据的具体组织留给 DBMS 管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式, 保证了数据的独立性。55. 在关系运算中,查找满足一定条件的元组的运算称之为U 【5】 /U 。分数: 2.00 填空项 1:正确答案:选择解析: 评析在关系数据库中,选择运算也是一个元运算,关系R 通过选择运算 并由该运算给出所选择的逻辑条件后仍为一个关系。这个关系是由 R中的那些满足逻辑条件的元组所组成。56. 在 C 语言中以 16 位 PC 机为例,一个 float 型数据在内存中所

48、占的字节数为 4:一个 double 型数据在内存中所占的字节数为 U 【6】 /U 。分数: 2.00 填空项 1: 正确答案:8解析:评析在一般 16位 PC 机中,一个 float 型数据在内存中占 4个字节32 位,一个 double 型数据占 8 个字节。57. 设有以下变量定义,并已赋确定的值,char w ;int x ; floaty ; double Z ;那么表达式: w*x+z-y所求得的数据类型为上U 【7】 /U 。分数: 2.00 填空项 1: 正确答案: double 型或双精度型解析:评析先进行w*x的运算,先将字符型 w转换成整型,运算结果为整型;再将 w*x

49、的 结果与z相加,要先将第一步的整型转换为double型,运算结果为 double型;最后将 w*x+z的结果与 y 相减,要先将 float 型 y 转换成 double 型,结果为 double 型。58. 假设运行时给变量 x 输入 12 ,那么以下程序的运行结果是 U 【 8】 /U ; main int x,y ; scanf""%d"" &x ;y=x >12?x+10 :x-12 ; printf ""%d/n"",y ;分数: 2.00 填空项 1: 正确答案:0解析: 评析 三目运算

50、符的形式为 表达式 1?表达式 2:表达式 3 。当表达式 1 值为真时,返回 表达式 2的值;为假时,返回 表达式 3的值。题中因为 x>12 为假,所 以结果为 x-12 ,即为 0。59. 四条语句:x+ ;、+x ;、x=x+1 ;、x=1+x ;,执行后都使变量x中的值增1,请写出一条同一功能的 赋值语句 不得与列举的相同U 【9】 /U 。分数: 2.00 填空项 1: 正确答案: x+=1;解析:评析题面中的四条语句的作用是使x的值加1,在C中有多种方法可以对变量进行加1操作,这里可以利用 C 的复合赋值运算符 +=实现,此题答案为 x+=1;。60. 设有以下定义和语句,

51、那么 * * P+2+1的值为U【10 】/U。int32=10,20,30,40,50,60,*p2 ; p=a;分数: 2.00 填空项 1: 正确答案:60解析:评析此题定义了一个3行2列的二维数组a,并定义了一个指向两个元素的一维数组指针P,让p指向二维数组a的首行。*p+2+1是引用a21,其值是60。61. 假设要使指针 p 指向一个 double 类型的动态存储单元,请填空。 p=U【11】 /Umalloc sizeofdouble ;分数: 2.00 填空项 1: 正确答案: double* 解析: 评析 函数 malloc 返回的是 void* ,所以假设要使指针指向一个 double 类型,那么必须进行类 型转换,类型转换格式为: 数据类型 *。62. 下面程序的功能: 输出 100 以内能被 3整除且个位数为 6 的所有整数, 请补充完整。 main int i,j; for i=0;U【12】/U ;i+ j=i*10+6 ; ifU【13】/Ucontinue; printf"%d" ,j; 分数: 2.00 填空项 1: 正确答案: 12 i < 10解

温馨提示

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

评论

0/150

提交评论