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

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

1、国家二级( C语言)笔试模拟试卷 186及答案与解析 1 在关系代数运算中,有 5种基本运算,它们是 ( )。 ( A)并 ( )、差 (-)、交 ()、除 ()和笛卡儿积 () ( B)并 ( )、差 (-)、交 ()、投影 ()和选择 () ( C)并 ( )、交 ()、投影 ()、选择 ()和笛卡儿积 () ( D)并 ( )、差 (-)、投影 ()、选择 ()和笛卡儿积 () 2 在数据库系统的组织结构中,下列 ( )映射把用户数据库与概念数据库联系了起来。 ( A)外模式 /模式 ( B)内模式 /外模式 ( C)模式 /内模式 ( D)内模式 /模式 3 下列关于线性链表的描述中,

2、正确的是 ( )。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点 (即前件或后件 ) 、结点由两部分组成:数据域和指针域。 ( A)仅 、 ( B)仅 、 ( C)仅 、 ( D)全部 4 下面关于数据库三级模式结构的叙述中,正确的是 ( )。 ( A)内模式可以有多个,外模式和模式只有一个 ( B)外模式可以有多个,内模式和模式只有一个 ( C)内模式只有一个,模式和外模式可以有多个 ( D)模式只有一个,外模式和内模式可以有多个 5 设有关键码序列 (66, 13, 51, 76, 81, 26, 57, 69, 23),要按关键码值递增的次序

3、排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为 ( )。 ( A) 23, 13, 51, 57, 66, 26, 81, 69, 76 ( B) 13, 23, 26, 51, 57, 66, 81, 76, 69 ( C) 23, 13, 51, 57, 26, 66, 81, 69, 76 ( D) 23, 13, 51, 57, 81, 26, 66, 69, 76 6 下列哪一条不属于数据库设计的任务 ?( ) ( A)设计数据库应用结构 ( B)设计数据库概沦结构 ( C)设计数据库逻辑结构 ( D)设计数据库物理结构 7 数据库技术的根本目标是 (

4、)。 ( A)数据存储 ( B)数据共享 ( C)数据查询 ( D)数据管理 8 需求分析阶段的任务是 ( )。 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 9 关系数据库管理系统能实现的专门关系运算包括 ( )。 ( A) 排序、索引、统计 ( B)选择、投影、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 10 数据管理技术发展的三个阶段中, ( )没有专门的软件对数据进行管理。 人工管理阶段 文件系统阶段 数据库阶段 ( A)仅 ( B)仅 ( C) 和 ( D) 和 11 下列说法正确的是 ( )。 ( A) main函数必须放在

5、C程序的最后面 ( B) main函数必须放在 C程序的最前面 ( C) main函数可以放在 C程序的中间部分,但在执行 C程序时是从程序开 头执行的 ( D) main函数可以放在 C程序的中间部分,但在执行 C程序时是从 main函数开始的 12 若有以下定义和语句: int a=010, b=010, c=10; printf(“%d,%d,%da“,a,b,C); 则输出结果是 ( )。 ( A) 8,10,10 ( B) 10,10,10 ( C) 8,8,10 ( D) 8,16,10 13 数字字符 0的 ASCII值为 48,运行下列程序的输出结果是 ( )。 main()

6、char a=1,b=2; printf(“%c,“,b+); printf(“%dn“,b-A); ( A) 3,2 ( B) 50,2 ( C) 2,2 ( D) 2,50 14 有以下程序: #include stdio.h main() int a=1,b=2; for(;a 12;a+) b+=a*2;a+=3; printf(“%d,%dn“,b,A); 程序运行后的输出结果是 ( )。 ( A) 32,13 ( B) 46,10 ( C) 72,13 ( D) 72,10 15 下列程序段选择项,使 i的运行结果为 3的程序段是 ( )。 ( A) int i=0, j=O; (

7、i=2, (j+)+i); ( B) int i=1, j=0; j=i=(i=3)*2); ( C) int i=0, j=1; (j=1)?(i=1):(i=3); ( D) int i=1, j=1; i+=j+=1; 16 下面程序的输出结果是 ( )。 #include stdio.h main() int x=7,y=3; printf(“%d“,y=x/y); ( A) 0 ( B) 2 ( C) 3 ( D)不确定的值 17 有以下程序: main() int y=1,x=2,z=3; printf(“%d,%dn“, (+x,y+),z+2); 执行后的输出结果是 ( )。

