【计算机类职业资格】二级C语言笔试314及答案解析.doc
《【计算机类职业资格】二级C语言笔试314及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试314及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试 314及答案解析(总分:66.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:40.00)1.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是(分数:1.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元2.线性表的顺序存储结构和线性表的链式存储结构分别是(分数:1.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任
2、意存取的存储结构3.若变量已正确定义并赋值,以下符合 C语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b4.软件是指(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合5.下列程序是用来判断数组中特定元素的位置所在的。 #includeconic.h #includestdio.h int fun(int *s,int t,int *k) int i; *k=0; for(i=0;it;i+) if(s*ksi)*k=i; returns*k; main() int a10=876,67
3、5,896,101,301,401,980,431,451,777,k; fun(a,10, printf(“%d/n“,m); 程序的运行结果是(分数:1.00)A.0B.1C.2D.314.在 16位 IBM-PC机上使用 C语言,若有如下定义 struct data int i; char ch; double f; b; 则结构变量 b占用内存的字节数是(分数:1.00)A.1B.2C.7D.1115.下列程序的运行结果为 #includestdioh void abc(char * str) int a,b; for(a=b=0;stra!=/0;a+) if(stra!=c) st
4、rb+=stra; strb=/0; void main() char str=“abcdef“; abc(str); printf(“str=%s“,str);(分数:1.00)A.str=abdefB.str=abcdefC.str=aD.str=ab16.有以下程序 #include stdioh main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+) csi+; for(i=l;i5;i+) printf(“%d“,ci); printf(“/n“); 程序的运行结果是(分数:1.00)A.1 2 3 4B.2 3
5、44C.4 3 3 2D.1 1 2 317.下面程序的输出结果是 #includestdio.h main() int a=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%d/n“,*p+9);(分数:1.00)A.0B.1C.10D.918.下列叙述中正确的是(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对19.下面说明不正确的是(分数:1.00)A.char a10=“china“;B.char a10,*p=a;p=“china“C.char*a
6、;a=“china“;D.char a10,*P;p=a=“china“20.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项D.数据结构21.若程序执行时的输入数据是“2473”,则下述程序的输出结果是 #includestdio.h void main() int cs; while(cs=getchar()!=;/n) switch(cs-2) case 0 case 1:putchar(cs+4); case 2:putchar(cs+4); break; case 3:putchar(cs+3);default:putchar(cs+2),(分数:1.00)A.6
7、68977B.668966C.6677877D.668876622.下面程序的输出结果是 #includestdioh #includestringh main() char*p1=“abc“,*p2=“ABC“,str50=“xyz“; strcpy(str+2,streat(p1,p2); printf(“%s/n“,str);(分数:1.00)A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC23.以下不属于对象的基本特点的是(分数:1.00)A.分类性B.多态性C.继承性D.封装性24.阅读下列程序,则运行结果为 #include “stdio.h“ fu
8、n() staic int x=5; x+; return x; main() int i,x; for(i=0;i3;i+) x=fun(); printf(“%d/n“,x);(分数:1.00)A.5B.6C.7D.825.有以下程序 #include stdioh main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1dat“,“w“); for(i=0;i3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“,
9、 printf(“%d/n“,m); 程序的运行结果是(分数:1.00)A.0B.1 C.2D.3解析:解析 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为“ji”,而 j的初值为 3,故当 i的值为 1和 2时,内层循环体都不会被执行。只有当 i和 j都等于3时才会执行一次。m 的值为 55对 3取模,计算结果为 1。14.在 16位 IBM-PC机上使用 C语言,若有如下定义 struct data int i; char ch; double f; b; 则结构变量 b占用内存的字节数是(分数:1.00)A.1B.2C.7D.11 解析:解析 结构体变量所占用内存
10、的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2字节,字符型变量 ch所占用的内存是 1字节,双精度型变量 f所占用的内存是 8字节,三者相加即可。15.下列程序的运行结果为 #includestdioh void abc(char * str) int a,b; for(a=b=0;stra!=/0;a+) if(stra!=c) strb+=stra; strb=/0; void main() char str=“abcdef“; abc(str); printf(“str=%s“,str);(分数:1.00)A.str=abdef B.str=abcdefC
11、.str=aD.str=ab解析:解析 本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数 abc()的 for语句执行过程是:从字符指针 str所指向的字符数组的第一个元素开始,逐一判断字符是否为“c”,若不是就执行一次数组元素的赋值过程,若字符为“c”就不执行。16.有以下程序 #include stdioh main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+) csi+; for(i=l;i5;i+) printf(“%d“,ci); printf(“/n“); 程序的运行结果是(分数:1.00)A.1 2
12、 3 4B.2 3 44C.4 3 3 2 D.1 1 2 3解析:解析 在 for(i0;i12;i+)csi+中,数组元素 si的值作为数组 c的下标,当退出循环时,数组 c的 4个元素的值分别为 4、3、3、2。17.下面程序的输出结果是 #includestdio.h main() int a=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%d/n“,*p+9);(分数:1.00)A.0B.1C.10 D.9解析:解析 此题考查了指针引用一维数组元素的方法。*p+9 因为运算符“*”的优先级高于“+”,所以输出结果为 p指向的元素 1,然后加 9,值为 10
13、。18.下列叙述中正确的是(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 程序执行的效率与很多因素有关,如数据的存储结构、程序所处理的数据量、程序所采用的算法等。顺序存储结构在数据插入和删除操作上的效率比链式存储结构的效率低。19.下面说明不正确的是(分数:1.00)A.char a10=“china“;B.char a10,*p=a;p=“china“C.char*a;a=“china“;D.char a10,*P;p=a=“china“ 解析:解析 C 语言中操作
14、一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。 本题 D) 项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。20.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。21.若程序执行时的输入数据是“2473”,则下述程序的
15、输出结果是 #includestdio.h void main() int cs; while(cs=getchar()!=;/n) switch(cs-2) case 0 case 1:putchar(cs+4); case 2:putchar(cs+4); break; case 3:putchar(cs+3);default:putchar(cs+2),(分数:1.00)A.668977 B.668966C.6677877D.6688766解析:解析 本题主要考查 switch语句的使用方法。switch 语句的执行过程为:进入 switch结构后,对条件表达式进行运算,然后从上至下去找
16、与条件表达式值相匹配的 case,以此作为入口,执行 switch结构中后面的各语句,直到遇到 break语句,则跳出 switch语句,如果各 case都不匹配时,则执行default后面的语句。22.下面程序的输出结果是 #includestdioh #includestringh main() char*p1=“abc“,*p2=“ABC“,str50=“xyz“; strcpy(str+2,streat(p1,p2); printf(“%s/n“,str);(分数:1.00)A.xyzabcABCB.zabcABCC.xyabcABC D.yzabcABC解析:解析 本题考查的重点是拷
17、贝字符串使用 strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。 使用该函数时注意:字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志“/0”一起复制;不能用赋值运算符“”将一个字符串直接赋值给一个字符数组,只能用 strcpy()函数处理。 另外,本题还考查连接字符串的 strcat()函数,其调用方式是:strcat(字符数组,字符串)。 功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中
18、。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。 使用该函数时注意:由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;连接前两个字符串都有结束标志“/0”,连接后“字符数组”中存储的字符串的结束标志“/0”被舍弃,只在目标串的最后保留一个“/0”。23.以下不属于对象的基本特点的是(分数:1.00)A.分类性B.多态性C.继承性 D.封装性解析:解析 对象的基本特点:标志唯一性、分类性、多态性、封装性和模块独立性。24.阅读下列程序,则运行结果为 #include “stdio.h“
19、 fun() staic int x=5; x+; return x; main() int i,x; for(i=0;i3;i+) x=fun(); printf(“%d/n“,x);(分数:1.00)A.5B.6C.7D.8 解析:解析 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数 fun(),三次对静态变量 x进行操作,x 的值应依次为 6,7,8。25.有以下程序 #include stdioh
20、 main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1dat“,“w“); for(i=0;i3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“,&n); fclose(fp); printf(“%d/n“,n); 程序的运行结果是(分数:1.00)A.12300B.123 C.1D.321解析:解析 在函数中首先把整型数组 a10中的每个元素写入文件 d1.dat中,然后再次打开这个文件,把文件 d1 dat
21、中的内容读入到整型变量 n中,最后输出变量 n的值。26.现有如下程序段 #include “stdio.h“ main() int k30=12,324,45,6,768,98,21,34,453,456; int count=0,i=0; while(Li) if(ki%2=0|ki%5=0)count+; i+; printf(“%d,%d/n“,count,i); 则程序段的输出结果为(分数:1.00)A.7,8B.8,8C.7,10D.8,10 解析:解析 在 C语言中,定义一维数组的语句一般形式如下: 类型名 数组名常量表达式; 一维数组的引用形式为:数组名下标表达式。count
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 314 答案 解析 DOC
