二级C语言笔试398

上传人:无*** 文档编号:85263576 上传时间:2022-05-05 格式:DOC 页数:18 大小:179KB
收藏 版权申诉 举报 下载
二级C语言笔试398_第1页
第1页 / 共18页
二级C语言笔试398_第2页
第2页 / 共18页
二级C语言笔试398_第3页
第3页 / 共18页
资源描述:

《二级C语言笔试398》由会员分享,可在线阅读,更多相关《二级C语言笔试398(18页珍藏版)》请在装配图网上搜索。

1、二级 C 语言笔试 -398( 总分: 100.00 ,做题时间: 90 分钟 ) 一、选择题 (总题数: 40,分数: 40.00)1. 算法的空间复杂度是指A) 算法程序的长度 B) 算法程序中的指令条数C) 算法程序所占的存储空间 D) 执行算法需要的内存空间(分数: 1.00 )A.B.C.D. V解析:解析 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指 执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。2. 下列叙述中正确的是A) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构B) 线性表的链式存储结构与顺序存

2、储结构所需要的存储空间是相同的C) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构D) 顺序存储结构能存储有序表,链式存储结构不能存储有序表(分数: 1.00 )A.B.C. VD.解析: 解析 线性表的顺序存储结构是把线性表中相邻元素存放在相邻的内存单元中,而链式存储结构是 用一组任意存储单元来存放表中的数据元素,为了表示出每个元素与其直接后继元素之间的关系,除了存 储元素本身的信息外,还需存储一个指示其直接后继存储位置的信息。故线性表的链式存储结构所需的空 间一般要多于顺序存储结构。3. 对于循环队列,下列叙述中正确的是A) 循环队列中元素的个数是由队头指针和队尾指针共同决定B

3、) 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,队头指针一定大于队尾指针D) 在循环队列中,队头指针一定小于队尾指针(分数: 1.00 )A. VB.C.D.解析: 解析 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队 尾指针是在不断变化的, 有时可能会出现队头指针大于队尾指针的情况, 也可能是队尾指针大于队头指针4. 在面向对象方法中,实现信息隐蔽是依靠A) 对象的继承 B) 对象的多态 C) 对象的封装 D) 对象的分类(分数: 1.00 )A.B.C. VD.解析: 解析 封装是一种信息隐蔽技术,目的在于将对象的使用者

4、和对象的设计者分开。用户只能见到对 象封装界面上的信息,不必知道实现的细节。封装一方面通过数据抽象,把相关的信息结合在一起,另一 方面也简化了接口。5. 软件生命周期是指A) 软件的开发过程B) 软件的运行维护过程C) 软件产品从提出、实现、使用维护到停止使用退役的过程D) 软件从需求分析、设计、实现到测试完成的过程 (分数: 1.00 )A.B.C. VD.解析: 解析 通常将软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。6. 用数据流图 (DFD) 作为描述工具的软件开发阶段是A) 可行性分析 B) 需求分析 C) 概要设计 D) 详细设计(分数: 1.00 )A.B.

5、VC.D.解析: 解析 结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用 数据流图、数据字典、结构化语言、判定树和判定表等工具,来建立一种新的、称为结构化规格说明的目 标文档。7. 耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是A) 提高耦合性、降低内聚性有利于提高模块的独立性B) 降低耦合性、提高内聚性有利于提高模块的独立性C) 耦合性是指一个模块内部各个元素间彼此结合的紧密程度D) 内聚性是指模块间互相连接的紧密程度分数: 1.00 )A.B. VC.C. 解析:解析耦合性是模块间互相连接的紧密程度的度量,内聚性是一个模块内部各个元素间彼此结

6、合的 紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高 模块内的内聚性,这样有利于提高模块的独立性。8. 在数据管理技术发展的三个阶段中,数据共享最好的是A人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同(分数:1.00)A.B.C. VD.解析:解析人工管理阶段:计算机出现的初期,主要用于科学计算,没有大容量的存储设备。处理方式 只能是批处理,数据不共享,不同程序不能交换数据。文件系统阶段:把有关的数据组织成一种文件,这 种数据文件可以脱离程序而独立存在,由一个专门的文件管理系统实施统一管理。但是,数据文件仍高度 依赖于其对应的程序,

