【计算机类职业资格】二级C语言笔试-100及答案解析.doc
《【计算机类职业资格】二级C语言笔试-100及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-100及答案解析.doc(36页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-100 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.有以下程序#define N 20fun(int a,int n,:Int m)int i,i;for(i=m; in; i-) ai+1);ai;main()int i,aN=1,2,3,4,5,6,7,8,9,10;fuu(a,2,9);for(i=0; i5; i+) printf(“%d“,ai);程序运行后的输出结果是(分数:1.00)_2.下列对于线性链表的描述中正确的是(分数:1.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不
2、一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的3.以下叙述中错误的是(分数:1.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用 fclose 函数关闭已打开的文件C.在利用 fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针4.有以下程序:void fun(char* a,char* B) ;a=b;(*(分数:1.00)A.+;main()char c1=A,c2=a,*p
3、1,*p2;p1=printf(“/“%s/“/n“,cf1);(分数:1.00)A.“AAAA“B.“BBB“C.“BBBCC“D.“CC“7.下列关于单日运算符+、-的叙述中正确的是(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量D.它们的运算对象可以足 char 型变量、int 型变量和 float 型变量8.以下选项中合法的实型常数是(分数:1.00)A.5E2.0B.E-3C2E0D.1.3E9
4、.设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是(分数:1.00)A.k=k=kB.-k+C.k%int(f)D.k=f=m10.设有定义:inca,*pa;p+)if(_)s=p;return(*S);main()int x5=12,21,13,6,18);printf(“%d/n“,findmax(x5);在下划线处应填入的是(分数:1.00)A.psB.*p*sC.apasD.p-ap-s12.算法的空间复杂度是指(分数:1.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间13.有以下程序:V
5、oid f(int a,iht i,int j)int t;if(ij)t=ai; ai=aj; aj=t;f(a,i+1,i-1);main()int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(“%d“ ,aai);printf(“/n“);执行后输出结果是(分数:1.00)A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,14.以下 4 个选项中,不能看作一条语句的是(分数:1.00)A.;B.a=0,b=0,c=0;C.if(a0);D.if(b=0)m=1;n=2;15.若有以下说明和语
6、句int c4 5,(*p)5;p=c;能够正确引用 c 数组元素的是(分数:1.00)A.p+1B.*(p+3)C.*(p+1)+3D.*(P0+2)16.源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符、注释和(分数:1.00)A.程序的视觉组织B.尽量不用或少用 GOTO 语句C.检查输入数据的有效性D.设计良好的输出报表17.有以下程序main()int a3=(1,2,3,4,5,0,(*p(分数:1.00)A.3,i;18.若要打开 A 盘上 user 了目录下名为 abc.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是(分数
7、:1.00)A.fopen(“A:/user/abc.txt“,“,“r“)B.fopen(“A:/user/abc.txt“,“r+“)C.fopen(“A:/user/abc.txt“,“rb“)D.fopen(“A:/user/abc.txt“,“w“)19.有以下程序main()int a32=0,(*ptr)2,i,i;for(i=0; i2; i+)ptr=a+i; scanf(“%d“,ptr); ptr+; for(i=0;i3;i+)foil(j=0;j2;j+) printf(“%2d“,aij);printf(“/n“);若运行时输入:1 2 3回车,则输出结果为(分数:
8、1.00)_20.算法具有五个特性,以下选项中不属于算法特性的是(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性21.有以下程序point(char *p) p+=3; main()char b4=ab,c,d, *p=b;point(p);printf(“%c/n“,*p);程序运行后的输出结果是(分数:1.00)A.aB.bC.cD.d22.有以下程序vold soru(int a, int n)int i,i,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=ai;aj=t;main()int aa10=1,2,3,4,5,6,
9、7,8,9,10),i;sore(aa+2, 5);for(i=0;i10;i+) printf(“%d,“,aai);printf(“/n“);程序运行后的输出结果是(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10,23.以下选项中非法的表达式是(分数:1.00)A.0=x100B.i=i=0C.(char)(65+3)D.x+1=x+124.下面不属于软件设计原则的是(分数:1.00)A.抽象B.模块化C.自底向上D.信息隐藏25.有以下程
10、序:main()int a33,*p,i;p=fun(p);int fun(int *p)ints; p=B.B ) main()int *p;fun(int fun(int *p)int s; *p=)C.#includemain()int *p;fun(int fun(int *p)*p=(int*)malloc(2);D.#includemain()iht *p;fun(p);iht fun(iht *p)p=(int*)malloc(sizeof(int);30.以下符合 C 语言语法的实犁常量是(分数:1.00)A.1.2E0.5B.3.14159EC.5E-3D.E1531.以下叙
11、述中正确的是(分数:1.00)_32.以下叙述中错误的是(分数:1.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句33.数据的存储结构是指(分数:1.00)A.数据所占的存储空间量B.数据的逻辑结构在汁算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据34.有以下程序段:main)int a=5,*b,*C;c=d=fla,B) ; d=f1(d,C) :e=f2a,B) ; e=f2(e.C) ;f=a+b+c-d-e;printf(“%d,%d,%d/n“,d,f,e);执行
12、后输出的结果是(分数:1.00)A.3,4,5B.13,4C.5,4,3D.3,5,439.若有定义:inl a=8,b=5,c;,执行语句 c=a/b+0.4;后,c 的值为(分数:1.00)A.1.4B.1C.2.0D.240.有以下程序段:int a10=1,2,3,4,5,6,7,8,9,10,*p=main()char c1=A,c2=a,*p1,*p2;p1=printf(“/“%s/“/n“,cf1);(分数:1.00)A.“AAAA“B.“BBB“ C.“BBBCC“D.“CC“解析:解析 ;维字符数组可以看成由若干个一维字符数组组成,每行是一个一维字符数组。本题首先定义了一个
13、数组 ch35并给它们按行赋初值,即相当于给 ch0赋值“AAAA”,给 ch1赋值“BBB”,给 ch2赋值“BBB”,最后输出转义字符“/”、ch1和转义字符“/”,因此输出为“BBB”所以,4 个选项中 B 为所选。7.下列关于单日运算符+、-的叙述中正确的是(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量D.它们的运算对象可以足 char 型变量、int 型变量和 float 型变量 解析:解析
14、本题考核的知识点是 c 语言中的+和-运算符,这两种运算符是单目运算符,其运算对象可以是整型、字符型、float 型和 double 型等基本数据类型。所以,D 选项为所选。8.以下选项中合法的实型常数是(分数:1.00)A.5E2.0B.E-3C2E0 D.1.3E解析:解析 在 C 语言中,实数有两种表示形式:十进制数形式与指数形式。一般形式的实数:小数形式的实数由整数部分、小数点和小数部分组成(必须要有小数点),指数形式的小数;指数形式的实数由尾数部分、 e(E)和指数部分组成(字母 e 或 E 的前后必须要有数字,且其后面的指数必须为整数)。选项 A 中,5E2.0 中 E 后面的 2
15、.0 不是整数;选项 B 中,E 前面没有数字:选项 D 中,E 后面没有数字。最终可以判断选项 C 正确。9.设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是(分数:1.00)A.k=k=kB.-k+C.k%int(f) D.k=f=m解析:解析 本题考查的是强制类型转换运算符。强制类型转换运算符的格式是:(类型名)变量名所以将浮点型变量 f 转换为整型应写作(int)f,故选项 C 是错误的。10.设有定义:inca,*pa;p+)if(_)s=p;return(*S);main()int x5=12,21,13,6,18);printf(“%d/n“,f
16、indmax(x5);在下划线处应填入的是(分数:1.00)A.psB.*p*s C.apasD.p-ap-s解析:解析 在 main()函数中定义了一个具有 5 个元素的 x 数组并赋初值,然后调用 findmax()函数求数组中元素的最大值。调用时把数组元素 x 的首地址,传给了形参指针变量 a,把 5 传给形参 n。在函数findmax()中定义了两种指针变量 p 和 s,其中 s 用来记录最大元素的地址,p 作为循环控制变量,表示每个元素的地址求最大值的算法是先将第一个元素(用 s 记下它的地址)做为最大值,然后用最大值(*s)与后面的每个元素比较(*p),若后面的元素大,则用 s 记
17、下它的地址,所以下划线应填“*s*s”。所以,4个选项中 B 为所选。12.算法的空间复杂度是指(分数:1.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。13.有以下程序:Void f(int a,iht i,int j)int t;if(ij)t=ai; ai=aj; aj=t;f(a,i+
18、1,i-1);main()int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(“%d“ ,aai);printf(“/n“);执行后输出结果是(分数:1.00)A.5,4,3,2,1, B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,解析:解析 在 C 语言中所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用由程序可以看出函数 f(a,i,j)为一递归函数,其功能是 i14.以下 4 个选项中,不能看作一条语句的是(分
19、数:1.00)A.;B.a=0,b=0,c=0;C.if(a0);D.if(b=0)m=1;n=2; 解析:解析 C 语言是一种表达式语言,所有的操作运算都通过表达式来实现,由表达式组成的语句称为表达式语句,它有一个表达式后接一个分号组成。本题中,选项 D 中 if(b=0) m=1;n=2;是两个表达式语句所以,4 个选项中选项 D 符合题意。15.若有以下说明和语句int c4 5,(*p)5;p=c;能够正确引用 c 数组元素的是(分数:1.00)A.p+1B.*(p+3)C.*(p+1)+3D.*(P0+2) 解析:解析 本题中定义了一个二维数组 c 和一个指针数组 p 并初始化让它指
20、向 c,显然此时 p 中的各元素为地址,选项 A 中 p+1,此时其中的 1 代表的长度是整个;维数组 c 的长度,故 p+1 将让 p 指向 c 数组后面的元素,故不能引用 c 数组中的成员,故选项 A 错误; 同理选项 B 和选项 C 都不正确,选项 D 中p0指的是指针数组中的第一个元素的地址即 c 的首地址,此时的 1 的长度代表的是数组 c 中一行的长度,故 p0+2 代表的是第三行的首地址,而*(p0+2)将代表第三行的第一个元素的地址,所以,4 个选项中选项 D 符合题意。16.源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符、注释和(分
21、数:1.00)A.程序的视觉组织 B.尽量不用或少用 GOTO 语句C.检查输入数据的有效性D.设计良好的输出报表解析:解析 源程序文档化主要包括三个方面的内容:标识符的命名、程序中添加注释以及程序的视觉组织。17.有以下程序main()int a3=(1,2,3,4,5,0,(*p(分数:1.00)A.3,i;解析:解析 本题定义了一个指向由 3 个元素组成的一维数组的指针变量 pa,通过赋值让它指向具有 2行 3 列的数组 a,此时用指针变量 pa,表示数组元素 aij的形式是 paij。for 循环执行了 3 次;第一次 i 值为 0,执行 pa10=pa10-1 执行后 a10的值变为
22、 3;第二次 i 值为 1,执行 pa11=pa11-1,执行后 a11的值为 4;第三次 i 值为 2,执行 pa12=1,执行后 a12的值变为1。故 printf 语句输入的值为 2+4+1=7。所以,A 选项为所选。18.若要打开 A 盘上 user 了目录下名为 abc.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是(分数:1.00)A.fopen(“A:/user/abc.txt“,“,“r“)B.fopen(“A:/user/abc.txt“,“r+“) C.fopen(“A:/user/abc.txt“,“rb“)D.fopen(“A:/user/abc.txt“
23、,“w“)解析:解析 由于“/”是转义字符,所以在文件名中的“”用“/”来表示,因此选项 A 和选项 C 不正确。要打开文本文件进行读写,应使用读写模式“r+”,因此选项 D 不正确。所以, 4 个选项中 B 为所选。19.有以下程序main()int a32=0,(*ptr)2,i,i;for(i=0; i2; i+)ptr=a+i; scanf(“%d“,ptr); ptr+; for(i=0;i3;i+)foil(j=0;j2;j+) printf(“%2d“,aij);printf(“/n“);若运行时输入:1 2 3回车,则输出结果为(分数:1.00)_解析:解析 本题主要考查的是
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 100 答案 解析 DOC
