[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc

上传人:diecharacter305 文档编号:502811 上传时间:2018-11-29 格式:DOC 页数:28 大小:96KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc_第1页
第1页 / 共28页
[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc_第2页
第2页 / 共28页
[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc_第3页
第3页 / 共28页
[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc_第4页
第4页 / 共28页
[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编11及答案与解析.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、国家二级( C语言)机试历年真题试卷汇编 11及答案与解析 一、选择题 1 下列关于算法复杂度叙述正确的是 ( )。 ( A)最坏情况下的时间复杂度一定高于平均情况的时间复杂度 ( B)时间复杂度与所用的计算工具无关 ( C)对同一个问题,采用不同的算法,则它们的时间复杂度是相同的 ( D)时间复杂度与采用的算法描述语言有关 2 设有栈 S和队列 Q,初始状态均为空。首先依次将 A, B, C, D, E, F入栈,然后从栈中退出三个元素依次入队,再将 X, Y, Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所 有元素退出,则退队元素的顺序为 ( )。 ( A) DEFXYZABC (

2、 B) FEDZYXCBA ( C) FEDXYZCBA ( D) DEFZYXABC 3 下列叙述中正确的是 ( )。 ( A)有两个指针域的链表称为二叉链表 ( B)循环链表是循环队列的链式存储结构 ( C)带链的栈有栈顶指针和栈底指针,因此又称为双重链表 ( D)节点中具有多个指针域的链表称为多重链表 4 某二叉树共有 845个节点,其中叶子节点有 45个,则度为 1的节点数为 ( )。 ( A) 400 ( B) 754 ( C) 756 ( D)不确定 5 软件需求分析阶段的主要任务是 ( )。 ( A)确定软件开发方法 ( B)确定软件开发工具 ( C)确定软件开发计划 ( D)确

3、定软件系统的功能 6 下面对软件测试描述错误的是 ( )。 ( A)严格执行测试计划,排除测试的随意性 ( B)随机地选取测试数据 ( C)软件测试可以任何条件下进行操作,以发现程序错误 ( D)软件测试是保证软件质量的重要手段 7 结构化程序的 3种基本控制结构是 ( )。 ( A)顺序、选择和重复 (循环 ) ( B)过程、子 程序和分程序 ( C)顺序、选择和调用 ( D)调用、返回和转移 8 数据库中对概念模式内容进行说明的语言是 ( )。 ( A)数据定义语言 ( B)数据操纵语言 ( C)数据控制语言 ( D)数据宿主型语言 9 某个工厂有若干个仓库,每个仓库存放有不同的零件,相同

4、零件可能放在不同的仓库中。则实体仓库和零件间的联系是 ( )。 ( A)多对多 ( B)一对多 ( C)多对一 ( D)一对一 10 有 3个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)交 ( B)差 ( C)并 ( D)选择 11 关于 C语言标识符,以下叙述错误的是 ( )。 ( A)标识符可全部由数字组成 ( B)标识符可全部由下划线组成 ( C)标识符可全部由小写字母组成 ( D)标识符可全部由大写字母组成 12 以下叙述正确的是 ( )。 ( A)只使用 3种基本结构即可解决任何复杂问题 ( B) C语言程序并不是必须要定义 main()函数

5、 ( C)只要程序包含了任意一种基本结构,就肯定是结构化程序 ( D)程序中的语法错误只能在运行时才能显现 13 以下选项中,合法的数值型常量是 ( )。 ( A) 3 2 ( B) X ( C) 099 ( D) OxEH 14 有以下程序: #include main() int X=0x13; printf(“INT: d n“, x+1); 程序运行后的输出结果是 ( )。 ( A) INT: 14 ( B) INT: 13 ( C) INT: 12 ( D) INT: 20 15 设有定义: int x=7, y=12;,则以下表达式值为 3的是 ( )。 ( A) (y =x)一

6、(x: 5) ( B) y =(x =5) ( C) y =xx 5 ( D) y =(xx 5) 16 以下不是合法 C语言转义字符的是 ( )。 ( A) c ( B) a ( C) b ( D) r 17 有如下程序: #include main() int i; for(i=0; i main() int x=1, y=2, z=3; if(x1) if(yx)putchar(A); else putchar(B); else if(z void change(int * array, int len) for(; len=0; len一一 ) arraylen一 =1; main()

7、 int i, array5=2, 2; change(array, 4); for(i=0; i main() char*p1=0; int*p2=0: float*p3=0: printf(“ d, d, d n“, sizeof(p1), sizeof(p2), sizeof(p3); 程序运行后的输出结果是 ( )。 ( A) 1, 4, 8 ( B) 4, 4, 4 ( C) 1, 2, 4 ( D) 1, 1, 4 24 有以下程序段: int*p1, *p2, a10; p1=a; p2=&a 5; 则 p2一 p1的值为 ( )。 ( A) 5 ( B) 10 ( C) 12

8、( D)无法确定 25 以下叙述中错误的是 ( )。 ( A)基类型不同的指针可以直接相互赋值 ( B)函数可以通过指针形参向所指单元传回数据 ( C)字符型指针可以指向一个字符串 ( D)一般情况下,指针的运用可使程序代码效率更高 26 有以下程序: #include main() int i, j=0; char a=“How are you”, b10=0; for(i=0; ai; i+) if(ai=) bj+=ai+1; printf(“ s n“, b); 程序运行后的输出结果是 ( )。 ( A) Hay ( B) Howareyou ( C) we ( D) ay 27 有以

9、下程序: #include main() char w20, a510=“abcdef“, “ghijkl“, “mnopq“, “rgtuv“, “wxyz“; int i, j; for(i=0; i main() int i, j=0; char a=“How are you!“, b10=0; for(i=0; ai; i+) if(ai=) bj+=ai一 1; printf(“ s n“, b); 程序运行后的输出结果是 ( )。 ( A) we ( B) Howareyou! ( C) ay ( D) we! 29 以下涉及字符串数组、字符指针的程序段,没有编译错误的是 ( )。

10、 ( A) char*str, name5; str=“C C+“; ( B) char*str, name6; name=“Hello“: ( C) char strl7=“prog c“, str28; str2=str1; ( D) char line; line=“ “: 30 有如下程序: #include void get_put() char ch; ch=getchar(); if(ch!= n)get_put(); putchar(ch); main() get_put(); 程序运行时,输入 ABCD,则输出结果是 ( )。 ( A) DCDC ( B) DCBA ( C)

11、 BABA ( D) ABCD 31 有以下程序: #include main() char name10=S, T, R; name2=#; name6=0; printf(“ s n“, name); 程序运行后的输出结果是 ( )。 ( A) ST# ( B) STR# ( C) STR#0 ( D) STR0 32 有以下函数: int fun(char*ps) char*p; p=ps; if(*ps=NULL)retum 0; while(*+P); return(Pps); 该函数的功能是 ( )。 ( A)计算字符串的长度 ( B)实现字符串的赋值 ( C)将字符串逆序存放 (

12、 D)计算字符串所占字节数 33 有以下函数: void fun(char*p, char*q) while(*p+=*q+)!= 0); 该函数的功能是 ( )。 ( A)计算字符串的长度 ( B)计算字符串所占字节数 ( C)将字符串逆序存放 ( D)实现字符串的复制 34 以下叙述错误的是 ( )。 ( A)未经赋值的全局变量值不确定 ( B)未经赋值的 auto变量值不确定 ( C)未经赋值的 register变量值不确定 ( D)未经赋值的静态局部变量值为 0 35 有以下程序: #include main() int C, d; C=103; d=10+3: printf(“ d,

13、 d n“, c, d); 程序运行后的输出结果是 ( )。 ( A) 103, 13 ( B) 13, 13 ( C) 10, 13 ( D) 9, 13 36 有以下程序: #include #include typedef struct stu char name10; char gender; int score; STU; void f(char*name, char*gender, int*score) strcpy(name, “Qian“); *gender=f; *score=350; main() STU a=“Zhao“, m, 290, b; b=a; f(b name

14、, &b gender, &b score); printf(“ s, c, d, “, a name, a gender, a score); printf(“ s, c, d n“, b name, b gender, b score); 程序运行后的输出结果是 ( )。 ( A) Zhao, m, 290, Qian, f, 350 ( B) Qian, m, 290, Zhao, m, 290 ( C) Zhao, m, 290, Zhao, m, 290 ( D) Zhao, m, 290, Qian, m, 290 37 有如下程序: #include main() int a=9

15、, b; b=(a3) 4; printf(“ d, d n“, a, b); 程序运行后的输出结果是 ( )。 ( A) 9, 1 ( B) 4, 0 ( C) 4, 3 ( D) 9, 3 38 有如下定义: struct int num; char name10; struct int y; int m; int d; birth; s, *ps=&s; 以下对内嵌结构体成员的引用形式错误的是 ( )。 ( A) ps birth y ( B) S birth y ( C) ps一 biah y ( D) (*ps) birth y 39 函数 rewind(fp)的作用是 ( )。 (

16、 A)函数 rewind(fp)的作用是使文件读写指针指向文件开始位置 ( B)使文件位置指针指向文件的末尾 ( C)使文件位置指针移至前一个字符的位置 ( D)使文件位置指针移至下一个字符的位置 40 以下选项中错误的是 ( )。 ( A) a =b与 a=a b等价 ( B) a=b与 a=ab等价 ( C) a!=b与 a=a|b等价 ( D) a!=b与 a=a!b等价 二、程序填空题 41 给定程序中,函数 fun的功能是:将 形参 std所指结构体数组中年龄最大者的数据作为函数值返回,并在 main函数中输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

17、 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include typedef struct char name10; int age; STD; STD fun(STD std, int n) STD max; int i; *found* max=【 1】; for(i: 1; i #include #include *found* void fun(int a b) int t; *found* t=b; b=a; a=t; void main() int a, b; system(“CLS“); printf(“Enter a, b: “); sc

18、anf(“ d d“, &a, &b); fun(&a, &b); printf(“a= d b= d n“, a, b); 四、程序设计题 43 请编一个函数 void fun(int ttMN, int ppN), tt指向一个 M行 N列的二维数组,求出二维数组每列中最大元素,并依次放入 pp所指的一维数组中。二维数组中的数已在主函数 中给出。 注意:部分濂程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include #include #include #define M 3 #define N 4 voi

19、d fun(int ttMN, int ppN) void main() int tMN=68, 32, 54, 12, 14, 24, 88, 58, 42, 22, 44, 56; int PN, i, j, k; system(“CLS“); printf(“The riginal data is: n“); for(i=0; i1,因为 x=1不大于 1,不满足条件,程序跳入 else语句判定 z3=0001右移三位得到值为 1, 1再对 4求余得到余数 1赋给 b值,答案为 A选项。 38 【正确答案】 A 【试题解析】 使用结构体指针对结构体成员进行访问 时,形式为结构指针名一 结

20、构成员名,或者 (*结构指针名 )结构成员名,题目中 ps为结构体指针,因此判断 A选项引用形式错误,答案为 A选项。 39 【正确答案】 A 【试题解析】 rewind()函数作用是使文件读写指针指向文件开始位置,答案为 A选项。 40 【正确答案】 D 【试题解析】 在 D选项中, a!=b表示 a不等于 b时,运算结果为 1,或者为 0;而 a=a!b是一种语法错误, “!”是非运算,且是单目运算符,只要求有一个操作数,故两者不等价,答案为 D选项。 二、程序填空题 41 【正 确答案】 (1)std0 (2)stdi age (3)max name 【试题解析】 填空 1:变量 max

21、用于存储数组中年龄组大的元素。首先将数组的第一个元素赋给 max,然后依次向后比较,得到年龄最大的元素,因而在给 max赋初值时,应为: max=std0。 填空 2: if条件判断语句表达的是 max age,应该和结构体数组中的每个年龄进行比较,从而得到最大者的年龄。 填空 3:从 printf的表达式可看出,要输出的值应为年龄最大者的 name。 三、程序修改题 42 【正确 答案】 (1)void fun(int*a, int*b) (2)t=* b; * b=*a; *a=t; 【试题解析】 (1)本题考查指针变量作函数参数。采用一般变量作参数,不能改变实参的值,采用指针变量作为参数

22、则能够改变实参的值。主函数中 fun的调用方式说明 fun函数的参数应当为指针类型。 (2)此处错误比较明显,因为 a和 b都是指针变量,进行变量交换时不能直接引用,应加上 “*”号。 四、程序设计题 43 【正确答案】 void fun(int ttMN, int ppN) int i, j, max; if(tt=NULLpp=NULL)return; for(j=0; jmax) *如果各列中的其他元素比最大值大,则将这个更大的元素看作当前该列中最大元素 * max=ttij; ppj=max; *将各列的最大值依次放入 pp数组中, * 【试题解析】 本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看作当前该列中最大的元素,继续与该列中其他元素进行比较。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1