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

下载本文档

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

文档简介

1、级 C 语言笔试 -26总分: 100.00 ,做题时间: 90 分钟 一、选择题 总题数: 40,分数: 70.00 1. 以下程序输出的结果为 。main char*alpha6="ABCD" , "EFGH" , "IJKL" ,"MNOP" , "QRST" , "UVWX" ; char*p ; int i ; p=alpha ; for i=0 ;i < 4;i+ printf "%s",pi ;(分数: 2.00 )A. ABCDEFG

2、HIJKLB. ABCDC. ABCDEFGHIJKLMNOP VD. AEIM解析: 评析 alpha0 指向“ ABCD 的首地址; alpha1 指向“ EFGH 的首地址; alpha2 指向“ IJKL 的首地址,依此类推。当执行 p=alpha 后, p 指向指针数组 alpha 的首地址。 for 循环中输出了 4 个 字符串2. 请读程序:#include < stdio.h > #include < string.h > main() char*s1="AbCdEf","*s2="aB" ; s1+ ;

3、 s2+ ; printf("%d/n",strcmp(s1,s2) ;上面程序的输出结果是 _ 。分数: 2.00 A. 正数VB. 负数CJ | A.零D.不确定的值解析:评析函数strcmp的功能是比拟字符串 si和s2,如果s1>s2,那么返回个正数:如果 si <s2 , 那么 返回负数,否那么返回零。由于此题中小写字母b的ASCII码值大于大写字母 B,故s1> s2,所以函数的值为正数。3. 小写字母 a 的 ASCII 码为 97,大写字母 A 的 ASCII 码为 65,以下程序的结果是 。mainun sig ned int a=32,

4、b=66;pri ntf"%c/ n",a| B;分数: 2.00 A. 66B. 98C. b VD. B解析: 评析位运算符“ | 的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为 1。最后以字符型输出, 98 对应的字符“ b。4. 下面是对宏定义的描述,不正确的选项是 。分数: 2.00 A. 宏不存在类型问题,宏名无类型,它的参数也无类型B. 宏替换不占用运行时间C. 宏替换时先求出实参表达式的值,然后代入形参运算求值VD. 宏替换只不过是字符替代而已解析: 评析宏替换实质上就是字符替代,它不可能进行计算,故C 错误。带参数的宏与函数相比,宏

5、在程序编译之前已经将代码替换到程序内, 执行时不会产生类似于函数调用的问题, 可以说不占 用运行时间。5. 模块本身的内聚是模块独立性的重要性度量因素之一。在7 类内聚中,具有最强内聚的类是分数: 2.00 A. 顺序性内聚B. 过程性内聚C. 逻辑性内聚D. 功能性内聚 V解析: 评析内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7 类,它们之间的内聚性由弱至强排列顺序为: 偶然内聚、 逻辑内聚、 时间内聚、 过程内聚、 通信内聚、 顺芋 内聚和功能内聚。6. 数据的完整性是指数据的正确性、有效性和。分数: 2.00 A. 可维护性B. 独立性C. 平安性D. 相容性V解析:

6、评析数据模型的完整性规那么是给定的数据模型中数据及其联系所具有的制约和依存规那么, 用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。7. 关系代数运算是以 _ 为根底的运算。分数: 2.00 A. 关系运算B. 谓词运算C. 集合运算 VD. 代数运算解析:评析关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它的根本操作 是并、交、差、笛卡尔积,另外还包括垂直分割投影 、水平分割 选择、关系的结合 连接等。8. 能将高级语言程序转换成目标语言程序的是 分数: 2.00 A. 调试程序B. 解释程序c.编译程序VD. 编辑程序解析: 评析 用高级语言

7、编写的程序称为“源程序,而计算机只能识别和执行由0和 1组成的二进制指令,所以高级语言必须先用种称为“编译程序的软件,把源程序翻译成二进制形式的“目标程序。9. 设有以下语句:char str1 ="string"mstr2 8,*str3,*str4="string" ;那么 不是对库函数的正确调用。( 分数: 2.00 )A. strcpy(str1,"HELLO1") ;B. strcpy(str2,"HELLO2") ;C. strcpy(str3,"HELLO3") ; VD. str

8、cpy(str 4,"HELLO4") ;解析: 评析 C 语言中: strcpy(st1,st2); ,其两个参数均为字符指针或字符数组,选项 C 中的目 的串指 针 str3 没有指向具体有效的存储单元,故是错误的调用。10. 在顺序表 (3 ,6,8,10, 12,15,16,18, 21,25, 30) 中,用二分法查找关键码值 11 ,所需的关键码比铰次数为 。 分数: 2.00 A. 2B. 3C. 4 VD. 5解析: 评析 二分法查找是用关键码与线性表的中间元素比拟,然后根据比拟结果来判断是结束查找,还 是在左边或者右边子表按相同的方法继续查找。此题中,与

9、11 比拟的关键码分别为 15 , 8, 10,12 四个11. 在数据结构中,从逻辑上可以把数据结构分为 。( 分数: 1.00 )A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构 VD. 内部结构和外部结构解析: 评析 逻辑结构反映数据元素之间的逻辑关系, 线性结构表示数据元素之间一对一的关系, 非线性 结构表示数据元素之间一对多或多对一的关系。12. 以下程序的输出结果是_ 。#defineA 100 mainint i=0,sum=0;do if(i=(i/2)*2)continue sum+=i ;while(+i <(分数: 1.00 )A. ;

10、printf("%d/n",sum) ;A)2500 VB. 2050C. 4D. 0解析: 评析 此题程序的功能是求 1到 99 之间(包括 1和 99)所有奇数之和。程序中的 while 循环 的终止条件为 +i=100 ,在 while 循环体内,如果 i 是偶数,那么执行 continue ,跳过这一次循环, 执行下次循 环,否那么求和和。最后输出的值是 1 到 99 之间(包括 1 和 99)所有奇数之和 (1+99)*50/2=2500 。13. 出以下程序执行后的输出结果是 。mare()int m3=1,4,7,2,5,8,3,6,9 ;int i,k=2

