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

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

1、国家二级( C语言)笔试模拟试卷 46及答案与解析 1 计算机软件系统包括 _。 ( A)计算机与外部设备 ( B)硬件系统与软件系统 ( C)系统软件与应用软件 ( D) CPU与外部设备 2 下列设备不是输出设备的是 _。 ( A)显示器 ( B)打印机 ( C)绘图仪 ( D)扫描仪 3 微型计算机的性能主要取决于 _。 ( A)内存 ( B)硬盘 ( C)中央处理器 ( D)显示卡 4 字长为 16位的计算机是指 _。 ( A)该计算机能够处理的最大数不超过 16 ( B)该计算机中的 CPU可以同时处理 16位的二进制信息 ( C)该计算机的内存量为 16MB ( D)该计算机每秒钟

2、所能执行的指令条数为 16MIPS 5 SA方法是一种 _。 ( A)自顶向下逐层分解的分析方法 ( B)自底向上逐层分解的分析方法 ( C)面向对象的分析方法 ( D)上述都不对 6 在所有排序方法中,关键词比较的次数与记录的初始排列次序无关的是 _。 ( A)希尔排序 ( B)冒泡排序 ( C)插入排序 ( D)选择排序 7 在数据库技术中,面向对象数据模型是 一种 _。 ( A)概念模型 ( B)结构模型 ( C)物理模型 ( D)形象棋型 8 软件测试与排错是两类相互联系而又性质不同的活动,在下述项目中,不具有排错活动特征的项目是 _。 ( A)修改程序 ( B)运用推理和归纳的方法

3、( C)了解程序细节 ( D)运用测试实例 9 软件危机是指 _。 ( A)软件开发和软件维护中出现的一系列问题 ( B)计算机出现病毒 ( C)软件的版权得不到法律应有的保护 ( D)以上都不正确 10 E-R图是数据库设计的工具之一,它一般 适用于建立数据库的 _。 ( A)概念模型 ( B)结构模型 ( C)物理模型 ( D)逻辑模型 11 下列描述中,正确的是 _。 ( A) a2*3+5可以是一个数组元素 ( B)可以对结构体类型和结构类型变量赋值、存取或运算 ( C)结构一经定义,系统就给它分配了所需的内存单元 ( D)结构体变量和共用体变量所占的内存长度是各成员占的内存长度之和

4、12 下列程序的输出结果是 _。 #include stdio.h #define FUDGE(y) 2.84+y#define PR(a) printf(“%d“, (int)(a)#define PRINTl(a) PR(a); putchar(n)main () int x=2; PRINT1(FUDGE(5)*x); ( A) 11 ( B) 12 ( C) 13 ( D) 15 13 设有如下定义: int x=1, y=-1;则下列语句的输出结果是 _。printf(“%dn“, (x- return(p-s); main() printf(“%dn“, f(“ABCDEF“);

5、( A) 3 ( B) 6 ( C) 8 ( D) 0 16 在下列叙述中,错误的一条是 _。 ( A)有下列语句组,则 c=(*p)(a, b)与 c=max(a, b)等价 int max();int(*p)();int c;p=max; ( B)执行下列语句后,则 *p的值为 1 int a=1, *p;*p= switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn“,a,b); 该程序的输出结果是 _。 ( A) a=2,b=1 ( B) a=1,b=1 ( C) a=1,b=0 ( D) a=2,b=2