7、不能被多个程序通用。数据库系统阶段:对所有的数据实行统一规划管理,形成一 个数据中心,构成一个数据仓库,数据库中的数据能够满足所有用户的不同要求,供不同用户共享,数据 共享性显著增强。9. 下列叙述中正确的是A为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(分数:1.00)A. VB.C.D.解析:解析元组是数据的最小单位,不能再分;关系的框架称为关系模式;关系框架与关系元组一起构 成一个关系,也就是一个关系对应一张二维表。选项A)中,在建立关系前,要先构造数据的逻辑关系是正

8、确的。10. 设有如下关系表则下列操作中,正确的是A) T=Rns B) T=R US C) T=RXS D) T=R/S(分数:1.00)A.B. VC.D.解析:解析从图中可以看出,关系 T是关系R和关系s的简单合并,而合并的符号为U,所以答案为T=RJ s。11. 以下叙述中错误的是A) C语言是一种结构化程序设计语言B) 使用三种基本结构构成的程序只能解决简单问题C) 结构化程序设计提倡模块化的设计方法D) 结构化程序由顺序、分支、循环三种基本结构组成(分数: 1.00 )A.B. VC.D.解析: 解析 C 语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有 3种

9、基本 结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并 充分利用现有模块搭建新系统,提高程序的重用性和可维护性。12. 下面四个选项中,均是不合法的用户标识符的选项是A) c-b goto int B) A P_0 do C) float 1a0_A D) _123 temp goto(分数: 1.00 )A. VB.C.D.解析: 解析 C 语言规定的标识符只能由字母、数字和下划线 3 种字符组成,第一个字符必须为字母或下 划线,并且不能使用C语言中的关键字作为标识符。选项 A)中goto和int是关键字,c-b中-不是组成标识符的3种字符之一;选

10、项 B)中do是关键字;选项 C)中float是关键字;选项 D)中goto是关键字。 所以,均是不合法用户标识符的选项是 A)。13. 以下选项中值为 1 的表达式是A) 1-0 B) 1-/0 C) 1-0 D) /0-0(分数: 1.00 )A.B. VC.D.解析: 解析 字符常量 0 的值是 48, 1 的值是 49, /0 的值是 0。所以 1-0=-47, 1-/0=1, 1-0=49 ,/0-0=-48 。14. 已知各变量的类型说明如下:int k , a, b;unsigned long w=5;double x=1.42 ;则以下不符合C语言语法的表达式是A) x%(-3

11、) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)(分数: 1.00 )A. VB.C.D.解析:解析“是求余运算符或模运算符,“ %两侧均应为整型数据,选项 A中的x是double型数 据。15. 设变量 x 为 float 型且已赋值, 则以下语句能将 x 中的数值保留到小数点后两位, 并将第 3 位四舍五入 的是A) x=(x*100+0.5)/100.0B) x=(int)(x*.100+0.5)/100.0C) x=x*100+0.5/100.0D) x=(x/100+0.5)*100.0(分数: 1.00 )A.B. VC.D.解析:

12、 解析 (int)(x*100+0.5) 把 float 型数据 (x*100+0.5) 强制转换成 int 型,这样就可以去掉小数点,+0.5 就是为了四舍五入。 例如 x=1.234,则(1.234*100+0.5)=123.9,则(int)123.9/100.0=123/100.0=1.2316. 以下程序运行后的输出结果是main()int i=1, j=2 , k=3;if(i+=1&(+j=3|k+=3) printf(%d%d%d/n,i,j,k)A) 1 2 3 B) 2 3 4 C) 2 2 3 D) 2 3 3(分数: 1.00 )A.B.C.D. V解析: 解析 首先 i

13、+=1&(+j=3|k+=3) 是一个逻辑表达式, i+=1&(+j=3|k+=3) 分为两部 分:i+=1和什+j=3|k+=3),它们的关系是且”的关系,所以两部分都会被执行,其中i+=1是先判断i是否等于1(因为+在后面),此时i=1,在执行完后i=2。然后执行第二部分什+j=3c+=3), 又分为两部分:+j=3和k+=3,这两部分是“或”的关系,如果第一部分满足条件就不执行后面的,如 果第一部分不满足条件,就执行后面的部分。+j=3是j先自己加1,然后判断j是否等于3,这部分的结果为真,所以后面的部分不再执行,因此最后的结果为 i=2 j=3 k=3。17. 当变量 c 的值不为 2

