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

下载本文档

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

文档简介

1、二级 C 语言笔试 -475( 总分: 103.00 ,做题时间: 90 分钟 )一、选择题 (总题数: 40,分数: 69.00)1. 常采用的两种存储结构是 ( ) 。A. 顺序存储结构和链式存储结构B 散列方法和索引方式C.链表存储结构和数组 D 线性存储结构和非线性存储结构(分数: 1.00 )A. VB.C.D.解析: 解析 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。2. 下列选项中,不是一个算法的基本特征的是 ( ) 。A) 完整性 B) 可行性 C) 有穷性 D) 拥有足够的情报 (分数: 2.00 )A. VB.C.D.解析:解析作为一个算法,一般应该具有4

2、个特征:可行性,即考虑到实际的条件能够达到一个满意的结果:确定性,算法中的第一个步骤都必须是有明确定义的;有穷性,一个算法必须在有限的时间 内做完;拥有足够的情报。3. 下列叙述中正确的是 ( ) 。A) 一个算法的空间复杂度大,则其时间复杂度必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对 (分数: 2.00 )A.B.C.D. V解析: 解析 算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的执行情况,它们之间没 有内在联系。4. 结构化程序设计的主要特点是 。A) 模块化 B) 每个控制结构具有封

3、装性C) 每个控制结构具有独立性 D) 每个控制结构只有一个入口和一个出口分数: 2.00 )A.B.C.D. V解析:解析按照结构化设计方法设计的程序具有以下特点:(1) 程序易于理解、使用和维护,程序员采用结构化编程方法,便于控制、降低程序的复杂性,因此容易编 写程序,便于验证程序的正确性。结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证 明和测试,以确保程序的正确性。程序容易阅读并被人理解,便于用户使用和维护。(2) 提高了编程工作的效率,降低了软件开发成本。由于结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错时间。结构化是由一些为数不多的基本结构模块组成,这

4、些模块甚至可以由机器自动生成,从而极大地减轻了编程工作量。(3) 结构化程序设计选用的每个控制结构只允许有一个入口和一个出口。5. 在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A) O(n) B) O(n 2) C) O(log 2n) D) O(nlog 2n)(分数:2.00 )A.B.C. VD.解析:知识点二分查找法的时间复杂度评析二分法检索要求线性表结点按关键值排序且以顺序方式存储。在查找时,首先与表的中间位置上结 点的关键值比较,若相等则检索成功;否则根据比较结果确定下一步在表的前半部分或后半部分继续进行。 二分法检索的效率比较高,设线性表有n个元素,则最多的检

5、索次数为大于long 2n(2为底数)的最小整数,最少的检索次数为1。6. 有下列二叉树,对此二叉树前序遍历的结果为()。A) ACFHIBEDG B) ABCDEFGHIC) ABDEGCFHI D) ABCDEFHGI(分数:1.00 )A.B.C.D.解析:V解析对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。7. 下列叙述中,不属于软件需求规格说明书的作用的是A) 便于用户、开发人员进行理解和交流B) 反映岀用户问题的结构,可以作为软件开发工作的基础和依据C) 作为确认测试和验收的依据D) 便于开发人

6、员进行需求分析(分数:2.00 )A.B.C.D. V解析: 解析 软件需求规格说明书 (SRS, Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用:便于用户、开发人员进行理解和交 流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。8. 算法的有穷性是指 ( ) 。A) 算法程序的运行时间是有限的 B) 算法程序所处理的数据量是有限的C) 算法程序的长度是有限的 D) 算法只能被有限的用户使用 (分数: 2.00 )A. VB.C.D.解析: 解析 算法的有穷

7、性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后 终止。9. 设计程序时,应采纳的原则之一是 ( ) 。A)程序的结构应有助于读者的理解B)限制GOT(语句的使用C) 减少或取消注释行 D) 程序越短越好(分数: 2.00 )A. VB.C.D.解析:解析程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用GOTO吾句将使程序流程无规律,可读性差;添加注释行有利于对程序的理解,不应减少或取消,程序的长短要依 据实际的需要而定,并不是越短越好。10. 两个或两个以上的模块之间关联的紧密程度称为 ( ) 。A) 耦合度 B) 内聚度 C) 复杂度 D) 连