6、24 有如下程序 main() float x=2.0,y; if(x 0.0)y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(“%fn“,y); 该程序输出结果是_。 ( A) 0 ( B) 0.25 ( C) 0.5 ( D) 1 25 有以下函数定义; void fun(int n,double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun正确调用语句是 _。 ( A) fun(int y,double m); ( B) k=fun(10,12.5); ( C) fun(x,n); ( D) void fun(n,x);

7、26 有如下程序 main() int i,sum; for(i=1;i =3;sum+) sum +=i; printf(“%dn“,sum); 该程序的执行结果是 _。 ( A) 6 ( B) 3 ( C)死循环 ( D) 0 27 下列函数定义中,会出现编译错误的是 _。 ( A) max(int x,int y,int *z) *z=x y?x:y; z=x y?x:y; ( B) int max(int x,y) int z; return z; ( C) max(int x,int y) int z; z=x y?x:y; return (z); ( D) int max(int

8、x,int y) return x y?x:y; 28 有如下程序 main() int x=3; do printf(“%d“,x-); while(!x); 该程序的执行结果是 _。 ( A) 321 ( B) 3 ( C)不输出任何内容 ( D)陷入死循环 29 设有声明语句 char a=72;,则变量 a_。 ( A)包含 1个字符 ( B)包含 2个字符 ( C)包含 3个字符 ( D)声明不合法 30 有以下程序段: main() int a=5,*b,*c; c=b= 程序在执行了c= 该函数调用语句中,含有的实参个数是 _。 ( A) 3 ( B) 4 ( C) 5 ( D)

9、有语法错误 32 有如下程序 main() char s5=“abc“,“de“,“fgh“; printf(“%c“,s26); 其输出为 _。 ( A)不确定 ( B)编译错误 ( C) g ( D)输出 null字符 33 有如下程序 int func(int a, int b) return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn“,r); 该程序的输出结果是 _。 ( A) 12 ( B) 13 ( C) 14 ( D) 15 34 有如下 程序段 int *p,a=10,b=1; p= a=*

