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

下载本文档

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

文档简介

1、级 C 语言笔试 -97( 总分: 108.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 40,分数: 70.00)1. 有以下程序: struct sint x,y;) data 2=10,100,20,200;main()struct s *p=data;printf(%d/n",+p- > x);程序运行后的输出结果是 () 。(分数: 2.00 )A. 10B. 11 VC. 20D. 21解析: 解析此题的考查点是结构体变量的初始化。该题是一个对外部存储类型的结构体变量进行的初始 化。初始化后,x的值为10 , y的值为100。+(p x)中首先pf 是把

2、p指向结构 体变量s中的x成员,此+(p x)就相当于+X, 这时 x 先自增,再使用,所以此时 x 的值为 11 故此题答案为 B) 。2.设有定义语句:char c1=92 , c2=92 ;,那么以下表达式中值为零的是()。(分数: 2.00 )A. c1Ac2 VB. c1 c2C. c2D. c1|c2解析:解析此题考的是位运算。“A'是按位异或运算,当对应位上的二进制数值相同时,异或的结果 为 0,对应位上的二进制数值不同时,异或的结果为1,因为 c1、c2 的值相同,所以异或的结果为 0,所以 A) 为正确答案。3. 有以下程序:fun(int x,int y)(retu

3、rn (x+y);)main()int a=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf("%d/n",sum);执行后的输出结果是 () 。B. 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。所以,函数返

4、回的值为5+3=8。故应该选择 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. 1 VB. 2C. 3D. 4解析: 解析 该题考查的是递归函数的调用,题中fun 函数进行了递归调用,第 1 次调用时:fun(3)n=3s=3-fun(2) ;第 2 次调用时: fun(2)n=2 s=2 ,返回第一次调用后, s=3-2=1 。5. 设有定义:int a; flo

5、at b;,执行 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);B. 666C. 888 VD. 666, 888解析: 解析 此题考查的知识点是:格式化输出的应用。printf 函数的调用形式: printf( 格式控制, 输出

7、项 l ,输出项 2, ? ), 该题的输出项为一个逗号 表达式, 该表达式的值为 b 的值,因此输出结果为 888 ,故此题选 C) 。7. 以下选项中,能定义 s 为合法的结构体变量的是 ( ) 。( 分数: 2.00 )A. typedef struct abc double a; char b10; s;B. struct double a; char b10; s; VC. struct ABC double a; char b10;ABC s;D. typedef ABC double 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码值。在 ASC H码中,字符

9、串结束符70'的ASC H码为0,字符'0'的ASC 码的值为48,字符'1'的ASC 码的值为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 < 5;i+)a+=f() ;printf("%d/n"解析: 解析 函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序

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. 6 VB. 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分别指向一个链表中的三个连续结占-11 八、struct node int data; struct node *n ext;)*p,*q ,现要将data next data next dat

14、a next()q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是(分数:1.00 )A. r f next=q;q f next=r f next;p f next;r;VB. q f next=r f next;p f next=r;r f next=q;C. P f next=r;q f n ext=r f next;r f next=q;D. q f next=r f next;r f next=q;p f next=r;解析:解析此题的考查点是指向结构体变量的指针以及用指针处理链表。一个结构体变量的指针 就是该 变量所占据的内存字段的起始地址。可以设一个指针变量,

15、用来指向一个结构体变量,此 时该指针变量的 值是结构体变量的起始地址。指针变量也可以用来指向结构体数组的元素。在C语言中,qf next相当于 (*q)next。即q所指向的是结构体变量中的next成员。链表是一种常见的重要的数据结构。它是动态地进 行存储分配的一种结构。它根据需要开辟内存单元。链表中的备元素在内存中可以不是 连续存放的。所以必须利用指针变量才能实现。即一个结点中应包括一个指针变量,用它存放下一结点的地址。r f next=q表示让q指向新开辟的结点,r指向链表中最后一个结点,把r所指的结点连接在q所指的结点后面。同 样,pf next=r表示让r指向新开辟的结点,p指向链表中

16、最后一个结点,把p所指的结点连接在r所指的结点后面。那么在 A中,执行r f next=q后,r f next指向了 q。此时第2句 相当于qf next=q ;,所以q的下一个结点指向了自己,而不是指向原来r的下一个结点。故此题答案为A)。15. 有以下程序:#include V stdio.h > mai n() char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",& c1, & c2, & c3, & c4); c5=getchar();c6=getchar();putchar(c1); putchar