14、、4、6 时,值也为”真”的表达式是A) (c=2)|(c=4)|(c=6)B) (c =2&c =2&c =2&c =6)&(c%2!=1)(分数: 1.00 )A.B. VC.D.解析:解析满足表达式(c =2&X =6)的整型变量c的值是2, 3, 4, 5, 6。当变量c的值不为2, 4, 6时,其值只能为3或5,所以表达式c! =3 .和c!=5中至少有一个为真,即不论 c为何值,表达式 B)都 为“真”。18. 设变量均已正确定义,若要通过scanf(%d%c%d%c, &a1,&c1, &a2,&c2);语句为变量 al和a2赋数值10和20,为变量c1和c2赋字符X和Y,以下所

15、示的输入形式中正确的是(注:口代表空格字符)A) 10 口 X 口 20 口 YV 回车 B) 10 口 X20 口 Yv 回车C) 10 口 XV 回车 D) 10X V 回车20 口 YV回车 20Y V回车(分数: 1.00 )A.B.C.D. V解析:解析本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空格会作为字符赋值给变量 c1 ,而不会被解释成分隔符。19. 设有定义: int k=1,m=2;float f=7 ;,则以下选项中错误的表达式是A) k=k =k B) -k+ C) k%int(f) D) k=f=m(分数: 1.00 )A.

16、B.C. VD.解析:解析选项C)中int(f)不正确,因为强制类型转换表示为:(类型名)(表达式),正确表示为(int)f ,20. 有以下程序:#include V stdio.h main()int i,j,m=55;for(i=1 ; i V =3; i+)for(j=3;j V =i,j+)m=m%j,printf(%d/n,m) ;程序的运行结果是A) 0 B) 1 C) 2 D) 3(分数: 1.00 )A.B. VC.D.解析: 解析 本题考查循环语句的嵌套以及条件的判断问题。 在程序中, 内层循环判断条件为“ jV=i”, 而j的初值为3,故当i的值为1和2时,内层循环体都不

17、会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为1。21. 有定义语句: char s10 ;,若要从终端给 s 输入 5 个字符,错误的输入语句是 A) gets(&s0); B) scanf(%s,s1);C) gets(s); D) scanf(%s,s+1);(分数: 1.00 )A.B. VC.D.解析:解析在格式输入中,要求给出的是变量的地址,而B)答案中给出的s1是一个值的表达式22. 下面的函数调用语句含有实参的个数为func(exp1, exp2)(exp3, exp4, exp5);A) 1 B) 2 C) 4 D) 5(分数: 1.00 )A

18、.B. VC.D.解析: 解析 函数调用的一般形式为:函数名 (形参表) ,若函数无形参,调用形式为:函数名 () ,、当所 调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用 语句的参数个数为 2。23. 有以下程序:void sort(int a,int n)int i,j,t;fbf(i=O ; i v n ; i+)for(j=i+1 ; j v n ; j+)if(ai v aj) t=ai;ai=aj;aj=t;main()int aa1O=1,2,3,4,5,6,7,8,9,1O,i;sort(aa+2, 5);for(i=O;i v1O

19、;i+)printf(%d, ,aai);printf(/n) ;程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,1O, B) 1,2,7,6,3,4,5,8,9,1O,C) 1,2,7,6,5,4,3,8,9,1O, D) 1,2,9,8,7,6,5,4,3,1O,(分数: 1.OO )A.B.C. VD.解析: 解析 本题重点考查的是函数的调用。程序中 sort 函数的作用是将指定的数由大到小排序。被调 函数“ sort(aa+2 , 5); ”中的实参aa+2是指aa2的地址,将其传给了形参a,使得形参中a0的值为主函数中aa2的值,即3;实参中的5传给形参中的n,在so