10、p+b; 执行该程序段后, a的值为 _。 ( A) 12 ( B) 11 ( C) 10 ( D)编译出错 35 有以下程序: int *f(int *x,int *y) if(*x *y)return x; else return y; main() int a=7,b=8,*p,*q,*r; p= q= r=f(p,q); printf(“%d,%d,%dn“,*p,*q,*r); 程序运行后输出结果是 _。 ( A) 7,8,8 ( B) 7,8,7 ( C) 8,7,7 ( D) 8,7,8 36 有如下程序: long fib(int n) if(n 2) return(fib(n

11、-1)+fib(n-2); else return(2); main() printf(“%ldn“,fib(3); 该程序的输出结果是 _。 ( A) 2 ( B) 4 ( C) 6 ( D) 8 37 下面程序的输出结果是 main() char str10,c=a; int i=0; for(;i 5;i+) stri=c+; printf(“%s“,str); ( A) abcde ( B) a ( C)不确定 ( D) bcdef 38 在 C语言中,函数中变量的隐含存储类别是 _。 ( A) auto ( B) static ( C) extern ( D)无存储类别 39 有如下

12、程序: #define n 2 #define m N+1 #define NUM 2*m+1 main() int i; for(i=1;i =NUM;i+)printf(“%dn“,i); 该程序中的 for循环执行的次数是 _。 ( A) 5 ( B) 6 ( C) 7 ( D) 8 40 假设在 turboc2.0采用 small模式编译如下程序 main() char a4= a,b; char *b=“abc“; printf(“%d,%d“,sizeof(a),sizeof(b); 其输出结果为 _。 ( A) 4,2 ( B) 4,4 ( C) 4,3 ( D) 2,2 41

13、有以下函数 char *fun(char *p) return p; 该函数的返回值是 _。 ( A)无确切的值 ( B)形参 p中存放的地址值 ( C)一个临时存储单元的地址 ( D)形参 p自身的地址值 42 有如下程序段: #include stdio.h #define Max(a,b) a b?a:b main() int a=5,b=6,c=4,d; d=c+Max(a,b); printf(“%d“,d); 其输出结果为 _。 ( A) 10 ( B) 5 ( C) 6 ( D)编译错误 43 有如下程序段 int a=14,b=15,x; char c=A; x=(a 则数值为

14、 9的表达式是_。 ( A) *p+9 ( B) *(p+8) ( C) *p+=9 ( D) p+8 47 若有以下定义: int t32;,能正确表示 t数组元素地址的表达式是 _。 ( A) main() struct abc s 2=1,2,3,4,5,6; int t=-s0.a+s1.b; printf(“%dn“,t); ( A) 5 ( B) 6 ( C) 7 ( D) 8 49 有如下程序: main() int a33=i,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j =i;j+) s+=aij; printf(“%dn“,s);

15、该程序的输出结果是 _。 ( A) 18 ( B) 19 ( C) 20 ( D) 21 50 若已建立如下图所示的单向链表结构:在该链表结构中,指针 p、 s分别指向图中所示结点,则不能将 s所指的结点插入到链表末尾仍构成单向链表的语句组是 _。 ( A) p=p- next; s- next=p; p- next=s; ( B) p=p- next; s- next=p- next; p- next=s; ( C) s- next=NULL; p=p- next; p- next=s; ( D) p=(*p).next; (*s).next=(*p).next; (*p).next=s;

16、51 对于长度为 n的顺序存储的线性表,当随机插入和删除 个元素时,需平均移动元素的个数为【 】。 52 注释说明了程序的功能,它分为【 】注释和功能性注释。 53 软件测试中路径覆盖测试是整个测试的基础,它是对软件【 】进行测试。 54 数据库技术的主要特点 为数据的集成性、数据的高【 】和低冗余性、数据独立性和数据统一管理与控制。 55 数据元素之间【 】的整体称为逻辑结构。 56 设 int a=5, b=6,表达式 (+a=b-)?+a: -b的值是【 】。 57 把数学表达式 改写成 C语言的表达式是【 】。 58 执行下面程序段后, k的值是【 】。 r=1; n=203; k=1

17、 dok*=n%10*r; n/=10; r+; while(n); 59 若有以下程序段: int c1=1, c2=2, c3; c3=1.0/c2*c1; 则执行后, c3中的值是【 】。 60 下列程序的输出结果【 】。 #define PR(ar)printf(“ar=%d“, ar) main() int j, a=1, 3, 5, 7, 9, 1l, 13, 1, *p=a+5; for(j=3; j; j-) switch(j) case 1: case 2: PR(*p+); break; case 3: PR(*(-p); 61 在使用 putchar和 getchar函数

18、处理字符时,必须在程序的开头出现包含头文件的命令行是【 】。 62 以下函数的功能是【 】。 float av(a, n) float a; int n; int i; float s; for(i=0, s=0; i n; i+)s=s+ai; return s/n; 63 以下函数的功能是求出能整除 x且不是偶数的各整数,并按从小到大的顺序放在 pp所指的数组中,这些除数的个数通过形参 n返回。例如,若 x中的值为 30,则有 4个数符合要求,它们是 1, 3, 5, 15。请按题意,完成填空。 试题程序: #include conio.h #include stdio.h void fu

19、n(int x, int pp, int *n) int i, j=0; for(i=1; i x; i+=2) if(x%i=0)ppj+=i; 【 】; main() int x, aa1000, n, i; clrscr(); printf(“nPleas enter an integer number : n“); scanf(“%d“, for(i=0; i n; i+) printf(“%d“, aai); printf(“n“); 64 下面程序的功能是从键盘输入一行字符,统计有多少个单词, 单词间用空格分隔。补充所缺语句。 #include stdio.h main() cha

20、rs s80, c1, c2= ; int i=0, num=0; gets(s); while(si!=0) c1=si; if(i=0)c2= ; else c2=si-1; if(【 】 )num+; i+; printf(“There are%d words, n“, num); 65 以下程序的输出结果是【 】。 void fun() static int a; a+=2; printf(“%d“, a); main() int cc; for(cc=1; cc =4; cc+)fun(); printf(“n“); 66 已有定义: double *p;,请写出完整 的语句,利用

21、malloc函数使 p指向一个双精度型的动态存储单元【 】。 67 下列程序输出的结果是【 】。 fun(int x) static int a=3; a+=x; return(a); main() int k=2, m=1, n; n=fun(k); n=fun(m); printf(“%dn“, n); 68 下面程序的功能是:将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变 。请填空。 #include stdio.h #include string.h main() char a=“clanguage“, t; int i, j, k; k=strlen(a); for(i

22、=0; i =k-2;i+=2) for(j=i+2;j =k; j+=2; ) if(【 】 ) t=ai; ai=aj; aj=t; puts(a); printf(“n“); 69 下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x是数组名, n是 x中的数据个数, max存放最大值, index存放最大值所在元素的下标。请填空。 #include stdlib.h #include stdio.h void fun(int a, int n, int*max, int*d) int i; *max

23、=a0; *d=0; for(i=0;【 】 ;i+) if(*max【 】 ) *max=ai; *d=i; main() int i, x20, max, index, n=10; randomize(); for(i=0; i n; i+) xi=rand()%50; printf(“%4d“, xi); printf(“n“); fun(x, n, b+”也将被执行,这样一来, a=2, b=1。 24 【正确答案】 C 【试题解析】 本题考查的是 if.else语句的使用。 x=2.0,符合第二个 IF语句的条件 x 10.0,所以执行 y=1.0/x语句,即 y=1.0/2.0=0

24、.500000。 25 【正确答案】 C 【试题解析】 函数调用的一般形式为;函数名 (实参表列 );,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为 void的函数,不能作为赋值表达式的组成部分,所以选 C。 26 【正确答案】 C 【试题解析】 在循环过程 中, i的值一直没有被改变,所以这是一个死循环。 27 【正确答案】 B 【试题解析】 在 C语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项 B是错误的。其正确的表示方式应为: int max(int x,int y) 或 int max(x,y) int x,y; 28 【正

25、确答案】 B 【试题解析】 本题 x赋初值为 3,当执行 printf(“%d“,x-);时,由于 x-的作用是先运算 x,再将 x的值减 1,所以, printf输出的 x值为 3,等输出后, x的值减 1变为 2,继续执行,判断条件 !x为假,循环只被执行一次。 29 【正确答案】 A 【试题解析】 转文字符常量 xx可以把 后面的数字转换为对应的 ASCII字符。 30 【正确答案】 C 【试题解析】 指针变量是用来存放地址的。 后, p指向 整数 a, *p即 p的目标变量,也就是 a;所以 a=*p+b等价于 a=a+b,可知 a的值最终为 11。 35 【正确答案】 B 【试题解析

26、】 f函数的功能是返回地址为 x,y的两个数中值铰的数的地址,本题输出结果是 7,8,7。 36 【正确答案】 B 【试题解析】 函数 fib内部有两个递归调用,当 n=3时, fib(n-1)返回 2, fib(n-2)也返回 2,所以 fib(n-1)+fib(n-2)的值为 4。 37 【正确答案】 C 【试题解析】 字符串少一个结束标志,所以输出的结果不确定。 38 【正确答案】 A 【试题解析】 函数中变量的存储类别包括 auto, static, extern,其中 auto为隐含存储类别, static为静态存储类别, register是寄存器存储类别。 39 【正确答案】 B

27、【试题解析】 在 C语言中,宏定义在编译时将被直接替换,所以 NUM最后会被替换成 2*N+1+1,即 2*2+1+1,值为 6。因此, for循环执行的次数为 6。 40 【正确答案】 A 【试题解析】 用 small模式编译,指针变量占 2个字节。 sizeof(array):数 组名array代表数组本身, sizeof函数测出的是整个数组的大小。 a数组的大小为 4, b指针变量的大小为 2。 41 【正确答案】 B 【试题解析】 p本身就是一个字符型指针变量,返回 p也就是返回变量 p中存放的地址值。 42 【正确答案】 B 【试题解析】 在 C语言中,宏定义是直接替换的,所以在 c

28、+a b?a:b这个条件表达式中, c+a b为真,所以用 a的值作为整个表达式的值,而 a的值为 5,所以整个表达式的值为 5。 43 【正确答案】 D 【试题解析】 a语句是记录能够符合题意的各个整数的各数。 64 【正确答案】 c1!= &c2= 65 【正确答案】 2 4 6 8 66 【正确答案】 p=(double *)malloc(sizeof(double) 【试题解析】 本题重点考查对申请动态存储单元函数 malloc的调用, malloc函数的形参为申请动态存储单元的大小,调用此函数时需 要进行强制类型转换,所以本题需要将返回类型强制为 double型指针。 67 【正确答案】 6 68 【正确答案】 ai aj 【试题解析】 本题中的嵌套的循环结构用在了数组元素的排序上。本题需要注意的一点是:由于题目只要求将下标值为偶数的元素从小到大排序,所以内外层 for循环的条件变量变更条件都是 +=2。最后通过条件 ai aj对元素大小进行判断并交换。 69 【正确答案】 i n ai 【试题解析】 该程序直接使用形参 max和 d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即 *号运算。

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

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

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