17、(c2); printf("%c%c/n",c5,c6);程序运行后,假设从键盘输入(从第1列开始) 123 V回车45678 V回车那么输出结果是 ()。分数:1.00 )A. 1267B. 1256C. 1278D. 1245 V解析: 解析 此题考查的是输入输出函数。 scanf() 是格式化输入函数; getchar() 函数从键盘缓 冲区读入 下一个字符; putchar(J 输出一个字符; printf() 函数是格式化输出函数。在题目中,程序 执行到seanf()函数时,会暂停等待用户输入4个字符,按题意输入 123V回车后,字符13被分别输入到 c1-c3

18、中, 而 c4 会得到一个换行符 '/n' 。然后执行第 1 个 getchar() 函数,由于前面的seanf() 函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678 V回车后,缓冲区第一个字符4输入到C5,第二个字符5输入到C6,所以此题应该选择D)16. 有以下程序:main()int k=5;while(-k)printf("%d",k-=3);printf("/n") :执行后的输出结果是 () 。( 分数:1.00 )A. 1 VB. 2C. 4D. 死循环解析: 解析 此题考查的是 whil

19、e 循环和一运算符。因为在while 循环的循环条件中,一运算符是前缀形 式,所以表达式 -k 的值是 k 自减之后的值。程序开始时,将 k 的值初始化为 5,然后 进入while循环,因 为-k的值为4(非零),所以执行循环体输出 k-=3的值1,此时k的值也变为1。 第 2次执行循环条件, -k 的值为 0,所以循环结束。因此最后输出的结果是1,故应该选择A) 。17. 在设计程序时,应采纳的原那么之一是 ( ) 。( 分数: 1.00 )A. 不限制 goto 语句的使用B. 减少或取消注解行C. 程序越短越好D. 程序结构应有助于读者理解 V解析:解析滥用goto语句将使程序流程无规律

20、,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。18. 以下表达中正确的选项是 ( ) 。( 分数: 1.00 )A. C 程序中的注释只能出现在程序的开始位置和语句的后面B. C 程序书写格式严格,要求一行内只能写一个语句C. C 程序书写格式自由,一个语句可以写在多行上 VD. 用 C 语言编写的程序只能放在一个程序文件中解析:解析考查C语言的几个根本概念。选项A)中,C语言的注释可以出现在程序的任何位 置; C 语言 的语法限制不严格,可以多条语句放在同一行上,也可以将一条语句写在多行,应选 项 B

21、) 错误,选项 C) 正确;选项 D) 是错误的,因为用 C 语言编写的程序可以放在不同的文件中, 文件之间使用预处理命令进行 调用。19. 以下关于队列的表达中正确的选项是 ( ) 。( 分数: 1.00 )A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表VD. 队列是先进后出的线性表解析: 解析 队列是一种操作受限的线性表。 它只允许在线性表的一端进行插入操作, 另一端进行 删除操 作。其中,允许插入的一端称为队尾 (rear) ,允许删除的一端称为队首 (front) 。队列具有 先进先出的特点, 它是按“先进先出的原那么组织数据的。20. 在结构化方法中

22、,软件功能分解属于以下软件开发中的( ) 阶段。( 分数: 1.00 )A. 详细设计B. 需求分析C. 总体设计 VD. 编程调试解析: 解析 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结 构设计, 确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析 员结合算法描述仔 细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功 能适当地分解成一系列比拟 简单的功能。21. 有定义语句: char s10; ,假设要从终端给 s 输入 5 个字符,错误的输入语句是 ( ) 。( 分数: 2.00 )A. gets( s0);B.

23、scanf("%s",s+1);C. gets(s);D. scanf("%s",s1); V解析: 解析 此题主要考查的是输入函数 scanf 和 gets 。 gets() 函数的原型是 char*gets(char+s) ;。 功 能是通过键盘读入一个字符串,并放到指针参数s所指的内存地址中。选项A)给gets传入的实参是 s0 , 也就是数组 s 的第 1 个元素的地址,这是合法的。选项 C) 传入的是数组名 s, 它出现在表达式中表示的是 数组的首地址,所以也是合法的。 scanf( 函数要求输入的参数均为地 址形式。选项 B) 中表达式 s+

