【计算机类职业资格】二级C语言笔试选择题-1及答案解析.doc
《【计算机类职业资格】二级C语言笔试选择题-1及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试选择题-1及答案解析.doc(36页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试选择题-1 及答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:55,分数:93.00)1.有以下程序#includestdio.hmain()int a34=(1,3,5,7,9,11,13,15,17,19,21,23,(*p)4=a,i,j,k=0;for(i=0;i3;i+)for(j=0;j2;j+)k=k+*(*(p+i)+j);printf(“%d/n“,k);程序运行后的输出结果是_。A60 B68 C99 D108(分数:2.00)A.B.C.D.2.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是_。Ado*t+=*s+;wh
2、ile(*s); Bfor(i=0;ti=si;i+);Cwhile(*t=*s)t+;s+; Dfor(i=0,j=0;ti+=sj+;);(分数:2.00)A.B.C.D.3.有以下函数int fun(char*x,char*y)int n=0;while(*x=*y)*x!=/0)x+;y+;n+;return n;函数的功能是_。A统计 x 和 y 所指字符串中最前面连续相同的字符个数B查找 x 和 y 所指字符串中是否有/0C将 y 所指字符串赋给 x 所指存储空间D统计 x 和 y 所指字符串中相同的字符个数(分数:2.00)A.B.C.D.4.有以下程序#includestdio
3、.hmain()char ch=“uvwxyz“,*pc;pc=ch;printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。Az B0C元素 ch5的地址 D字符 y 的地址(分数:2.00)A.B.C.D.5.设有如下程序段#includestdio.hchar s20=“Beijing“,*p;p=s;则执行 p=s;语句后,以下叙述正确的是_。A可以用*p 表示 s0Bs 数组中元素的个数和 p 所指字符串长度相等Cs 和 p 都是指针变量D数组 s 中的内容和指针变量 p 中的内容相同(分数:2.00)A.B.C.D.6.若有以下程序段char str412=“aa“,
4、“bbb“,“ccccc“,“d“,*strp4;int i;for(i=0;i4;i+)strpi=stri;不能正确引用字符串的选项是_。Astrp Bstr0 Cstrp3 D*strp(分数:2.00)A.B.C.D.7.有以下程序#includestdio.hmain()int a5=2,4,6,8,10,*p,*k;p=a;k=p;printf(“%d“,*(p+);printf(“%d/n“,*k);程序运行后的输出结果是_。A2 4 B4 4 C2 2 D4 6(分数:2.00)A.B.C.D.8.设有以下函数:void fun(int n,char*s)则下面对函数指针的定义
5、和赋值均正确的是_。Avoid(*pf)(int,char*);pf=fun; Bvoid*pf();pf=fun;Cvoid*pf();*pf=fun; Dvoid(*pf)(int,chad;)pf=fun;(分数:2.00)A.B.C.D.9.以下叙述中正确的是_。A在 C 语言中,预处理命令行都以”#”开头B预处理命令行必须位于 C 源程序的起始位置C#includestdio.h必须放在 C 程序的开头DC 语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B.C.D.10.以下关于宏的叙述中正确的是_。A宏替换没有数据类型限制 B宏定义必须位于源程序中所有语句之前C宏
6、名必须用大写字母表示 D宏调用比函数调用耗费时间(分数:2.00)A.B.C.D.11.若程序中有宏定义行:#defineN 100则以下叙述中正确的是_。A在编译程序对 C 源程序进行预处理时用 100 替换标识符 NB宏定义行中定义了标识符 N 的值为整数 100C上述宏定义行实现将 100 赋给标识符 ND在运行时用 100 替换标识符 N(分数:2.00)A.B.C.D.12.有以下程序#includestdio.h#define N 2#define M N+1#define NUM(M+1)*M/2main()printf(“%d/n“,NUM);程序运行后的输出结果是_。A8 B
7、4 C9 D6(分数:2.00)A.B.C.D.13.有以下程序#includestdio.h#define PT 3.5;#define S(x)PT*x*x;main()int a=1,b=2;printf(“%4.1f/n“,S(a+b):程序运行后的输出结果是_。A程序有错无输出结果 B31.5C7.5 D14.0(分数:2.00)A.B.C.D.14.设有宏定义:#define IsDIV(k,n)(k%n=1)?1:0)且变量 m 已正确定义并赋值,则宏调用:IsDIV(m,5)IsDIV(m,7)为真时所要表达的是_。A判断 m 被 5 和 7 整除是否都余 1 B判断 m 是否
8、能被 5 和 7 整除C判断 m 被 5 或者 7 整除是否余 1 D判断 m 是否能被 5 或者 7 整除(分数:2.00)A.B.C.D.15.若有以下程序#includestdio.h#define S(x)x*x#define T(x)S(x)*S(x)main()int k=5,j=2;printf(“%d,%d/n“,S(k+j),T(k+j);则程序的输出结果是_。A17,37 B49,2401 C17,289 D49,289(分数:2.00)A.B.C.D.16.若有以下程序#includestdio.h#define S(x)(x)*(x)#define T(x)S(x)/S
9、(x)+1main()int k=3,j=2;printf(“%d,%d/n“,S(k+j),T(k+j);则程序的输出结果是_。A25,26 B25,2 C11,12 D11,2(分数:2.00)A.B.C.D.17.有以下程序#includestdio.h#define SUB(X,Y)(X+1)*Ymain()int a=3,b=4;printf(“%d/n“,SUB(a+,b+);程序运行后的输出结果是_。A16 B20 C12 D25(分数:2.00)A.B.C.D.18.下面结构体的定义语句中,错误的是_。Astruct ordint x;int y;int z;struct or
10、d a; Bstruct ordint x;int y;int z;struct ord a;Cstruct ord int x;int y;int z;a; Dstreetint x;int y;int z;)a;(分数:2.00)A.B.C.D.19.以下结构体类型说明和变量定义中正确的是_。Atypedef struct int n;char c;REC;REC t1,t2;Bstruct REC;int n;char c;);REC t1,t2;Ctypedef struct REC;int n=0;char c=A;t1,t2;Dstructint n;char c;REC;REC
11、t1,t2;(分数:2.00)A.B.C.D.20.有以下程序#includestdio.hmain()struct STUchar name9;char sex;double score2;struct STU a=“Zhao“,m,85.0,90.0,b=“Qian“,f,95.0,92.0;b=a;printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1);程序的运行结果是_。AZhao,m,85,90 BQian,m,85,90 CZhao,f,95,92 DQian,f,95,92(分数:2.00)A.B.C.D.21.有
12、以下程序#includestdio.htypedef structint b,p;A;void f(A c)/*注意:c 是结构变量名*/int j;c.b+=1;c.p+=2;main()int i;A a=1,2;f(a);printf(“%d,%d/n“,a.b,a.p);程序运行后的输出结果是_。A1,2 B2,4 C1,4 D2,3(分数:2.00)A.B.C.D.22.有以下定义和语句struct workersint num;char name20;char c;structint day;int month;int year;s;struct workers w,*pw;pw=
13、w;能给 w 中 year 成员赋 1980 的语句是_。Aw.s.year=1980; Bw.year=1980; Cpw-year=-1980; D*pw.year=1980;(分数:2.00)A.B.C.D.23.设有定义:structchar mark12;int num1;double num2;t1,t2;若变量均已正确赋初值,则以下语句中错误的是_。At2.mark=t1.mark; Bt2.num1=t1.num1; Ct1=t2; Dt2.num2=t1.num2;(分数:2.00)A.B.C.D.24.若有以下程序#includestdio.h#includestdlib.
14、h#includestring.htypedef struct stuchar*name,gender;int score;STU;void f(char*p)p=(char*)malloc(10);strcpy(p,“Qian“);main()STU a=NULL,m,290,b;a.name=(char*)malloc(10);strcpy(a.name,“Zhao“);b=a;f(b.name);b.gender=f;b.score=350;printf(“%s,%c,%d,“,a.name,a.gender,a.score);printf(“%s,%c,%d/n“,b.name,b.g
15、ender,b.score);则程序的输出结果是_。AZhao,m,290,Zhao,f,350 BZhao,m,290,Qian,f,350CQian,f,350,Qian,f,350 DQian,m,290,Qian,f,350(分数:2.00)A.B.C.D.25.有以下程序#includestdio.hstruct Sint a,b;data2=10,100,20,200;main()struct S p=data1;printf(“%d/n“,+(p.a);程序运行后的输出结果是_。A21 B11 C20 D10(分数:2.00)A.B.C.D.26.以下叙述中正确的是_。A在调用函
16、数时,可以将结构体变量作为实参传给函数B函数的返回值不能是结构体类型C函数的返回值不能是结构体指针类型D结构体数组不能作为参数传给函数(分数:2.00)A.B.C.D.27.以下叙述中正确的是_。A结构体中可以含有指向本结构体的指针成员B结构体变量的地址不能作为实参传给函数C结构体数组名不能作为实参传给函数D即使是同类型的结构体变量,也不能进行整体赋值(分数:2.00)A.B.C.D.28.有以下程序#includestdio.hstruct Sint n;int a20;void f(struct S*P)int i,j,t;for(i=0;ip-n-1;i+)for(j=i+1;jp-n;
17、j+)if(p-aip-aj)t=p-ai;p-ai=p-aj;p-aj=t;main()int i;struct S s=10,2,3,1,6,8,7,5,4,10,9;f(s);for(i=0;is.n;i+)printf(“%d,“,s.ai);程序运行后的输出结果是_。A1,2,3,4,5,6,7,8,9,10, B10,9,8,7,6,5,4,3,2,1,C2,3,1,6,8,7,5,4,10,9, D10,9,8,7,6,1,2,3,4,5,(分数:2.00)A.B.C.D.29.有以下程序#includestdio.h#includestring.htypedef structc
18、har name9;char sex;float score2; STU;STU f(STU a)STU b=“Zhao“,m,85.0,90.0;int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+)a.seorei=b.scorei;return a;main()STU c=“Qian“,f1,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f,%2.0f/n“,d.name,d.sex,d.score0,d.score1);程序的运行结果是_。AZhao,m,85,90 BQian,m,85,90 CQian
19、,f,95,92 DZhao,f,95,92(分数:2.00)A.B.C.D.30.若有以下程序#includestdio.htypedef struct stuchar name10,gender;int score;STU;void f(STU a,STU b)b=a;printf(“%s,%c,%d,“,b.name,b.gender,b.score);main()STU a=“Zhao“,m,290,b=“Qian“,f,350;f(a,b);printf(“%s,%c,%d/n“,b.name,b.gender,b.score;则程序的输出结果是_。AZhao,m,290,Qian,
20、f,350 BZhao,m,290,Zhao,m,290CQian,f,350,Qian,f,350 DZhao,m,290,Zhao,f,350(分数:2.00)A.B.C.D.31.有以下结构体说明、变量定义和赋值语句struct STDchar name10;int age;char sex;s5,*ps;ps=s0;则以下 scanf 函数调用语句有错误的是_。Ascanf(“%d“,ps-age);Bscanf(“%d“,s0.age);Cscanf(“%c“,(ps-sex);Dscanf(“%s“,s0.name;(分数:2.00)A.B.C.D.32.有以下程序#include
21、stdio.hstruct ordint x,y;dt2=1,2,3,4;main()struct ord*p=dt;printf(“%d,“,+(p-x);printf(“%d/n“,+(p-y);程序运行后的输出结果是_。A2,3 B4,1 C3,4 D1,2(分数:2.00)A.B.C.D.33.若有以下程序段struct st int n;struct st*next;struct st a3=5,a1,7,a2,9,/0,*p;p=a0;则以下选项中值为 6 的表达式是_。A+(p-n) B(*p).n Cp-n+ Dp-n(分数:2.00)A.B.C.D.34.有以下程序#incl
22、udestdio.h#includestdlib.hmain()int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int);*a=1;*b=2,*c=3;a=b;printf(“%d,%d,%d/n“,*a,*b,*c);程序运行后的输出结果是_。A3,3,3 B2,2,3 C1,2,3 D1,1,3(分数:2.00)A.B.C.D.35.有以下程序#includestdio.h#includestdlib.hvoid fun(int*p1,int*p2,int*s)s=(int*)malloe(sizeof(int);*s=*p1+*(p2+);main()int
23、a2=1,2,b2=10,20,*s=a;fun(a,b,s);printf(“%d/n“,*s);程序运行后的输出结果是_。A1 B10 C11 D2(分数:2.00)A.B.C.D.36.有以下程序段int *p;p=_malloc(sizeof(int);若要求使 p 指向一个 int 型的动态存储单元,在横线处应填入的是_。A(int*) Bint Cint* D(*int)(分数:2.00)A.B.C.D.37.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q 均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针指向链表的第一个结点。(分数:2.00)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 选择题 答案 解析 DOC
