[计算机类试卷]国家二级(C语言)机试模拟试卷125及答案与解析.doc

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

1、国家二级( C语言)机试模拟试卷 125及答案与解析 一、选择题 1 线性表常采用的两种存储结构是 ( )。 ( A)散列方法和索引方式 ( B)链表存储结构和数组 ( C)顺序存储结构和链式存储结构 ( D)线性存储结构和非线性存储结构 2 软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和 ( )。 ( A)阶段性报告 ( B)需求分析 ( C)需求总结 ( D)都不正确 3 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( )。 ( A)需求分析 ( B)详细设计 ( C)软件设计 ( D)概要设计 4 对建立良好的程序设计风

2、格,下面描述正确的是 ( )。 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 5 下列工具中,不属于结构化分析的常用工具的是 ( )。 ( A)数据流图 ( B)数据字典 ( C)判定树 ( D) N-S图 6 在软件生产过程中,需求信息的来源是 ( )。 ( A)程序员 ( B)项目经理 ( C)设计人员 ( D)软件用户 7 对关系 S和 R进行集合运算,结果中既包含 S中的所有元组也包含 R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)积运算 8 设有

3、关键码序列 (Q, G, M, Z, A, N, B, P, X, H, Y, S, T, L, K, E),采用堆排序法进行排序,经过初始建堆后关键码值 B在序列中的序号是 ( )。 ( A) 1 ( B) 3 ( C) 7 ( D) 9 9 数据库的故障恢复一般是由 ( )来执行恢复。 ( A)电脑用户 ( B) 数据库恢复机制 ( C)数据库管理员 ( D)系统普通用户 10 下列选项中,不属于数据模型所描述的内容的是 ( )。 ( A)数据类型 ( B)数据操作 ( C)数据结构 ( D)数据约束 11 程序设计的任务包括 ( )。 ( A)编写程序代码并上机调试 ( B)确定所用数据

4、结构 ( C)确定所用算法 ( D)以上选项均正确 12 下列合法的标识符是 ( )。 ( A) 123 ( B) #256 ( C) a 55 ( D) abhj 1_2_3 13 以下程序的运行结果是 ( )。 #include main() int a=3, b=4, c=8, d=4, m=1, n=3; printf(“ d n“, (m=ab)& (n=cd); ( A) 0 ( B) 1 ( C) 2 ( D) 3 14 以下选项中,能用作数据常量的是 ( )。 ( A) o18 ( B) o11 ( C) 0 8e2 5 ( D) 25L 15 有下列程序: main() in

5、t m, n, p; scanf(“m= dn= dp= d“, &m, &n, &p); printf(“0 d d d n“, m, n, p); 若想从键盘上输入数据,使变量 m中的值为 123, n中的值为 456, P中的值为789,则正确的输入是 ( )。 ( A) m=123n=456p=789 ( B) m=123 n=456 p=789 ( C) m=123, n=456, p=789 ( D) 123 456 789 16 以下关于 long、 int和 short类型数据占用内存大小的叙述中正确的是 ( )。 ( A)均占 4个字节 ( B)根据数 据的大小来决定所占内存

6、的字节数 ( C)由用户自己定义 ( D)由 C语言编译系统决定 17 有以下程序 #include main() int k=5, n=0; while(k0) switch(k) default: break; case 1 : n+=k: case 2 : case 3 : n+=k: k-; printf(“ d n“, n); 程序运行后的输出结果是 ( A) 0 ( B) 4 ( C) 6 ( D) 7 18 有以下程序段 intj; float y; char name50; scanf(“ 2d f s“, j, &y, name); 当执行上述程序段,从键盘上输入 55566

7、 7777abc后, y的值为 ( )。 ( A) 55566 0 ( B) 566 0 ( C) 7777 0 ( D) 566777 0 19 若变量已正确定义,有以下程序段: i=0: do printf(“ d“, i); while(i+); printf(“ d n“, i); 其输出结果是 ( )。 ( A) 0, 0 ( B) 0, 1 ( C) 1, 1 ( D)程序进入无限循环 20 设有条件表达式: (ExP)?i+; j-,则以下表达式中 (EXP)完全等价的是 ( )。 ( A) (EXP=0) ( B) (EXP!=0) ( C) (EXP=1) ( D) (EXP

8、!=1) 21 有以下程序 #include main() int y=9; for(; y0; y-) if(y 3=0)printf(“ d“, -y); 程序的运行结果是 ( )。 ( A) 741 ( B) 963 ( C) 852 ( D) 875421 22 若要求从键盘读入含有空格字符的字符串,应使用函数 ( )。 ( A) getc() ( B) gets() ( C) getchar() ( D) scanf() 23 当 a=4, b=5, c=7, d=6时,执行下面一段程序: iffa main() void reverse(int a, int n) int b10=