8、接度(分数: 2.00 )A. VB.C.D.解析: 解析 耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素问彼此结合的 紧密程度的度量。11. 冒泡排序在最坏的情况下的比较次数是A) n(n+1)/2 B) nlog2n C) n(n-1)/2 D) n/2分数: 2.00 )A.B.C. VD.解析:解析 冒泡排序的基本思想是对当前未排序的全部结点自上而下地依次进行比较和调整,让键值较 大的结点下沉,键值较小的结点往上冒。也就是说,每当比较两个相邻结点后发现它们的排列与排序要求 相反,就要将它们互换。对n个结点的线性表采用冒泡排序,冒泡排序的外循环最多执行n-1遍。第一

9、遍最多执行n-1次比较,第二遍最多执行 n-2 次比较, 以此类推, 第 n-1 遍最多执行 1 次比较。 因此,整个排序过程最多执行 n(n-1)/2 次比较。12. 下面叙述正确的是 ( ) 。A) 算法的执行效率与数据的存储结构无关B) 算法的空间复杂度是指算法程序中指令 (或语句 )的条数C) 算法的有穷性是指算法必须能在执行有限个步骤之后终止D) 以上三种描述都不对 (分数: 1.00 )A.B.C. VD.解析:解析 算法的执行效率与数据的存储结构有关;算法在运行过程中需辅助存储空间的大小称为算法 的空间复杂度;算法的有穷性是指一个算法必须在执行有限步骤以后结束。13. 在 E-R

10、 图中,用来表示实体的图形是 。(A) 矩形(B) 椭圆形(C) 菱形(D) 三角形(分数: 2.00 )A. VB.C.D.解析:14. 对关系S和只进行集合运算,结果中既包含S中的所有元组也包含只中的所有元组,这样的集合运算称为( ) 。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数: 2.00 )A. VB.C.D.解析: 解析 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中 的所有元组。15. 设有定义下列:int a=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=a b)&(n=c d)运算后,n的值是()。A) 4 B)

11、3 C) 2 D) 0(分数: 2.00 )A.B.C. VD.解析: 解析 在逻辑与 &运算中,如果第一个操作数为假,则结果是假,后面的操作数不参与运算,本题中因为第一个操作数(m=a b)为假,所以第二个操作数(n=c d)不参加运算,因此n的值不变。16. 以下符合C语言语法的实型常量是()。(分数: 1.00 )A.B.C. VD.解析:解析实数在C语言中又称浮点数,它有两种表示形式: 十进制数形式。它由数字和小数点组成(注意必须有小数点)。0.123 , .123 , 123.0, 123. , 0.0都是十进制数形式。 指数形式。如123e3或123E3都代表123*103。要注意

12、字母e(或E)之前必须有数字,且 e后面的指数必 须为整数,如e3,.e3,e等都不是合法的指数形式。17. 有以下程序段char ch ; int k ;ch=a ; k=12 ;printf(%c , %d, , ch, ch, k); printf(k=%d/n , k); 已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配,输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a , 97, 12k=12D)a , 97, k=12(分数: 1.00 )A.B.C.D. V解析: 命题目的 考查 printf 函数的

13、相关知识。解题要点输出格式控制符c表示将变量以字符的形式输出;输出格式控制符4表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。18. 假定 x 和 y 为 double 型,则表达式 x=2, y=x+3/2 的值是 ( ) 。A3.500000 B 3C2.000000 D 3.000000分数: 1.00 )A.B.C.D. V解析:解析在x=2, y=x+3/2中,3/2=1 , 2+1=3,因此表达式的值为3,因为x, y为double型变量,故选择 D 选项。19. 若有条件表达式 (exp)

14、?a+: b- ,则以下表达式中能完全等价于表达式 (exp) 的是A) (exp=0) B) (exp!=0) C) (exp=1) D) (exp!=1)(分数: 1.00 )A.B. VC.D.解析:解析条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中唯一的一个三目运算符。 条件表达式的一般形式为:表达式1?表达式 2:表达式 3。其求解顺序是:先求解表达式 1,若为非 0(真)则求解表达式 2,此时表达式 2的值就作为整个条件表达式 的值。若表达式 1 的值为 0( 假) ,则求解表达式 3,表达式 3 的值就是整个条件表达式的值,注意 +、 - 的用法。20. 若变量已

