下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级 C 语言笔试 -349( 总分: 103.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 50,分数: 70.00)1. 下列选项中不属于软件生命周期开发阶段任务的是 ( ) 。A) 软件测试 B) 概要设计 C) 软件维护 D) 详细设计(分数: 2.00 )A.B.C. VD.解析:解析 软件的生命周期可分为软件定义、软件开发及软件运行维护 3 个阶段。其中软件定义阶段的 主要工作有可行性研究与计划制定和需求分析等:软件开发阶段的主要工作有概要设计、详细设计和测试 等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。2. 在 Windows 98 的开始菜单中,包括了
2、 Windows 98 系统提供的 ( )A) 全部功能B) 初始功能C) 主要功能D) 部分功能(分数: 1.00 )A. VB.C.D.解析:3. 已知二叉树BT的后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 。A) cedba B) acbed C) decab D) deabc(分数: 1.00 )A. VB.C.D.解析:解析二叉树BT时后序遍历序列为dabec,故BT的根结点为c ;而BT的中序遍历序是debac,即 遍历序列中最后一个结点为跟结点,说明BT的右子树为空。由BT的后序遍历序列和中序遍历序列可知BT的左子树(LST)的后序遍历序列和中序遍
3、历序列分别为dabe和deba(树是递归定义的);故LST的根结点是e,在由LST的中序遍历序列可知其左子树为d。因此BT的前序遍历序列为 cedba。4. 设有如下定义:char*a3="aa" , "bb" , "cc" ;则以下说法正确的是 。A) 数组 a 的第二个元素的值是 "bb"B) 输出 "cc" 使用语句 printf("%s" , a2) ;C) 数组 a 的 3 个元素分别存放的是含有两个字符的一维字符数组D) 数组 a 的 3 个元素中各自存放了字符
4、'a' 、 'b' 和 'c'(分数: 1.00 )A.B. VC.D.解析:5. 有以下程序的输出结果是int f(int b 4)int i,j,s=0;for(j=0;j<4;j+)i=j;if(i>2) i=3-j;s+=bij;return s;main( )int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0;printf( “%d/n”,f(a);A) 12B) 11C) 18D) 16分数: 1.00 )A.B.C.D. V解析: 解析 程序执行过程为: j i i=3-j s 0 0 不执
5、行 1 1 1 不执行 3 2 2 不执行 12 3 3 0 16 4结束循环。6. 以下叙述中错误的是 。A) 改变函数形参的值,不会改变对应实参的值B) 函数可以返回地址值C) 可以给指针变量赋一个整数作为地址值D) 当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL(分数: 2.00 )A.B.C. VD.解析: 解析 函数的形参接收传递给函数的变元的值,它类似于局部变量,也是动态的,当函数退出时自 动销毁,因此,改变函数形参的值,并不会改变对应实参的值,所以选项 A 是正确的。选项 B 是正确的, 函数可以返回地址值即返回一个指针,只是必须明确声明返回的指针类型。
6、选项C是错误的,因指向变量的指针既不是整数,也不是无符号整数,它只是某类型数据的内存地址,因此不能赋一个整数给指针变量 作为地址值。选项 D是正确的,头文件stdio.h 中定义了宏NULL,它是一个空指针常数,若给指针变量赋 NULL,即将指针初始化为空。7. 在软件开发中,需求分析阶段产生的主要文档是 ( ) 。A) 可行性分析报告 B) 软件需求规格说明书C) 概要设计说明书 D) 集成设计计划(分数: 2.00 )A.B. VC.D.解析: 解析 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的 交流提供方便,可以直接支持目标确认,又可以作为控制软件开发
7、进程的依据。8. 数据管理技术发展的三个阶段中, ( ) 没有专门的软件对数据进行管理。I.人工管理阶段文件系统阶段山数据库阶段A) 仅I B)仅山C) I和n D) U和山(分数: 2.00 )A. VB.C.D.解析: 解析 数据管理技术发展的三个阶段中,只有人工管理阶段, 没有操作系统, 没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。 在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。9. 在数据库设计中,将 E-R 图转换成关系数据模型的过程属于 ( ) 。A) 需求分析阶段 B) 概念没计阶段C)
8、逻辑设计阶段 D) 物理设计阶段(分数: 1.00 )A.B.C. VD.解析:解析数据库的设计阶段包括需求分析、概念设计、逻辑设计和物理设计,其中将E-R图转换成关系数据模型的过程属于逻辑设计阶段。10. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是。A) x=y=5 ; B) x=n%2.5 ; C) x+n=i D) x=5=4+1;(分数: 1.00 )A. VB.C.D.解析:解析对于取模运算符“ %,不能用于浮点数,在表达式B中,2.5为浮点数,因此B是错误的;在赋值表达式,其左值不能为表达式,因此C是错误的;在赋值表达式,其左值不能为常数,因此D是错误的,因为在“ 5=4
9、+1”中,5是常数,但出现在赋值表达式的左边。11. 下面的程序执行后,文件 test.t 中内容是 。#include < stdio.h >void fun(char *fname,char*st)FILE*myf , int i;myf=fopen(fname,"w");for(i=0;i < strlen(st);i+)fputc(sti,myf);fclose(myf) ;main()fun("test.t","new world");fun("test.t", "hello,
10、");A) hello , B) new worldhello C) new world D) hello, rld(分数: 1.00 )A. VB.C.D.解析: 解析 C 语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写 入、读写等方式。12. 有以下程序:point( char 木 p)p+=3;main()char a4='1','2','3','4', *p=a;point(p) ;printf("%c/n" , *p) ; 程序运行后的输出结果是A) 1 B)
11、 2 C) 3 D) 4(分数: 1.00 )A. VB.C.D.解析:解析在函数point调用时,系统自动为函数的形参p分配内存空间,并赋值为实参p的值。当执行语句“ p+=3';时,系统操作的是形参p的内存空间,更改形参 p的内容,而实参指针变量p的值未受影响,即指针变量作为函数参数时,不能更改实参指针变量的指向。故在“ printf("%c/n" , *p) ”;语句 中, p 仍然指向字符数组的首元素。13. 已知大写字母F的ASCII码为70,以下程序的运行结果为()#include < stdio.h >main( )char c1='
12、;F', c2='p' ;printf("%d , %d/n", c1, c2);A) 70 , 80 B) 70 , 81 C) 70 , 82 D) 70 , 83(分数: 1.00 )A. VB.C.D.解析:14. 若有以下说明和语句:char *language="FORTRAN" , "BASIC", "PASCAL", "JAVA" , "C";char*q ; q=language+2 ;则语句 printf(" o/n&qu
13、ot; , *q) ; ( ) 。A) 输出的是 language2 元素的地址B) 输出的是字符串 PASCALC) 输出的是language2元素的值,它是字符串 PASCAL勺首地址D) 格式说明不正确,无法得到确定的输出(分数: 1.00 )A.B.C. VD.解析: 解析 考查用指针数组来引用数组元素的方法。 解题要点 题中指针数组 language 中的每个元素都是一个指向一个字符串的字符指针。通过这个指针可 以引用到字符串中的每一个字符。题中的q是双重字符指针,q=language+2则使指针q指向了数组language的第三个元素,是字符串“ PASCAL的首地址。15. 下列
14、程序段中,不能正确赋值的是 ( ) 。A) char*p,ch ;p=&ch ;scanf ("%c", &p);B) char*p ;p=(char*)malloc(1);scabf("%c" , p);C) char*p ;*p=getchar();D) char*p,ch ;p=&ch ;*p=getchar();(分数:1.00 )A.B.C. VD.解析:解析地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。16. C语言中用于结构化程序设计的三种基本结构是A)顺序结构、选择结构、循环结构B) if 、swi
15、tch、breakC) for 、 while 、 do-while D) if 、 for、 continue(分数:1.00 )A. VB.C.D.解析:解析结构化程序设计是由3种基本结构组成的,它们是顺序结构、选择结构和循环结构。所以,A选项为所选。17. 有两个关系R、S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择B)投影C)插入D)连接(分数:2.00 )A.B. VC.D.解析:解析专门的关系运算有3种:投影、选择和连接。选择运算是从关系中找岀满足给定条件的那些 元组,其中的条件是以逻辑表达式给岀的,值为真的元组将被选取,这种运算是从水平方向抽取元组的。投影运算是从关
16、系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂 直分解。连接运算是二目运算,需要两个关系作为操作对象。18. 下面程序的输岀结果是 。#define a 121const b=12 ;enum ca1,a2 ;main() printf("%d,%d,%d",sizeof(a) ,sizeof(b) ,sizeof(enum c) )A) 121 ,0,4 B) 2,2,2 C) 0,2,4 D) 0,2,2(分数: 1.00 )A.B. VC.D.解析:解析sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121 ; const
17、 b=12;,其中数据类型可以缺省,默认为整型; enum ca1,a2 ;定义了一个枚举类型 enum c, a1,a2 为枚举元素,在 C 编译时,对枚举元素按常量处理,它们的值按定义顺序依次为 0, 1。因此它们的字节数均为 2,2,2 。19. 以下选项中非法的表达式是A) 0 < = x v 100 B) i=j= =0 C) (char)(65+3) D) x+仁x+1(分数: 1.00 )A.B.C.D. V解析:解析选项D中将表达式的值赋给表达式,在c语言中是不允许给表达式赋值的20. 数据处理的最小单位是 ( ) 。A) 数据 B) 数据元素 C) 数据项 D) 数据结
18、构(分数: 1.00 )A.B.C. VD.解析: 解析 数据处理的最小单位是数据项; 由若干数据项组成数据元素; 而数据是指能够被计算机识别、 存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。21. 以下不合法的字符常量是 ( ) 。A) '/018' B) '/'" C) '/' D) '/xcc'(分数: 1.00 )A. VB.C.D.解析: 解析 本题考查的知识点是字符常量中的转义字符。转义字符是以一个“/”开头的字符序列,它只代表一个字符。在选项 A)中,“/”后跟着
19、三个数字,是表示一个ASCII码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由07这八个数字表示,而选项 A)中出现了数字8所以是不合法的。选项B)是表示一个双引号的转义字符表示方法;选项C)表示的是一个反斜杆;选项D)表示一个ASCII 值为十六进制值 cc 的字符。故应该选择 A)。22. 下列选项中不符合良好程序设计风格的是 。A) 源程序要文档化 B) 数据说明的次序要规范化C) 避免滥用 goto 语句 D) 模块设计要保证高耦合、高内聚 (分数: 2.00 )A.B.C.D. V解析:解析程序设计的风格主要强调:清晰第一,效率第二。主要应注重和考虑下述一些因素:源
20、程 序文档化;数据说明,其主要包括数据说明的次序规范化、说明语句中变量安排有序化、使用注释来说 明复杂数据的结构;语句的结构。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内 聚,低耦合。23. 以下能正确定义且赋初值的语句是 。A) int n1=n2=10 ;B) char c=32 ;C) float f=f+1.1;D) ;(分数: 1.00 )A.B. VC.D.解析:解析C语言中规定程序中所要用到的变量应该先定义后使用。因此选项A和C都是错误的。选项D中,E的后面只能为整数,不能是实数。所以D电是错误的。只有选项 B是正确的,char和int是通用的。24. 若程序中定
21、义了以下函数double myadd(double a,double b)return (a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A) double myadd(double a,b);B) double myadd(double,double);C) double myadd(double b,double a);D) double myadd(double x,double y);分数: 1.00 )A. VB.C.D.解析: 解析 在对函数进行说明时,参数类型要一一对应,而参数名完全是虚设的,可以不必与出数首部 中的形参名一致,而且参
22、数名可以省略。25. 有如下程序段:int a=14, h=15, x;char c='A'x=(a && b) && (c < 'B');执行该程序段后, x 的值为A) true B) false C) 0 D) 1(分数: 2.00 )A.B.C.D. V解析:解析在C语言中,逻辑运算符有4个,它们分别是:!(逻辑非)、|(逻辑或)、&& (逻辑与)、人(异或)。在位运算里面还有& (位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a &&b) &&a
23、mp; (c v 'B');中,先判断a&& b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然cv 'B'是成立的,显然,该表达式的值为1。26. 有以下程序:#include v stdio.h >main()int a=2, 4, 6, 8, 10, y=0, x, *p;p=& a1;for(x=1; x v 3; x+)y+=px;printf("%d/n", y);程序运行后的输出结果是 ( ) 。A) 10 B) 11 C) 14 D) 15(分数: 1.00 )A.B.C. VD.解析:解
24、析本题考查的是指针的运用。题目首先申请了一个整型数组a,并让一个指针变量 p指向数组的元素a1。然后使用一个for循环,循环变量x从l递增到2,即循环两次。在循环体中每次让y累加px的值,而px写成指针形式就是*(p+x)。所以两次y加的值分别是a2和a3的值,故最终输出6+8=14 应该选择 C)。27. E-R 图是数据库设计的工具之一,它一般适用于建立数据库的 。A) 概念模型 B) 结构模型C) 物理模型 D) 逻辑模型分数: 2.00 )B.C.D.解析: 解析 E-R 模型是描述现实世界的概念模型,它将现实世界的信息结构统一用实体、属性、以及实 体之间的联系描述。 E-R 图提供了
25、表示实体型、属性和联系的方法。28. 以下程序的运行结果是 。main()char t=02 ;printf("%d/n",t=+t >> 2);A) 0 B) 1C) 2 D) 3(分数: 1.00 )A. VB.C.D.解析: 解析 t 的二进制形式是 00000010,前置加之后, t 值的二进制形式为 00000011 ,右移两位,最 后两个 1 将移出, t 值最后是 0 。29. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 。A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不会占用具体存储单元C) 同
26、名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数: 2.00 )A.B.C.D. V解析:30. 待排序的关键码序列为 (33,18,9,25,67,82,53,95,12,70) ,要按关键码值递增的顺序排序, 采取以第一 个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第 ( ) 个位置。A) 3 B) 5 C) 7 D) 9(分数: 2.00 )A.B. VC.D.解析: 解析 快速排序的基本思想是:从表中选取一个元素 ( 如本题中的 33) ,将表中小于此元素的移到 前面,大于此元素的移到后面, 结果把线性表分割成两部分 ( 两个子表 ) ,此
27、元素插入到其分界线的位置处。然后分别对两个子表再次分割本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12 后面。31. 软件需求分析一般应确定的是用户对软件的 。A) 功能需求 B) 非功能需求 C) 性能需求 D) 功能需求和非功能需求(分数: 2.00 )A.B.C.D. V解析: 解析 软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求, 使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。32. 有如下程序:main()char ch25="6937","8254" , *
28、p2 ;int i,j, s=0;for(i=0 ; i v 2; i+)pi=chi;for(i=0 ; i v 2 ; i+)for(j=0 ;pij!='/O'j+=2)s=10*s+pij-'0';printf("%d/n" ,s) ;该程序的输出结果是 。A) 69825 B) 63825 C) 6385 D) 693825(分数: 1.00 )A.B.C. VD.解析:33. 有以下程序main()int a33,*p,i;p=a00;for(i=0;iv 9;i+)pi=i;for(i=0;iv 3;i+)printf(&quo
29、t;%d",a1i);程序运行后的输出结果是 。(A) 0 1 2(B) 1 2 3(C) 2 3 4(D) 3 4 5分数: 2.00 )A.B.C.D. V 解析:34. 关系表中的每一横行称为一个 ( ) A) 元组 B) 字段 C) 属性 D) 码(分数: 1.00 )A. VB.C.D.解析: 解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的 一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。35. 有以下程序#include < stdio.h >#include < stdlib.h >int
30、 fun(int n)int *p;p=(int*)malloc(sizeof(int);*p=n; return *p;int a;a=fun(10); printf("%d/n",a+fun(10);程序的运行结果是 。A) 0 B) 10 C) 20 D)出错(分数: 2.00 )A.B.C. VD.解析: 解析 malloc(sizeof(int) 的作用是开辟一个长度为 sizeof(int) 存储空间,并通过强制类型转 换(int*)将此存储空间的地址赋给了一个整型的指针变量p。然后执行语句“ *p=n”,使得*p的值为10,并通过返回此值,在主函数中输出 a+
31、10 的值,即输出 20。36. 若输入 60和13,以下程序的输出结果是 ( )# define SURPLUS(a , b)(a)%(b)main( )int a , b;scanf("%d , %d", &a, &b);printf("%d/n" , SURPLUS(a, b) ;A60B13C73D8(分数: 1.00 )A.B.C.D. V解析:37. 以下数组定义中错误的是A) int x3=0; B) int x23=1, 2, 3, 4, 5, 6;C) int x3=1, 2, 3, 4, 5, 6; D) int x2
32、3=1, 2, 3, 4, 5, 6;(分数: 2.00 )A.B. VC.D.解析:解析二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组元素进行初始化;省略第一维的定义,不省略第二维的定义。选项B)等号右边分了 3行,大于等号左边数组的行数 2。38. 下列叙述中,不属于结构化分析方法的是 。A) 面向数据流的结构化分析方法B) 面向数据结构的 Jackson 方法C) 面向数据结构的结构化数据系统开发方法D) 面向对象的分析方法(分数: 1.00 )A.B.C.D. V解析: 解析 常见的需求分析方法有结构化分析方法和面向对象的分析方法两类。其中结构化分析方法又包
33、括面向数据流的结构化分析方法 (SAStructured analysis)、面向数据结构的 Jackson方法(JSD,Jackson system development method) 和面向数据结构的结构化数据系统开发方法(DSSD,Data structured systemdevelopment method) 。39. 有以下程序:void f(int*q)int i=0;for( ; i < 5; i+)(*q)+;main()int a5=1,2,3,4,5,i;f(a);for(i=0;i < 5;i+)printf("%d , " , ai
34、);程序运行后的输出结果是 。A) 2,2,3,4,5, B) 6,2,3,4,5, C) 1,2,3,4,5, D) 2,3,4,5,6,(分数: 2.00 )A.B. VC.D.解析:解析 题目中定义了一个指针变量作为函数f() 的参数。主函数 main() 中调用 f() 函数,当 i=0 时,执行语句“ (*q)+ ;”,此处 *q 就代表数组 a0 的地址,也即将 q 进行加 1 操作;当 i=1 时, q 仍指向数 组元素a0的地址,因为在函数f()中并未对指针变量q做任何变动,即*9仍代表数组元素a0的值,所 以此次 (*q)+ 即为 2+1,a0 的值变为 3;直到 i=4 时
35、,执行 (*q)+ 后 a0 的值变为 6,最后输出数组 a 的 结果为 6、 2、3、4、5。40. 若有语句: char *line5; ,以下叙述中正确的是 。(A) 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量(B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组(C) 定义line是一个指针数组,语句中的 *号称为间址运算符(D) 定义line是一个指向字符型函数的指针(分数: 2.00 )A. VB.C.D.解析:41. 在以下程序段中,已知血型数据占两个字节,则输出结果是union unint i ;double y ;stru
36、ct stchar a10 ;union un b ;printf("%" , sizeof(struct st) ;A) 14 B) 18 C) 20 D) 16(分数: 1.00 )A.B. VC.D.解析: 解析 本题考查了结构体和共用体类型的特点。结构体变量的各个数据成员分别占据不同的存储空间,而共用体变量的数据成员共同占据一段存储空间。所以共用体un的变量占8个字节,而结构st中,变量所占据的存储空间为成员a和b的存储空间之和,所以答案为Bo42. 以下能正确定义且赋初值的语句是 ( ) 。A) int n1=n2=10 ; B) char c=32 ;C) fl
37、oat f=f+1; ;(分数: 1.00 )A.B. VC.D.解析: 解析 语句 int n1=n2=10 ;中,由于变量 n2 未定义,所以此赋值语句错误;由于赋值语句中不能 存在运算表达式,所以选项C)中的赋值语句错误;选项D)中指数表示错误,C语言规定,e后面的指数必须为整数;选项B)中的32是ASCII码的表示形式,这是 c语言中字符型数据和整型数据通用的表现,即 一个字符数据可以以字符形式出现,也可以以整数形式出现。43. 请读程序段:char str="ABCD",*p=str print("%d/n",*(p+4);程序段的输出结果是
38、。A) 68 B) O C) 字符'D'的地址D)不确定的值(分数: 2.00 )A.B. VC.D.解析: 解析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上个字符串结束标志'/0' ,故指向字符数组的指针p的*(p+4)的值为70'。由于70'的编码值就是0,所以本题输出为0。44. 对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为 ( ) 。A) 125 B) n/2 C) n D) n+1(分数: 2.00 )A.B.C. VD.解析: 解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元
39、素的关键字 进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素 或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。45. 有以下程序:#include < stdio.h >int fun(int x , int y)if(x=y)return(x) ;else return(x+y)/2) ;main()int a=1 , b=2, c=3;printf("%d/n" , fun(2*a , fun(b , c) ;程序运行后的输出结果是 ( ) 。A) 2 B) 3 C) 4 D) 5
40、(分数: 2.00 )A. VB.C.D.解析:解析fun(b , c)即 fun(2,3), 2!=3,所以返回(2+3)/2=2 ; fun(2*a,2)即 fun(2 , 2) , 2=2,所以返回 2。46. 下面程序的执行结果是 。main()char str="quert?",*p=str;while(putchar(*p+)!='?') ;A) quert B) Rvfsu C) quert? D) rvfsu?(分数: 1.00 )A.B.C. VD.解析:解析*p+是先取*p的值,然后指针变量 p指向下一个字符,putchar是先执行(输出
41、)再判断,所 以“?”是可以显示的。47. 有以下程序int f1(int x,int y)return x > y?x:y;int f2(int x,int y)return x >y?y:x;main()int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e ;printf("%d,%d,%d/n",d,f,e) ;执行后输出结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4(分数: 1.00 )A.B.C. VD.解析:解析函数f1()
42、的作用是返回形参x和y的较大值,函数f2()的作用是返回形参x和y的较小值, 在main()函数中通过调用两次 f1()函数,求得a、b、c的最大值并存放在变量 d中,通过调用两次f2() 函数,求得a、b、c的最小值并存放到变量 e中。由程序可知d值为5,f的值为4, e的值为3,因此最 后输出的 d、 f、 e 的值为 5、 4、 3。48. 以下叙述中错误的是 ( ) 。A) 用户定义的函数中可以没有 return 语句B) 用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C) 用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D)
43、 函数的 return 语句中可以没有表达式 (分数: 1.00 )A.B. VC.D.解析: 解析 本题考查的是 return 语句。用户定义的函数有两种:一种是没有返回值的函数,函数类型必须为void ;另一种是有返回值的函数。在没有返回值的函数中可以没有return语句,所以选项 A)和C)是正确的;在没有返回值的函数中如果有return语句,该语句必须不带任何表达式,所以选项 D)也是正确的;用户定义的函数可以有多个 return 语句,但是只能返回一个函数值,所以应该选择 B)。49. 设有定义语句 int(*f)(int) ;,则以下叙述正确的是 。A) f 是基类型为 int 的
44、指针变量B) f 是指向函数的指针变量,该函数具有一个 int 类型的形参C) f 是指向 int 类型一维数组的指针变量D) f 是函数名,该函数的返回值是基类型为 int 类型的地址(分数: 2.00 )A.B. VC.D.解析: 解析 int(*f)(int) ;为指向函数的指针变量的定义方法,其中 f 为指向函数的指针变量,第一个 int 为函数返回值的类型,第二个 int 为函数的形参类型。50. 以下与函数 fseek (fp, OL, SEEK_SET) 有相同作用的是 ( ) 。A) feof(fp) B) ftell(fp) C) fgetc(fp) D) rewind(fp
45、)(分数: 1.00 )A.B.C.D. V解析: 解析 feof 函数的功能是判断文件指针是否已指到了文件末尾,是则返回非零值,否则返回零;ftell 函数的功能是得到流式文件中文件指针的当前位置, 用相对于文件开头的位移量来表示; fgetc 函数 的功能是从指定文件读人一个字符; rewind 函数的功能是使文件指针重新返回文件的开头。fseek 函数用于改变文件的位置指针,调用形式为: fseek( 文件类型指针,位移量,起始点 ) , “起始点”取值0(SEEK_SET) 1(SEEK_CUR、2(SEEK_END分别表示文件开始、 文件当前位置、文件末尾。“位移量” 是以“起始点”
46、为基点,向前移动的字节数。函数fseek(fp , OL, SEEK_SET的作用是将位置指针移到文件头,所以选项D)正确。二、填空题 (总题数: 20,分数: 33.00)51. 希尔排序法属于 1 排序法(分数: 2.00 )填空项 1: (正确答案:插入类)解析: 解析 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以 希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进。52. 有以下程序:# include < stdio.h >main()char ch1,ch2; int n1,n2ch1=getchar() ; ch2=getc
47、har() ;n1=ch1-'0' n2=n1*10+(ch2-'0');printf("%d/n",n2);程序运行时输入: 12<回车>,执行后的输出结果是 。(分数: 2.00 ) 填空项 1: (正确答案: 12)解析:解析本题中 n1='1'- 'O'=1,n2=1 X 10+(2-0)=10+2=12 。53. 对长度为 8 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1 。(分数: 2.00 )填空项 1: (正确答案:28)解析: 解析 在最坏情况下,冒泡排序所需要的比较次数为
48、 n(n-1)/2; 简单插入排序所需要的比较次数为 n(n-1)/2; 希尔排序所需要的比较次数为 O(n1.5 ) ;堆排序所需要的比较次数为 O(nlog2n) 。54. 软什是程序、数据和 1 的集合。(分数: 3.00 )填空项 1: (正确答案:文档)解析: 解析 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的 完整集合。55. 设指针变量p是指向整型变量b的,则p中存放的是1。(分数: 1.00 )填空项 1: (正确答案:变量 b 的地址)解析:56. 若有定义doublea5;,贝U a数组元素下标的上限为1。(分数: 2.00 )填空项 1
49、: (正确答案:4)解析: 解析 一维数组元素的定义形式为:数组名 N ,则该数组中元素的下限是 0,上限是 N-157. 下面程序的输出结果是 。#include < stdio.h >main()static chara="zhao" , b="juan" ;char*ptr1=a , *ptr2=b ; int k ;for(k=0 ; kv 4 ; k+)if(*(ptr1+k)=*(ptr2+k) printf("%c" ,*(ptr1+k)(分数: 2.00 )填空项 1: (正确答案: a)解析:解析本程序先
50、将指针ptrl和ptr2分别指向字符数组 a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。58. 下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序完整。(注:程序采用了冒泡排序算法)#include v stdio.h >#include v string.h >main()char*str="ABCDabcd" , temp;int n,i ;n=strlen(str) ;while(n- > 1)for(i=0 ; i v n;i+)if(stri v stri+1)temp=;stri=stri+1 ;=
51、temp;printf();(分数: 1.00 )填空项 1: (正确答案: stristri+1"%s",str )解析: 解析 本题要求将字符串 str 中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字 符进行比较,如果当前字符小于下一个字符;则通过中间变量temp将字符两两交换,所以第一空应填:stri ,第二空应填: stri+1 。最终打印输出得到的字符串 str ,所以第三空应填; "%s", str 。59. 有如下程序main()int a33=1, 2, 3, 4, 5, 6, i,j,s=0;for(i=1 ; i v 3
52、; i+)for(j=0;j v =i;j+)s+=aij;printf("%d/n" , s) ;该程序的输出结果是 。(分数: 1.00 )填空项 1:正确答案: 18)解析:60. 下面函数的功能是将一个字符串的内容颠倒过来,请填空 void fun(char str)int i,j ,k ;for(i=0 , j= ; i vj ; i+ , j-)k=stri;stri=strj ;strj=k;(分数: 1.00 )填空项 1: (正确答案: strlen(str)-1 )解析: 解析 程序中的 for 循环就是用来完成串反序的,所以应该对循环的条件进行初始化,
53、所以在18应该填入 strlen(str)-1 。注意,在串反序的时候,不应该把串结束符 /0 '也反序。61. 下面的程序把从终端读入的文本( 用作为文本结束标志 ) 输出到一个名为 bi.dat 的新文件中,请填空。#include v stdio . h >#include v stdlib . h >FILE*fp ;main()charch ;if(fp=fopen()=NULL)exit(0) ;while(ch=getchar()!='') fputc(ch, fp) ;fclose(fp) ;(分数: 2.00 )填空项 1: (正确答案:&
54、quot;bi.dat" , "w"或"bi.dat" , "w+/)解析: 解析 根据 fopen 函数的调用方式 fopen( 文件名,使用文件方式 ) 和题意可得结果。62. 顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数: 2.00 )填空项 1: (正确答案:相邻)解析:63. 以下程序的功能是根据输入的“y”(“Y)与“n”(“N),在屏幕上分别显示出“ This isYES”与“This is NO. ”。空白处需要填入的内容是#include v stdio.h >void YesNo(char ch)switch(ch)case'y' :case'Y' : printf("/n This is YES./n");case'n' :case'N' : Printf("/nThis is NO./n");main()char ch ;printf("/nEnter a char'y', 'Y'or'n' , 'N': ") ;ch=;printf(&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 燃气使用安全提示
- 河流生态恢复与灌溉整合
- 给水管网压力监测方案
- 消防安全责任追究制度
- 燃气相关标准与规范汇编
- 消防安全隐患排查方案
- 基础与地基一体化设计
- 给水系统服务质量监测方案
- 城市交通信号优化方案
- 国有粮库建设项目风险评估报告
- 工程伦理-形考任务一(权重20%)-国开(SX)-参考资料
- 2025年叉车工安全教育培训试题附答案
- 工务专业应急预案(3篇)
- 村干部国土培训
- 头皮知识培训课件
- 2025至2030中国半导体AMC过滤器行业竞争优势及前景趋势预判报告
- 乡镇高层灭火救援疏散应急演练方案及流程
- 五恒系统节能环保施工技术规范与优化研究
- 大学期末考试思政题库及答案
- 师徒结对活动记录表-师傅
- have与has的用法微课课件
评论
0/150
提交评论