20、rt函数中起着限制循环次数的作用,即 使得参加排序的只有 5 个数, 从 aa2 到 aa6 ,所以本题输出的结果是 1, 2, 7, 6, 5, 4, 3, 8, 9, 10,。24. 设变量已正确定义并赋值,以下正确的表达式是A) x=y*5=x+z B) int(15.8%5)C) x=y+z+5,+y D) x=25%5.0(分数: 1.00 )A.B.C. VD.解析:解析赋值运算符左边必须是单一变量名,而选项A)中的“y*5=x+z”部分是非法赋值。在求余运算中的操作对象只能是整型,故选项B)和选项D)是错误的。选项 C)为逗号表达式。25. 有以下程序:#include void

21、 fun(int a,int b)int t ;t=a ; a=b; b=t ;main()int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;i 10;i+=2) fun(ci,ci+1);for(i=0;i 10;i+) printf(%d, ,ci);printf(/n) ;程序的运行结果是A) 1,2,3,4,5,6,7,8,9,0, B) 2,1,4,3,6,5,8,7,0,9,C) 0,9,8,7,6,5,4,3,2,1, D) 0,1,2,3,4,5,6,7,8,9,(分数: 1.00 )A. VB.C.D.解析:解析在C语言中函数参数的传递是“传值”的,

22、即形参和实参是两个没有关系的变量,函数fun虽然看似交换了参数值,但是只交换了形参的值,其结果不会传递给实参,因此数组c 没有变化。主函数中给数组c元素赋值1,2,,9,0。第一个for循环语句中调用fun函数,该函数功能是交换变量的数 值,注意循环变量 i 的增量。第二个 for 循环语句将数组 c 中元素的值进行输出。26. 设有如下程序段:char s20=beijing , *p;p=s;则执行p=s ;语句后,以下叙述中正确的是A) 可以用 *p 表示 s0B) s数组中元素的个数和p所指字符串长度相等C) s 和 p 都是指针变量D) 数组 s 中的内容和指针变量 p 中的内容相等

23、(分数: 1.00 )A. VB.C.D.解析:解析p=s;后,指针p指向s的首地址,*p=sO,因此选项A)是正确的;p是字符串指针,所指 向的字符串为“ beijing ”,其长度为 7,而数组s中元素的个数为20,因此选项B)和D)是错误的;s是 数组,不是指针变量,所以选项 C)也是错误的。27. 有以下程序:#include void fun(int p)int d=2;p=d+; printf(%d,p);main()int a=1;fun(a);pnntf(%d/n ,a); 程序运行后的输出结果是A) 32 B) 12 C) 21 D) 22(分数: 1.00 )A.B.C.

24、VD.解析: 解析 C 语言中函数参数的传递满足“单向传递”,只由实参传给形参,而不能由形参传给实参。fun函数体内输出p的值为2,而并没有影响到fun函数外a的值,a的值在main函数体内仍然为1,所以 选项C)正确。28. 以下程序的输出结果是fun( char p10)int n=0,i;for(i=0 ; i 7; i+)if(pi0=T) n+;return n;main()char str10=Mon,Tue,Wed,Thu,Fri,Sat,Sun;printf(%d/n,fun(str);A) 1 B) 2 C) 3 D) 0分数: 1.00 )A.B. VC.D.解析:解析此程

25、序是统计一周7天中英文名称首字母为“ T的个数,piO是字符串的首字符,一共 有两个“T”因此n=2。29. 下面程序由两个源程序文件 t4.h 和 t4.c 组成,程序编译运行的结果是 t4.h 的源程序为:#define N 1O#define f2(x)(x*N)t4.c 的源程序为:#include #define M 8#define f(x)(x)*M)#include t4.hmain()int i,j ;i=f(1+1) ;j=f2(1+1)printf(%d%d/n ,i,j);A) 92O B) 1611 C) 911 D) 161O(分数: 1.OO )A.B. VC.D