15、正确定义,有以下程序段int a=3 , b=5, c=7 ;if(a b) a=b ; c=a ;if(c!=a)c=b ;printf(%d , %d, %d/n , a, b, c) ;其输出结果是 ( ) 。A. 程序段有语法错误B . 3, 5,3C3, 5, 5 D3, 5, 7(分数: 1.00 )A.B. VC.D.解析:解析本题中第一个if条件不成立,故不执行“ a=b”,接着执行“ c=a”,此时第二个 if条件也 不成立,故不执行其后语句。21. 若下列各选项中所有变量已正确定义,函数 fun 通过 return 语句返回一个函数值,以下选项中错误的 程序是 ( ) 。A

16、) main( )x = fun(2,10);float fun(int a, int b)B) float fun( int a,int b)main( )x = fun(i,j);C) float fun(int, int);main( )x=fun(2,10);float fun(iht a, int b)D) main( )float fun(int i, int j); x = fun(i,j);float fun(int a,int b) (分数: 1.00 )A. VB.C.D.解析: 解析 C 语言程序从 main 函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调

17、用。若被调用函数定义在主调函数之后,则必须先声明后调用。在选项A)中,先执行main函数,并调用了 fun 函数,而 fun 函数在此调用之前无定义也无声明,故无法正常识别调用,所以错误。22. 以下程序的输出结果是 ( ) 。main()int a33=1, 2), 3, 4), 5, 6), i, j , s=0;for(i=1 ; i v 3 ; i+)for(j=0 ; j v =i ; j+)s+=aij;printf(%d/n , s) ;A18 B19 C20 D21(分数: 1.00 )A. VB.C.D.解析: 解析 循环的作用是求行下标从 1 到2、列下标从 0到 i 的元

18、素之和,即s=a10+a11+a20+a21+a22=3+4+5+6+0=18。23. 有以下程序:main()int i,j,x=0;for(i=0;i v 2;i+)x+;for(j=0;j v =3;j+)if(j*2)continue;x+;x+;printf(x=%d/n ”,x);程序执行后的输出结果是 。A) x=4 B) x=8 C) x=6 D) x=12分数: 2.00 )A.B. VC.D.解析:解析内层for循环语句实现x=x+2,故外层for循环语句单次循环实现 x=x+4,所以程序执行后 的输出结果为 x=8。24. 以下选项中值为 1 的表达式是 。A) 1-0

19、B) 1-/0 C) 1-0 D) /0-0(分数: 2.00 )A.B. VC.D.解析:解析/0 的ASQ值为0。25. 下列程序的输出结果是 ( ) 。#include int b=2;int func(int*A)b+=*a;retum b;main()int a=1,t=2;t+=func(&A) ;printf(%d/n,t);A) 4 B) 5 C) 6 D) 8(分数: 2.00 )A.B. VC.D.解析:解析本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行时 b=2+仁3,最终t=2+3=5。26. 以下程序运行后的输出结果是

20、#include #include main()char x=STRING;x0=0; x1=/0; x2=0;printf(%d%d/n, sizeof(x), strlen(x);A) 6 1 B) 7 0 C) 6 3 D) 7 1(分数: 2.00 )A.B. VC.D.解析: 解析 本题解题的关键是运算符 sizeof 和函数 strlen 的区别。运算符 sizeof 的功能是求出变量 在内存中存放所需的字节数,函数 strlen 的功能是求出字符串的实际长度,不包含字符串结束标记 /0 。程序中使用char x=STRING;定义了数组x,字符串STRING在内存中存放实际需要7

