版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级 C 语言笔试 -97( 总分: 108.00 ,做题时间: 90 分钟 )一、 选择题 (总题数: 40,分数: 70.00)1. 有以下程序: struct s int x,y;) data2=10,100,20,200;main()struct s *p=data;printf(%d/n",+p-> x);程序运行后的输出结果是 () 。(分数: 2.00 )A. 10B. 11VC. 20D. 21解析: 解析 本题的考查点是结构体变量的初始化。该题是一个对外部存储类型的结构体变量进行的初始化。初始化后,x的值为10, y的值为100。+(pTx)中首先px是把p指
2、向结构体变量s中的x成员, 此+(px)就相当于+x,这时x先自增,再使用,所以此时x的值为11。故本题答案为B)。2. 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是()。(分数: 2.00 )A. c1Ac2VB. c1 c2C. c2D. c1|c2解析:解析本题考的是位运算。“ A'是按位异或运算,当对应位上的二进制数值相同时,异或的结果为 0,对应位上的二进制数值不同时,异或的结果为 1,因为 c1、c2 的值相同,所以异或的结果为0,所以 A) 为正确答案。3. 有以下程序:fun(int x,int y)(return (x+y);)main(
3、)int a=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf("%d/n",sum);执行后的输出结果是 () 。(分数: 2.00 )A. 6B. 7C. 8 VD. 9解析: 解析 本题考查的知识点是逗号表达式。因为整个逗号表达式的值为其最右边一个子表达式的值,所以程序中传递给fun()函数的第1个实参(a+ , b+, a+b)的值为a+b的值。但是,在计算 a+b之前,已 经先让a和b各自增1 了,所以第1个实参值为(1+1)+(2+1)=5。第2个实参C+的值为变量c自增之前的 值 3。所以,函数返回的值为 5+3=8。故应
4、该选择 C) 。4. 以下程序的输出结果是 ( ) 。long fun(int n)long S;if(n=1|n=2)s=2;else s=n-fun(n-1);return s;main()printf("% 1d/n" ,fun(3);(分数: 2.00 )A. 1VB. 2C. 3D. 4解析: 解析 该题考查的是递归函数的调用,题中 fun 函数进行了递归调用,第 1 次调用时: fun(3)n=3 s=3-fun(2) ;第 2 次调用时: fun(2)n=2 s=2 ,返回第一次调用后, s=3-2=1 。5. 设有定义:int a; float b; ,执行
5、scanf("%2d%f", & a,& b);语句时,若从键盘输入 876 543.0 v回车 >,a和b的值分别是()。(分数: 2.00 )A. 876 和 543.000000B. 87 和 6.000000 VC. 87 和 543.000000D. 76 和 543.000000解析: 解析 本题考查了格式输入函数 scanf() 的运用。 scanf() 函数的一般形式为: scanf( 格式控制, 地址表列 ) 。其中,“格式控制”是用双引号括起来的字符串, 也称“转换控制字符串”, 它包括两种信息: 格式说明,由“ %和格式字符组成;
6、 普通字符,即需要原样输入的字符。“地址表列”是需要接收输入数据的一系列变量的地址。本题中的“格式控制”是“%2d%f,其中 %2d的意思是要输入一个整数,但该整数最宽只占2个字符,而%f是要输入一个浮点数。而题目要求输入的是876 543.0 ,所以 scanf() 函数将 87赋给 a, 6赋给 b。6. 以下程序的输出结果是 ( ) 。main()int a=666,b=888;prinf(%d/n",(a,b);分数: 2.00 )A. 错误信息B. 666C. 888 VD. 666, 888解析: 解析 本题考查的知识点是:格式化输出的应用。printf 函数的调用形式:
7、printf(格式控制,输出项I,输出项2,),该题的输出项为一个逗号表达式, 该表达式的值为 b 的值,因此输出结果为 888,故本题选 C) 。7. 以下选项中,能定义s为合法的结构体变量的是()。(分数: 2.00 )A. typedef struct abc doubIe a;char b10;s;B. struct doubIe a; char b10;s; VC. struct ABC doubIe a; char b10;ABC s;D. typedef ABC doubIe a;char b10;ABC s;解析: 解析 本题的考查点是结构体变量的定义。定义一个结构体类型的变量
8、,可采用三种方法:(1) 先定义结构体类型再定义变量名; (2) 在定义类型的同时定义变量; (3) 直接定义结构类型变量,即不出现结 构体名;选项B)符合第三种定义方法。故本题答案为B)。8. 以下选项中,值为 1 的表达式是 ( ) 。分数: 2.00 )A. 1-'0'B. 1-'/0'VC. '1'-0D. '/0'-'0'解析:解析本题考查的是字符常量的概念。在C语言中,一个字符常量常常被当作一个整型常量来参与运算,它所代表的值为该字符的ASCII码值。在ASQ码中,字符串结束符 70'的ASQ码
9、为0,字符'0'的ASCI码的值为48,字符'1'的ASCI码的值为49。由此可见,选项 A)的值为-47 ;选项B)的值为1 ;选 项C)的值为49;选项D)的值为-48。故应该选择B)。9. 以下程序的输出结果是 ( ) 。int f()static int i=0;int s=1;S+=i;i+ :return s;main()int i,a=0;for(i=0;1 v 5;i+)a+=f();printf("%d/n"(分数: 2.00 )A. ;A) 20B) 24C) 25D)解析: 解析 函数的静态局部变量在编译时就赋初值,即只
10、赋初值一次,在程序运行时它已有初值,以后 每次调用函数肘不再重新赋值,而只是保留上次函数调用结束时的值。10. 有以下程序:void sum(int a1)a0=a-1+a1;) main() int a10=(1,2,3,4,5,6,7,8,9,10;suma2); printf("%d/n" , a2) :程序运行后的输出结果是 () 。(分数: 2.00 )A. 6VB. 7C. 5D. 8解析: 解析 本题考查的是数组和函数。 sum() 函数接收一个 int 型数组作参数,也可以把它看作是一个 int 型指针, 语句 a0=a-1+a1 ;的意思就是将参数指针指向
11、内容的前一个元素和后一个元素的值相加 放到指针所指的位置。因此,主函数中调用sum(a2) ;的意思就是让 a2=a1+a3 ;,所以最后输出的结果是 6。应该选择 A) 。11. 下列叙述中正确的是 ( ) 。(分数: 1.00 )A. 一个逻辑数据结构只能有一种存储结构B. 数据的逻辑结构属于线性结构,存储结构属于非线性结构C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率V解析: 解析 一般来说, 一种数据的逻辑结构根据需要可以表示成多种存储结构, 常用的存储结构有顺序、 链接、索引等存储
12、结构。而采用不同的存储结构,其数据处理的效率是不同的。故本题答案为 D) 。12. 下面能正确进行字符串赋值操作的是 ( ) 。(分数: 1.00 )A. char s5="ABCDE"B. char s5='A','b','C','D','E'C. char *s;s="ABCDE"VD. char *s;scanf("%s",s);解析:解析选项A)和B)定义的数组空间太小,至少应该为6个字符的长度才可以。选项D)中的指针s未赋初值,所以指向一个不确定
13、的地址,因而不能用 scanf 输入数据到这一指针所指向的地址中。13. 下面概念中,不属于面向对象方法的是 ( ) 。(分数:1.00)A. 对象B. 继承C. 类D. 过程调用 V解析:解析面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软 件的方法。面向对象方法从对象岀发,发展岀对象、类、消息、继承等概念。14. 有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点struct node int data;struct node *next;)*P,*q , *r;data next data next data next(
14、)。现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是(分数:1.00 )A. r rext=q;q next=r next;p rext;r;VB. qrext=r next;p rext=r;r next=q;C. prext=r;q next=r rext;r next=q;D. q Tnext=r next;r next=q;p next=r;解析:解析本题的考查点是指向结构体变量的指针以及用指针处理链表。一个结构体变量的指针就是该 变量所占据的内存字段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的 值是结构体变量的起始地址。指针变量
15、也可以用来指向结构体数组的元素。在C语言中,qnext相当于(*q)next 。即q所指向的是结构体变量中的next成员。链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它根据需要开辟内存单元。链表中的备元素在内存中可以不是连续存放的。所以 必须利用指针变量才能实现。即一个结点中应包括一个指针变量,用它存放下一结点的地址。r Tnext=q表示让q指向新开辟的结点,r指向链表中最后一个结点,把 r所指的结点连接在q所指的结点后面。同 样,pnext=r表示让r指向新开辟的结点,p指向链表中最后一个结点,把p所指的结点连接在r所指的结点后面。那么在 A中,执行rTnext=q后
16、,rnext指向了 q。此时第2句相当于qnext=q ;,所以q 的下一个结点指向了自己,而不是指向原来r的下一个结点。故本题答案为A)。15. 有以下程序:#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列开始)12
17、3回车45678 回车则输出结果是()。(分数:1.00 )A. 1267B. 1256C. 1278D. 1245 V解析: 解析 本题考查的是输入输出函数。 scanf() 是格式化输入函数; getchar() 函数从键盘缓冲区读入 下一个字符; putchar(J 输出一个字符; printf() 函数是格式化输出函数。在题目中,程序执行到 scanf() 函数时,会暂停等待用户输入4个字符,按题意输入123 V回车后,字符13被分别输入到C1-C3中,而 c4 会得到一个换行符 '/n' 。然后执行第 1 个 getchar() 函数,由于前面的 scanf() 函数
18、读完了缓冲区中 的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678 V回车后,缓冲区第一个字符4输入到C5,第二个字符5输入到C6,所以本题应该选择D)。16. 有以下程序:main()int k=5;while(-k)printf("%d",k-=3);printf("/n") :执行后的输出结果是 () 。(分数: 1.00 )A. 1VB. 2C. 4D. 死循环解析: 解析 本题考查的是 while 循环和一运算符。因为在 while 循环的循环条件中,一运算符是前缀形式,所以表达式-k的值是k自减之后的值。程序开始时,将 k的值
19、初始化为5,然后进入while循环,因 为-k的值为4(非零),所以执行循环体输出k-=3的值1,此时k的值也变为1。第2次执行循环条件,-k 的值为 0,所以循环结束。因此最后输出的结果是1,故应该选择 A) 。17. 在设计程序时,应采纳的原则之一是 ( ) 。(分数: 1.00 )A. 不限制 goto 语句的使用B. 减少或取消注解行C. 程序越短越好D. 程序结构应有助于读者理解 V解析:解析滥用goto语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。18. 以下叙述中正确
20、的是 ( ) 。(分数: 1.00 )A. C 程序中的注释只能出现在程序的开始位置和语句的后面B. C 程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上VD. 用C语言编写的程序只能放在一个程序文件中解析:解析考查C语言的几个基本概念。选项A)中,C语言的注释可以出现在程序的任何位置;C语言的语法限制不严格,可以多条语句放在同一行上,也可以将一条语句写在多行,故选项B)错误,选项C) 正确;选项D)是错误的,因为用 C语言编写的程序可以放在不同的文件中,文件之间使用预处理命令进行 调用。19. 下列关于队列的叙述中正确的是 ( ) 。(分数: 1.0
21、0 )A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表VD. 队列是先进后出的线性表解析: 解析 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操 作。其中,允许插入的一端称为队尾 (rear) ,允许删除的一端称为队首 (front) 。队列具有先进先出的特点, 它是按“先进先出”的原则组织数据的。20. 在结构化方法中,软件功能分解属于下列软件开发中的 ( ) 阶段。(分数: 1.00 )A. 详细设计B. 需求分析C. 总体设计 VD. 编程调试解析: 解析 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方
22、案;结构设计, 确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔 细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较 简单的功能。21. 有定义语句: char s10; ,若要从终端给 s 输入 5 个字符,错误的输入语句是 ( ) 。(分数: 2.00 )A. gets( s0);B. scanf("%s",s+1);C. gets(s);D. scanf("%s",s1);V解析:解析本题主要考查的是输入函数scanf和gets。gets()函数的原型是char*
23、gets(cha叶s);。功能是通过键盘读入一个字符串,并放到指针参数s所指的内存地址中。选项A)给gets传入的实参是& s0,也就是数组s的第1个元素的地址,这是合法的。选项 C)传入的是数组名s,它出现在表达式中表示的是 数组的首地址,所以也是合法的。 scanf( 函数要求输入的参数均为地址形式。选项 B) 中表达式 s+1 ,表示 的是数组首地址往后移动一位的地址,所以是合法的。选项 D) 直接引用数组中下标为 1 的元素,这是不 合法的。22. 有以下程序:# include < string.h >main()char p20=('a',
24、9;b','c','d'),q="abc",r="abcde":strcat(p,r);strcpy(p+strlen(q),q);printf("%d/n",strlentp);程序运行后的输出结果是 () 。(分数: 2.00 )A. 9B. 6 VC. 11D. 7解析: 解析 strcpy() 函数的功能是将字符串 q 复制到从 p3 位置开始的存储单元,同时复制字符串结 束标志 '/0' 到 p6 中。函数 strlen() 返回的是字符串中不包括 '/0
25、9; 在内的实际长度,故本题答案为 B)23. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。(分数: 2.00 )A. x=y ; VB. x=n%52.5 ;C. x+n=i ;D. x=5=4+1 ;解析: 解析 本题考查赋值运算符及赋值表达式。赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项 C)和D)错误。""运算符两侧都应当是整型数据,选项 B)错误。24. 单个用户使用的数据视图的描述称为 ( ) 。(分数: 2.00 )A. 外模式 VB. 概念模式C. 内模式D. 存储模式解析:解析选项A)正确,外模式是用户的数据视图,也就是
26、用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。25. 对关系S和关系R进行集合运算,结果中既包含S中元组也包含 R中元组,这种集合运算称为()。(分数: 2.00 )A. 并运算 VB. 交运算C. 差运算D. 积运算解析: 解析 本题考查集合运算。在关系数据库理论中,两个关系的并是由属于这两个关系的元组组成的 集合,故选项A)正确。两个关系的交是由既属于一个关系又属于另一个关系的元素组成的集合,两个集合 的差运算是
27、由从一个集合中去掉另一个集合中有的元素组成。两个集合的交运算是由既属于前一个集合又 属于后一个集合的元素组成。26. 有以下程序:main()int k=5, n=0;doswitch(k)case 1:case 3:n+:1;k-;break;default:n:0;k-;case 2:case 4:n+=2;k-;break;printf("%d", n) :while(k > 0 && n v 5);程序运行后的输出结果是 ()(分数: 2.00 )A. 235 VB. 0235C. 02356D. 2356解析:解析因为变量的初始值分别为“ k
28、=5, n=0',所以程序第一次进入循环时,执行default语句,这时k=4,执行“case 4”这个分支,结果是“ n=2, k=3”,打印出2;程序然后进行第二次循环,这时“ n=2, k=3",执行“ case 3:”这个分支,结果是“n =3,k=2”,打印出3;程序进行第三次循环,这时“ n=3, k=2”,执行“ case 2 : case 4 : ”这两个分支,结果是“ n=5, k=1”,打印出5,这时因为n=5不满足nv5的循环条件,因此退出循环,程序运行结束,故输出结果为235。27. 若有说明语句: double*p, a ;则能通过 scanf 语句
29、正确给输入项读入数据的程序段是 ( )(分数: 2.00 )A. *p= & a;scanf("%",p);B. *p= & a;scanf("%f",p);C. p=& a;scanf("%lf",*p);D. p=& a;scanf("%lf",p);V解析: 解析 本题考查的是指针的运算和 scanf() 函数。由于& a 表示变量 a 的地址值,所以应该直接赋 给指针变量 p 而不是它所指向的内容,故选项 A) 和 B) 可以排除。而 scanf() 函数除了第 1
30、个参数为输入 项列表外,其余参数要求为对应变量的地址值,从前一条语句可以看出,指针D中存放的为变量a的地址值,所以直接传给scanf()函数指针变量D就可以了。故应该选择 D)。28. C 源程序中不能表示的数制是 ( ) 。(分数: 2.00 )A. 二进制 VB. 八进制C. 十进制D. 十六进制解析:解析本题考查的是整型常量。在 C语言程序中,整型常量可以用十进制、八进制和十六进制等形 式表示。但不包括二进制,故本题应该选择 A) 。29. 以下关于逻辑运算符两侧运算对象的叙述中正确的是 ( ) 。(分数: 2.00 )A. 只能是整数 0 或 1B. 只能是整数 0 或非 0 整数C.
31、 可以是结构体类型的数据D. 可以是任意合法的表达式 V解析:解析本题考查的是逻辑运算符。C语言中,逻辑运算符的两个运算分量可以是任意合法的表达式。 故本题应该选择 D)。30. 以下程序运行后,输出结果是 ( ) 。#define PT 5.5#define S(x)PT*x*x#include < stdio.h >main()int a=1,b=2;prinf("%4.1f/n",S(a+b);(分数: 2.00 )A. 49.5B. 9.5VC. 22D. 45.0解析: 解析 考查宏替换的使用。宏替换用“ #define 宏名宏体”的形式来定义。在进行
32、编译预处理时, 将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行 参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的 S(a+b) 进行宏替换后为 PT*1+2*1+2=5.5*1+2*1+2=9.5 。31. 若程序中定义了以下函数:double myadd(double a,double b)return (a+b); 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 () 。(分数: 2.00 )A. double myadd(double a,b);VB. double my
33、add(double,double);C. double myadd(double b,doublea);D. double myadd(double x,double y);解析: 解析 本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明, 编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数 正确传递。函数声明的一般格式为:类型标识符函数名(类型标识符形参,);这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类
34、型。本题中,选项A)中double myadd(double a , b) ,没写出形参 b 的类型。32. 下列条件语句中,功能与其他语句不同的是 ( ) 。(分数: 2.00 )A. if(a)printf("%d/n",x);else printf("%d/n",y);B. if(a=0)printf("%d/n",y);else printf("%d/n",x);C. if(a!=0)printf("%d/n",x);else printf("%d/n",y);D.
35、if(a=0)printf("%d/n",x);else printf("%d/n",y);V解析: 解析 本题考核的知识点是 if 语句的用法。选项 A) 、选项 B) 和选项 C) 都是在 a 的值为 0 的时 候输出y, a不为0的时候输出x,而选项D)是在a为0的时候输出x, a不为0的时候输出y。所以,4 个选项中选项 D) 符合题意。33. 有以下函数:int aaa(char *s)char *t=s:while(*t+) :t-;return(t-s);以下关于 aaa 函数的功能的叙述正确的是 () 。(分数: 2.00 )A. 求字符
36、串s的长度 VB. 比较两个串的大小C. 将串 s 复制到串 tD. 求字符串 s 所占字节数解析: 解析 本题考查的知识点是: while 循环的简单应用。 aaa() 函数中,首先定义了一个字符指针 t 指向形参s,然后通过一个 while循环让指针t不断递增,直到C指向字符串结束标志处。当 t指向结束 标志处时,由于后缀 +运算符的原因,它还会被再递增 1, 所以接下来的 t- ;语句让它回到结束标志处。最后返回 t-s ,因为 s 还是指向字符串第 1 个字符处,而 t 指向了字符串结尾,故返回值为字符串的长度 值。34. 在C语言中,变量的隐含存储类别是()。(分数: 2.00 )A
37、. autoVB. staticC. externD. 无存储类别解析: 解析 auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时,可以不写 auto ,存 储类别隐含确定为 auto( 自动存储类别 ),是动态存储方式。大多数变量是自动变量。用 static 声明的局 部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原 值,下次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全局变量,可以用 extern 声明 来改变全局变量的作用域,实际上,关键字“ auto ”可以省略,auto不写则隐含确定为“
38、自动存储类别”, 属于动态存储方式。35. 以下程序的输出结果是 ( ) 。main()int a,i;a=0;for(i=1; i < 5: i+)switch(i)case 0 :case 3:a+=2;case 1 :case 2:a+=3;default:a+=5;prinf("%d/n" , a;(分数: 2.00 )A. 31 VB. 13C. 10D. 20解析: 解析 本题考查用于多分支选择的 switch 语句,其一般形式为:switch( 表达式 )case 常量表达式 1:语句 1 ;case 常量表达式 2:语句 2 ;case常量表达式 n:
39、语句n ;default :语句 n+1;其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的 值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case 后的语句;如表达式的值与所有 case 后的常量表达式均不相等时,则执行 default 后的语句。36. 设有定义:int a , +pa=&a;,以下scanf语句中能正确为变量 a读入数据的是()。(分数: 2.00 )A. scanf("%d",pa);VB. scanf("%d",a);C. scanf(%d", &
40、; pa);D. scanf("%d",*pa);解析: 解析 本题考核的知识点是 scanf() 函数和指针类型变量的简单应用。 scanf() 函数的功能是进行 输入数据,它是按格式参数的要求从终端上把数据传送到地址参数所指定的内存空间中,C语言允许程序员间接地使用内存地址,这个地址是通过对变量名“求地址”运算得到的,求地址的运算符是&,得到的 地址是一种符号地址。本题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义pa是一个存放a的地址的变量。选项 B)中应该将a改为&a,故选项B)不正确;选项C)应该将& pa改为pa,因为pa 已
41、经表示存放a的地址,故选项 C)不正确;选项D)中*pa=a,而不是表示a的地址,所以选项 D)不正确。37. 为了提高流程图在描述程序逻辑时的灵活性, 提出了用方框图来代替传统的程序流程图, 通常也把这种 图称为 ( ) 。(分数: 2.00 )A. PAD 图B. N-S 图 VC. 结构图D. 数据流图解析: 解析 N-S 图是由 Nassi 和 Shneiderman 提出的一种符合程序化结构设计原则的图形描述工具。它 的提出是为了改进流程图在描述程序逻辑时的不灵活性。38. 数据流图用于抽象描述一个软件的逻辑模型, 由一些特定的图符构成。 下列图符名标识的图符不属于数 据流图合法图符
42、的是 ( ) 。(分数: 2.00 )A. 控制流 VB. 加工C. 数据存储D. 源和潭解析: 解析 数据流图中的主要图形元素有加工、数据流、存储文件、源和潭39. 具有 3 个结点的二叉树有 ( ) 。2.00 )A. 2种形态B. 4种形态C. 7种形态D. 5种形态 V解析:解析具有3个结点的二叉树有以下的几种形态:*40. 算法中,对需要执行的每一步操作,必须给岀清楚、严格的规定,这属于算法的(分数:2.00 )A. 正当性B. 可行性C. 确定性 VD. 有穷性解析:解析一个算法应当具有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或 多个输岀。算法的确定性是指:算
43、法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且 在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的执行结果。二、填空题(总题数:13,分数:38.00)41. 希尔排序法属于1排序法。(分数:2.00 )填空项1: (正确答案:插入类)解析:解析希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以 希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进。42. 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、1遍历和后序遍历。(分数:2.00 )填空项1: (正确答案:中序)解析:解析在先左后右
44、的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中 序遍历和后序遍历。43. 为了便于对照检查,测试用例应由输入数据和预期的1两部分组成。(分数:2.00 )填空项1: (正确答案:输岀结果)解析:解析测试用例仃ext Case)是为测试设计的数据。测试用例由测试输入数据和与之对应的预期输 出结果两部分组成。44. 在数据库设计的4个阶段中,每个阶段都有自己的设计内容。“为哪些表、在哪些字段上、建立什么样 的索引”,这些设计内容应该属于1设计阶段。(分数:2.00 )填空项1:(正确答案:物理)解析: 解析 数据库设计的四个阶段是需求分析、概念设计、逻辑设计和物理设计,其中
45、的物理设计的主 要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空 间。45. 用 1 结构表示实体及实体之间联系的数据模型称为关系模型。(分数: 2.00 )填空项 1: (正确答案:二维表)解析: 解析 以二维表的形式来表示实体之间联系的数据模型是关系模型,在关系模型中,操作的对象和 结果都是二维表,一张二维表就是一个关系,一个关系就是一张二维表。46. 执行以下程序后的输出结果是 。main()int a=10;a-(3*5,a+4);printf("a=%d/n",a);(分数: 2.00 )填空项 1: (正确答案: a=
46、14)解析: 解析 本题主要考查了逗号表达式。逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题 目中的语句a=(3+5 , a+4);就等价于a=a+4;。故本题输出结果是a=14。47. 有以下程序:main()int m , n, p :scanf("m=%dn=%dp=%d",m,n, p);printf("%d%d%d/n",m,n,p);若想从键盘上输入数据,使变量m中的值为123, n中的值为456, p中的值为789,则正确的输入是 (分数: 2.00 )填空项 1: (正确答案: m=123n=456p=789 解析体题考查的是格式
47、输入函数。 如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。根据本题的数据输入形式“ scanf("m=%dn=%dp=%d," m,n, & p); ”说明在输入数据时,必须输入“ m=、“ n=”、“ p= ”字符,且中间不能含有空格。)解析:48. 有以下程序:#include < stdio.h >main()char a30b30;scanf("%s" , a);gets(b);printf("%s/n%s/n",a,b);程序运行时若输入:how are
48、 you?I am fine <回车>则输出结果是 。(分数:2.00 )填空项1: (正确答案:howare you? I am fine )解析:解析本题的考查点是scanf函数和gets函数。gets(s)函数与scanf("%s “,s)相似,但不完全 相同,使用scanf("%s" ,s)函数输入字符串时,输入了空格则认为输入字符串结束,空格后的字符将作为 下一个输入项处理。但 getse函数将接收输入的整个字符串直到遇到回车符为止。49. 有以下程序段:int k=0,a=1,b=2,c=3;k=a< b? b:a ; k=k >c? c:k :执行该程序段后,k的值是。(分数:2.00 )填空项1: (正确答案:2)解析:解析本题考查的知识点是条件表达式。条件运算符?:是C语言中唯一的三目运算符,它的规则是先计算左边运算分量,如果为“真”(非 0),则返回中间运算分量的值,否则返回右边运算分量的值。本题中因为a< b为“真”,所以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版校企合作数字内容制作与传播技能培训协议2篇
- 二零二五年度股权代持资产监管委托协议3篇
- 2025版金属矿床探矿权转让合同协议3篇
- 2025版消防技术服务与咨询合同3篇
- 二零二五年度人工智能教育平台个人技术入股合同2篇
- 垃圾食品我不吃安全教育
- 二零二五年度智能家居系统定制个人房屋装修合同范本2篇
- 二零二五版物业服务行业员工保密协议规范3篇
- 二零二五年度农业产业股权投资及投资合同规范3篇
- 二零二五版现代学徒制协议书-新能源电动汽车研发与制造3篇
- 简易三方换地协议书范本
- 2025届广东省深圳罗湖区四校联考九上数学期末综合测试试题含解析
- 飞鼠养殖技术指导
- 2024输血相关知识培训
- 2023年四川省绵阳市中考初中学业水平考试语文试题【含答案】
- 正大天虹方矩管镀锌方矩管材质书
- 山东省泰安市2022年初中学业水平考试生物试题
- 受贿案例心得体会
- 人教A版高中数学选择性必修第一册第二章直线和圆的方程-经典例题及配套练习题含答案解析
- 图书馆学基础简明教程
- 毕业设计(论文)-液体药品灌装机的设计与制造
评论
0/150
提交评论