【计算机类职业资格】二级C语言笔试-48及答案解析.doc
《【计算机类职业资格】二级C语言笔试-48及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-48及答案解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-48 及答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.以下函数调用语句中实参的个数是 ( )func(exp1,exp2),(exp3,exp4,exp5);(分数:1.00)A.1B.2C.4D.52.有以下程序#includ2stdio.h#includestring.hmain()char b18=“abcdefg“,b28,*pbb1+3,while(-pbb1)strcpy(b2,pB) ;printf(“%d/n“,strlen(b2);程序运行后的输出结果是 ( )(分数:1.00)A.8B.3C.1D.63
2、.有以下结构体说明和变量的定义,且如下图所示指针 p 指向变量 a,指针 q 指向变量 b。则不能把结点 b 连接到结点 a 之后的语句是 ( )struct nodechar data;struct noe *next;a,b, *p=(分数:1.00)A.B.C.D.4.若有说明:int * p,m51; n;,以下正确的程序段是 ( )(分数:1.00)A.p=scanf(“%d“,D.ppB.p(int*)calloc(2*sizeof(int);C.p=(int*)malloc(2* sizeof(int);D.p=2 *(int*)calloc(sizeof(int);6.下列定义
3、正确的是 ( )(分数:1.00)A.static int a1,2,3,4,5B.int b=2,5C.int a(10)D.int 4e47.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是 ( )(分数:1.00)A.路径的集合B.循环的集合C.目标的集合D.地址的集合8.下面的说法不正确的是 ( )(分数:1.00)A.函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换B.函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递C.对于函数中的实参和形参都要定义类型,二者的类型要
4、求一致,而宏不存在类型问题,宏名有类型D.调用函数只可得到一个返回值,而用宏可以设法得到几个结果9.若要打开 A 盘中 user 子目录下名为 aaatxt 的文本文件进行读、写操作,下面符合此要求的函数调用是 ( )(分数:1.00)A.fopen(“A:/user/aaatxt“,“r“)B.fopen(“A:/user/aaatxt“,“r+“)C.fopen(“A:/user/aaatxt“,“rb“)D.fopen(“A:/user/aaatxt“,“w“)10.下列程序的输出结果是 ( )main()char*p1,*p2,str50“xyz“;p1=“abcd“;p2=“ABCD
5、“;strcpy(str+2,strcat(p1+2,p2+1);printf(“%s“,str);(分数:1.00)A.xyabcABB.abcABzC.AbabczD.XycdBCD11.若有如下说明:int a,b=5,*t=则能完成 a=b 赋值功能的语句是 ( )(分数:1.00)A.B.*t=b;C.*tD.*a*t;12.若有代数式“e x+y2+y/x”,则正确的 C 语言表达式是 ( )(分数:1.00)A.ex+y*y+y/xB.exp x+pow(y,2)+y/xC.exp(x)+pow(y,2)+y/xD.ex+y2+y/x13.为了避免流程图在描述程序逻辑时的灵活性,
6、提出了用方框图来代替传统的程序流程图,通常也把这种图称为 ( )(分数:1.00)A.PAD 图B.N-S 图C.结构图D.数据流图14.执行语句“for(n=10;n0;)printf(“%d“,-n+n-);”后,下列说法正确的是 ( )(分数:1.00)A.循环体执行了 5 次,最终 n 的值是-1B.循环体执行了 6 次,最终 n 的值是-1C.循环体执行了 6 次,最终 n 的值是 0D.循环体执行了 5 次,最终 n 的值是 015.下列字符串不属于标识符的是 ( )(分数:1.00)A.sumB.averageC.day_nightD.M,D.JOHN16.有以下程序#inclu
7、de stdiohmain()int.i0,a=0;while(i20)for(;)if(i%10)=0) break;else i-;i+=11; a+=i;printf(“%d/n“,(分数:1.00)A.;D.putchar(ch);20.将 E-R 图转换到关系模式时,实体与联系都可以表示成 ( )(分数:1.00)A.属性B.关系C.键D.域21.若有如下程序;main()char *p=“china“; p+1;printf(“%d/n“,p); 则程序运行后的输出结果是 ( )(分数:1.00)A.chinaB.字符 h 的地址C.hinaD.字符 h 的 ASCII 码值22.
8、在设计程序时,应采纳的原则之一是 ( )(分数:1.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解23.若 x3,yz4,则下列表达式的值分别为 ( )(1)(zyx)?1:0(2)y+=z,x*y(分数:1.00)A.0 24B.1 8C.0 8D.1 1224.在单链表中,增加头结点的目的是 ( )(分数:1.00)A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现25.下述程序段的执行结果是 ( )#includestdiohvoid main()int x;for(x=1;
9、 x100; x+)if(+x%30)if(+x%4=0)if(+x%70)printf(“%d“,x);(分数:1.00)A.75B.76C.77D.8426.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符 ( )(分数:1.00)A.B. pB.mainint *p;fun( *p=C.#include stdlib.h main() int *p;fun( int fun(int*p) *p=(int*)malloc(2);D.#include stdlib.hmain()int *p;fun(p);int fun(int *p)p=(int*)malloc(sizeof
10、(int);29.有以下程序main()int y10;do y-;while(-y);printf(“%d/n“,y-);程序运行后的输出结果是 ( )(分数:1.00)A.-1B.1C.8D.030.对表进行水平方向和垂直方向的分割,分别对应的关系运算是 ( )(分数:1.00)A.选择和投影B.投影和选择C.选择和联接D.投影和联接31.以下程序调用 findmax 函数返回数组中的最大值findmax(int *a,int n)int *p,*s;for(pa,s=a;p-an; p+)if (_)sp;return(*s);main()int x5=12,21,13,6,18;pri
11、ntf(“%d/n“,findmax(x,5);在下划线处应填入的是 ( )(分数:1.00)A.psB.*p*sC.apasD.p-ap-s32.一个 C 程序由函数 A、B、C 和函数 P 构成,在函数 A 中分别调用了函数 B 和函数 C,在函数 B 中调用了函数 A,且在函数 P 中也调用了函数 A,则可以说 ( )(分数:1.00)A.函数 B 中调用的函数 A 是函数 A 的间接递归调用B.函数 A 被函数 B 调用是函数 A 间接递归调用C.函数 P 直接递归调用了函数 AD.函数 P 中调用的函数 A 是函数 P 的嵌套33.以下程序的运行结果是 ( )#define MAX
12、10int aMAX,i;main()printf(“/n“);sub1();sub3((分数:1.00)A.,sub2(),sub3(A) ;sub2()int aMAX,i,max;max=5;for(i=0;imax;i+)aii;sub1()for(i=0;iMAX;i+)aii+i;sub3(int a)int i;for(i=0;iMAX,i+)printf(“%d“,ai);printf(“/n“);A) 0 2 4 6 8 10 12 14 16 18scanf(“%c“,scanf(“%s“,s);printf(“%c,%d,%s/n“,c,i,s);(分数:1.00)A.1
13、,456,789B.1,23,456C.1,23,456,789D.123,456,78936.设有如下定义和声明:struct 3int a;struct s *next ;struct s x41,ts0.a+s1.b;printf(“%d/n“,t);(分数:1.00)A.3B.4C.5D.638.算法的时间复杂度是指 ( )(分数:1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数39.有以下程序#ineludestdio.hmain()float x,y;scan(“%f“,else if(x10.0)y1.0x;e
14、lse y=10.0;printf(“%f/n“,y);若运行时从键盘上输入 2.0CR(CR表示回车),则上面程序的输出结果是 ( )(分数:1.00)A.0.000000B.0.250000C.0.500000D.1.00000040.若有如下程序:main()int a6;char chc;printf(“%d/n“,(areturn;main()int a1,b=2,c3,d,e;sub(a,b, 则程序运行后的输出结果是 ( )(分数:1.00)A.3B.4C.5D.642.若有以下定义和语句:int u=010,v=0x10,w10;printf(“%d,%d,%d/n“,u,v,
15、w);则输出结果是 ( )(分数:1.00)A.8,16,10B.10,10,10C.8,8,10D.8,10,1043.fscanf 函数的正确调用形式是 ( )(分数:1.00)A.fscanf(fp,格式字符串,输出表列);B.fscanf(格式字符串,输出表列,fp);C.fscanf(格式字符串,文件指针,输出表列),D.fscanf(文件指针,格式字符串,输入表列);44.在 C 语言中,整数 65534 在存储单元中的存储情况是 ( )(分数:1.00)A.11 11 11 11 11 11 11 11B.10 00 00 00 00 00 00 10C.01 11 11 11
16、11 11 11 11D.11 11 11 11 11 11 11 1045.下列说法不正确的是 ( )(分数:1.00)A.下列结构体定义时,占据了 5 个字节的空间struct s int num;int age;char sex;B.结构体的成员名可以与程序中的变量名相同C.对结构体中的成员可以单独使用,它的作用相当于普通变量D.结构体的成员可以是一个结构体变量46.以下各选项企图说明一种新的类型名,其中正确的是 ( )(分数:1.00)A.typedef v1 int,B.typedef v2int;C.typedef int v3;D.typedef v4:int;47.以下叙述中不
17、正确的是 ( )(分数:1.00)A.一个变量的作用域完全取决于变量定义语句的位置B.全局变量可以在函数以外的任何部位进行定义C.局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用D.一个变量说明为 static 存储类是为了限制其他编译单位的引用48.若以下对 fun 函数的调用是正确的:xfun(fun(a,b,c) ,(a+b,a+c) ,a+b+c);则 fun 函数的形参个数为 ( )(分数:1.00)A.3B.4C.5D.649.下面程序的输出结果是 ( )main()int i,j;i16;j(i+)+i;printf(“%d“,j);i15;
18、printf(“%d%d“,+i,i);(分数:1.00)A.32 16 15B.33 15,15C.34 15,16D.34 16 1550.下面不属于软件工程的 3 个要素的是 ( )(分数:1.00)A.工具B.过程C.方法D.环境二、填空题(总题数:16,分数:40.00)51.结构化程序设计的三种基本逻辑结构为顺序、选择和 【1】 。(分数:2.00)填空项 1:_52.冒泡排序算法在最好的情况下的元素交换次数为 【2】 。(分数:2.00)填空项 1:_53.软件结构是以 【3】 为基础而组成的一种控制层次结构。(分数:2.00)填空项 1:_54.在面向对象的设计中,用来请求对象
19、执行某一处理或回答某些信息的要求称为 【4】 。(分数:2.00)填空项 1:_55.关系数据库的关系演算语言是以 【5】 为基础的 DML 语言。(分数:2.00)填空项 1:_56.执行以下 for 语句后,变量 i 的值是 【6】 。for(i1;i+5;);(分数:2.00)填空项 1:_57.已有定义:int x;,执行以下语句后的辅出结果是 【7】 。x11/3; y=5;printf(“%d,%d/n“,x,y);(分数:2.00)填空项 1:_58.以下程序的输出结果是 【8】 。main()char *p“BOOL“,“OPK“,“H“,“SP“;int i;for(i=3,
20、 i=0; i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:2.00)填空项 1:_59.以下程序的输出结果是 【9】 。void fun()static int a;a+=2;printf(“%d“,A) ;main()int cc;for(cc1;cc4;cc+)fun();printf(“/n“);(分数:2.00)填空项 1:_60.表示条件;10x100 或 x0 的 C 语言表达式是 【10】 。(分数:2.00)填空项 1:_61.设有如下程序段:int i0,sum1;dosum+=i+;while(i6);printf(“%d/n“,sum);
21、上述程序段的输出结果是 【11】 。(分数:2.00)填空项 1:_62.以下程序通过函数指针 p 调用函数 fun,请在填空栏内写出定义变量 p 的语句。void fun(int x,int * y)main()int a10,b20;【12】 ; *定义变量 p*p=fun;p((分数:2.00)填空项 1:_63.以下程序输出矩阵中值为。的元素的行下标和列下标。行下标和列下标分别放在同一下标的 r 和 c 数组元素中。程序通过调用随机函数给矩阵赋值。#define N 5#include stdlib.hmain()int aNN,i,j,cN*N,rN*N,n;for(i=0,iN;i
22、+)for(j=0;jN;j+)aij=rand()%5;n=gindex( 【13】 );printf(“/n/nThe result:/nn=%d/n“,n);for(i0;in;i+)printf(“%4d%4d/n“,ri,ci);int gindex(int(*p)N,int *c,int *r)int i,j,k;【14】 ; for(i=0;iN,i+)for(j=0;jN;j+)if( 【15】 0)rk=i;ck=j; 【16】 ; return 【17】 ;(分数:10.00)填空项 1:_64.若有如下程序:main()int s1,2,3,4,5,6,*p=s;prin
23、tf(“%d,%d/n“,*(p+3),*(p+6);则程序运行后的输出结果是 【18】 。(分数:2.00)填空项 1:_65.以下程序的输出结果是 【19】 。#includestdiohmain()struct struint a;float b;char d4;;printf(“%d/n“,sizeof(struct stru);(分数:2.00)填空项 1:_66.以下程序段打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。FILE *myf; long f1;myf= 【20】 (“
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 48 答案 解析 DOC