21、个字节(字符/0 需要占用 1 个字节 ) ,所以在定义 x 数组时,系统就为 x 数组划分了 7 个字节的存储空间,所以 “sizeof(x) ”的值为 7。紧接着执行 x0=0; ,/0 的 ASCII 码值等于 0,所以该语句的作用是对 x0 赋予了字符串的结束标记,所以不管x数组后面元素值是多少,strlen(x) 求出的结果都是0。27. 有下列程序:main()int i;for(i=1;i =40;i+)if(i+%5= =0)if(+ +i%8= =0)printf(%d,i);printf(/n);执行后的输出结果是 ( ) 。A) 5 B) 24C) 32 D) 40(分数

22、: 2.00 )A.B.C. VD.解析: 解析 在 for 循环体中,首先判断自变量 i 能否被 5整除,然后再自加两次,最后判断 i 能否被 8 整除。当 for 循环执行到第 30次时, i 的值为 30能被 5整除,然后 i 经过两次自加 1 运算,值变为 32, 能被 8 整除,故执行“ printf(%d,i); ”语句,即输出 32。本题的答案为选项 C) 。28. 若有定义: int a410;, 则以下选项中对数组元素 aij 引用错误的是 。 (o =i 4,0=j =10A) *(&a00+10*i+j) B) *(a+i)+jC) *(*(a+i)+j) D) *(ai

23、+j)分数: 2.00 )A.B. VC.D.解析: 评析 本题中选项 B 是错误的引用, *(a+i)+j 只代表了 aij 的地址。29. 有以下程序:#include main()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i 12;i+)csi+;for(i=1;i 5;i+)printf(%d,ci);printf(/n) ;程序的运行结果是 。A) 1 2 3 4 B) 2 3 4 4 C) 4 3 3 2 D) 1 1 2 3(分数: 2.00 )A.B.C. VD.解析:解析程序中定义了两个数组 s和c,数组c中有5个元素,每个

24、元素的初始值为 0;数组s中有 12个元素,包含4个“ 1”,3个“2”,3各“3”,2个“4”。第一个for语句中,用si作为c数组 的下标,用于统计si中相同数字的个数,同时将统计的结果放在以该数字为下标的c数组中。第二个for语句用于将c数组中a1 a44个元素输出。30. 下列叙述中,错误的是 ( ) 。A) 在同一 C程序文件中,不同函数中可以使用名字相同的变量B) 在 main() 函数体内定义的变量是全局变量C) 形参是局部变量,函数调用完成即失去意义D) 若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用(分数: 2.00 )A.B. VC.D.解析: 解析

25、 本题考查函数调用时变量的作用域。形参是局部变量,函数调用完就失去意义了,所以在同 一个C程序文件中,不同的函数体中可以使用名字相同的局部变量。 知识拓展 在函数之外定义的变量称为外部变量,外部变量是全局变量。全局变量可以为本文件中其他函 数所共用。它的有效范围为:从定义变量的位置开始到本源文件结束。31. 已有定义: char a=xyz,b=x,y,z;,以下叙述中正确的是 。A)数组a和b的长度相同B) a数组长度小于b数组长度C) a 数组长度大于 b 数组长度 D) 上述说法都不对(分数: 1.00 )A.B.C. VD.解析: 解析 本题考查字符型一维数组的初始化。字符型一维数组在

26、定义并初始化时,可以使用初始化列 表或者字符串常量。因为字符串常量会自动在结尾添加 /0 字符作为字符串结束标志,所以用字符串常量 的初始化列表项个数是字符串的长度加1。题中的 chat a=xyz 可以改写为 char a=x,y,z,/0)所以a数组的长度大于b数组的长度,选项 C正确。32. 下列程序的运行结果为 ( ) 。#include voidabc(Char*str)inta,b,i,j;for(i=j=0;stri!=/0;i+)if(stri!=a)strj+=stri;strj=/0;void main()char str=abcdef; abc(str);printf(s

27、tr=%s,str);A) str=bcdef B) str=abcdef C) str=a D) str=ab(分数: 2.00 )A. VB.C.D.解析:解析本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。33. 设变量已正确定义,则下列能正确计算 f=n! 的程序段是 ( ) 。A) f=0;for(i=1 ;i =n;i+) f*=i;B) f=1;for(i=1;i 1;i+)f*=i;D) f=1;for(i=n;i =2;i-)f*=i;(分数: 2.00 )A.B.C.D. V解析:解析要正确计

