[计算机类试卷]国家二级(C语言)机试模拟试卷117及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷117及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷117及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 117及答案与解析 一、选择题 1 算法的时间复杂度是指 ( )。 ( A)算法的长度 ( B)执行算法所需要的时间 ( C)算法中的指令条数 ( D)算法执行过程中所需要的基本运算次数 2 以下数据结构中,属于非线性数据结构的是 ( )。 ( A)栈 ( B)线性表 ( C)队列 ( D)二叉树 3 数据结构中,与所使用的计算机无关的是数据的 ( )。 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)线性结构 4 内聚性是对模块功能强度 的衡量,下列选项中,内聚性较弱的是 ( )。 ( A)顺序内聚 ( B)偶然内聚 ( C)时间内聚 ( D)
2、逻辑内聚 5 在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的 ( )。 ( A)连接码 ( B)关系码 ( C)外码 ( D)候选码 6 检查软件产品是否符合需求定义的过程称为 ( )。 ( A)确认测试 ( B)需求测试 ( C)验证测试 ( D)路径测试 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)存储文件 ( D)源和潭 8 待排序的关键码序列为 (15, 20, 9, 30, 67, 65, 45, 90),要按关键
3、码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第 ( )个位置。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 9 对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)除运算 10 下列选项中,不属于数据管理员 (DBA)职责的是 ( )。 ( A)数据库维护 ( B)数据库设计 ( C)改善系统性能,提高系统效率 ( D)数据类型转换 11 C语言规定,在一个 C程序中, main()函数的位置 ( )。 ( A)必须在系统调用的库
4、函数之后 ( B)必须在程序的开始 ( C)必须在程序的最后 ( D)可以在任意位置 12 以下叙述中正确的是 ( )。 ( A) C语言比其他语言高级 ( B) C语言可以不用编译就能被计算机识别执行 ( C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 ( D) C语言出现的最晚,具有其他语言的一切优点 13 已知 “int a=6; ”则执行 “a+=a=a*a; ”语句后, a的值为 ( )。 ( A) 36 ( B) 0 ( C) 24 ( D) 60 14 下列叙述中错误的是 ( )。 ( A) C语句必须以分号结束 ( B)复合语句在语法上被看作一条语句 ( C)
5、空语句出现在任何位置都不会影响程序运行 ( D)赋值表达式末尾加分号就构成赋值语句 15 若有定义: int a=7; float x=2 5, y=4 7;则表达式 “x+a 3*(int)(x+y) 2/4”的值是 ( )。 ( A) 2.5 ( B) 2.75 ( C) 3.5 ( D) 0 16 若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是 ( )。 ( A) +i: ( B) nl=(n2/(n3=2); ( C) k=i=j: ( D) a=b+c=2; 17 下列关于逻辑运算符两侧运算对象的叙述中正确的是 ( )。 ( A)只能是整数 0或 1 ( B)只能是整数
6、 0或非 0整数 ( C)可以是结 构体类型的数据 ( D)可以是任意合法的表达式 18 若有说明 int a34;则 a数组元素的非法引用是 ( )。 ( A) a02*1 ( B) a13 ( C) a420 ( D) a04 19 下列说法不正确的是 ( )。 ( A) int *ptr;指针指向整形数据 ( B) char *ptr;指针的类型是字符型指针 ( C) int *ptr,指针的类型是双重指针 ( D) int(*ptr)3;是一个指针数组,数组共有三个元素,而三个 元素是 int型指针 20 有以下程序 #inc1ude void main() char s=“01aXy
7、“; int i, n=0; for(i=0; si! =0; i+) if(si=z)n+; printf(“ dn“, n); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 2 ( C) 3 ( D) 5 21 有以下程序: #inc1ude main() int a=1, 2, 3, 4, y, *p=&a3; p; y=*p; printf(“y= dn“, y); 程序的运行结果是 ( )。 ( A) y=0 ( B) y=1 ( C) y=2 ( D) y=3 22 下面的 for语句的循环次数为 ( )。 for(x=1, y=0; (y!=1 9)&(x void
8、main() int a=0, b=1, c=2; if( +a0|+b0) +c; printf(“ d, d, d“, a, b, c); ( A) 0, 1, 2 ( B) 1, 2, 3 ( C) 1, 1, 3 ( D) 1, 2, 2 24 有以下程序: #inc1ude main() int c; while(c=getchar()!=u) switch(c3) case 0: case 1:putchar(c+4); case 2:putchar(c+4); break; case 3:putchar(c+3); case 4:putchar(c+3); break; prin
9、tf(“n“); 从第一列开始输入数据( 代表一个回车符): 3 845,则程序输出结果为 ( )。 ( A) 77889 ( B) 77868 ( C) 776810 ( D) 7.78866e+007 25 C语言规定,函数返回值的类型是 ( )。 ( A)由调用该函数时的主调函数类型所决定 ( B)由 retum语句中的表达式类型所决定 ( C)由调用该函数时系统临时决定 ( D)由定义该函数时所指定的数值类型决定 26 执行下列程序时输入 “456789123”,输出结果是 ( )。 #inc1ude main() char m80; int c, i; scanf(“ c”, c);
10、 scanf(“ d“, i); scanf(“ s“, &m); printf(“ c, d, s n“, c, i, m); ) ( A) 456, 789, 123 ( B) 4, 789, 123 ( C) 4, 56, 789, 123 ( D) 4, 56, 789 27 已知下列函数定义: fun(int *b, int c, int d) int k; for( k=0; k int f(int t, int n); main() int a4=1, 2, 3, 4), s; s=f(a, 2); printf(“ d n“, s); int f(int t, int n) i
11、f(n0)&(n #inc1ude “string h“ void fun(char *s, int n) char *t, int i, j, for(i=0; istrlen(sj) t=si; si=sj; sj=t; main() char *ss=“bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“; fun(ss, 5); printf(“ s, sn“, ss0, ss4); 程序的运行结果是 ( )。 ( A) xy, aaaacc ( B) aaaacc, xy ( C) bcc, aabcc ( D) aabcc, bcc 34 若已定义: int
12、a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中 019,则对 a数组元素不正确的引用是 ( )。 ( A) apa ( B) (&ai) ( C) pi ( D) a10 35 以下选项中可用作 C程序合法实数的是 ( )。 ( A) 0.1 ( B) 3 0e0 2 ( C) E9 ( D) 9 12E 36 以下叙述中不正确的是 ( )。 ( A)预处理命令行都必须以 #号开始,结尾不加分号 ( B)在程序中凡是以 #号开始的语句行都是预处理命令行 ( C) C程序在执行过程中对预处理命令进行处理 ( D)预处理命令可以放在程序中的任何位置 37 以
13、下程序的输出结果是 ( )。 #inc1ude #define F(x) 2 84+x #define w(y) printf(“ d“, (int)(y) #define P(y) w(y) main() int x=2; P(F(5)*x); ( A) 12 ( B) 13 ( C) 14 ( D) 16 38 设有下面的定义: struct st mt a; floatb: d; int *p, 要使 p指向结构变量 d中的 a成员,正确的 赋值语句是 ( )。 ( A) *p=d a; ( B) p=&a; ( C) p=d a; ( D) p=&d a; 39 交换两个变量的值,不允
14、许用临时变量,应该使用下列 ( )位运算符。 ( A) & ( B) c)| ( C) 40 如果需要打开一个已经存在的非空文件 “FILE”并进行修改,正确的语句是( )。 ( A) fp=fopen(“FILE“, “r“); ( B) fp=fopen(“FILE“, “a+“); ( C) fp=fopen(“FILE“, “w+“); ( D) fp=fopen(“FILE“, “r+“); 二、程序填空 题 41 函数 fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数 isleap用来判别某一年是否为闰年。 例如,若输入: 2008 5
15、1,则程序输出: 2008年 5月 1日是该年的第 122天。 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构! #include int isleap (int year) int leap; leap= (yearo04=0 & yearool00!=0 | yearo0400=0) ; return_ (1)_; int fun (int year, int monthr int day) int table 13 = 0, 31, 28, 31, 30, 31, 30
16、, 31, 31, 30, 31, 30, 31; int days=0, i; for(i=1; i2) days=days+_ (3)_; return days; main() int year, monthf day, days; printf( “请输入年、月、日: “); scanf(“ d d d“, &year, &month, &day); days=fun(year, month, day); printf(“ d年 d月 d日是该年的第 d天 n“, year, month, day, days); 三、程序修改题 42 给定程序 modi1 c的主函数中,将 a、 b、
17、 c三个结点链成一个单向链表,并给各结点的数据域赋值,函数 fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 maln函数,不得增行或删行,也不得更改程序的结构。 #include typedef struct list int data; struct list *next; LIST; int fun (LIST *h) LIST *p; int t; p=h; while ( *p) t=t+p data; return t; main () LIST a, b, c, *h; a data=34
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 117 答案 解析 DOC
