【计算机类职业资格】二级C语言笔试-148及答案解析.doc
《【计算机类职业资格】二级C语言笔试-148及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-148及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-148 及答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序#include stdiohmain0int y=9;for( ;y0;y-)if(y%3=0) printf(“%d“,-y);程序的运行结果是(分数:1.00)A.741B.963C.852D.8754212.下面程序的输出结果是#includestdio.hmain()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.93.下列叙述中正确的是(分数:1.
2、00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对4.有以下程序#include stdiohmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是(分数:1.00)A.0B.1C.2D.35.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义struct dataint i;char ch;double f;b;则结构变量 b 占用内存的字节数是(分数:1.00)A.1B.2C.
3、7D.116.假定当前盘符下有两个如下文本文件:文件名 a1.txt a2.txt内容 123# 321#则下面程序段执行后的结果为#include “stdio.h“void fc(FILE *p)char c;while(c=fgetc(p)!=#)putchar(c);main()FILE *fp;fp=fopen(“a1.txt“,“r“);fc(fp);fclose(fp);fp=fopen(“a2.txt“,“r“);fc(fp);fclose(fp);putchar(/n);(分数:1.00)A.123321B.123C.321D.以上答案都不正确7.以下选项中不属于字符常量的是
4、(分数:1.00)A.CB.“C“C./xCCD./0728.下列叙述中,不符合良好程序设计风格要求的是(分数:1.00)A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息9.设有定义:char p=1,2,3,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是(分数:1.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p0)10.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是(分数:1.00)A.均占 4 个字节B.根据数据的大小来决定所占内存的
5、字节数C.由用户自己定义D.由 C 语言编译系统决定11.下列程序的运行结果为#includestdiohvoid 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=abdefB.str=abcdefC.str=aD.str=ab12.有以下程序#include stdiohmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,
6、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 44C.4 3 3 2D.1 1 2 313.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b14.有以下程序#include stdiohmain()FILE *fp; int a10=1,2,3,i,n;fp=fopen(“d1dat“,“w“);for(i=0;i3;i+) fp
7、rintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,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。5.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义stru
8、ct dataint i;char ch;double f;b;则结构变量 b 占用内存的字节数是(分数:1.00)A.1B.2C.7D.11 解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2 字节,字符型变量 ch 所占用的内存是 1 字节,双精度型变量 f 所占用的内存是 8 字节,三者相加即可。6.假定当前盘符下有两个如下文本文件:文件名 a1.txt a2.txt内容 123# 321#则下面程序段执行后的结果为#include “stdio.h“void fc(FILE *p)char c;while(c=fgetc(p)
9、!=#)putchar(c);main()FILE *fp;fp=fopen(“a1.txt“,“r“);fc(fp);fclose(fp);fp=fopen(“a2.txt“,“r“);fc(fp);fclose(fp);putchar(/n);(分数:1.00)A.123321 B.123C.321D.以上答案都不正确解析:解析 本题的功能是顺序的读两个文本文件;依次输出。当打开文件时出现错误,fopen 函数将返回 NULL。7.以下选项中不属于字符常量的是(分数:1.00)A.CB.“C“ C./xCCD./072解析:解析 在 C 语言程序中,用单引号把一个字符或反斜线后跟一个特定的
10、字符括起来表示一个字符常量。选项 A) 、C) 和 D) 为正确的字符常量,而选项 B) 是用双引号括起来的字符,表示一个字符串常量。8.下列叙述中,不符合良好程序设计风格要求的是(分数:1.00)A.程序的效率第一,清晰第二 B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息解析:解析 当今主导的程序设计风格是“清晰第一,效率第二”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而在实际应用中,人们更注重程序的可理解性。9.设有定义:char p=1,2,3,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是(分数:1.00)A.size
11、of(p) B.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 在本题中,p 和 q 同为指向字符类型数据的指针。*q 和 p0同为字符型数据。选项 B) 、C) 和 D) 都符合题目的要求;选项 A) 计算得出的是指针类型数据所占的内存字节数。10.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是(分数:1.00)A.均占 4 个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定 解析:解析 在 ANSI 标准中,long、int 和 short 分别占用 4、2 和 2 个字节。但实
12、际上对于某些 C 编译系统,int 和 short 都占用 4 个字节,所以说各种类型数据占用内存大小是由选择何种 C 编译系统决定的。11.下列程序的运行结果为#includestdiohvoid 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.str=aD.str=ab解析:解析 本题考查了用字符指针引用
13、字符数组中的字符及对字符的操作。函数 abc()的 for 语句执行过程是:从字符指针 str 所指向的字符数组的第一个元素开始,逐一判断字符是否为“c”,若不是就执行一次数组元素的赋值过程,若字符为“c”就不执行。12.有以下程序#include stdiohmain()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 44C.4 3 3 2 D.1 1 2 3解析:解析
14、在 for(i0;i12;i+)csi+中,数组元素 si的值作为数组 c 的下标,当退出循环时,数组 c 的 4 个元素的值分别为 4、3、3、2。13.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2 C.int 18.5%3D.a=a+7=c+b解析:解析 选项 A) 中包含一个不合法的运算符“:”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式:a+7c+b 和 aa+7,其中第一个是错的,因为 C 语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项 B) ,它实际上相当于
15、 a(bc+2),进而可分解为两个表达式:bc+2 和 ab。14.有以下程序#include stdiohmain()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解析:解析 在函数中首先把整型数组 a
16、10中的每个元素写入文件 d1.dat 中,然后再次打开这个文件,把文件 d1 dat 中的内容读入到整型变量 n 中,最后输出变量 n 的值。15.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。16.在深度为 5 的满二叉树中,叶子结点的个数为(分数:1.00)A.32B.31C.16 D.15解析:解析 满二叉树是指除最后一层外,每一层上的所有结点都有两个叶子结点。在满二叉树中,层上的结点数都达到
17、最大值,即在满二叉树的第 k 层上有 2k-1个结点且深度为 m 的满二叉树有 2m-1 个结点。17.下面说明不正确的是(分数: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 语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本题 D) 项中错误的关键是对数组初始化时,可以在变量定义时整
18、体赋初值,但不能在赋值语句中整体赋值。18.可在 C 程序中用作用户标识符的一组标识符是(分数:1.00)A.and2007 B.Datey-m-dC.HiDr.TomD.caseBigl解析:解析 在 C 语言中,合法标识符的命名规则是:标识符可以由字母、数字和下画线 3 种字符组成,且第一个字符必须为字母或下画线。C 语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B) 和 C) 中的横线以及点都不合法,选项 D) 中的 case 为 C 语言关键字。19.若程序执行时的输入数据是“2473”,则下述程序的输出结果是#includestdio.hvoid main()int cs
19、;while(cs=getchar()!=;/n)switch(cs-2)case 0case 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 结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的 case,以此作为入口,执行 switch结构中后面的各语句,直到
20、遇到 break 语句,则跳出 switch 语句,如果各 case 都不匹配时,则执行default 后面的语句。20.有如下程序int a10=1,2,3,4,5,6,7,8,9,10;int *p=&a3,b;b=p5;则 b 的值是(分数:1.00)A.5B.6C.9 D.8解析:解析 p&a3将指针指向数组 a 的第 4 个元素,p5指向数组 a 的第 9 个元素,而 a89,所以 b9。21.一个关系中属性个数为 1 时,称此关系为(分数:1.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:解析 在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属
21、性,一个具有 N 个属性的关系称为 N 元关系。22.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:1.00)A.getc()B.gets() C.getehar()D.scanf()解析:解析 scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。23.以下不属于对象的基本特点的是(分数:1.00)A.分类性B.多态性C.继承性 D.封装性解析:解析 对象的基本特点:标志唯一性、分类性、多态性、封装性和模块独立性。24.软件是指(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合 解析:解析
22、 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。25.以下程序的输出结果是int f()static int i=0;int s=1s+=i;i+;return s;main()int i,a=0;for(i=0;i5;i+)a+=f();printf(“%d/n“,(分数:1.00)A.;A) 20B) 24C) 25D)解析:解析 函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值;以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。26.当用户要求输入的字符串中含有空格时,应使用的输入函数是
23、(分数:1.00)A.scanf()B.getchar()C.gets() D.Setc()解析:解析 本题综合考查了输入函数的使用。scanf 函数会将空格视为分隔符,getchar 函数只能输入单个字符, getc 函数是文件操作函数,显然都不符合题意。通过 gets 函数输入字符串时,输入的空格被认为是字符串的一个字符。27.线性表的顺序存储结构和线性表的链式存储结构分别是(分数:1.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构解析:解析 顺序存储结构中,数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 148 答案 解析 DOC