28、算函数f=n!,由n!的数学定义可知n!-n*(n-1)*(n-2)*1。在选项 A)中,由于f的初值为0,在for循环语句中f依次乘以1,2, 3,,n。最后计算f=n!=0,所以选项A)不正 确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1, 2, 3,(n-1)。最后计算得到 f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,所以选项C)不正确.在选项D)中,f的初值为1,在for循环语句中,f依次乘以n, n-1 , n-2 , ,2。最后计算f=n!,所以选项D)正确。34. 下列二维数组初始化语句中,

29、不正确的是 ( ) 。A) int b2=1,2,3,4,5,6,7; B) int b35=0,0,0;C) int b4=1,2,3,4,5,6; D) int b32=(1,2),(3,4) ,(5,6);(分数: 2.00 )A.B.C.D. V解析:解析在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0; C语言规定,对于二维数组,只可以省略第 1 个方括号中的常量表达式,而不能省略第 2 个方括号中的常量表达 式:赋的初值不能多于事先定义好的数组元素个数。选项D)赋值表达式中对每一维的元素赋初值应用,而不是 () 。35. 有以下程序:#include voi

30、d fun(char*t,char*s) while(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=acc,aa10=bbxxyy;fun(ss,aa) ; printf(%s,%s/n,ss,aa) ;程序的运行结果是 。A) accxyy , bbxxyy B) acc,bbxxyy C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy(分数: 2.00 )A.B.C.D. V解析: 解析 本题考查的重点是数组与指针的关系。函数 fun() 中用两个指针来访问实参的两个数组。而 函数 fun 的功能是将第二个字符串合并到第一个

31、的末尾,因此选项 D 是正确的。36. 下列程序段的输出结果为 ( ) 。#include main()static char a=language;char *p;p=a;for(p=a;p a+8;p+=2)putchar(*p);A) language B) lnug C) 有语法错误 D) lang(分数: 2.00 )A.B. VC.D.解析:解析本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循 环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,

32、输出n;第3次for循环,p=p+2, 则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向 数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。37. 以下程序运行后的输出结果是#include #include typedef struetchar name9 ; char sex ; float score2 ; STU;void f(STU a)STU b=Zhao, m , 85.0, 90.0 ;int i ;strcpy( , ) ;a.sex=b.sex ;for(i=0 ; i next=

33、r-next;p- next=r;r- next=q ;B) p- next=r;q- next=r- next;r- next=q ;C) q- next=r- next;r- next=q;p- next=r ;D) r- next=q ; p- next=r;q- next=r-next ;(分数:2.00 )A.B.C.D. V解析:解析D中的操作将会丢失r后面的链表结构,不能保持链表的连续。39. 有以下程序#include main()struct STUchar name9;char sex;double score2;sturt STU a=Zhao,m,85.0,90.0,b

34、=Qian,f,95:0,92.0;b=a;printf(%s,%c,%2.0f,%2.0f/n,,b.sex,b.score0,b.score1);程序的运行结果是。A) Qian,f,95,92 B) Qian,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90(分数:2.00 )A.B.C.D. V解析:评析本题定义了两个结构体变量a和b,并将结构体变量a的内容赋给了结构体变量b。对于结构体的赋值,意味这将其中的每一个元素都进行赋值,所以输岀的结构体变量b中的内容即为结构体变量a中的各项内容。另外本题需要注意的是输岀格式的控制,其中“%2.0f”指的是

35、输岀的数据共占2列,其中有0位小数。40. 设有以下语句:charx=3 , y=6, z;z=xAy 2;则z的二进制值是()。A) 00010100 B) 00011011 C) 00011100 D) 00011000(分数:2.00 )A.B. VC.D.解析: 解析 本题考查两个位运算符。按位异或运算符“人”是双目运算符, 其功能是参与运算的两数对应的二进制位相异或,当两对应的二进制位相异时,结果为1。左移运算符“VV”是双目运算符,其功能是把“VV”左边的运算数的各二进制 位全部左移若干位,移动的位数由“VV”右边的数指定,高位丢弃,低位补0。“ v”运算符的优先级高于“人”。二、