9、10, 9, 8, 7, 6, 5, 4, 3, 2, 1; int i, s=0; int i, t; reverse(b, 10); fbr(i=0; im ( C) *(p+)-n ( D) (p+) (*m) 28 在下列叙述中,错误的是 ( )。 ( A) C语言中,二维数组或多维数组是按行存放的 ( B)赋值表达式 b12=a23是正确的 ( C) char a1; a0=A与 int a1: a0=A等价 ( D)数组名后的方括号内可以为常量表达式,也可以为变量 29 若已包括头文件 和 ,运行下面程序的输出结果是 ( )。 char sl10=“12345“, s210=“08

10、9“, s3=“67“; strcat(strcpy(s1, s2), s3); puts(s1); ( A) 08967 ( B) 0894567 ( C) 089567 ( D) 089567 30 下列说法正确的是 ( )。 ( A) auto和 register将声 明的对象说明为自动存储类对象,这些对象可用在函数中或函数外 ( B)将变量其定义为 static类型,则其初值默认为随机值 ( C) typedef说明符并不会为对象预留存留空间 ( D)如果一个对象被声明为 register,则对它应用一元运算符 &,意在取得其存储的地址 31 以下有关宏的描述不正确的是 ( )。 (

11、A)宏定义不做语法检查 ( B)双引号中出现的宏名不进行替换 ( C)宏名无类型 ( D)宏名必须用大写字母表示 32 以下程序段的输出结果为 ( )。 static char a=“programme“; char*p; p=a; for(p=a; p void main() void fun(int*s, int*p) int a=2, 3, 4, 5, k, x; static int t=3; for(k=0; lk main() struct st p=aa; int x; int *y; *p; printf(“ d n“, +(p-x); int dt4=1, 2, 3, 4;

12、struct st aa4=2, &dt0, 3, &dt0, 4, &dt0, 5, dt0, ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 38 有以下定义和语句: struct students int num; char name20; char c; struct int gradel; int grade2; s; ; struct students w, *pw; *pw=w: 下列赋值语句不正确的是 ( )。 ( A) w num=1002; ( B) w gradel=85: ( C) pw-num=1002; ( D) w s grade2=85; 39 设有

13、以下语句: char x=3, y=6, z; z=xy #include #define N 5 #define M 8 int fun(char(*ss)M, char*t) int i; *found* for(i=0; i int fun(int m) int k=2; while(k #define N 16 typedef struct char num10; int s; STREC; int fun(STREC*a, STREC*b) main() STREC sN=“GA05“, 85, “GA03“, 76, “GA02“, 69, GA04“,85, “GA01“, 91

14、, “GA07“, 72, “GA08“, 64, “GA06“, 87),“GA015“, 85, “GA013“, 91), “GA012“, 64, “GA014“, 91, “GA011“,91), “GA017“, 64, “GA018“, 64, “GA016“, 72; STREC hN; int i, n; FILE*out; n=fun(s, h); printf(“The d lowest score: n“, n); for(i=0; ix引用了结构体数组 aa0的第一个成员 2; +(p-x)是将 p-x的值加 1,所以输出结果为3。 38 【正确答案】 B 【试题解析

15、】 本题主要考查的是结构体变量的嵌套定义,也就是说一个结构体变量也可以是一个结构体。在本题中 student这个结构体中包含了结构体 s。所以对结构体变量 w中 grade1成员的引用是 w s, grade1或 w-s-gradel。 39 【正确答案】 B 【试题解析】 本题考查的是位运算符的应用。 x和 y写成二进制表示分别为x=00000011, y=00000110,由于左移位运算符 “1),所以判别 n是否为素数,只要用 2、 3、 、 n-1这些数逐个去除 n,观察余数是否为 0即可,只要有一次相除余数为 0, n就不是素数,否则 n为素数。 (1)第一个标识下 “k+”语句没有

16、结束符分号,所以将 “k+”改为 “k+; ”。 (2)第二个标识下的 “if(m=k)”语句应该是判断 m是否素数,而原题中是 将 k的值赋给 m,并不表示是否 m等于 k,所以第二个标识下 “ifm=k)”应该改为 “if(m=k)”。 四、程序设计题 43 【正确答案】 int i, j=0, min=a0 s; for(i=0; iai s) j=0; bj+=ai; min=ai s; else if(min=ai s) bj+=ai; return j; 【试题解析】 该程序功能是 把分数最低的学生数据放在 b所指的数组中。本题是关于求解结构体中某些成员的最小值,首先将第一个值设定为最小值,并在循环中将其他所有值与该值进行比较,求得最小值。然后将最小值与所有值进行比较,求得所有的最小值。 (1)要把最低分数的学生数据放在数组中,首先求出最低分数,再使用一个 for循环把所有的成绩进行比较,找出最低的分数来。 (2)找出所有与最低分数相等的学生,并将最低分数的人数累加。

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

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

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