[计算机类试卷]国家二级(C语言)机试模拟试卷114及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷114及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷114及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 114及答案与解析 一、选择题 1 设栈的顺序存储空间为 S(0: 49),栈底指针 bottom=49,栈顶指针 top=30(指向栈顶元素 )。则栈中的元素个数为 ( )。 ( A) 30 ( B) 29 ( C) 20 ( D) 19 2 设数据元素的集合 D=1, 2, 3, 4, 5,则满足下列关系 R的数据结构中为线性结构的是 ( )。 ( A) R=(1, 2), (3, 4), (5, 1) ( B) R=(1, 3), (4, 1), (3, 2), (5, 4) ( C) R=(1, 2), (2, 3), (4, 5) ( D) R=(1
2、, 3), (2, 4), (3, 5) 3 下列叙述中错误的是 ( )。 ( A)在带链队列中,队头指针和队尾指针都是在动态变化的 ( B)在带链栈中,栈顶指针和栈底指针都是在动态变化的 ( C)在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的 ( D)在带链队列中,队头指针和队尾指针可以指向同一个位置 4 深度为 7的完全二叉树中共有 125个结点,则该完全二叉树中的叶子结点数为( )。 ( A) 62 ( B) 63 ( C) 64 ( D) 65 5 计算机软件的构成是 ( )。 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 6 软件设计中
3、模块划分应遵循的准则是 ( )。 ( A)低耦合低内聚 ( B)高耦合高内聚 ( C)低耦合高内聚 ( D)内聚与耦合无关 7 使用白盒测试方法时,设计测试用例应根据 ( )。 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)程序的功能 ( D)使用说明书 8 逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是 ( )。 ( A)关系 模型 ( B)谓词模型 ( C)物理模型 ( D)实体 -联系模型 9 设有关系表学生表 S(学号,姓名,性别,年龄,身份证号 ),每个学生学号惟一。除属性学号外,也可以作为键的是 ( )。 ( A)姓名 ( B)身份证号 ( C)姓名,性别,年龄 (
4、 D)学号,姓名 10 有三个关系表 R、 S和 T如下,其中三个关系对应的关键字分别为 A, B N复合关键字 (A, B)。 表 T的记录项(b, q, 4)违反了 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)用户定义的完整性约束 ( D)关系完整性约 束 11 以下选项中叙述正确的是 ( )。 ( A) C程序中的语句要经过编译才能转换成二进制机器指令 ( B)算法需要包含所有三种基本结构 ( C)有些算法不能用三种基本结构来表达 ( D)简单算法的操作步骤不能超过 20步 12 以下叙述错误的是 ( )。 ( A)在进行模块化程序设计的时候,应首先完成每个模块的编
5、写调试,再集中考虑主程序中的算法 ( B)同一程序各模块可由一组人员同时进行编写调试,可提高编写程序的效率 ( C)模块化的程序设计是采用自顶向下、逐步细化的原则 ( D)程序的每 个模块都可通过三种基本结构实现 13 以下选项中,合法的实数是 ( )。 ( A) 1 5E2 ( B) E1 1 ( C) 2 10E ( D) 1 9E1 4 14 以下叙述正确的是 ( )。 ( A) C程序总是以 main()作为程序执行的起始行 ( B) main()函数若不带参数,其后面的一对圆括号可省略 ( C)函数体内的定义语句和可执行语句允许任意穿插出现 ( D) C语言中的语句之间必须用分号作为
6、分隔符 15 设有以下程序段: int y; y=rand() 30+1; 则变量 y的取值范围是 ( )。 ( A) 0y30 ( B) 0 y30 ( C) 1 y 30 ( D) 1 y30 16 若变量已正确定义,则以下 for循环 ( ): for(x=0, y=0; (y! =123)&(x 4); x+); ( A)执行 4次 ( B)执行 3次 ( C)执行次数不确定 ( D)执行 123次 17 有以下程序: #include main() int x=0x13: printf(“INT: d n“, x+1); 程序运行后的输出结果是 ( )。 ( A) INT: 14 (
7、 B) INT: 13 ( C) INT: 12 ( D) INT: 20 18 有如下程序: #include main() int a=0, b=1; if(+a=b+) printf(“T“); else printf(“F“); printf(“a= d, b= d n“, a, b); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) Ta=0, b=1 ( B) Fa=1, b=2 ( C) Ta=1, b=2 ( D) Fa=0, b=2 19 有如下程序: #include main( ) int i, data; seanf(“ d“, &data);
8、for(i=0; i 5, i+) if(i data)break; printf(“ d, “, i); printf(“ n“); 程序运行时,从键盘输入: 3后,程序输出结果为 ( )。 ( A) 3, 4, ( B) 0, 1, ( C) 3, 4, 5, ( D) 0, 1, 2, 3, 20 以下程序的功能是判断输入的一个整数是否能被 3或 7整除,若能整除,输出YES,否则输出 NO。在下划线处应填入的选项是 ( )。 #include main() int k; printf(“Enter a int number: ”); scanf(“ d“, &k); if_printf
9、(“YES n“); else printf(“NO n“); printf(“ d n“, k 3); ( A) (k 3=0) (k 7=0) ( B) (k 3=0) (k 7=0) ( C) (k 3=0) (k 7=0) ( D) (k 3=0)&(k 7=0) 21 有以下程序: #include main() if( 0=0)putchar(1); if(0=0)putchar(2); if(a b)putchar(3); 程序运行后的输出结果是 ( )。 ( A) 1 ( B) 123 ( C) 23 ( D) 3 22 有以下程序: #include main() int i
10、, k; int array42=1, 0, 0, 2, 9, 3; for(i=0; i 2; i+) for(k=0; k 3; k+) printf(“ d, “, arrayki); printf(“ n); 程序运行后的输出结果是 ( )。 ( A) 1, 0, 2, 0, 0, 9, ( B) 1, 2, 4, 9, 6, 0, ( C) 2, 9, 0, 0, 1, 4, ( D) 1, 2, 0, 1, 4, 1, 23 有如下程序: #include int sub(double a, double b) return(int)(a-b); main( ) printf(“
11、d n“, sub(3 8, 2 1); 程序运行后的输出结果是 ( )。 ( A) 2 0 ( B) 1 7 ( C) 2 ( D) 1 24 以下关于指针的叙述正确是 ( )。 ( A)所有类型的指针变量所占内存的大小是一样的 ( B)指针变量所占内存的大小与其类型有关, char型指针变量只占 1个字节,double型指针变量占 8个字节 ( C)指针变量可直接指向任何类型的变量,而不会 出现编译或运行错误 ( D)指针变量既可以直接指向结构体,也可直接指向结构体中某个成员,而不会出现编译或运行错误 25 有以下程序段: int*p1, *p2, a10; p1=a; p2=&a5; 则
12、 p2-p1的值为 ( )。 ( A) 5 ( B) 10 ( C) 12 ( D)无法确定 26 有以下程序: #include void fun(int*x, int s, int n) int i; for(i=s; i =n; i-) *(x+i+3)=*(x+i); main() int m=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, k; fun(m, 10-4, 3); for(k=0; k 10; k+) printf(“ d, mk); 程序的运行结果是 ( )。 ( A) 0123456345 ( B) 0123453456 ( C) 0123456666
13、( D) 0123454569 27 有以下程序: #include main() char*s6: “ABCD“, “EFGH“, “IJKL“, “MNOP“, “QRST“, “UVWX“,*p; int i; p=s: for(i=0; i 4; i+)printf(“ S“, pi); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) ABCDEFGHIJKLMNOP ( B) ABCDEFGHIJKL ( C) ABCD ( D) AEIM 28 设有一 个 M*N的矩阵已经存放在一个 M行 N列的数组 x中,且有以下程序段: sum=0; for(i=0;
14、i main() char s1=”programe“, s2=“Language“; char*p1=s1, *p2=s2; int k; for(k=0; k 8; k+) if(*(p1+k)=*(p2+k) printf(“ s n“, *(p1+k); 程序的运行结果是 ( )。 ( A) grame ame e ( B) g a e ( C) programe ( D)无输出字符 31 有以下程序: #include #include main() char W20, a510=“abcdef“, “ghijkl“, “mnopq“, rstuv“, “wxyz “; int i;
15、 for(i=0; i 5; i+) wi=aistrlen(ai) 1; w5= 0; puts(w); 程序的运行结果是 ( )。 ( A) flqv ( B) agmrw ( C) ekpuy ( D) flqvz 32 有以下程序: #include main() int c, d; c=(13 1) 1; d=(13 1) 1; printf(“ d, d n“, c, d); 程序运行后的输出结果是 ( )。 ( A) 6, 1 ( B) 1, 1 ( C) 7, 1 ( D) 7, 2 33 有如下程序: #include void get put() char ch; ch=g
16、etchar(); if(ch! = n)get put(); putchar(ch); main() get_put(); printf(“ n“); 程序运行时,输入 1234,则输出结果是 ( )。 ( A) 1234 ( B) 4321 ( C) 4444 ( D) 1111 34 以下叙述错误的是 ( )。 ( A)未经赋值的全局变量值不确定 ( B)未经赋值的 auto变量值不确定 ( C)未经赋值的 register变量值不确定 ( D)未经赋值的静态局部变量值为 0 35 有如下程序: #include #define D(x)4*x+1 main() int i=2, j=4
17、; printf(“ d n“, D(i+j); 程序运行后的输出结果是 ( )。 ( A) 25 ( B) 13 ( C) 9 ( D) 12 36 有以下程序: #include struct Sint a; int*b; ; main() int x1=3, 4, x2=6, 7; struct S x=1, x1, 2, x2; printf(“ d, d n“, *x0 b, *x1 b); 程序的运行结果是 ( )。 ( A) 1, 2 ( B) 3, 6 ( C) 4, 7 ( D)变量的地址值 37 设有如下语句: typedef struct Date int year; i
18、nt month; int day; DATE; 则以下叙述中错误的是 ( )。 ( A) DATE是用户定义的结构体变量 ( B) struct Date是用户定义的结构体类型 ( C) DATE是用户说明的新结构体类型名 ( D) struct是结构体类型的关键字 38 有以下程序: #include #include void fun(int*s, int x23) *s=*(x1+1); main() int a23=1, 2, 3, 4, 5, 6, *p; p=(int*)malloc(sizeof(int); fun(&p, a); printf(“ d n“, *p); 程序的
19、运行结果是 ( )。 ( A) 6 ( B) 2 ( C) 5 ( D) 3 39 有定义: int a=64, b=8;,则表达式 (a&b) (a&b)和 (a b)&(a b)的值分别为 ( )。 ( A) 1和 1 ( B) 1和 0 ( C) 0和 1 ( D) 0和 0 40 有以下程序段: FILE*fp; if(fp=fopen(“test txt“, “W“)=NULL) printf(“不能打开文件! “); exit(0); else printf(“成功打开文件! “); 若指定文件 test txt不 存在,且无其他异常,则以下叙述错误的是 ( )。 ( A)输出 “
20、不能打开文件! ” ( B)输出 “成功打开文件! ” ( C)系统将按指定文件名新建文件 ( D)系统将为写操作建立文本文件 二、程序填空题 41 给定程序的功能是:从键盘输入若干行文本 (每行不超过 80个字符 ),写到文件myfile4 txt中,用 1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数 ReadText和 WriteText实现。 注意: 请勿改动主函数 main中的任何内容, 仅在函数 WriteText和 ReadText的横线上填入所编写的若干表达式或语句。 【试题源程序】 #include #include #include
21、void WriteText(FILE*); void ReadText(FILE*); main( ) FILE*fp; if(fp=fopen(“myfile4 txt“, “W“)=NULL) printf(“open fail! n“); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(“myfile4 txt“, “r“)=NULL) printf(“open fail! n“); exit(0); ReadText(fp); fclose(fp); *found* void WriteText(FILE 【 1】 ) char str
22、81; printf(“ nEnter string with-1 to end: n“); gets(str); while(strcmp(str, “-1“)! =0) *found* fputs(【 2】 , fw); fputs(“ n“, fw); gets(str); void ReadText(FILE*fr) char str81; printf(“ nRead file and output to screen: n“); fgets(str, 81, fr); while(! feof(fr) *found* printf(“ s, 【 3】 ); fgets(str, 8
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 114 答案 解析 DOC