26、.解析: 解析 i=f(1+1) 展开后为 i=(1+1)*M=(1+1)*8=16 。 j=f2(1+1) 展开后为 j=1+1=1+1*1O=11 。30. 下面的程序段运行后,输出结果是int i,j,x=O;static int a88;for(i=O ;i 3;i+)for(j=O ;j3;j+)aij=2*i+j;for(i=O ;i int f(int n) ;main()int a=3,s; s=f(a);s=s+f(a);printf(%d/n,s);int f(int n)static int a=1;n+=a+;return n;程序运行后的输出结果是A) 7 B) 8

27、C) 9 D) 10(分数: 1.00 )A.B.C. VD.解析:解析s=f(a)表达式第一次调用f(n)函数时,f(n)函数的运行结果为n=4,a=2,即s等于4;s=s+f(a)表达式第二次调用f(n)函数时,f(n)函数的运行结果为n=5,所以得到s的值为9。32. 有以下程序:#include v stdio.h main()int c=0,k;for(k=1 ; kv 3; k+)switch(k)default:c+=k ;case 2:c+ ; break;case 4:c+=2;break;printf(%d/n,c) ;程序运行后的输出结果是。A) 9 B) 7 C) 5

28、D) 3分数: 1.00 ) A.B.C.D. V解析:解析第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没 有break语句,所以不会跳出switch结构,会接着执行case2后面的语句,即c=c+1=2,然后跳出switch ; 第二次循环时,k=2,直接执行case2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行 输出语句。33. 有以下程序:#include struct ordint x,y; dt2=11,12,13,14;main()struct ord *p=dt;printf(%d,+(p-x);pr

29、intf(%d/n,+(p-y);程序运行后的输出结果是A) 11,12 B) 12,13 C) 13,14 D) 14,11(分数: 1.00 )A.B. VC.D.解析: 解析 本题中定义了一个结构体数组 dt2 ,其中 dt0.x=11,dt0.y=12,dt1.x=13,dt1.y=14。在 main 函数中指针 p 指向了结构体数组的第一个元素,因此 p-x 值为 11, p-y 值为 12,自加运算的结 果分别为 12 和 13。34. 有以下程序:#define f(x) (x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);pri

30、ntf(%d,%d/n,i1,i2);程序运行后的输出结果是A) 64, 28 B) 4,4 C) 4,3 D) 64, 64(分数: 1.00 )A.B.C. VD.解析: 解析 本题考查的是宏定义。对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define 命令行中的形参。本题中“ i仁f(8)/f(4) ”用“#defme f(x)(x*x) ” 代替得 i1=(8*8)/(4*4) ,结 果为 4;“i2=f(4+4)/f(2+2) ”用“ #define f(x)(x*x) ”代替得 i2=(4+4*4+4)/(2+2*2+2) ,求得结果为 3。 故本题输出的值为

31、4, 3。35. 设有以下说明语句:struct exint x;float y;char z; example;则下面的叙述中不正确的是A) struct 是结构体类型的关键字 B) example 是结构体类型名C) x,y,z 都是结构体成员名 D) struct ex 是结构体类型名(分数: 1.00 )A.B. VC.D.解析: 解析 本题中, struct ex 是结构体类型名, example 是结构体变量名。36. 有以下程序:int fun1(double a) return (int)(a*=a);int fun2(double x,double y)double a=0,

32、b=0; a=fun1(x);b=fun1(y);return(int)(a+b);main()double w;w=fun2(1.1,2.0);程序执行后变量w中的值是A) 5.21 B) 5 C) 5.0 D) 0.0(分数: 1.00 )A.B.C. VD.解析:解析本题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的 混合运算,整型数据被转换为实型数据。37. 有以下程序:#include #include main()char str20=One * World , One * Dream! , *p=str1;printf(%d, ,strl

33、en(p);printf(%s/n ,p);程序运行后的输出结果是A) 9,One * World B) 9,One * Dream! C) 10,One * Dream! D) 10,One * World(分数: 1.00 )A.B.C. VD.解析:解析可以将二维数组str看成是一个特殊的一维数组,其元素也是一个数组。那么,str0为“One* World , str1 为 “One * Dream! ”。38. 阅读下列程序,当运行函数时,输入 abc de fg z10 ,则输出为#include#include#includeint fun (char *str)int i,j=0

