【计算机类职业资格】二级C语言-(三)及答案解析.doc
《【计算机类职业资格】二级C语言-(三)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-(三)及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言-(三)及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:34,分数:68.00)1.以下关于 return语句的叙述中正确的是_。 A.没有 return语句的自定义函数在执行结束时不能返回到调用处 B.一个自定义函数中必须有一条 return语句 C.定义成 void类型的函数中可以有带返回值的 return语句 D.一个自定义函数中可以根据不同情况设置多条 return语句(分数:2.00)A.B.C.D.2.已定义以下函数int fun(int *p) return *p;fun函数返回值是_。 A.一个整数 B.不确定的值 C.形参 p中存放
2、的值 D.形参 p的地址值(分数:2.00)A.B.C.D.3.若有以下程序#includestdio.hchar f(char x) return x*x+a;main() char a,b=0;for(a=0;a4;a+=1)b=f(a);putchar(b);则程序的输出结果是_。 A.abej B.ABEJ C.abcd D.ABCD(分数:2.00)A.B.C.D.4.以下叙述中正确的是_。 A.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 B.一条语句只能定义一个数组 C.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 D.在引用数组元素时,下
3、标表达式可以使用浮点数(分数:2.00)A.B.C.D.5.以下叙述中正确的是_。 A.char c1,c2,*c3,c440;是合法的变量定义语句 B.数组下标的下限由数组中第一个非零元素的位置决定 C.数组下标的下限由数组中第一个被赋值元素的位置决定 D.数组下标的下限是 1(分数:2.00)A.B.C.D.6.以下叙述中正确的是_。 A.语句 char a2=“A“,“B“;是合法的,定义了一个包含两个字符的数组 B.语句 int a=0;是不合法的,遗漏了数组的大小 C.语句 int a8=0;是合法的 D.语句 char a3;a=“AB“;是合法的,因为数组有三个字符空间的容量,可
4、以保存两个字符(分数:2.00)A.B.C.D.7.以下叙述中正确的是_。 A.语句 int a3=1,2,4,5;是错误的初始化形式 B.语句 int a43=1,2,4,5;是错误的初始化形式 C.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵 D.语句 int a43=1,2,4,5;是错误的初始化形式(分数:2.00)A.B.C.D.8.设有定义:int x23;则以下关于二维数组 x的叙述错误的是_。 A.可以用 x0=0;的形式为数组所有元素赋初值 0 B.数组 x可以看作是由 x0和 x1两个元素组成的一维数组 C.元素 x0可看作是由 3个整型元素组成的一维数组 D.
5、x0和 x1是数组名,分别代表一个地址常量(分数:2.00)A.B.C.D.9.以下数组定义中错误的是_。 A.int x23=1,2,3,4,5,6; B.int x3=0; C.int x3=1,2,3,4,5,6; D.int x23=1,2,3,4,5,6;(分数:2.00)A.B.C.D.10.有以下程序#includcstdio.hmain() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1;for(i=0;i3;i+)for(j=i;j=i;j+) t+=bibji;printf(“%d/n“,t);程序运行后的输出结果是_。 A.4 B.3 C.1 D.9(
6、分数:2.00)A.B.C.D.11.有以下程序#include?stdio.hmain() int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i3;i+)?printf(“%d?“,t2-ii);程序执行后的输出结果是_。 A.3 6 9 B.7 5 3 C.3 5 7 D.7 5 1(分数:2.00)A.B.C.D.12.以下叙述中正确的是_。 A.语句 p=NULL;执行后,指针 p指向地址为 0的存储单元 B.指针变量只能通过求地址运算符(与 p=/0;是等价的语句 D.int*p1;int*p2;int*p3;都是合法的定义指针变量的语句(分数:2.00)A.B.
7、C.D.13.以下叙述中正确的是_。 A.如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息 B.即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同 C.设变量 p是一个指针变量,则语句 p=0;是非法的,应该使用 p=NULL; D.指针变量之间不能用关系运算符进行比较(分数:2.00)A.B.C.D.14.设 p是指针变量,语句 p=NULL;等价于_。 A.p=0; B.p=“; C.p=“; D.p=0;(分数:2.00)A.B.C.D.15.设有定义:int x=0,*p;紧接着的赋值语句正确的是_。 A.*p=x; B.*p=NULL; C.p=x
8、; D.p=NULL;(分数:2.00)A.B.C.D.16.若有定义语句:double a,*p=以下叙述中错误的是_。 A.定义语句中的 p只能存放 double类型变量的地址 B.定义语句中的*号是一个说明符 C.定义语句中的*号是一个间址运算符 D.定义语句中*p=r=p;p=q;q=r;printf(“%d,%d,%d,%d/n“,m,n,*p,*q);程序运行后的输出结果是_。 A.1,2,1,2 B.1,2,2,1 C.2,1,2,1 D.2,1,1,2(分数:2.00)A.B.C.D.18.设有定义语句int(*f)(int);则以下叙述正确的是_。 A.f是函数名,该函数的返
9、回值是基类型为 int类型的地址 B.f是基类型为 int的指针变量 C.f是指向 int类型一维数组的指针变量 D.f是指向函数的指针变量,该函数具有一个 int类型的形参(分数:2.00)A.B.C.D.19.有以下程序#includestdio.hmain() int *p,x=100;p=x=*p+10;printf(“%d/n“,x);程序运行后的输出结果是_。 A.110 B.120 C.100 D.90(分数:2.00)A.B.C.D.20.有以下程序#includestdio.hint*f(int*s,int*t) if(*s*t)s=t;return?s;main() int
10、 i=3,j=5,*p=r=f(p,q);printf(“%d,%d,%d,%d,%d/n“,i,j,*p,*q,*r);程序的运行结果是_。 A.3,5,3,5,5 B.3,5,5,5,5 C.5,3,3,3,5 D.5,5,5,5,5(分数:2.00)A.B.C.D.21.若要使用 C数学库中的 sin函数,需要在源程序的头部加上#includemath.h关于引用数学库,以下叙述正确的是_。 A.将数学库中 sin函数的源程序插入到引用处,以便进行编译链接 B.将数学库中 sin函数链接到编译生成的可执行文件中,以便能正确运行 C.通过引用 math.h文件,说明 sin函数的参数个数和
11、类型,以及函数返回值类型 D.实际上,不引用 math.h文件也能正确调用 sin函数(分数:2.00)A.B.C.D.22.以下叙述中正确的是_。 A.在 C语言中,预处理命令行都以”#”开头 B.预处理命令行必须位于 C源程序的起始位置 C.#includestdio.h必须放在 C程序的开头 D.C语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B.C.D.23.有以下程序#includestdio.h#define S(x)4*(x)*x+1main() int k=5,j=2;printf(“%d/n“,S(k+j);程序运行后的输出结果是_。 A.143 B.197
12、 C.33 D.28(分数:2.00)A.B.C.D.24.以下叙述中错误的是_。 A.C程序对预处理命令行的处理是在程序执行的过程中进行的 B.预处理命令行的最后不能以分号表示结束 C.#define MAX是合法的宏定义命令行 D.在程序中凡是以”#”开始的语句行都是预处理命令行(分数:2.00)A.B.C.D.25.若程序中有宏定义行:#define N 100则以下叙述中正确的是_。 A.宏定义行中定义了标识符 N的值为整数 100 B.在编译程序对 C源程序进行预处理时用 100替换标识符 N C.上述宏定义行实现将 100赋给标识符 N D.在运行时用 100替换标识符 N(分数:
13、2.00)A.B.C.D.26.若有以下程序#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);则程序的输出结果是_。 A.49,289 B.49,2401 C.17,289 D.17,37(分数:2.00)A.B.C.D.27.有以下程序#includestdio.h#define S(x)x*xmain() int k=5,j=2;printf(“%d,%d/n“,S(k+j+2),S(j+k+2);程序的运行结果是_。 A.18,18 B.
14、81,81 C.21,21 D.21,18(分数:2.00)A.B.C.D.28.以下选项中的编译预处理命令行,正确的是_。 A.#DEFINE TRUE B.#define eps 0.001 C.#define PI 3.14 D.#define int INT(分数:2.00)A.B.C.D.29.有以下程序#include?stdio.h#define FNA(x) x*x#define FNB(x) x+xmain() int a=2,b=4;printf(“%d,%d/n“,FNA(FNB(a),FNB(FNA(b);程序运行后的输出结果是_。 A.16,32 B.8,32 C.8
15、,16 D.16,16(分数:2.00)A.B.C.D.30.有以下程序#includestdio.htypedef struct int 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);程序运行后的输出结果是_。 A.2,4 B.1,2 C.1,4 D.2,3(分数:2.00)A.B.C.D.31.有以下程序#includestdio.hstruct S int a,b;? data2=10,100,20,200;main() s
16、truct S p=data1;printf(“%d/n“,+(p.a);程序运行后的输出结果是_。 A.21 B.11 C.20 D.10(分数:2.00)A.B.C.D.32.以下叙述中正确的是_。 A.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 C.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 D.C语言中的文件是流式文件,因此只能顺序存取数据(分数:2.00)A.B.C.D.33.有以下程序#includestdio.hmain() FILE*fp;
17、int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+) fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,fclose(fp);printf(“%d/n“,n);程序的运行结果是_。 A.12300 B.123 C.1 D.321(分数:2.00)A.B.C.D.34.设文件指针 fp已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file操作叙述的选项中正确的是_。 A.只能写不能读
18、 B.写操作结束后可以从头开始读 C.可以在原有内容后追加写 D.可以随意读和写(分数:2.00)A.B.C.D.二、B填空题/B(总题数:13,分数:32.00)35.以下程序的功能是:将值为三位正整数的变量 x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。 #includestdio.h main() int x=256; printf(“%d-%d-%d/n“,_,x/10%10,x/100); (分数:2.00)填空项 1:_36.若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2; 之后 y的值为 1。(分数:2.00)填空项 1:_37
19、.若变量 x、y 已定义为 int类型且 x的值为 99,y 的值为 9,请将输出语句 printf( 1,x/y);补充完整,使其输出的计算结果形式为:x/y=11。(分数:2.00)填空项 1:_38.在 C语言中,当表达式值为 0时表示逻辑值“假”,当表达式值为 1 时表示逻辑值“真”。(分数:2.00)填空项 1:_39.以下程序运行后的输出结果是_。 #includestdio.h main() int x=10,y=20,t=0; if(x=y)t=x;x=y;y=t; printf(“%d%d“,x,y); (分数:2.00)填空项 1:_40.以下程序的功能是:输出 a、b、c
20、 三个变量中的最小值。请填空。 #includestdio.h main() int a,b,c,t1,t2; scanf(“%d%d%d“, t1=ab?_; t2=ct1?_; printf(“%d/n“,t2);(分数:2.00)填空项 1:_41.以下程序的输出结果是_。 #includestdio.h void fun(int x) if(x/20)fun(x/2); printf(“%d“,x); main() fun(3);printf(“/n“);(分数:2.00)填空项 1:_42.有以下程序: #includestdio.h #includestring.h void fu
21、n(char*str) char temp;int n,i; n=strlen(str); temp=strn-1; for(i=n-1;i0;i-)stri=stri-1; str0=temp; main() char s50; scanf(“%s“,s);fun(s);printf(“%s/n“,s); 程序运行后输入 abcdef回车,则输出结果是_。(分数:3.00)填空项 1:_43.以下 fun函数的功能是在 N行 M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设 M,N 已定义) int fun(int aNM) int i,j,row=0,col=0; for(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 答案 解析 DOC
