[计算机类试卷]国家二级(C语言)笔试模拟试卷172及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷172及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷172及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 172及答案与解析 1 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 2 软件开发模型包括 瀑布模型 扇形模型 快速原型法模型 螺旋模型 ( A) 、 、 ( B) 、 、 ( C) 、 、 ( D) 、 、 3 软件开发的结构化生命周期方法将软件生命周期划分成 ( A)定义、开发、运行维护 ( B)设计阶段、编程阶段、测试阶段 ( C)总体设计、详细设计、编程调试 ( D)需求分析、功能定义、系统设计 4 单个用户使用的数据视图的描述称为 (
2、 A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 5 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及 ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 6 没有关系 R和 S,关系代数表达式为 R-(R-S)表示的是 ( A) RDS ( B) R-S ( C) RUS ( D) RS 7 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 8 对长度为
3、n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( A) 10g2n ( B) n/2 ( C) n ( D) n+1 9 数据库技术的根本目标是要解决数据的 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 10 若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 ( A) bdgcefha ( B) gdbecfha ( C) bdgaechf ( D) gdbehfca 11 下列叙述中错误的是 ( A)一个 C语言程序只能实现一种算法 ( B) C程序可以由多个程序文件组成 ( C) C程序
4、可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 12 下面四个选项中,均是不正确的八进制数或十六进制数的选项是 ( A) 016 0x8f 018 ( B) 0abc 017 0xa ( C) 010 -0x11 0x16 ( D) 0a12 7ff -123 13 以下叙述不正确的是 ( A)一个 C源程序可由一个或多个函数组成 ( B)一个 C源程序必须包含一个 main函数 ( C) C程序的基本组成单位是函数 ( D)在 C程序中,注释说明只能位于一条语句的后面 14 现有格式化输入语句, ( A) int ( B) float ( C) double
5、( D)不确定 15 已知各变量的类型说明如下: int k, a, b; unsigned long w=5; double x=1.42; 则以下不符合 C语言语法的表达式是 ( A) x%(-3) ( B) Wd+=-2 ( C) k=(a=2, b=3, a+ ( D) a+=9-=(b=4)*(a=3) 16 有以下程序 fun(int x) int p; if(x=0x=1) return(3); p=x-fun(x-2); return p; main() printf(“%dn“, fun(7); 执行后的输出结果是 ( A) 7 ( B) 3 ( C) 2 ( D) 0 17
6、 下列程序段中,不能正确赋值的是 ( A) char*p, ch; p=&ch; scanf(“%c, &p“) ( B) char*p; p=(char*)malloc(1); scanf(“%c“, p); ( C) char*p; *p=getchar(); ( D) char*p, ch; p=缸 h; *p=getchar(); 18 在 16位编译系统上,若有定义 int a=10,20, 30, *p=&a;,当执行 p+;后,下列说法错误的是 ( A) p向高地址移了一个字节 ( B) p向高地址移了一个存储单元 ( C) p向高地址移了两个字节 ( D) p与 a+1等价 1
7、9 若运行以下程序时,从键盘输入 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; ( 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 20
8、 设 x, y和 z都是血型变量,且 x=3, y=4, z=5,则下面表达式中,值为 0的表达式是 ( A) x&y ( B) x =y ( C) x+y&y-z ( D) !(x y&!z1) 21 若有定义 int w35;,则以下不能正确表示该数组元素的表达式是 ( A) *(*w+3) ( B) *(*w+1)4 ( C) *(*(*w+1) ( D) *(&w00+1) 22 设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是 ( A) while循环执行 10次 ( B)循环是无限循环 ( C)循环体语句一次也不执行 ( D)循环体语句执行一次
9、 23 若有以下函数首部 int fun(double x10, int *n) 则下面针对此函数的函数声明语句中正确的是 ( A) int fun(double x, int *n); ( B) int fun(double , int); ( C) int fun(double *x, int n); ( D) int fun(double *, int *); 24 函数的值通过 rerurn语句返回,下面关于 return语句的形式描述错误的是 ( A) return表达式; ( B) return(表达式 ); ( C)一个 return语句可以返回多个函数值 ( D)一个 retu
10、rn语句只能返回一个函数值 25 有以下程序 main() int i; for(i=1; i =40; i+) if(i+%5=0) if(+i%8=0) pfintf(“%d“, i); printf(“n“); 执行后的输出结果是 ( A) 5 ( B) 24 ( C) 32 ( D) 40 26 下列函数的运行结果是 main() int i=2, p; int j, k; j=i; k=+i;p=f(j, k); printf(“%d“, p); intf(int a, int B) int c; if(a b)c=1; else if(a=b)c=0; else c=-1; ret
11、urn(c); ( A) -1 ( B) 1 ( C) 2 ( D)编译出错,无法运行 27 对下述程序的判断中,正确的是 #include stdio.h void main() char*p, s128; p=S; while(strcmp(s, “End“) printf(“Input a string: “);gets(s); while(*p) putchar(*p+); ( A)此程序循环接收字符串并输出,直到接收字符串 “End“为止 ( B)此程序循环接收字符串,接收到字符串 “End“则输出,否则程序终止 ( C)此程序循环接收字符串并输出,直到接收字符串 “End“为止,但
12、因为代码有错误,程序不能正常工作 ( D)此程序循环接收字符串并将其连接在一起,直到接收字符串 “End“为止,输出连接在一起的字符串 28 下列关于字符串的说法中错误的是 ( A)在 C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符 0作为字符串结束标志 ( B) 0作为标志占用存储空间,计入串的实际长度 ( C)在表示字符串常量的时候不需要人为在其末尾加入 0 ( D)在 C语言中,字符串常量隐含处理成以 0结尾 29 阅读下面程序,则执行后的结果是 #include“stdio.h“ main() char str=“tomeetme“, *p; for(p=str; p s
13、tr+7; p+=2)putchar(*p); printf(“n“); ( A) tomeetme ( B) tmem ( C) oete ( D) tome 30 若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是 ( A) #define N 10 int aN; ( B) #define n 5 int a2*n; ( C) int a5+5; ( D) int n=10, an; 31 对以下说明语句的正确理解是 int a10=6, 7, 8, 9, 10; ( A)将 5个初值依次赋给 a1至 a5 ( B)将 5个初值依次赋给 a0至 a4 ( C)将
14、 5个初值依次赋给 a6至 a10 ( D)因为数组长度与初值的个数不相同,所以此语句不正确 32 有以下程序 main() int x, y, z; x=y=1; z=X+, y+, +y; printf(“%d, %d, %dn“, x, y, z); 程序运行后的输出结果是 ( A) 2, 3, 3 ( B) 2, 3, 2 ( C) 2, 3, 1 ( D) 2, 2, 1 33 以下程序有错,错误原因是 main() int *p, i; char*q, ch; p=&i; q=&ch; *p=40; *p=*q; ( A) p和 q的类型不一致,不能执行 *p=*q;语句 ( B)
15、 *p中存放的是地址值,因此不能执行 *p=40;语句 ( C) q没有指向具体的存储单元, 所以 *q没有实际意义 ( D) q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行 *p=*q;没有意义,可能会影响后面语句的执行结果 34 设 p1和 p2是指向一个血型一维数组的指针变量, k为 int型变量,则不能正确执行的语句是 ( A) k=*p1+*p2 ( B) p2=k; ( C) p1=p2; ( D) k=*p1*(*p2); 35 下列程序的输出结果是 #include“stdio.h“ #define N3 #define M3 void fun(int aMN)
16、printf(“%dn“, *(a1+2); main() int aMN; int i,j; for(i=0; i M; i+) for(j=0; j N; j+) aij=i+j-(i-j); fun(a); ( A) 3 ( B) 4 ( C) 5 ( D) 6 36 有以下程序 int add(int a, int b)return(a+b); main() int k, (*f)(), a=5,b=10; f=add; 则以下函数调用语句错误的是 ( A) k=(*f)(a, b); ( B) k=add(a, b); ( C) k=*f(a, b); ( D) k=f(a, b);
17、 37 设有如下定义: struct Sk int n; float x; data, *p; 若要使 p指向data中的 n域,正确的赋值语句是 ( A) p=&data.n; ( B) *p=data.n; ( C) p=(struct sk*)&data.n; ( D) p=(struct sk*)data.n; 38 设有以下说明语句 struct ex int x; float y; char z; example; 则下面的叙述中不正确的是 ( A) struct结构体类型的关键字 ( B) example是结构体类型名 ( C) x, y, z都是结构体成员名 ( D) stru
18、ct ex是结构体类型名 39 阅读以下程序及对程序功能的描述,其中正 确的是 #include stdio.h main() FILE*in, *out; charch, infile10, outfile10; printf(“Enter the infile name: n“); scanf(“%s“, infile); printf(“Enter the outfile name: n“); scanf(“%s“,outfile); if(in=foen(infile ( A)程序完成将磁盘文件的信息在屏幕 上显示的功能 ( B)程序完成将两个磁盘文件合二为一的功能 ( C)程序完成将
19、一个磁盘文件复制到另一个磁盘文件中 ( D)程序完成将两个磁盘文件合并并在屏幕上输出 39 执行以下程序后的输出结果是 _。 main() inta=10; a=(3*5, a+4); printf(“a=%dn“, a); 39 以下程序的输出结果是 _。 #include string.h main() printf(“%dn“, strlen(“IBMn0121“); 39 已定义 char ch=$; int i=1, j;,执行 j!=ch&i+以后, i的值为 _。 39 以下程序的运行结果是 _。 #include stdio.h long fib(int g) switch(g
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 172 答案 解析 DOC