34、;for(i=0;stri!=/0;i+) if(stri!=) strj+=stri;strj=/0;main()char str81;int n;printf(Input a string:);gets(str) ;puts(str) ;fun(str) ;printf(%s/n,str) ;A) abcB) z10C) abc de fg z10 abcdefgz10D) abc de fg z10(分数: 1.00 )A.B.C. VD.解析:解析本题题意是要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留

35、下”字符的算法,以前的题目亦是如此。用 stri 从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格( 注意在 if() 的单引号之间有一个空格 ),则将其保存在 strj 中。注意 j 的下标变化、初值及最后加串结束符 /0。39. 下面程序的运行结果是#include main()static char a=Languagef,b=programe;char *p1, *p2; int k ;p1=a; p2=b;for(k=0 ;k =7; k+)if(*(p1+k)=*(p2+k) printf(%c, *(p1+k);A) g ae B) ga C) Language

36、 D) 有语法错误(分数: 1.00 )A. VB.C.D.解析:解析本题考查用指针来引用字符数组元素的方法。指针p1+k相当于指针pl向后移动了 k个字符的位置,指针p2同理。40. 有以下程序:#include main()int a=5,b=1,t;t=(a 2)|b;printf(%d/n,t);程序运行后的输岀结果是A) 21 B) 11 C) 6 D) 1(分数:1.00 )A. VB.C.D.解析:解析按位或运算符“是双目运算符,其功能是参与运算的两个数对应的二进位相或。左移运算符“”是双目运算符,其功能是把“”左边的运算数的各二进位全部左移若干位,由“” 右边的数指定移动的位数

37、,高位丢弃,低位补0。将5变换为二进制数为101,左移2位后为10100, 1转换为二进制数为00001,10100与00001进行或运算后为10101,再将其转换为十进制数为 21。因此,本题 答案为A)。二、填空题(总题数:15,分数:60.00)41. 设二叉树如下:对该二叉树进行后序遍历的结果为 (分数:4.00 )填空项1: (正确答案:EDBGHFCA解析:解析后序遍历二叉树的定义为:若二叉树为空,则空操作;否则,后序遍历左子树,后序遍历右 子树,访问根结点。根据该规则,遍历结果应为EDBGHFCA42. 假设用一个长度为100的数组(数组元素的下标从 099)作为栈的存储空间,栈

38、底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果 bottom=99,top=60(数组下标),则栈中具有1个元素。(分数:4.00 )填空项1: (正确答案:40)解析:解析与一般的线性表一样,在程序设计语言中,用一维数组S(1,m)作为栈的顺序存储空间,其中m为栈的最大容量。通常,栈底指针指向栈空间的栈中的元素个数等于“栈底指针-栈顶指针+T,即99-60+仁40。43. 软件测试用例包括1值集和输岀值集。(分数:4.00 )填空项 1: (正确答案:输入)解析: 解析 软件测试用例是为了有效发现软件缺陷而编写的,包含测试目的、测试步骤、期望测试结果 的特定集合。正确认识和

39、设计软件测试用例可以提高软件测试的有效性,便于测试质量的度量,增强测试 过程的可管理性。软件测试用例包括输入值集和输出值集。测试用例是软件测试的核心。44. 在关系数据模型中,二维表的行称为元组,二维表的列称为 1 。(分数: 4.00 )填空项 1: (正确答案:属性)解析: 解析 本题考查关系模型中的常用术语,二维表中的一列称为属性。45. 在数据库设计中,将 E-R图转换成关系数据模型的过程属于1阶段。(分数: 4.00 )填空项 1: (正确答案:逻辑设计)解析:解析采用E-R方法得到的全局概念模型是对信息世界的描述,并不适用于计算机处理,为了适应 关系数据库系统的处理,必须将E-R图

40、转换成关系模式,这是逻辑设计的主内容。46. 以下程序运行后的输出结果是 。main()int m=011 , n=11 ;printf(%d%d/n,+m,n+)(分数: 4.00 )填空项 1: (正确答案: 1011 )解析:解析八进制数011等于十进制数9。表达式+m的值是m自增后的值,为10;表达式n+的值自 增前,为 11 。所以最终输出结果是 1011。47. 下面程序的运行结果是 。#include main()int y , a;y=2, a=1 ;while(y-!=-1)doa*=y ; a+; while(y-);printf(%d,%d,a,y);(分数: 4.00

41、)填空项 1: (正确答案: 1, -2 )解析:解析本题考查嵌套的循环结构。题中外层while循环的循环条件是y-!=-1 ,即y =0;内层dowhile循环的循环条件是 y-,即y-0,y =1。48. 有以下函数void prt(char ch , int n)int i ;for(i=1 ; i x);程序运行后的输出结果是 。(分数: 4.00 )填空项 1: (正确答案: 11)解析: 解析 本题的考查点是结构体变量的初始化。该题是对外部存储类型的结构体变量进行初始化。初始化后,x的值为10, y的值为100。+(p-x)中,首先p-x是把p指向结构体变量s中的x成员,此时 +(

42、p-x)就相当于+x,这时x先自增,再使用,所以此时x的值为11。50. 函数 fun 的返回值是 。fun(char *a , char *b)int num=0,n=0;while(*(a+num)! =/0) num+;while(bn) *(a+num)=bn;num+;n+;return num;(分数: 4.00 )填空项 1: (正确答案:字符串 a 和 b 的长度之和)解析:解析本题首先通过第1个while循环计算字符串a的长度,再通过第2个循环,将字符串a和b 相连,最后返回连接后的总长度。51. 函数my_cmp()的功能是比较字符串 s和t的大小,当s等于t时返回0,否则