24、1 ,表示 的是数组首地址往后移动一位的地址,所以是合法的。选 项 D) 直接引用数组中下标为 1 的元素,这是不 合法的。22. 有以下程序:# include < string.h > main()char p20=('a','b','c','d'),q="abc",r="abcde": strcat(p,r);strcpy(p+strlen(q),q);printf("%d/n",strlentp);程序运行后的输出结果是 () 。( 分数: 2.00

25、)A. 9B. 6 VC. 11D. 7解析: 解析 strcpy() 函数的功能是将字符串 q 复制到从 p3 位置开始的存储单元,同时复制字 符串结 束标志 '/0' 到 p6 中。函数 strlen() 返回的是字符串中不包括 '/0' 在内的实际长度,故此题 答案为 B)23. 假设变量均已正确定义并赋值,以下合法的C语言赋值语句是()。( 分数: 2.00 )A.x=y ; VB.x=n%52.5 ;C.x+n=i ;D.x=5=4+1 ;解析: 解析 此题考查赋值运算符及赋值表达式。赋值运算符左侧的操作数必须是一个变量,而不 能是表 达式或者常量,选

26、项C)和D)错误。"%"运算符两侧都应当是整型数据,选项B)错误。24. 单个用户使用的数据视图的描述称为 ( ) 。( 分数: 2.00 )A. 外模式 VB. 概念模式C. 内模式D. 存储模式解析:解析选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确, 全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存 储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。25. 对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为 ( )

27、 。( 分数: 2.00 )A. 并运算 VB. 交运算C. 差运算D. 积运算解析: 解析 此题考查集合运算。在关系数据库理论中,两个关系的并是由属于这两个关系的元组 组成的 集合,应选项 A) 正确。两个关系的交是由既属于一个关系又属于另一个关系的元素组成 的集合,两个集合 的差运算是由从一个集合中去掉另一个集合中有的元素组成。两个集合的交运 算是由既属于前一个集合又 属于后一个集合的元素组成。26. 有以下程序:main()int k=5, n=0;do switch(k)case 1:case 3:n+:1;k-;break; default:n:0;k-;case 2:case 4:

28、n+=2;k-;break;printf("%d" , n) : while(k > 0 n < 5);程序运行后的输出结果是 ()(分数: 2.00 )A. 235 VB. 0235C. 02356D. 2356解析: 解析 因为变量的初始值分别为“k=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,

29、k=2,执行“ case 2 : case 4 : 这两个分支,结果是“n=5, k=1 打印出 5,这时因为 n=5 不满足 n <5 的循环条件,因此退出循环,程序运行结束,故输出结果为235。27. 假设有说明语句:double*p, a ;那么能通过 scanf 语句正确给输入项读入数据的程序段是 ( )(分数: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

30、); V解析: 解析 此题考查的是指针的运算和 scanf() 函数。由于 a 表示变量 a 的地址值,所以应该直接赋 给指针变量 p 而不是它所指向的内容,应选项 A) 和 B) 可以排除。而 scanf() 函数除了 第 1 个参数为输入 项列表外,其余参数要求为对应变量的地址值,从前一条语句可以看出,指针 D 中存放的为变量 a 的地址值,所以直接传给 scanf() 函数指针变量 D 就可以了。故应该选择 D) 28. C 源程序中不能表示的数制是 ( ) 。(分数:2.00 )A. 二进制 VB. 八进制C. 十进制D. 十六进制解析: 解析 此题考查的是整型常量。在 C 语言程序中

31、,整型常量可以用十进制、八进制和十六进制等形 式表示。但不包括二进制,故此题应该选择 A) 。29. 以下关于逻辑运算符两侧运算对象的表达中正确的选项是( ) 。分数:2.00 A. 只能是整数0 或 1B. 只能是整数0 或非 0 整数C. 可以是结构体类型的数据D. 可以是任意合法的表达式 VC 语言中,逻辑运算符的两个运算分量可以是任意合法解析: 解析 此题考查的是逻辑运算符 的表达式。 故此题应该选择 D) 。30. 以下程序运行后,输出结果是( )#define PT 5.5#define S(x)PT*x*x #include < stdio.h > main() in