8、( A) 3,5 ( B) 2,5 ( C) 3,3 ( D) 1,5 18 当把 4个表达式用做 if语句的控制表达式时,有一个选项与其他 3个选项含义不同,这个选项是 ( )。 ( A) k%2 ( B) k%2=1 ( C) (k%2)!=0 ( D) !k%2=1 19 执行以下程序段的输出结果是 ( )。 int m=0x12,n=0x12; m=m-n; printf(“%Xn“,m); ( A) 0X0 ( B) 0X12 ( C) 0x0 ( D) 0 20 阅读以下程序 #include stdio.h main() Int Case;float printF; printf

9、(“请输入 2个数 :“); scanf(“%d %f“, printf(“%d%fn“,Case,printF); 以下说法正确的是 ( )。 ( A)定义浯句出错, Case是关键字,不能用作用户自定义标识符, printF不能用作用户自定义标识符 ( B)定义语句出错, Int无法被识别 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 Case的值 21 已知字母 a的 ASCII码为十进制数 97,下面程序的输出结果是 ( )。 #include stdio.h main() char c1,c2; c1=a+6-0; c2=a+3

10、-0; printf(“%c,%cn“,c1,c2); ( A)输出无定值 ( B) d,e ( C) e,f ( D) g,d 22 下列能正确定义字符串的语句是 ( )。 ( A) char str=64; ( B) char str=“kx43“; ( C) char str=“; ( D) char str=“0“; 23 以下语句段执行后的输出结果是 ( )。 #include stdio.h main() int k=3; if(k) printf(“#“) else printf(“ ( A) # ( B) if(+a 0) else printf(“%d,%dn“,b,A);

11、( A) 2,2 ( B) 1,3 ( C) 3,2 ( D) 3,1 26 以下函数定义的类型符是 ( )。 fff(double x) printf(“%f“,x+x); ( A)与 x类型相同 ( B) void类型 ( C) int类型 ( D)无法确定 27 下面程序的输出结果是 ( )。 #include stdio.h main() int a=1,2,3,4,5,6,7,8,7,10,*p; p=a; printf(“%dn“,*p+8); ( A) 0 ( B) 1 ( C) 10 ( D) 9 28 若有以下定义,则对 a数组元素的正确引用是 ( )。 int a5,*p=

12、a; ( A) * pfintf(“%dn“,*(p+3); ( A) 67 ( B) 0 ( C)字符 C的地址 ( D) 字符 C 30 若运行以下程序时,从键盘输入 ADescriptor CR ( CR表示回车 ),则下面程序的运行结果是 ( )。 #include stdio.h main() char c; int v0=1,v1=0,v2=0; do switch(c=getchar() casea:caseA: casee:caseE: casei:caseI: caseo:caseO: caseu:caseU:v1+=1: default:v0+=1;v2+=1; while

13、(c!=n); printf(“v0=%d,v1=%d,v2=%dn“,v0,v1,v2); ( A) v0=7,v1=4,v2=7 ( B) v0=8,v1=4,v2=8 ( C) v0=11,v1=4,v2=11 ( D) v0=13,v1=4,v2=12 31 有以下程序: #include stdio.h main() int aa55=1,2,3,4,5,6,1,8,5,9,10,2,1,2,5,6; int i,s=0; for(i=0;i 4;i+) s+=aai2; printf(“%d“,s); 程序运行后的输出结果是 ( )。 ( A) 26 ( B) 19 ( C) 10

14、 ( D) 20 32 下述程序的输出结果是 ( )。 #include stdio.h void main() int a5=1,2,3,4,5; int *p=a,*q= p; printf(“%d,“,*(p+); printf(“%d“,*q); ( A) 2,2 ( B) 1,1 ( C) 3,4 ( D) 1,2 33 若有定义 int(*pt)3;,则下列说法不正确的是 ( )。 ( A) int(*pt)3是一个数组指针 ( B)指针 pt指向一个有 3个整型变量的数组 ( C)定义了一个名为 *pt、具有三个元素的整型数组 ( D)定义了一个名为 pt的指针变量,它可以指向每

15、行有三个整数元素的二维数组 34 对下述程序的判断中,正 确的是 ( )。 #include stdio.h void main() char *P,s256; p=s; while(strcmp(s,“the end“) printf(“Input the string:“); gets(s); while(*P) putchar(*p+); ( A)此程序循环接收字符串并输出,直到接收到字符串 “the end”为止 ( B)此程序循环接收字符串,接收到字符串 “the end”则输出,否 则程序终止 ( C)此程序循环接收字符串并输出,直到接收字符串 “the end”为止,但因为代码有

16、错误,程序不能正常工作 ( D)此程序循环接收字符串并将其连接在一起,直到接收字符串 “the end”为止,输出连接在一起的字符串 35 下面程序的输出结果是 ( )。 #include stdio.h #include string.h main() char p1=“WHO“,p2=“who“,str50=“xyz“; strcpy(str+1,strcat(p1,p2); printf(“%s“,str); ( A) xyzWHOwho ( B) zWHOwho ( C) zWHOwho ( D) xWHOwho 36 有以下程序: #include string.h void f(c

17、har p10,int n) /* 字符串从小到大排序 */ char t10;int i,j; for(i=0;i n-1;i+) for(j=i+1;j n;j+) if(strcmp(pi,pj) 0strcpy(t,pi);strcpy(pi,pj);strcpy(i,t); main() char p510=“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“; f(p,5); printf(“%dn“,strlen(p0); 程序运行后的输出结果 ( )。 ( A) 2 ( B) 4 ( C) 6 ( D) 3 37 下面结构体的定义语句中,错误的是 ( )。 (

18、A) struct ordint x;int y;int z;struct ord a; ( B) struct ordint x;int y;int z;ord a; ( C) struct ordint x;int y;int z;a; ( D) structint x;int y;int z;a; 38 有以下程序: #include string.h int a=4; int f(int n) int t=0;static int a=5; if(n%2) int a=6;t+=a+; elseint a=7;t+=a+; return t+a+; main() int s=a,i=0

19、; for(;i 2;i+)s+=f(i); printf(“%dn“,s); 程序运行后的输出结果是( )。 ( A) 24 ( B) 28 ( C) 32 ( D) 36 39 下面程序的输 m结果是 ( )。 typedef union double x3; int y4; char z10; M; M t; main() Printf(“%dn“,sizeof(t); ( A) 32 ( B) 26 ( C) 24 ( D) 4 40 下述程序的输出结果是 ( )。 #include stdio.h void main() char a=3,b=1; char c=ab 2; prin

20、tf(“%d“,C; ( A) 1 ( B) 7 ( C) 3 ( D) 2 41 若 int x=1, y=2;则计算表达式 y+=y-=x*=y后的 y值是 ( )。 42 以下程序段的运行结果是 ( )。 #include stdio.h main() int x=2, y=1: switch(x) case 1: switch(y) case 0:printf(“x=2, y=1n“); break; case 1:printf(“y=1n“); break; case 2:printf(“x=2n“); 43 以下程序统计从终端输入的字符中大写字母的个数。用 #号作为输入结束标志,请

21、填空。 #include stdio.h #include ctype.h main() int num26, i; char c; for(i=0; i 26; i+) numi=0; ( ); while(c!=# if(isupperC) numc-65+=1; for(i=0; i 26; i+) if(numi) printf(“%c, %dn“, i+65,numi); 44 以下程序运行后的输出结果是 ( )。 struct NODE int k; struct NODE*link; ; main() struct NODEm5, *p=m, *q=m+4; int i=0: w

22、hile(p!=q) p- k=+i; p+; q- k=1+; q-; q- k=i: for(i=0; i 5;i+)printf(“%d“,mi.k); printf(“n“); 45 下面程序将二维数组 a的行和列元素互换后存放到另一个二维数组 b中,请填空。 main() int a23=1, 2, 3, 4, 5, b32, i, j; for(i=0; i 2;i+) for(j=0; j 3; j+) ( ); 46 下面程序的输出结果是 ( )。 #include stdio.h main() static char a=“china“; char*ptr=a; while(

23、*ptr) printf(“%c“, *ptr-32); ptr+; 47 下面程序中的数组 a包括 10个整数元素,从 a中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 4个元素输出数组 b,请填空。 main() int a10, b10, i; for(i=0; i 10; i+) scanf(“%d“, ),因此执行程序时会出错。 24 【正确答案】 D 【试题解析】 本题考查 scanf函数的基本格式。若在 scanf函数的格式控制字符串中插入了其他的字符,则在输入时要求按一一对应的位置原样输入这些字符,我们必须把 “a=”、 “b=”、 “c=”也输入。 25 【正确答

24、案】 C 26 【正确答案】 C 【试题解析】 在函数定义时,由于函数没有说明其类型,所以系统默认一律自动按整型处理。 27 【正确答案】 D 【试题解析】 “*”号的优先级比 “+”的优先级高,所以先执行 “*P”:指针 P指向的是数组的首地址,因此 *p=1;再加 8得 9。 28 【正确答案】 D 29 【正确答案】 B 【试题解析】 先定义了一个指向字符型数组 str的指针 P,指针 P指向数组 str的首地址, p+3将指针指向 str3,又因为字符型数组在存放字符串时会自动在末尾加上 0,所以 *(p+3)=0。 30 【正确答案】 D 【试题解析】 本题考查的是 switch语句

25、的应用。分析程序 , do-while语句是先执行 do后面的语句再判断是否符合 while的条件。 V2+=1;语句无论读入的是什么字母 (包括回车符 ),此语句都要执行,语句 default:v0+=1;亦是如此;而语句caseU:v1+=1;只有在读入的字母是 a、 A、 e、 E、 i、 I、 o、 O、 u、U时才会执行。 31 【正确答案】 B 【试题解析】 本题考查二维数组元素的引用。二维数组可以看成是一个矩阵,aai2其实就是第 i行的第 3个元素, for循环内的 s+=aai2其实就是将矩阵第3列的数相加,即 s=3+1+10+5=19。 32 【正确答案】 D 【试题解析

26、】 题干中, *(p+)就是数组元素 a0,输出 a0,之后指针 p的值加1, *q即是数组元素 a1。 33 【正确答案】 D 【试题解析】 首先, pt跟 *结合,所以是一个指针,所指向的对象是含有 3个元素的数组。所定义的指针没加 const,所以是个指针变量,还可以指向类似对象的其他元素,也就是说还可以指向其他含有 3个元素的数组。 34 【正确答案】 A 【试题解析】 strcmp(str1, str2)是比较字符串 str1和 sir2,当两字符串相等时,返回值为 0,不相等时返回值为非 0;所以此段程序的功能是在未接收到字符串“the end”时,读入字符并输出。 35 【正确答

27、案】 D 36 【正确答案】 D 【试题解析】 strcmp(str1, str2)是比较字符串 str1和 str2,若 str1 str2,返回值为正数; f()函数的功能就是将字符串按照从小到大的顺序进行排列,需要注意的是比较的足字符串中每个字符的 ASCII值的大小,所以元素 p0是 “abc”,它的长度为 3。 37 【正确答案】 B 38 【正确答案】 B 【试题解析】 本题考查的是外部变量的应用。因为程序的初始 int a=4;语句定义了外部变量 a,在以后的执行过程中,当 i=0时,调用 f(0)函数,执行的语句是else int a=7;t+=a+;,此处程序中又定义了变量

28、a,所以原来定义的外部变量在此不起作用,得到 t=7,返回值语句 return t+a+;处,外部变量 a起作用,返回值为 7+5=12:当 i=1时,调用 f(1)函数,执行的是语句 elseinta=6:t+=a+;,此处程序中又定义了变量 a,所以原来定义的外部变量在此不起作用,得到 t=6,返回值语句 39 【正确答案】 C 【试题解析】 本题考查的是联合所占的存储空间。sizeof(t)=sizeof(double)*3=8*3=24。联合体所占的存储空间墩决于所占空间最大的成员所占的空间。 40 【正确答案】 B 41 【正确答案】 0 42 【正确答案】 x=2 43 【正确答案

29、】 c=getchar() 44 【正确答案】 13431 45 【正确答案】 bji=aij 46 【正确答案】 CHINA 47 【正确答案】 bi-1=ai-ai-1 48 【正确答案】 11 49 【正确答案】 a=8, b=7 50 【正确答案】 存储结构 【试题解析】 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。它分为数据的逻辑结构和数据的存储结构。 51 【正确答案】 消息 【试题解析】 对象之间进行通信的构造叫做消息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 52 【正确答案】 内聚性 【试题解析】 模块的独立程度是

30、评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。 53 【正确答案】 一对多 【试题解析】 在现实世界中事物间的关联称为联系。在概念世界中联系反映了实体集间的一定关系。两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有 3种,分别是一对一,一对多和多对多,依据题意,一名学生只能住一间宿舍,一间宿舍可住多名学生 ,所以实体 “宿舍 ”与实体 “学生 ”的联系属于一对多的联系。 54 【正确答案】 数据操作 【试题解析】 数据模型就是现实世界的反映,数据模型所描述的内容有 3个部分,它们是数据结构、数据操作与数据约束。

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

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

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