43、返回s和t的第一个不同 字符的ASQ码差值,即s t时返回正值,s v t时返回负值。请填空。My_cmp( char *s,char *t)while(*s=*t)if(*s=/0)return 0;+s; +t ;return ;(分数: 4.00 )填空项 1: (正确答案: *s-*t )解析: 解析 两字符串大小的比较必须从它们的首字符开始,在对应字符相等的情况下循环,直至不相等结束。 相等时, 若字符串已到了字符串的结束标记符, 则两字符串相同, 函数返回 0 值;若还有后继字符, 则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空白处应

44、填入*s-*t ,保证在st时,返回正值,当st时,返回负值。52. 设有以下定义和语句,则 *(*(p+2)+1) 的值为 。int a32=10, 20, 30, 40, 50, 60,(*p)2;p=a;(分数: 4.00 )填空项 1: (正确答案: 60)解析:解析本题中,代码定义3行2列的二维数组a,定义指向两个元素的一维数组指针p,并让p指向二维数组a的首行,则代码*(*(p+2)+1)中的p+2指向二维数组a的第3行a2 , *(p+2)指向a20, *(p+2)+1 指向 a21, *(*(p+2)+1) 是引用 a21 ,其值是 60。53. 有以下程序:#include

45、main()int a=1,2,3,4,5,6, *k3,i=0;while(i 3)ki=&a2*i;printf(%d , *ki);i+;程序运行后的输出结果是 。(分数: 4.00 )填空项 1: (正确答案:135)解析: 解析 当 i=0 时, k0=&a0 ;当 i=1 时, k1=&a2 ;当 i=2 时, k2=&a4 ,则打印结果为135。54. 以下程序的输出结果是 。#include main()int a5=2,4,6,8,10,*p;p=a;p+;printf(%d , *p) ;(分数: 4.00 )填空项 1: (正确答案:4)解析:解析在主函数中,语句p=a;

46、 p+ ;使用指针p指向数组a1,所以输出结果为4。55. 有以下程序:#include main()FILE *pf;char *s1=China , *s2=Beijing;pf=fopen(abc.dat , wb+);fwrite(s2 , 7, 1, pf) ;rewind(pf) ; /* 文件位置指针回到文件开头 */fwrite(s1 , 5, 1, pf) ;fclose(pf) ;以上程序执行后, abc.dat 文件的内容是 。(分数: 4.00 )填空项 1: (正确答案: Chinang )解析:解析本题考查文件相关知识。“ wb+用于打开或建立二进制文件并允许对其进行读和写操作。 文件操作先写入了 s2 ,然后将文件指针移动到文件夹,再写入 s1 ,这样 s1 就会覆盖掉一部分 s2 的内容。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!