11、; for(i0;i < 3; i+) printf("%d",mki);(分数: 1.00 )A. 456B. 258C. 369 VD. 789 解析: 评析 根据二维数组的定义得出:m00=1,m01=4,m02=7,m10=2,m11=5,m12=8,m20=3,m21=6, m22=9,所以此题的输出是第 3 行的值 m20 ,m20,m22 ,即 369。14. 假设有以下结构体定义,那么是正确的引用或定义。 struct exampleint x ; int y ; v1;(分数: 1.00 )A. example.x=10B. examplev2.x=

12、10C. struct v2 ; v2.x=10D.struct example v2=10 ;V 解析: 评析 在定义结构体变量时,不能只用结构体名 example 或关键字 struct 进行定义,必需要用结 构体类型名 struct example 定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以 选D。15. 下面语句的输出结果是 printf("%d/n",strlen("/t/"/065/xff/n");分数: 1.00 )A. 14B. 8C. 5 VD. 输出项不合法,无正常输出解析:评析在C语言中,以“ /开头的

13、字符均为转义字符,其中“ / 后可跟13位八进制数或在“ /后跟字母x及12位十六进制数,以此来代表一个特定的字符。16. 对于 n 个结点的单向链表 (无表头结点 ),需要指针单元的个数至少为 。1.00 )(分数:n-1A.B.n+12nC.D.(即指针域 ) ,解析: 评析 在 n 个结点的单向链表 (无表头结点 )中,每个结点都有一个指针单元 加上头指 针,至少需要 n+1 个指针单元。17. C 语言库函数 fgets(str,n,fp) 的功能是 。(分数: 1.00 )A. 从fp指向的文件中读取长度n的字符串存入str旨向的内存B. 从 fp 指向的文件中读取长度不超过 n-1

14、 的字符串存入 str 指向的内存 VC. 从 fb 指向的文件中读取 n 个字符串存入 str 指向的内存D. 从 str 读取至多 n 个字符到文 fp解析: 评析 fgets 函数的作用是从指定的文件读入个字符串。fgets(str,n,fp); 中的 n 为要求得到的字符的个数,但只从中指向的文件输入 n-1 个字符,然后在最后加个 '/0' 字符,因此得到的字符 串共有 n 个字符。18. 下面程序的输出结果是 _ 。#include < stdio.h >main()char*p="BOOL" , "OPK" ,&

15、quot;H" ,"SP" ;int i :for(i=3 ;i > =0;i- ,i-) printf("%c",*pi);printf("/n") ;分数: 1.00 )A. SO VB. SPC. SPOPKD. SHOB 解析: 评析 p0 存放的是“ BOOL/0 的首地址: p1 存放的是“ OPK/0 的首址等。 在 printf 语句中输出的 *pi 表示 pi 字符串的第个字符。在 for 循 环中,i的初值为3,那么输出的第一个字符为“S,接着两次i-,那么输出的值为*p1,即字符“ 0 ,所以此题

16、的输出为SO。19. 以下程序执行后输出的结果是。int d=1 ; fun(int p)int d=5 ; d+=p+ ; printf("%d,",D) ;main()int a=3 ;fun(分数: 1.00 )A. ;d+=a+ ;printf("%d/n",D) ;A) 812B.9 ,13C.8,4VD.9,5解析:评析此题执行过程如下首先调用fun函数,使得实参a的值3传递给形参p,得到局部变量d=8,打印出局部变量 d的值8 ;返回主函数执行“d+=a+ ,此处的d为全局变量,所以 d=1+3=4( 由于此题是 值传递,所以在函数 fun

17、 中对 p 值的改变并不能引起 a 的改变 ) ,故此题 的输出是 8,4 。20. 下述程序向文件输出的结果是。#include < stdio.h >void main()FILE*fp=fopen("TEST","wb");fprintf(fp,"%5.0f%c%d",58,76273.0'-',2278);fclose(fp) ;(分数: 1.00 )A. 58 76273-2278B. 5876273.000000-2278C. 5876273-2278 VD. 因文件为二进制文件而不可读解析:

18、评析 fprintf 函数工作时,多个数据间不会自动加分隔符,选项 A 错误;浮点数的输出格式是“ %5.0f 说明其小数局部输出 0 位,即没有输出,所以选项 B 也是错误的。21. 以下程序的执行结果是 _ 。#include < stdio.h >union unint i ;char c2 ;void main()union un x ;x.c0=10 ;x.c1=1 ; printf("/n%d",x.i) ;( 分数: 2.00 )A. 266 VB. 11C. 265D. 138 解析: 评析 由于此题定义的是 共用体,所以成员表列中的整型变景 x

19、 与字符数组 c 共占用同个存储 单元,且此存储单元为 2 个字节,通常 c0 位于低字节, c1 位于高字节,所以 x.i 的值为 266 。22. 假设进栈序列为1, 2, 3,4,进栈过程中可以出栈,那么以下不可能的一个出栈序列是。( 分数: 2.00 )A. 1 , 4, 3,2B. 2 ,3, 4,1C. 3 ,1, 4,2 VD. 3,4,2, 1解析: 评析 栈是种后进先出表,选项 C 中,先出栈的是 3,说明此时栈内必然有1,2,由于1 先于 2 进栈,所以 1 不可能在 2 之前出栈,应选项 C 选种出栈序列是不可能的。23. 数据存储和数据流都是 _ ,仅仅是所处的状态不同

20、。( 分数: 2.00 )A. 分析结果B. 事件C. 动作D. 数据 V解析: 评析 数据流图有 4 种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静 止状态的 数据,数据流是处于运动中的数据。24. 以下程序段的输出结果是 _ 。main()char s110 , s210 , s310 ;scanf("%s" , s1) ; gets(s2);gets(s3) ;puts(s1) ; puts(s2) ; puts(s3) ;输入数据如下:(此处< CR>代表回车符)aaa<CR> bbb<CR>(分数: 2.00 )A

21、. aaabbbB. aaabbb VC. aaa/0bbb/0D. aaabbb解析: 评析 scanf 是标准输入函数,在输入字符串 aaa 时,实际的内容为“ aaa/0 ,“ /0 是由系统自动参加的; gets 的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自 动以“ /0 代替换 行符。25. 以下程序的输出结果是 _ 。#include < stdio.h >#define SQR(x)x*xmain()int a,k=3 ; a=+SQR(K+1) ; printf("%d/n" ,(分数: 2.00 )A.A) 8B.9 VC.17

22、D.20解析: 评析 此题宏替换中遇到形参 x 以实参 k+1 代替,其他字符不变。 SQR(k+1) 展开后应为字 符串 k+1*k+126. 以下程序的输出结果是 _ 。main()int i=3;switch(i)case 1:casc 2: printf("%d",i);case 3:case 4: break; defanlt:printf("OK");(分数: 2.00 )A. 0B. 3C. OKD. 没有任何输出 V解析: 评析 在题中, i 的值为 3,由于“ case 3: 后面没有 break 语句,所以继续向下执行“ case 4

23、: 后面的语句,由于“ case 4: 后面的语句为 break 强行退出 switch 语句,所以,此题没有任何 输出。27. 下面的程序段,正确的判断是 。#define A 3#define B(分数: 2.00 )A. (A+1)*A) int a=3 ;X=3*(A+B(7) ;A) 程序错误,不允许嵌套定义B. X=93C. X=81 VD. 程序错误,宏定义不允许有参数解析: 评析 此题的宏定义是合法的,宏定义展开为3*(3+(A+1)*a)=3*(3+(7+1)*3)=8128. 排序方法中,将整个无序序列分割成假设干小的子序列并分别进行插入排序的力法, 称为 (分数: 2.0

24、0 )A. 希尔排序 VB. 冒泡排序C. 插入排序D. 选择排序解析: 评析 希尔排序法的根本思想是:将整个无序序列分割成假设干小的子序列分别进行插入排 序。29. 字母 A 的 ASCII 码值是 65,字母 a 的 ASCII 码值是 97,以下程序 。main() char a='A' ; int b=20 ; printf(%d,%0",(a=a+a,a+b,B) , a+'a'-'A' , B) ;(分数: 2.00 )A. 表达式非法,输出零或不确定值B. 因输出项过多,无输出或输出不确定值C. 输出结果为 20,141

25、VD. 输出结果为 20,141,20解析: 评析 此题中首先输出逗号表达式“a=a+a,a+b,b 的值, 即 20。然后以八进制 a+'a'-A'的形式输出 的值为 97 对应的八进制数 1 41 ,由于最后一个表达式 b 没有对应输出格式的输出项 表列就不会输出30. 定义 int*swap() 指的是 _ 。(分数: 2.00 )A. 一个返回整型值的函 swap()B. 个返回指向整型值指针的 swap() VC. 一个指向函数 swap() 的指针,函数返回一个整型值D. 以上说法均错解析: 评析 一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指

26、针型数据,即 地址。题的定义中,包括括号和 * 号,由于 () 优先级高于 * 。故它是个返回整型指针的函数31. 以下程序 (程序左边的数字为附加的行号) 。1#include < str.h >2#include < stdio.h >3main()4 char s="string" ;5puts(s) ;6strcpy(s,"hello") ;7printf("%3s/n"s);分数: 2.00 A. 没有错B. 第1行有错VC. 第 6 行有错D. 第 7 行有错解析: 评析 字符串复制函数 strcp

27、y 包含在头文件 string.h 中,因此,程序中的第 1 行文件包含 命令是 错误的。32. 形成链表的存储结构如以下图所示,那么下述类型描述中的空白处应填 。 struct link char data ;node ;分数: 2.00 A.B.C.D. V解析: 评析 在单向链表中,由于每个结点需要存储下个结点的地址,且下一个结点的数据 类型与前 个结点的数据类型完全相同,故应为 struct link *next 。33. 可以在 C 语言中用做用户标识符的是 。分数: 2.00 A. voiddefineWORDB. as_b3_123If VC. for-abccasD. 2cDo

28、SIG解析: 评析 C 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符 必须是字母 或下划线。另外还需要注意的是关键字不能作标识符。选项 A 中 void , C 中 for 都为关键字, D 中 2c 以字母开头。34. 在软件开发过程中,软件结构设计是描述 。分数: 2.00 )A. 数据存储结构B. 软件体系结构VC. 软件结构测试D. 软件控制过程解析: 评析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计( 又称结构设 计) 将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。35. 是构成 C 语言程序的根本单位。(

29、分数: 2.00 )A. 函数 VB. 过程C. 子程序D. 子例程main 函数,也可以包含一个 main解析:评析C程序是由函数构成的。 一个C源程序至少包含一个 函数 和假设干个其他函数,因此,函数是 C 程序的根本单位36. 请读程序段: char str="ABCD",*p=str;printf("%d/n",*(p+4); 程序段的输出结果是( 分数: 2.00 )A. 68B. 0 VC. 字符 D 的地址D. 不确定的值解析: 评析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志'/0' ,故 指

30、向字符数组的指针 p 的 *(p+4) 的值为 '/0' 。由于 '/0' 的编码值就是0,所以此题输出为0。37. 假设有定义: inta410 ;,那么以下选项中对数组元素 aii 引用错误的选项是 。 (0 <=i <4, 0=i<10) ( 分数: 2.00 )A. *( a00 十 10*i+j)B. *(a+i)+j VC. *(a+i)+j)D. *(ai+解析: 评析 此题中选项 B 是错误的引用, *(a+i)+j 只代表了 aij 的地址 38. 下述函数功能是 _ 。int funr(char*x)char*y=x;whi

31、le(*y+) ;return y-x-1 ;分数: 2.00 )A. 求字符串的长度VB. 求字符串存放的位置C. 比拟两个字符串的大小D. 将字符串 x 连接字符串 y 后面解析: 评析 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL ,最后返回字符串首尾地址的差值,即字符串的长度。39. 假设个外部变量的定义形式为 static int x ;,那么,其中 static 的作用应该是 _ 。( 分数: 2.00 )A. 将变量存储在静态存储区B. 使变量 x 可以由系统自动初始化C. 使 x 只能在本文件内引用 VD. 使 x 的值可以永久保存解析:评析 事实上,无