36、填空题 (总题数: 15,分数: 34.00)41. 线性表的存储结构主要分为顺序存储结构和链式存储结构, 队列是一种特殊的线性表, 循环队列是队列 的 1 存储结构。(分数: 2.00 )填空项 1: (正确答案:顺序)解析:解析 顺序存储是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系中存 储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。链接存储不要求逻辑上相邻的结点在 物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的,由此得到的存储表示称为链式存储结 构。将队列存储空间的最后一个位置绕到第一个,形成逻辑上首尾相接的圆环,这种形式的顺序队列称为 循

37、环队列,它是队列的顺序存储结构。42. 诊断和改正程序中错误的工作通常称为 1 。(分数: 2.00 )填空项 1: (正确答案:程序调试)解析: 解析 程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行,调试程序应该由编制源 程序的程序员来完成。43. 符合结构化原则的 3 种基本控制结构是选择结构、循环结构和 1 。(分数: 2.00 )填空项 1: (正确答案:顺序结构)解析: 解析 结构化程序设计的 3种基本逻辑结构为顺序结构、选择结构和循环结构。顺序结构是一种简 单的程序设计结构,它是最基本、最常用的程序设计结构;选择结构又称为分支结构,包括简单分支和多 分支选择结构;循环结

38、构也叫重复结构,它根据给定的条件,判断是否需要重复执行某一相同的程序段。44. 队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许删除的一端称作1 。(分数: 2.00 )填空项 1: (正确答案:队头)解析:解析 队列是只允许在一端删除, 在另一端插入的顺序表, 在队列中,允许插入的一端叫做“队尾”, 允许删除的一端叫做“队头”。45. 若 x 和 a 均是 int 型变量,则计算完 x=(a=4,6*2) 后的 x 值为 1 。(分数: 2.00 )填空项 1: (正确答案: 12)解析:解析x=(表达式1,表达式2,)的形式,结果为最后一个表达式的值:x=(a=4,6*2)

39、=2*6=1246. 若 x 为血类型,请写出与 !x 等价的 C 语言表达式 1(分数: 2.00 )填空项 1: (正确答案: x=0)解析: 解析 !x 的逻辑意思就是 x 为非,即 x=0。47.47. 以下程序将数组 a 的 4 个元素和数组 b 的 6 个元素写到名为 lett.dat 的二进制文件中,请填空。#include#includemain()FILE *fp ;char a5=1234,b7=abcedf ;if(fp=fopen(U /U, wb)=NULL) exit(0)fwrite(a , sizeof(char), 4, fp) ;fwrite(b , U /

40、U, 1 , fp) ;fclose(fp) ;分数: 2.00 )填空项 1:正确答案: lett.dat 6*sizeof(char) )解析: 解析 本题主要考查函数 fwrite(char *pt, unsigned size,unsigned n ,FILE *fp)把 pt 所指向的 n*size 个字节输出到 fp 所指定的文件中48. 若从键盘输入 24,则以下程序输出的结果是 #include main() int a;scanf(%d,&a);if(a 20) printf(%d,a);if(a 10) printf(%d,a); if(a 5) printf(%d,a);

41、(分数: 2.00 )填空项 1: (正确答案: 24 24 24 )解析: 解析 程序通过 scanf(%d,&a) 语句从键盘获取一个数据。 if 语句的功能是只要条件成立,则执 行其后面的语句,这里从键盘输入的是a=24,所以3个if语句的都满足条件,因此3个语句都输出2449.49. 有以下程序;int a=2;int f(int *A)return(*A) +;main()int s=0 ;int a=5 ;s+=f(&A)s+=f(&A) printf(%d/n,s)执行后的输出结果是 U /U(分数: 2.00 )填空项 1: (正确答案: 7)解析: 解析 如果局部变量与全局变量重名,在局部变量的作用域,全局变量不起作用。所以在 main 函 数中第一次调整函数f时a=5得s=5,第二次调用函数f时a=2得s=5+2=7。函数f在执行语句return(*A) +时首先返回*A,然后将*A的值加1。50. 在循环中, continue 语句与 break 语句的区别是: 1 语句只是结束本次循环,然后进行循环的条件判(分数: 2.00 )填空项 1: (正确答案: continue )解析:解析continue语句只是结束

温馨提示

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

评论

0/150

提交评论