32、t a=1,b=2;prinf("%4.1f/n",S(a+b);(分数: 2.00 )A. 49.5B. 9.5 VC. 22D. 45.0解析: 解析 考查宏替换的使用。宏替换用“ #define 宏名宏体的形式来定义。在进行编译预处 理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像 函数那样要进行 参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计 算,因而此题中的 S(a+b) 进行宏替换后为 PT*1+2*1+2=5.5*1+2*1+2=9.5。31. 假设程序中定义了以下函数:double myadd(do

33、uble a,double b)return (a+b);并将其放在调用语句之后,那么在调用之前应该对该函数进行说明,以下选项中错误的说明是 () 。(分数: 2.00 )A. double myadd(double a,b); VB. double myadd(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.

35、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. 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的时候输

36、出x, a不为0的时候输 出y。所以,4个选项中选项 D)符合题意。33. 有以下函数: int aaa(char *s)char *t=s: while(*t+) : t-;return(t-s);以下关于 aaa 函数的功能的表达正确的选项是 () 。(分数: 2.00 )A. 求字符串s的长度VB. 比拟两个串的大小C. 将串 s 复制到串 tD. 求字符串 s 所占字节数解析: 解析 此题考查的知识点是: while 循环的简单应用。 aaa() 函数中,首先定义了一个字 符指针 t 指向形参 s ,然后通过一个 while 循环让指针 t 不断递增,直到 C 指向字符串结束标志处。

37、当 t 指向结束标志处时,由于后缀+运算符的原因,它还会被再递增1, 所以接下来的 t- ;语句让它回到结束标志处。 最后返回 t-s ,因为 s 还是指向字符串第 1 个字符处,而 t 指向了字符串 结尾,故返回值为字符串的长度 值。34. 在 C 语言中,变量的隐含存储类别是 ( ) 。(分数: 2.00 )A. auto VB. staticC. externD. 无存储类别解析: 解析 auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时,可以不写 auto , 存储类别隐含确定为 auto( 自动存储类别 ) ,是动态存储方式。大多数变量是自动变量。用

38、static 声明的局 部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变 量保存原值,下次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全局变量,可 以用 extern 声明来改变全局变量的作用域, 实际上,关键字“ auto 可以省略, auto 不写那么隐 含确定为“自动存储类别, 属于动态存储方式。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; defaul

39、t:a+=5; prinf("%d/n" , a;分数: 2.00 A. 31 VB. 13C. 10D. 20解析: 解析 此题考查用于多分支选择的 switch 语句,其一般形式为:switch( 表达式 )case 常量表达式1:语句 1 ;case 常量表达式2:语句 2 ;case 常量表达式n: 语句 n ;default :语句 n+1 ;其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比拟,当表达式的值与某个常量表达式的 值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case 后的语句;如表达式的值与所 有 case 后的常量表达式均

40、不相等时,那么执行default 后的语句。36.设有定义:int a , +pa= & a ;,以下scanf语句中能正确为变量a读入数据的是()。( 分数: 2.00 )A. scanf("%d",pa); VB. scanf("%d",a);C. scanf(%d", & pa);D. scanf("%d",*pa);解析: 解析 此题考核的知识点是 scanf() 函数和指针类型变量的简单应用。 scanf() 函数的功能 是进行 输入数据,它是按格式参数的要求从终端上把数据传送到地址参数所指定的内存

41、空间中,C 语言允许程序 员间接地使用内存地址, 这个地址是通过对变量名“求地址运算得到的, 求地址的运算符是&, 得到的 地址是一种符号地址。此题中定义了整型变量a和一个指向整型数据的指针变量pa,并定义 pa 是一个存放a的地址的变量。选项 B)中应该将a改为&a,应选项B)不正确;选项 C)应该将& pa改为pa , 因为pa已经表示存放 a的地址,应选项 C)不正确;选项 D)中*pa=a,而不是表示 a的地址,所 以选项D)不正确。37. 为了提高流程图在描述程序逻辑时的灵活性, 提出了用方框图来代替传统的程序流程图, 通 常也把这种 图称为 ( ) 。( 分

42、数: 2.00 )A. PAD 图B. N-S 图 VC. 结构图D. 数据流图解析: 解析 N-S 图是由 Nassi 和 Shneiderman 提出的一种符合程序化结构设计原那么的图形描述工 具。它 的提出是为了改良流程图在描述程序逻辑时的不灵活性。38. 数据流图用于抽象描述一个软件的逻辑模型,由一些特定的图符构成。 以下图符名标识的图符不属于数 据流图合法图符的是 ( ) 。( 分数: 2.00 )A. 控制流 VB. 加工C. 数据存储D. 源和潭解析: 解析 数据流图中的主要图形元素有加工、数据流、存储文件、源和潭39. 具有 3 个结点的二叉树有 ( )A. 2种形态B. 4种

