【计算机类职业资格】二级C语言-443及答案解析.doc
《【计算机类职业资格】二级C语言-443及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-443及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-443 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:54,分数:100.00)1.有以下程序: #includestdio.h void f(int*p,int*q); main() int m=1,n=2,*r= f(r, printf(“%d,%d“,m,n); void f(int*p,int*q) p=p+1; *q=*q+1; 程序的运行结果是_。(分数:1.50)A.2,3B.1,3C.1,4D.1,22.设已有定义 float x;,则下列对指针变量 p 进行定义且赋初值的语句中正确的是_。(分数:1.50)A.int*p=(floa
2、t)x;B.float*p=C.float p=D.float*p=1024;3.若有定义语句 double a,*p=,下列叙述中错误的是_。(分数:1.50)A.定义语句中的*号是一个间址运算符B.定义语句中的*号是一个说明符C.定义语句中的 p 只能存放 double 类型变量的地址D.定义语句中,*p= int*p1= *p=*p1*(*p2); printf(“%d/n“,c); 程序的运行结果是_。(分数:1.50)A.1B.2C.3D.45.有以下程序: #includestdio.h main() int n,*p=NULL; *p= printf(“Input n:“); s
3、canf(“%d“, printf(“output n:“); printf(“%d/n“,p); 该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,下列语句中正确的是_。(分数:1.50)A.int n,*p=NULL;B.*p=C.scanf(“%d“,6.若有定义语句 double x,y,*px,*py;,执行了 px=py=之后,正确的输入语句是_。(分数:1.50)A.scanf(“%lf%le“,px,py);B.scanf(“%f%f“C.scanf(“%f%f“,x,y);D.scanf(“%lf%lf:,x,y);7.下列程序段中完全正确的是_。(分数:
4、1.50)A.int*p;scanf(“%d“,B.int*p;scanf(“%d“,p);C.int k,*p=scanf(“%d“,p);D.int k,*p;*p=scanf(“%d“,p);8.若有定义语句 int a23,*p 3;,则以下语句中正确的是_。(分数:1.50)A.p=a;B.p0=a;C.p0=D.p1=9.设有以下函数:void fun(int n,char*s).,则下列对函数指针的定义和赋值均正确的是_。(分数:1.50)A.void(*pf)(int,char);pf=B.void*pf();pf=fun;C.void*pf();*pf=fun;D.void(
5、*pf)(int,char*);pf=fun;10.下列函数的功能是_。 void fun(char*a,char*b) while(*b=*a)!=“/0“)a+;b+; (分数:1.50)A.将 a 所指字符串赋给 b 所指空间B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.检查 a 和 b 所指字符串中是否有“/0“11.有以下程序: #includestdio.h #define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+)bi=aii-aiN-1-i; main() int xNN=1,2,3
6、,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i; fun(x,y); for(i=0;iN;i+) printf(“%d,“,yi); printf(“/n“); 程序的运行结果是_。(分数:1.50)A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,12.有以下程序: #ineludestdio.h #includestring.h main() char str20=“One*World“,“One*Dream!“,*p=str1; printf(“%d,“,strlen(p); printf(“%s/n“,p)
7、; 程序的运行结果是_。(分数:1.50)A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World13.若有定义 int w35;,则以下不能正确表示该数组元素的表达式是_。(分数:1.50)A.*(s=“Olympic“;B.char s7;s=“Olympic“;C.char*s;s=“Olympic“;D.char s7;s=“Olympic“;15.有以下程序(注:字符 a 的 ASCII 码值为 97): #includestdio.h main() char*s=“abc“; do printf(“%d“,*s%10); +s
8、; while(*s); 程序的运行结果是_。(分数:1.50)A.789B.abcC.7890D.97989916.设有定义“char*c;”,以下选项中能够使 c 正确指向一个字符串的是_。(分数:1.50)A.char str=“string“;c=str;B.scanf(“%s“,c);C.c=getchar();D.%c=“string“;17.有以下函数: int fun(char*x,char*y) int n=0; while(*x=*y) y+; n+; return n; 函数的功能是_。(分数:2.00)A.将 y 所指字符串赋给 x 所指存储空间B.查找 x 和 y 所
9、指字符串中是否有“/0“C.统计 x 和 y 所指字符串中最前面连续相同的字符个数D.统计 x 和 y 所指字符串中相同的字符个数18.下列语句组中正确的是_。(分数:2.00)A.char*s;s=“BOOK!“;B.char*s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;19.设有定义语句“int(*f)(int);”则下列叙述中正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返
10、回值是基类型为 int 类型的地址20.有以下程序: #includestdio.h int add(int a,int b) return(a+b); main() int k,(*f)(),a=5,b=10; f=add; . 则以下函数调用语句错误的是_。(分数:2.00)A.k=f(a,b);B.k=add(a,h);C.k=(*f)(a,b);D.k=*f(a,b);21.下列语句中存在语法错误的是_。(分数:2.00)A.char ss620;ss1=“right?“;B.char ss20=“right?“;C.char*ss6;ss1=“right?“;D.char*ss=“r
11、ight?“;22.下列叙述中正确的是_。(分数:2.00)A.在 C 语言中,预处理命令行都以“#”开头B.预处理命令行必须位于 C 源程序的起始位置C.#includestdio.h必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能23.下列关于宏的叙述中正确的是_。(分数:2.00)A.宏替换没有数据类型限制B.宏定义必须位于源程序中所有语句之前C.宏名必须用大写字母表示D.宏调用比函数调用耗费时间24.有以下程序: #includestdio.h #define PT 3.5; #define S(X)PT*x*x; main() int a=1,b=2; pr
12、intf(“%4.1f/n“,S(a+b); 程序的运行结果是_。(分数:2.00)A.7.5B.31.5C.程序有错无输出结果D.14.025.若程序中有宏定义行:#define N 100,则下列叙述中正确的是_。(分数:2.00)A.宏定义行中定义了标识符 N 的值为整数 100B.在编译程序对 C 源程序进行预处理时用 100 替换标识符 NC.上述宏定义行实现将 100 赋给标识符 ND.在运行时用 100 替换标识符 N26.有以下程序: #includestdio.h #define S(x)4*(x)*x+1 main() int k=5,j=2; printf(“%d/n“,
13、S(k+j); 程序的运行结果是_。(分数:2.00)A.33B.197C.143D.2827.有以下程序: #includestdio.h #define SUB(a)(a)-(a)main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(“%d/n“,d); 程序的运行结果是_。(分数:2.00)A.0B.-12C.-20D.1028.下列叙述中错误的是_。(分数:2.00)A.C 程序对预处理命令行的处理是在程序执行过程中进行的B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.在程序中,凡是以“#”开始的语句行
14、都是预处理命令行29.若有语句 typedef struct Sint g;char h;T;,则下列叙述中正确的是_。(分数:2.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量C.S 是 struct 类型的变量D.T 是 struct S 类型的变量30.设有语句 typedef struct TTchar c;int a4;CIN;,则下列叙述中正确的是_。(分数:2.00)A.CIN 是 struct TT 类型的变量B.TT 是 struct 类型的变量C.可以用 TT 定义结构体变量D.可以用 CIN 定义结构体变量31.下列叙述中错误的是_。(分数:2.00)A.
15、可以用 typedef 将已存在的类型用一个新的名字来代表B.可以通过 typedef 增加新的类型C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名32.有以下程序: #includestdio.h main() struct STU char 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
16、.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,9233.下列结构体类型说明和变量定义中正确的是_。(分数:2.00)A.struct REC;int n;char c;REC t1,t2;B.typedef structint n;char c;REC;REC t1,t2;C.typedef struct REC;int n=0;char c=“A“;t1,t2;D.structint n;char c;REC;REC t1,t2;34.下列结构体的定义语句
17、中错误的是_。(分数:2.00)A.struct ordint x;int y;int z;struct ord a;B.struct ordint x;int y;int z;struct ord a;C.struct ordint x;int y;int z;a;D.structint x;int y;int z;a;35.设有定义: struct complex int real,unreal; data1=1,8,data2; 则下列赋值语句中错误的是_。(分数:2.00)A.data2=(2,6);B.data2=data1;C.data2.real=data1.real;D.dat
18、a2.real=data1.unreal;36.有以下程序: struct stint x;int*y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 以下选项中表达式值为 11 的是_。(分数:2.00)A.+pt-xB.pt-xC.*pt-yD.(pt+)-x37.有以下定义和语句: struct workers int num; char name20;char c; struct int day; int month; int year; s; ; struct workers w,*pw; pw= 能给 w 中 year 成员赋
19、 1980 的语句是_。(分数:2.00)A.pw-year=1980;B.year=1980;C.s.year=1980;D.*pw.year=1980;38.有以下程序: #includestdio.h struct ttint x;struct tt*y;*p; struct tt a4=20,a+1,15,a+2,30,a+3,17,a; main() int i; p=a; for(i=1;i=2;i+) printf(“%d,“,p-x); p=p-y; 程序的运行结果是_。(分数:2.00)A.20,30,B.30,17C.15,30,D.20,15,39.设有定义:struct
20、char mark12;int num1;double num2;t1,t2;,若变量均已正确赋初值,则下列语句中错误的是_。(分数:2.00)A.t1=t2;B.t2.num1=t1.num1;C.t2.mark=t1.mark;D.t2.num2=t1.num2;40.有以下程序: #includestdio.h struct s int a,b; data2=10,100,20,200; main() struct S p=data1; printf(“%d/n“,+(p.a); 程序的运行结果是_。(分数:2.00)A.10B.11C.20D.2141.有以下结构体说明、变量定义和赋值
21、语句: struct STDchar name10;int age;char sex;s5,*ps;ps= 则下列 scanf 函数调用语句有错误的是_。(分数:2.00)A.scanf(“%s“,s0.name);B.scanf(“%d“,C.scanf(“%c“,D.scanf(“%d“,ps-age);42.有以下程序: #includestdio.h typedef 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
22、“,a.b,a.p); 程序的运行结果是_。(分数:2.00)A.2,4B.1,2C.1,4D.2,343.有以下程序: #includestdio.h struct S int 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;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( for(i=0;is.n;i+) printf(“%d,“,s.ai); 程
23、序的运行结果是_。(分数:2.00)A.2,3,1,6,8,7,5,4,10,9,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,4,5,6,7,8,9,10,D.10,9,8,7,6,1,2,3,4,5,44.程序中已构成如下不带头节点的单向链表结构,指针变量 s、p、q 均已正确定义,并用于指向链表节点,指针变量 s 总是作为指针指向链表的第一个节点。 (分数:2.00)A.删除尾节点B.尾节点成为首节点C.删除首节点D.首节点成为尾节点45.假定已建立以下链表结构,且指针 p 和 q 已指向如图所示的节点。 (分数:2.00)A.p-next=q-next;free(q);
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 443 答案 解析 DOC
