【计算机类职业资格】二级C语言-(三)及答案解析.doc

上传人:amazingpat195 文档编号:1324842 上传时间:2019-10-17 格式:DOC 页数:27 大小:132KB
下载 相关 举报
【计算机类职业资格】二级C语言-(三)及答案解析.doc_第1页
第1页 / 共27页
【计算机类职业资格】二级C语言-(三)及答案解析.doc_第2页
第2页 / 共27页
【计算机类职业资格】二级C语言-(三)及答案解析.doc_第3页
第3页 / 共27页
【计算机类职业资格】二级C语言-(三)及答案解析.doc_第4页
第4页 / 共27页
【计算机类职业资格】二级C语言-(三)及答案解析.doc_第5页
第5页 / 共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(

22、i=0;iN;i+) for(j=0;jM;j+) if(aijarowcol) row=i;col=j; return(_); (分数:3.00)填空项 1:_44.以下程序用以删除字符串中所有的空格,请填空。 #includestdio.h main() char s100=“our teacher teach c language!“; int i,j; for(i=j=0;si! =/0;i+) if(si! =) sj=si;j+; sj=_; printf(“%s/n“,s); (分数:3.00)填空项 1:_45.有以下程序: #includestdio.h int*f(int

23、*p,int *q); main() int m=1,n=2,*r= r=f(r, printf(“%d/n“,*r); int*f(int*p,int*q) return(*p*q)?p:q; 程序运行后的输出结果是_。(分数:3.00)填空项 1:_46.以下程序中函数 fun的功能是:统计 person所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数值返回。请填空。 #includestdio.h #define N 3 typedef struct int num;char nam10;char sex; SS; int fun(SS person) i

24、nt i,n=0; for(i=0;iN;i+) if(_=M)n+; return n; main() SS WN=1,“AA“,F,2,“BB“,M,3,“CC“,M;int n; n=fun(W);printf(“n=%d/n“,n); (分数:3.00)填空项 1:_47.以下程序打开新文件 f.txt,并调用字符输出函数将 a数组中的字符写入其中,请填空。 #includestdio.h main() _*fp; char a5=1,2,3,4,5,i; fp=fopen(“f.txt“,“w“); for(i=0;i5;i+)fputc(ai,fp); fclose(fp); (分

25、数:3.00)填空项 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.一个整数

26、B.不确定的值 C.形参 p中存放的值 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.每个数组包含一组具有同一类型的变量,这些变量在

27、内存中占有连续的存储单元 D.在引用数组元素时,下标表达式可以使用浮点数(分数: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.语句 cha

28、r a3;a=“AB“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符(分数: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

29、两个元素组成的一维数组 C.元素 x0可看作是由 3个整型元素组成的一维数组 D.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+=bibj

30、i;printf(“%d/n“,t);程序运行后的输出结果是_。 A.4 B.3 C.1 D.9(分数: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;

31、是等价的语句 D.int*p1;int*p2;int*p3;都是合法的定义指针变量的语句(分数:2.00)A.B.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

32、.B.C.D. 解析:15.设有定义:int x=0,*p;紧接着的赋值语句正确的是_。 A.*p=x; B.*p=NULL; C.p=x; 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

33、D.2,1,1,2(分数:2.00)A.B. C.D.解析:18.设有定义语句int(*f)(int);则以下叙述正确的是_。 A.f是函数名,该函数的返回值是基类型为 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)

34、A. B.C.D.解析:20.有以下程序#includestdio.hint*f(int*s,int*t) if(*s*t)s=t;return?s;main() int 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.将数学库中 si

35、n函数的源程序插入到引用处,以便进行编译链接 B.将数学库中 sin函数链接到编译生成的可执行文件中,以便能正确运行 C.通过引用 math.h文件,说明 sin函数的参数个数和类型,以及函数返回值类型 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.有以下程序#inc

36、ludestdio.h#define S(x)4*(x)*x+1main() int k=5,j=2;printf(“%d/n“,S(k+j);程序运行后的输出结果是_。 A.143 B.197 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则以下叙述中正确的是

37、_。 A.宏定义行中定义了标识符 N的值为整数 100 B.在编译程序对 C源程序进行预处理时用 100替换标识符 N C.上述宏定义行实现将 100赋给标识符 N D.在运行时用 100替换标识符 N(分数: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. 解析:

38、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.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#defi

39、ne 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,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)

40、;程序运行后的输出结果是_。 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() struct 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.打开一个已存在的文件并进行了写操作后

41、,原有文件中的全部数据必定被覆盖 C.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 D.C语言中的文件是流式文件,因此只能顺序存取数据(分数:2.00)A.B.C. D.解析:33.有以下程序#includestdio.hmain() FILE*fp;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

42、/n“,n);程序的运行结果是_。 A.12300 B.123 C.1 D.321(分数:2.00)A.B. C.D.解析:34.设文件指针 fp已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file操作叙述的选项中正确的是_。 A.只能写不能读 B.写操作结束后可以从头开始读 C.可以在原有内容后追加写 D.可以随意读和写(分数:2.00)A. B.C.D.解析:二、B填空题/B(总题数:13,分数:32.00)35.以下程序的功能是:将值为三位正整数的变量 x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。 #includestdio.h main

43、() int x=256; printf(“%d-%d-%d/n“,_,x/10%10,x/100); (分数:2.00)填空项 1:_ (正确答案:x%10)解析:解析 x=256,x%10=6,是取个位上的值。36.若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2; 之后 y的值为 1。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 y=(int)(x/5)%2=(int)(3.4)%2=3%2=1。37.若变量 x、y 已定义为 int类型且 x的值为 99,y 的值为 9,请将输出语句 printf( 1,x/y);补充完整,使其输出的计算结果形式为:x/y=11。(分数:2.00)填空项 1:_ (正确答案:“x/y=%d“)解析:解析 printf 语句中,除了格式转换说明外,字符串中的其他字符(包括空格)将按原样输出。38.在 C语言中,当表达式值为 0时表示逻辑值“假”,当表达式值为 1 时表示逻辑值“真”。(分数:2.00)填空项 1:_ (正确答案:非 0)解析:解析 本题一定要明确一个概念,即所有非

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1