32、论有无 static 修饰,外部变量都具有A、B 和 C 三科特性。 作为种修饰, static 仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。40. 以下程序的输出结果是 _ 。#include < stdio.h > void prt(int*x , int*y,int*z) printf("%d,%d,%d/n",+*x,+*y,*(z+);int a=10,b=40,c=20 ;main() prt(&a,&b&C) ; prt(&a,&b, C); 分数: 2.00 A.11,42,31 12,

33、22 , 41B.11,41,2012,42,20 VC. 11,21,4011,21,41D. 11,41,2112,42,22解析: 评析 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的 改变。二、填空题 (总题数: 12,分数: 30.00)41. 对于长度为 n 的顺序存储的线性表,当随机插入和删除个元素时,需平均移动元素的个数为 【 1 】( 分数: 2.00 )填空项 1: ( 正确答案: n/2 )解析: 评析 删除一个元素,平均移动的元素个数为 (n-1+n- 2+ ? +o)/n=(n -1)/2 ;插入个元素, 平均移 动元素个数为 (n+

34、n-1+n- 2+ ? +1)/n=(n+1)/2 ;所以总体平均移动元素个数为 n/2 。42. 注释说明了程序的功能,它分为【2】 注释和功能性注释。分数: 2.00 填空项 1: 正确答案:序言性 解析: 评析 注释一般分为序言性注释和功能性注释。43. 软件测试中路径覆盖测试是整个测试的根底,它是对3】进行测试软件分数: 2.00 填空项 1: 正确答案:结构解析: 评析 路径测试是白盒测试方法中的一种,它要求对程序中的每条路径最少检查一次,目的 是对软件的结构进行测试。44. 数据库技术的主要特点为数据的集成性、数据的高 【 4】和低冗余性、数据独立性和数据 统一管理与控制。分数:

35、2.00 填空项 1: 正确答案:共享性解析: 评析 数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余 性,数据 的独立性,数据统一管理与控制。45. 数据元素之间 【5】的整体称为逻辑结构。分数:2.00 )填空项解析: 1: 正确答案:逻辑关系评析 数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据的组织形式。46.假设x和y都是double型变量,且x的初值为3.0 , y的初值为2.0,那么表达式pow y,fabs x 的值为【 6】 分数: 2.00 填空项 1: 正确答案: 8.000000 解析: 评析 fabs 函数功能是求 x 的绝对值,

36、计算结果为double 型。 pow 功能是计算 x 的 y 次方的值, 计算结果同样为 double 型。所以此题表达式相当于 2.0 的 3.0 次方,结果为 8.000000 。47. 设有 chara.b ;,假设要通过 a&b 运算屏蔽掉 a 中的其他位,只保存第 2 位和第 8 位右起为第1 位,那么 b 的二进制是 【 7 】。分数: 2.00 填空项 1: 正确答案: 10000010 解析:评析运算“ &的规那么只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第 2、8位,只要将其与二进制数 10000010 相与。48. 下面程序执行后输出的结果是

37、 【 8】。int m=13 ;int funint x, int y int m=3 ;returnx*y-m;main()int a=7 ,b=5; printf("%d/n",fun (a,B) /m)分数: 2.00 )填空项 1: ( 正确答案: 2)解析: 评析 此题变量 m 既是外部变量 ( 值是 13) ,又是 fun 函数的局部变量 ( 值为 3) 。函数 fun(x*y-m) 的值为 7*5-3=32 ,在 main 函数中, fun(a,b)/m 中的 m 应取外部变量的值 13 ,因此输出 2。 49. 以下程序执行后输出的结果是【9】 。main()int arr10 , i , k=0;for(i=0 ;i < 10; i+)arri=i ;for(i=1 ;i < 4; i+) k+=arri+i;printf("%d/n",k);( 分数: 2.00 )填空项 1: ( 正确答案: 12)解析: 评析 此题的第一个 for 循环用于给数组 arr 赋初值,第二个 for 循环用于求和运算。由 于第二个 for 循环初始值为 1,而循环条件为 i < 4,所以求的是 arr1 到 ar

温馨提示

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

评论

0/150

提交评论