[计算机类试卷]国家二级(C语言)机试模拟试卷109及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷109及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷109及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 109及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)所有数据结构必须有根结点 ( B)所有数据结构必须有终端结点 (即叶子结点 ) ( C)只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构 ( D)没有根结点或没有叶子结点的数据结构一定是非线性结构 2 以下叙述中错误的是 ( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 (
2、 D) C语言源程序经编译后生成后缀为 obj的目标程序 3 C语言主要是借助以下 ( )功能来实现程序模块化的。 ( A)定义函数 ( B)定义常量和外部变量 ( C)三种基本结构语句 ( D)丰富的数据类型 4 有以下程序段: 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)
3、a, 97, 12k=12 ( D) a, 97, k=12 5 下列叙述中正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 6 若要实现 total=1+2+3+4+5求和,以下程序段错 误的是 ( )。 ( A) int i=1, total=1; while(i 5) i+=1; total+=i; ( B) int i=1, total=0; while(i =5) total+=i; i+=1; ( C) int i=0, total=0;
4、while(i 5) total+=i; i+=1; ( D) int i=0, total-0; while(i =5) total+=i; i+=1: 7 下列不属于软件工程 3个要素的是 ( )。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 8 下面不属于黑盒测试方法的是 ( )。 ( A)边界值分析法 ( B)基本路径测试 ( C)等价类划分法 ( D)错误推测法 9 有三个关系 R、 S和 T如下: 则下列操作中正确的是 ( )。 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R S 10 下列选项中,不属于数据管理员 (DBA)职责的是 (
5、 )。 ( A)数据库维护 ( B) 数据库设计 ( C)改善系统性能,提高系统效率 ( D)数据类型转换 11 有以下程序 #include main() int a=0, b=0; *给 a赋值 a=10; b=20;给 b赋值 * printf(“a+b= d n“, a+b); *输出计算结果 * 程序运行后的输出结果是 ( )。 ( A) a+b=0 ( B) a+b=30 ( C) a+b=10 ( D)出错 12 有以下程序段 #include main() int a, b, c; a=10; b=50; c=30; if(a b)a=b, b=c; c=a; printf(“
6、a-= d b= d c= d n“, a, b, c); 程序的输出结果是 ( )。 ( A) a=10 b=50 c=30 ( B) a=10 b=50 c=10 ( C) a=10 b=30 c=10 ( D) a=50 b=30 c=50 13 下列二叉树描述中,正确的是 ( )。 ( A)任何一棵二叉树必 须有一个度为 2的结点 ( B)二叉树的度可以小于 2 ( C)非空二叉树有 0个或 1个根结点 ( D)至少有 2个根结点 14 下列叙述中,不符合良好程序设计风格要求的是 ( )。 ( A)程序的效率第一,清晰第二 ( B)程序的可读性好 ( C)程序中要有必要的注释 ( D)
7、输入数据前要有提示信息 15 有以下程序 #include main() int x, y, z; x=y=1; z=x+, y+, +y; printf(“ d, d, d n“, x, y, z); 程序运行后的输出结果是 ( )。 ( A) 2, 3, 1 ( B) 2, 3, 2 ( C) 2, 3, 3 ( D) 2, 2, 1 16 设二叉树如下: 则后序序列为 ( )。 ( A) ABDEGCFH ( B) DBGEAFHC ( C) DGEBHFCA ( D) ABCDEFGH 17 以下叙述中正确的是 ( )。 ( A) break语句不能用于提前结束 for语句的本层循环
8、( B)使用 break语句可以使流程跳出 switch语句体 ( C) continue语句使得整个循环终止 ( D)在 for语句中, continue与 break的效果是一样的,可以互换 18 有以下程序: #include main() int a=1, b=0; if(-a)b+; else if(a=0)b+=2; else b+=3: printf(“ d n“, b); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 19 待排序的关键码序列 为 (15, 20, 9, 30, 67, 65, 45, 90),要按关键码值递增的顺序排
9、序,采取简单选择排序法,第一趟排序后关键码 15被放到第 ( )个位置。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 20 下列关系表达式中,结果为 “假 ”的是 ( )。 ( A) (3+4) 6 ( B) (3! =4) 2 ( C) 3 =4 3 ( D) (3 4)=1 21 有如下程序: #include main() int i; for(i=0; i 5; i+) putchar(9 i); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 54321 ( B) 98765 ( C) 9“8“7“6“5 ( D) 43210 22 下列叙述中正确
10、的是 ( )。 ( A)可以用关系运算符比较字符串的大小 ( B)空字符串不占用内存,其内存空间大小是 0 ( C)两个连续的单引号是合法的字符常量 ( D)两个连续的双引号是合法的字符串常量 23 以下关于 C语言函数参数传递方式的叙述正确的是 ( )。 ( A)数据只能从实参单向传递给形参 ( B)数据可以在实参和形参之间双向传递 ( C)数据只能从形参单向传递给实参 ( D) C语言的函数,参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用 24 以下叙述中错误的是 ( )。 ( A)当在程序的开头包含头文件 stdio h时,可以给指针变量赋 NULL (
11、 B)函数可以返回地址值 ( C)改变函数形参的值,不会改变对应实参的值 ( D)可以给指针变量赋一个整数作为地址值 25 有以下程序 (说明:字母 A的 ASCII码 值是 65): #include void fun(char*s) while(*s) if(*s 2)printf(“ c“, *s); S+: main() cha, r a=“BYTE“; fun(a); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) BY ( B) BT ( C) YT ( D) YE 26 有以下程序: #include main() while(getchar()! = n
12、); 以下叙述中正确的是 ( )。 ( A)此 while语句将无限循环 ( B) getchar()不可以出现在 while语句的条件表达式中 ( C)当执行此 while语句时,只有按回车键程序才能继续执行 ( D)当执行此 while语句时,按任意键程序就能继续执行 27 有以下程序: #include void fun(int*p, int*q) main() int m=1, n=2, *r=&m; f(r, &n); printf(“ d, d“, m, n); void f(int*p, int*q) p=p+1; *q=*q+1; 程序运行后的输出结果是 ( )。 ( A) 1
13、, 3 ( B) 2, 3 ( C) 1, 4 ( D) 1, 2 28 以下函数按每行 8个输出数组中的数据: void fun(int*w, int n) int i; for(i=0; i n; i+) _ printf(“ d“, wi); printf(“ n“); 下画线处应填入的语句是 ( )。 ( A) if(i 8=0)printf(“ n“); ( B) if(i 8=0)continue; ( C) if(i 8=0)printf(“ n“); ( D) if(i 8=0)continue; 29 以下叙述中正确的是 ( )。 ( A)函数的形参类型不 能是指针类型 (
14、B)函数的类型不能是指针类型 ( C)设有指针变量为 double*p,则 p+1将指针 p移动 8个字节 ( D)基类型不同的指针变量可以相互混用 30 设有以下定义: char s1=“0123“; char s2=0, 1, 2, 3; 则以下叙述正确的是 ( )。 ( A)数组 s1的长度小于 s2的长度 ( B)数组 s1和 s2的长度相同 ( C)数组 s1的长度大于 s2的长度 ( D)数组 s1和 s2完全等价 31 有以下程序 (strepy为字符串复制函数, strcat为字符串连接函数 ): #include #include main() char a10=“abe“,
15、 b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( )。 ( A) a12xyz ( B) 12yz ( C) a2yz ( D) bc2yz 32 以下叙述中正确的是 ( )。 ( A)简单递归不需要明确的结束递归的条件 ( B)任何情况下都不能用函数名作为实参 ( C)函数的递归调用不需要额外开销,所以效率很高 ( D)函数既可以直接调用自己,也可以间接调用自己 33 有以下函数: #include void rune(int n) int i; for(i=0; i =n; i+)prin
16、tf(“*”); printf(“#“); main() func(3); printf(“?“); func(4); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) *#?*# ( B) *#?*# ( C) *#?*# ( D) *#?*# 34 有以下程序: #include int b=2; int fun(int*k、 b=*k+b: return(b); main() int a10=1, 2, 3, 4, 5, 6, 7, 8, i; for(i=2; i 4; i+)b=fun(&ai)+b; printf(“ d“, b); printf(“ n);
17、程序运行后的输出结果是 ( )。 ( A) 10 12 ( B) 8 10 ( C) 10 28 ( D) 10 16 35 以下叙述中正确的是 ( )。 ( A)在 C语言中,预处理命令行都以 “#”开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 36 有以下程序: #include main() char a, b, e, d; seanf(“ c e“, &a, b); c=getchar(); d=getchar(); printf(“ c c c c n“, a, b,
18、c, d); 当执行程序时,按下列方式输入数据 (从第一列开始, 代表回车,注意:回车是一个字符 ) 12 34 则输出结果是 ( )。 ( A) 1234 ( B) 12 ( C) 12 3 ( D) 12 34 37 在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( )。 ( A) auto和 register ( B) extern和 register ( C) auto和 static ( D) static和 register 38 以下程序: #include void fun(int x) if(x 2 1)fun(x 2); printf(“ d“, x); m
19、ain() fun(7); printf(” n”); 程序运行后的结果是 ( )。 ( A) 1 3 7 ( B) 7 3 1 ( C) 7 3 ( D) 3 7 39 以下结构体类型说明和变量定义中正确的是 ( )。 ( A) typedef struct int n; char c; REC; REC t1, t2; ( B) struct REC; int n; char c; ; REC t1, t2; ( C) typedef struct REC: int n=0; char c=A; t1, t2; REC t1, t2; ( D) struct int n; char C;
20、REC; 40 以下叙述正确的是 ( )。 ( A)在 C语言中调用 fopen函数就可把程序中要读、写的文件与磁盘上实际的数据文件联系起来 ( B) fopen函数的调用形式为: fopen(文件名 ) ( C) fopen函数的返回值为 NULL时,则成功打开指定的文件 ( D) fopen函数的返回值必须赋给一个任意类型的指针变量 二、程序填空题 41 请补充 fun函数,该函数的功能是:按 0到 9统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组 num中。注意:不能使用字符串库函数。 例如,输入 “x=1123 456+0 909*bc”,结果为: 1=2, 3=1, 5
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 109 答案 解析 DOC
