【计算机类职业资格】二级C语言笔试-98及答案解析.doc
《【计算机类职业资格】二级C语言笔试-98及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-98及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-98 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下说明语句,则下列叙述中不正确的是struct exint x;float y;char z; example;(分数:2.00)A.struct 是结构体类型的关键字B.example 是结构体类型名C.x、y、z 都是结构体成员名D.struct ex 是结构体类型名2.执行以下程序后,a 和 b 的值分别为main( )int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1=&m:b=(*p1)/(*p2)+7;printf(“a=%d/n“
2、,(分数:2.00)A.;printf(“b=%d/n“,B.;A) -13.设有数组定义:char array=“China“;,则数组 array 所占的空间为(分数:2.00)_4.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义:struct dataint i;char ch;double r;b;则结构变量 b 占用内存的字节数是(分数:2.00)A.1B.2C.7D.115.以下程序运行后的输出结果是#includestdio.hint a=2,4,6,8;main( )int i;int *p=a;for(i=0;i4;i+)ai=*p;printf(“%d/n“,
3、a2);(分数:2.00)A.6B.8C.4D.26.sizeof(float)是(分数:2.00)A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式7.若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;,其中 0i9,则对 a 数组元素不正确的引用是(分数:2.00)A.ap-aB.*(&ai)C.piD.a108.下列叙述中不正确的是(分数:2.00)A.在不同函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效9.以下不正确的定
4、义语句是(分数:2.00)A.double x5=2.0,4.0,6.0,8.0,10.0;B.int y5=0,1,3,5,7,9;C.char c1=1,2,3,4,5;D.char c2=/x10,/xa,/x8;10.数据库技术的根本目标是要解决数据的(分数:2.00)A.存储问题B.共享问题C.安全问题D.保护问题11.下列选项中,不符合良好程序设计风格的是(分数:1.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto 语句D.模块没计要保证高耦合、高内聚12.以下程序的输出结果是void reverse(int a,int n)int i,t;for(i=0;
5、in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main( )int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(“%d/n“,s);(分数:1.00)_13.设有 int x=11;,则表达式(x+*1/3)的值是(分数:1.00)A.3B.4C.11D.1214.下列叙述中正确的是(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述 3 种说法都不对
6、15.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计16.设有如下 3 个关系表 R、S、T。下列操作中正确的是(分数:1.00)A.B.C.D.17.函数 rewind 的作用是(分数:1.00)A.使文件位置指针重新返回文件的开始位置B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置18.下列叙述中正确的是(分数:1.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main( )函数必须放在其他函数之前D.C 函数定义
7、的格式是 K&R 格式19.下面程序的输出结果是main( )int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(“%d/n“,*(p+2);(分数:1.00)A.3B.4C.1D.220.以下程序的输出结果是main ( )double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d/n“,d*y);(分数:1.00)A.1.0B.0.96C.0D.121.以下程序有错,错误原因是main( )int *p,i;char *q,ch;p=&i;q=&ch;*p=40;*p=*q;(分数:2.00)A.B.C.D.22.以
8、下程序运行后的输出结果是#includestdio.hunion pwint i;char ch2;a;main( )a.ch0=13;a.ch1=0;printf(“%d/n“,a.i);(分数:2.00)A.13B.14C.208D.20923.下列选项中,不属于软件生命周期开发阶段任务的是(分数:2.00)A.软件测试B.概要设计C.软件维护D.详细设计24.有如下程序,则 b 的值是int a10=1,2,3,4,5,6,7,8,9,10;int *p=&a3,b;b=p5;(分数:2.00)A.5B.6C.9D.825.设有定义:int n=0,*p=&n,*q=&p;,则下列选项中
9、正确的赋值语句是(分数:2.00)A.p=1;B.*q=2;C.q=p;D.*p=5;26.下面程序的运行结果是#includestdio.hmain( )int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b);(分数:2.00)A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=927.设有以下语句,则 z 的二进制值是char x=3,y=6,z;z=xy2:(分数:2.00)A.00010100B.00011011C.00011100D.0001100028.以下语句的输出结果是printf(“%d/n
10、“,strlen(“/t/“/065/xffn“);(分数:2.00)A.5B.14C.8D.输出项不合法,无正常输出29.下面程序的输出结果是int b=2;int func(int *(分数:2.00)A.b+=*a;return(B.;&n30.一个 C 语言程序是由(分数:2.00)A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成31.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为(分数:2.00)A.63B.64C.6D.732.C 语言允许函数类型缺省定义,此时函数值隐含的类型是(分数:2.00)A.floatB.intC.lon
11、gD.double33.若 x、i、j 和 k 都是 int 型变量,则计算表达式 x=(i=4,j=16,k=32)后,x 的值为(分数:2.00)A.4B.16C.32D.5234.下列叙述中错误的是(分数:2.00)A.在 C 程序中,逗号运算符的优先级最低B.在 C 程序中,APH 和 aph 是两个不同的变量C.若 a 和 b 类型相同,执行赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变D.从键盘输入数据时,对于整型变量只能输入整型数值,实型变量只能输入实型数值35.下列各数据类型中不属于构造类型的是(分数:2.00)A.枚举型B.共用型C.结构型D.数组型36
12、.以下程序运行后的输出结果是long fib(int n)if(n2)return(fib(n-1)+fib(n-2);else return(2);main( )printf(“%d/n“,fib(3);(分数:2.00)A.2B.4C.6D.837.请选出可用作 C 语言用户标识符的是(分数:2.00)A.void,define,WORDB.a3_b3,_123,IFC.FOR,-abc,CaseD.2a,Do,Sizeof38.对如图所示的二叉树进行中序遍历的结果是(分数:2.00)A.B.C.D.39.在数据库系统中,用户所见的数据模式为(分数:2.00)A.概念模式B.外模式C.内模
13、式D.物理模式40.从工程管理角度,软件设计一般分为两步完成,它们是(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据没计二、填空题(总题数:12,分数:30.00)41.对于如图所示的软件系统结构图,其宽度为_。(分数:2.00)填空项 1:_42. 1 的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_43.一个关系表的行称为 1。(分数:2.00)填空项 1:_44.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_45.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)
14、填空项 1:_下面程序的功能是将从终端读入的 20 个字符放入字符数组中,然后利用指针变量输出上述字符串。请填空。#includestdio.hmain( )int i;char s21,*p;for(i=0;i20;i+) si=getchar( );si= (6) ;p= (7) ;while(*p) putchar(*p+);(分数:4.00)填空项 1:_填空项 1:_下面程序的功能是将数组 a 的 4 个元素和数组 b 的 6 个元素写到名为 lett.dat 的二进制文件中。请填空。#includestdio.hmain( )FILE *fp;char a4=“1234“,b6=“
15、abcedf“;if(fp=fopen(“ (8) “,“wb“)=NULL)exit(0);fwrite(a,sizeof(char),4,fp);fwrite(b, (9) ,1,fp);felose(fp);(分数:4.00)填空项 1:_填空项 1:_以下函数的功能是把 b 字符串连接到 a 字符串的后面,并返回 a 中新字符串的长度。请填空。strcen(char a ,chat“b)int num=0,n=0;while( *(a+num)!= (10) )num+;while(bn)*(a+nunl)=bn;num+; (11) ;return(hum);(分数:4.00)填空项
16、 1:_填空项 1:_46.mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。int mystrlen (char *str)int i;for(i=0;_!=/0;i+);return(i);(分数:2.00)填空项 1:_47.以下程序的输出结果为_。#define JFT(x) x*xmain( )int a,k=3;a=+JFT(k+1);printf(“%d“,a);(分数:2.00)填空项 1:_48.以下定义的结构体类型拟包含两个成员,其中成员变量 info 用来存入整型数据,成员变量 link 是指向自身结构体的指针。请将定义补充完整。st
17、ruet nodeint info;_link;(分数:2.00)填空项 1:_49.设有以下结构体类型:Struct stchar name8;int num;float s4;student50;并且结构体数组 student 中的元素都已有值,若要将这些元素写到硬盘文件 fp 中。请将以下 fwrite 语句补充完整:fwrite(student,_,1,fp);(分数:2.00)填空项 1:_二级 C 语言笔试-98 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下说明语句,则下列叙述中不正确的是struct exint x;
18、float y;char z; example;(分数:2.00)A.struct 是结构体类型的关键字B.example 是结构体类型名 C.x、y、z 都是结构体成员名D.struct ex 是结构体类型名解析:解析 本题中,struet ex 是结构体类型名,example 是结构体变量名。2.执行以下程序后,a 和 b 的值分别为main( )int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1=&m:b=(*p1)/(*p2)+7;printf(“a=%d/n“,(分数:2.00)A.;printf(“b=%d/n“,B.;A) -1解析:解析 a=p1=&m;等价于
19、 a=(p1=&m);,即将判断 p1 是否等于地址 m 的逻辑值(0)赋给变量 a,在 b=(*p1)/(*p2)+7;语句中,(*p1)/(*p2)=0,因此将表达式的值 7 赋给变量 b。3.设有数组定义:char array=“China“;,则数组 array 所占的空间为(分数:2.00)_解析:解析 在定义字符数组时,可以用一个字符串作为初值,对数组进行初始化。要注意的是数组array 的长度不是 5,而是 6。因为系统将自动在字符串常量的后面加上一个/0,因此,上面的初始化与 char array=C,h,i,n,a,/04.在 16 位 IBM-PC 机上使用 C 语言,若有
20、如下定义:struct dataint i;char ch;double r;b;则结构变量 b 占用内存的字节数是(分数:2.00)A.1B.2C.7D.11 解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2 字节,字符型变量 ch 所占用的内存是 1 字节,双精度型变量 f 所占用的内存是 8 字节,三者相加为 11。5.以下程序运行后的输出结果是#includestdio.hint a=2,4,6,8;main( )int i;int *p=a;for(i=0;i4;i+)ai=*p;printf(“%d/n“,a2);(分数
21、:2.00)A.6B.8C.4D.2 解析:解析 在 C 语言中,数组元素的下标是从 0 开始的;指针变量 p 指向数组的首地址。在 for 循环语句中,指针变量 p 始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为 2。6.sizeof(float)是(分数:2.00)A.一个双精度型表达式B.一个整型表达式 C.一种函数调用D.一个不合法的表达式解析:解析 sizeof 是长度运算符,或称字节数运算符,用于计算数据类型和变量的长度。sizeof 运算符不能用于函数类型、不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合
22、类型、void 类型等。7.若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;,其中 0i9,则对 a 数组元素不正确的引用是(分数:2.00)A.ap-aB.*(&ai)C.piD.a10 解析:解析 通常,引用一个数组元素可以用下标法,如 ap-a和 pi形式;或指针法,如*(&ai)形式。在本题中,a0=0,a9=9,显然 a10超出了数组范围。8.下列叙述中不正确的是(分数:2.00)A.在不同函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效 解析:
23、解析 C 语言在函数中说明的变量为局部变量,只在函数内起作用不会影响到其他函数。在不同函数中使用相同的变量名不代表是同一变量,选项 A 正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,选项 B 正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,选项 C 正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以选项D 错误。9.以下不正确的定义语句是(分数:2.00)A.double x5=2.0,4.0,6.0,8.0,10.0;B.int y5=0,1,3,5,7,9; C.char c1=1,2,3,4,5;D.char c2=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 98 答案 解析 DOC