43、形态C. 7种形态D. 5种形态 V解析:解析具有3个结点的二叉树有以下的几种形态:*40. 算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的分数:2.00A. 正当性B. 可行性C. 确定性VD. 有穷性解析:解析一个算法应当具有 5个特性,即有穷性、确定性、可行性、有零个或多个输入以 及有一个或 多个输出。算法确实定性是指:算法中每一条指令必须有确切的含义,读者理解时不 会产生二义性。并且 在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出 相同的执行结果。二、填空题总题数:13,分数:38.00 41. 希尔排序法属于1排序法。分数:2.00 填空项

44、1: 正确答案:插入类解析:解析希尔排序法的根本思想是: 将整个无序序列分割成假设干小的子序列分别进行插入排序。 所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的改良。42. 在先左后右的原那么下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、 历和后序遍历。分数:2.00 填空项1: 正确答案:中序解析:解析在先左后右的原那么下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序 遍历、中 序遍历和后序遍历。43. 为了便于对照检查,测试用例应由输入数据和预期的1两局部组成。分数:2.00 填空项1: 正确答案:输出结果解析:解析测试用例 Text Case 是为测试

45、设计的数据。测试用例由测试输入数据和与之对应 的预期输出结果两局部组成。44. 在数据库设计的4个阶段中,每个阶段都有自己的设计内容。“为哪些表、在哪些字段上、建分数:2.00 填空项1:正确答案:物立什么样 的索引,这些设计内容应该属于1设计阶段。解析:解析数据库设计的四个阶段是需求分析、概念设计、逻辑设计和物理设计,其中的物理设计的主 要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度 及有效利用存储空 间。45. 用 1 结构表示实体及实体之间联系的数据模型称为关系模型。分数: 2.00 填空项 1: 正确答案:二维表 解析: 解析 以二维表的形式来表示实体之间

46、联系的数据模型是关系模型,在关系模型中,操作的对象和结果都是二维表,一张二维表就是一个关系,一个关系就是一张二维表。46. 执行以下程序后的输出结果是 。mainint a=10;a-3*5,a+4;printf"a=%d/n",a;分数: 2.00 填空项 1: 正确答案: a=14解析: 解析 此题主要考查了逗号表达式。逗号表达式的值是以逗号分隔的最后一个表达式的值。 所以题目中的语句 a=3+5 , a+4 ;就等价于 a=a+4 ;。故此题输出结果是 a=14。47. 有以下程序:mainint m , n,p:scanf"m=%dn=%dp=%d&quo

47、t;, m,n, p;printf"%d%d%d/n",m,n,p;假设想从键盘上输入数据, 使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789 ,那么正确的输 入是 分数: 2.00 填空项 1: 正确答案: m=123n=456p=789 解析体题考查的是格式输入函数。 如果在“格式控制字符串中除了格式说明以外还有其他字 符, 那么在输 入数据时应输入与这些字符相同的字符。根据此题的数据输入形式“ scanf"m=%dn=%dp=%d ," m, n,& p; 说明在输入数据时,必须输入“m二、“ n二、“ p二字符,且

48、中间不能含有空格。解析:48. 有以下程序:#include < stdio.h >mainchar a30b30;scanf"%s" ,a;getsb;printf"%s/n%s/n",a,b;程序运行时假设输入:how are you?I am fine<回车> 那么输出结果是。分数: 2.00 填空项 1: 正确答案: howare you? I am fine 解析:解析此题的考查点是seanf函数和gets函数。gets s函数与scanf "%s “,s相似,但不完全 相同,使用seanf "%s&

49、quot; , 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 个条件表达式的值为 b 的值 2,所以 k=2 然后又因为 k>c 为“假,所以第 2 个表达式的值为 k 的值 2。50. 有以下程序:mainint a=0,b=0,c=0,d=0; if a=1

温馨提示

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

评论

0/150

提交评论