【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc

上传人:orderah291 文档编号:1325589 上传时间:2019-10-17 格式:DOC 页数:21 大小:78KB
下载 相关 举报
【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc_第1页
第1页 / 共21页
【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc_第2页
第2页 / 共21页
【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc_第3页
第3页 / 共21页
【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc_第4页
第4页 / 共21页
【计算机类职业资格】二级C语言分类模拟题560及答案解析.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、二级 C语言分类模拟题 560及答案解析(总分:58.50,做题时间:90 分钟)一、选择题(总题数:40,分数:58.50)1.有以下程序: # include stdio.h struct STU char name9; char sex; int score2; void f(struct STU a) struct STU b=“Zhao“,“m“,85,90; a1=b; main() struct STU c2=“Qian“,“f“,95,92,“Sun“,“m“,98,99; f(c); printf(“%s,%c,%d,%d,“,c0.name,c0.sex,c0.score0

2、,c0.score1); printf(“%s,%c,%d,%d/n“,c1.name,c1.sex,c1.score0,c1.score1); 程序运行后的输出结果是_。(分数:1.00)A.2hao,m,85,90,Sun,m,98,99B.2hao,m,85,90,Qian,f,95,92C.Qian,f,95,92,Sun,m,98,99D.Qian,f,95,92,Zhao,m,85,902.以下选项中可用作 C语言中合法用户标识符的是_。(分数:1.00)A._123B.voidC.-abcD.2a3.有以下程序段: int x; for(x=3; x6; x+) printf(x

3、%2)?(“*%d“):(“#%d/n“), x); 程序段的输出结果是_。(分数:2.50)A.*3#4*5B.#3*4#5C.#3*4#5D.*3#4*54.在黑盒测试方法中,设计测试用例的主要根据是_。(分数:1.00)A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图5.有以下程序: #includestdio.h main() int k,j,s; for(k=2;k6;k+,k+) s=1; for(j=k;j6;j+)s+=j; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.6B.10C.24D.406.若有说明 int a34;

4、则 a数组元素的非法引用是_。(分数:2.50)A.a02*1B.a13C.a4-20D.a047.有以下程序 #includestdio.h void fun(int x) if(x/21) fun(x/2); printf(“%d“, x); main() fun(7); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.1 3 7B.7 3 1C.7 3D.3 78.以下选项中,能正确进行字符串赋值的是_。(分数:1.00)A.char*s=“ABCDE“;B.char s5=“A“,“B“,“C“,“D“,“E“;C.char s45=“ABCDE“;D.cha

5、r*8;gets(s);9.某棵树中共有 25个结点,且只有度为 3的结点和叶子结点,其中叶子结点有 7个,则该树中度为 3的结点数为_。(分数:1.00)A.不存在这样的树B.7C.8D.610.软件开发的结构化生命周期方法将软件生命周期划分成 _(分数:1.00)A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计11.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。(分数:2.50)A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值12.有以下程序: #include

6、 stdio.h #define SQR(X) X*X main( ) int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(“%d/n“,a); 程序的输出结果是_。(分数:1.00)A.0B.1C.9D.1013.当用户要求输入的字符串中含有空格时,应使用的输入函数是 _ 。(分数:2.00)A.scanf()B.getchar()C.gets()D.getc()14.若有以下函数: int fun(char *a, char *b) int bk=0; while(*a!=“/0“)break; a+; b+; bk=1; return bk; 此

7、函数的功能是_。(分数:1.00)A.判断 a和 b两个字符串是否相等B.将字符串 a改名为字符串 bC.将字符串变量 a的值赋给字符串变量 bD.检查字符串 a和 b中是否有“/0“15.设有定义: int x23; 则以下关于二维数组 x的叙述错误的是_。(分数:2.00)A.可以用 x0=0;的形式为数组所有元素赋初值 0B.数组 x可以看作是由 x0和 x1两个元素组成的一维数组C.元素 x0可看作是由 3个整型元素组成的一维数组D.x0和 x1是数组名,分别代表一个地址常量16.以下叙述中正确的是_。(分数:1.00)A.字符变量在定义时不能赋初值B.字符常量可以参与任何整数运算C.

8、同一英文字母的大写和小写形式代表的是同一个字符常量D.转义字符用符号开头17.以下程序的输出结果是_。 a=1; b=2; c=2; while(abc) t=a; a=b; b=t; c-; printf(“% d, % d, % d“, a, b, c);(分数:2.50)A.1,2,0B.2,1,0C.1,2,1D.2,1,118.若有以下程序: #include stdio.h void fun(int *s, int n1, int n2) int i,j,t; i=n1; j=n2; while(ij) t=si; si=sj; sj=t; i+ +; j-; main( ) in

9、t a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k10;k+ +) printf(“%d“,ak); printf(“/n“); 则程序的运行结果是_。(分数:2.50)A.4321098765B.5678901234C.0987654321D.098765123419.设有两行定义语句: int scanf; float case; 则以下叙述正确的是_。(分数:1.00)A.两行定义语句都不合法B.两行定义语句都合法C.第 1行语句不合法D.第 2行语句不合法20.有如下程序: #includ

10、e stdio.h struct person char name10; int age; main() struct person room4=“Zhang“,19,“Li“,20,“Wang“,17,“Zhao“,18; printf(“%s;%d/n“,(room+2)-name,room-age); 程序运行后的输出结果是_。(分数:1.00)A.Wang:19B.Wang:17C.Li:20D.Li:1921.有如下程序: #include stdio.h main() if(“/0“ = 0) putehar(“X“); if(“0“ = 0) putehar(“Y“); if(“

11、a“b“) putchar(“Z“). printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)AXB.XYZC.YZDY22.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定23.下面选项中关于“文件指针”概念的叙述正确的是_。(分数:1.00)A.文件指针是程序中用 FILE定义的指针变量B.文件指针就是文件位置指针,表示当前读写数据的位置C.文

12、件指针指向文件在计算机中的存储位置D.把文件指针传给 fscanf函数,就可以向文本文件中写入任意的字符24.有以下定义: struct personchar name9; int age; ; struct person class10=“Johu“, 17, “Paul“, 19, “Mary“, 18, “Adam“, 16,; 则下面能输出字母 M的语句是(分数:2.00)A.printf(“%c/n“, class3.name);B.printf(“%c/n“, class3.name1);C.prinff(“%c/n“, class2.name1);D.printf(“%c/n“,

13、 class2.name0);25.下列叙述中错误的是_。(分数:2.00)A.一个 C语言程序只能实现一种算法B.C程序可以由多个程序文件组成C.C程序可以由一个或多个函数组成D.一个 C函数可以单独作为一个 C程序文件存在26.执行以下语句段后,xy 的值是_。 int*pt,xy; xy=200; pt= xy=*pt+30;(分数:2.00)A.200B.170C.260D.23027.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。(分数:2.00)A.必须是正数B.必须是整数值C.可以是任意合法的数值D.必须是逻辑值28.阅读下列程序,则运行结果为

14、 #include “stdio.h“ fun() static int x=3; x+; return x; main() int i,x; for(i=0;i3;i+) x=fun(); printf(“%d/n“,x);(分数:1.00)A.3B.4C.5D.629.有以下程序: #includestdio.h main() FILE *fp; int i,a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+“); for(i=0;i6;i+) fprintf(fp,“%d/n“,a5-i); rewind(fp); for(i=0;i6;i+) fscan

15、f(fp,“%d“, printf(“%d,“,k); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,30.以下叙述中正确的是_。(分数:2.00)A.在 scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符B.只能在 printf函数中指定输入数据的宽度,而不能在 scanf函数中指定输入数据占的宽度C.scanf函数中的字符串是提示程序员的,输入数据时不必管它D.复合语句也被称为语句块,它至少要包含两条语句31.有以下程序: #include st

16、dio.h #include stdlib.h void fun(int*p1, int *s) int *t; t=(int *)malloc(2 * sizeof(int); *t=*p1 + *p1 +; *(t+1)=*p1+ *p1; s=t; main() int a2=1,2,b2=0; fun(a,b); printf(“%d,%d/n“,b0,b1); 程序运行后的输出结果是_。(分数:1.00)A.2,6B.0,0C.2,4D.1,232.以下四个程序中不能对两个整型值进行交换的是_。(分数:2.50)A.#includestdio.hvoid swap(int *p, i

17、nt *q) int*t, a;t= *t=*p; *p=*q; *q=*t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);B.#includestdio.hvoid swap(int *p, int *q) int t;t=*p; *p=*q; *q=t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);C.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main() int*a, *b;*a=10, *b=

18、20;swap(a, b); printf(“%d%d/n“, *a, *b);D.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main()int a=10, b=20, *x=swap(x,y); printf(“%d%d/n“, a, b);33.有以下程序: #includestdio.h void fun(int*s, int n1, int n2) int i, j, t; i=n1; j=n2; while (ij) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i+; j-;

19、 main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i, *p=a; fun(p, 0, 3); fun(p, 4, 9); fun(p, 0, 9); for(i=0; i10; i+) printf(“%d“, *(a+i); 程序的输出结果是(分数:1.00)A.0987654321B.4321098765C.5678901234D.098765123434.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是_。(分数:1.00)A.测试B.设计C.可行性研究D.实现35.有以下程序(说明:字母 A的 ASCII码值是 65

20、): #includestdio.h void fun(char*s) while(*s) if(*s%2) printf(“%c“, *s); s+; main() char a=“BYTE“; Fun(a); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.BYB.BTC.YTD.YE36.有以下程序 struct Sint n;int a20; void f(int *a,int n ) int i; for(i=0;iN-1;i+)NBSP;AI+=I; main() int i;struct S s10,2,3,1,6,8,7,5,4,10,9; f(s.a

21、,s.n); for(i=0;iS.N;i+)NBSP;PRINTF(“%D“,S.AI); 程序运行后的输出结果是_。(分数:2.00)A.2,4,3,9,12,12,11,11,18,9,B.3,4,2,7,9,8,6,5,11,10,C.2,3,1,6,8,7,5,4,10,9,D.1,2,3,6,8,7,5,4,10,9,37.C语言程序中,运算对象必须是整型数的运算符是_。(分数:1.00)A. main() int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c); printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.7B.10C.8

22、D.939.两次运行下面的程序,如果从键盘上分别输入 3和 2,则输出结果是_。 #includestdio.h main() int x; scanf(“%d“, if(x+2) printf(“%d“,x); else printf(“%d/n“,x-); (分数:2.50)A.4和 3B.4和 2C.4和 1D.3和 240.有以下程序: #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“, y); 程序执行后的输出结果是_。(分数:1.00)A.y=0B.y=-1C.y=1D.while构成无限循环二级 C语言分类模拟

23、题 560答案解析(总分:58.50,做题时间:90 分钟)一、选择题(总题数:40,分数:58.50)1.有以下程序: # include stdio.h struct STU char name9; char sex; int score2; void f(struct STU a) struct STU b=“Zhao“,“m“,85,90; a1=b; main() struct STU c2=“Qian“,“f“,95,92,“Sun“,“m“,98,99; f(c); printf(“%s,%c,%d,%d,“,c0.name,c0.sex,c0.score0,c0.score1)

24、; printf(“%s,%c,%d,%d/n“,c1.name,c1.sex,c1.score0,c1.score1); 程序运行后的输出结果是_。(分数:1.00)A.2hao,m,85,90,Sun,m,98,99B.2hao,m,85,90,Qian,f,95,92C.Qian,f,95,92,Sun,m,98,99D.Qian,f,95,92,Zhao,m,85,90 解析:解析 f 函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选 D。2.以下选项中可用作 C语言中合法用户标识符的是_。(分数:1.00)A._123 B.voidC.-abcD.2a解析:

25、解析 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头,故 A选项正确。void 为关键字,故 B选项错误。C 选项以“-”开头,不合法。D 选项由数字开头,不合法。关键字是指被 C语言保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义。3.有以下程序段: int x; for(x=3; x6; x+) printf(x%2)?(“*%d“):(“#%d/n“), x); 程序段的输出结果是_。(分数:2.50)A.*3#4*5B.#3*4#5C.#3*4#5D.*3#4*5 解析:解析 void main() int x; for(x=3;

26、x6; x+) prinrf(x%2)?(“*%d“):(“#%d/n“), x); /x=3 3%2=1 *3 /x=4 4%2=0 #4/n /x=5 5%2=1 *5 /x=6退出循环 结果: *3#4 *5 因此正确答案为 D选项。4.在黑盒测试方法中,设计测试用例的主要根据是_。(分数:1.00)A.程序内部逻辑B.程序外部功能 C.程序数据结构D.程序流程图解析:解析 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明,因此本题答案为 B。5.有以下程序:

27、#includestdio.h main() int k,j,s; for(k=2;k6;k+,k+) s=1; for(j=k;j6;j+)s+=j; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.6B.10 C.24D.40解析:解析 本题重点考查 for语句循环嵌套。首先 k=2,进行一次循环后,k 自增两次,变成 4,这时s为 1,即当 k=4的时候,s=1,j=4,执行内层循环,s=1+4,j 自增 1后等于 5,s=5+5,j 再自增 1后即为 6,跳出内层循环。k 自增两次后等于 6,不成立,跳出外层循环。最后输出 s的值,即为 10。因此

28、B选项正确。6.若有说明 int a34;则 a数组元素的非法引用是_。(分数:2.50)A.a02*1B.a13C.a4-20D.a04 解析:解析 此题考查的是数组元素的引用。对于已定义的数组 aMN,数组元素的正确引用必须满足行下标小于 M,列下标小于 N且为正整数。此题中,选项 D中列下标值出现溢出。7.有以下程序 #includestdio.h void fun(int x) if(x/21) fun(x/2); printf(“%d“, x); main() fun(7); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.1 3 7B.7 3 1C.7 3

29、D.3 7 解析:解析 本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(7/2)1,所以执行 f(3),依此类推直到 f(1.5),(1.5/2)1,所以执行打印函数,此时 x值为 3,然后退出 f(1.5),返回 f(3),打印 x值即 7。所以选 D。8.以下选项中,能正确进行字符串赋值的是_。(分数:1.00)A.char*s=“ABCDE“; B.char s5=“A“,“B“,“C“,“D“,“E“;C.char s45=“ABCDE“;D.char*8;gets(s);解析:解析 本题考查字符数组的初始化。B 选项中赋值号右侧是赋值给一个字符串数组,而左边是一个字符

30、数组,所以错误。C 选项中字符串包含 6个字符,所以不能赋值到左边只能放 5个字符的字符串数组中。D 选项 gets函数中参数需要指定长度。所以选项 A正确。9.某棵树中共有 25个结点,且只有度为 3的结点和叶子结点,其中叶子结点有 7个,则该树中度为 3的结点数为_。(分数:1.00)A.不存在这样的树 B.7C.8D.6解析:解析 树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。首先假设这样的树是存在的,由于只有度为 3的结点和叶子结点,可知最后一层都为叶子结点,倒数第二层一部分结点的度

31、为 3,一部分结点为叶子结点。结点总数为 25,叶子结点有 7个,则度为 3的结点有 18个,由于(3 4-1 -1)/218(3 5-1 -1)/2可知,树共有 5层,前三层有度为 3的结点(3 4-1 -1)/2=13个,第四层有 3 4-1 =27个结点,其中 5个是度为 3的结点,22 个是叶子结点,此时与题目给出的叶子结点有 7个相矛盾,故不存在这样的树。故选择 A选项。10.软件开发的结构化生命周期方法将软件生命周期划分成 _(分数:1.00)A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计解析:11.if语

32、句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。(分数:2.50)A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值 解析:解析 if 语句中的表达式可以是任意合法的数值,如常量,变量表达式。所以 D选项正确。12.有以下程序: #include stdio.h #define SQR(X) X*X main( ) int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(“%d/n“,a); 程序的输出结果是_。(分数:1.00)A.0B.1 C.9D.10解析:解析 本题考查宏定义。宏定义只是做个简单的替换

33、,执行语句 SQR(k+m)/SQR(k+m)=k+m*k+m/k+m*k+m=15/2,a/=SQR(k+m)/SQR(k+m)的结果为 1,因此选项 B正确。13.当用户要求输入的字符串中含有空格时,应使用的输入函数是 _ 。(分数:2.00)A.scanf()B.getchar()C.gets() D.getc()解析:解析 本题考查的知识点是:输入函数。C 语言提供了许多输入函数,其中有:qecchar(输入字符)、scanf(格式输入)和 gecs(输入字符串)等。题目要求输入的是字符串,所以可以排除 getchar,而且要求输入的字符串中包含空格,而 scanf函数默认将输入的空格

34、字符作为分隔符,所以空格不会被输入,故可排除 scanf。getc 的作用是从文件中输入一个字符,故也不可取。aecs 函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择 C)。14.若有以下函数: int fun(char *a, char *b) int bk=0; while(*a!=“/0“)break; a+; b+; bk=1; return bk; 此函数的功能是_。(分数:1.00)A.判断 a和 b两个字符串是否相等 B.将字符串 a改名为字符串 bC.将字符串变量 a的值赋给字符串变量 bD.检查字符串 a和 b中是否有“/0“解析:解析 分析程序可知:函数

35、fun()在字符指针 a和 b未遇到字符“/0“且 a指向的字符串 A长度与b指向的字符串 B长度相同时,遍历 A、B,逐个比较 a指向的字符与 b指向的字符是否相同,所以程序分3种情况:A 的长度与 B的长度不同,返回值为 0;A 的长度与 B的长度相等,但 A中某个位置 i上的字符与 B中位置 i上的字符不同,返回值为 0;A 的长度与 B的长度相等,且 A中相同位置上的字符与B中相同位置上的字符全部相同,返回值 1。由此可知函数的功能是判断 a和 b指向的两个字符串是否相等。故答案为 A选项。15.设有定义: int x23; 则以下关于二维数组 x的叙述错误的是_。(分数:2.00)A

36、.可以用 x0=0;的形式为数组所有元素赋初值 0 B.数组 x可以看作是由 x0和 x1两个元素组成的一维数组C.元素 x0可看作是由 3个整型元素组成的一维数组D.x0和 x1是数组名,分别代表一个地址常量解析:16.以下叙述中正确的是_。(分数:1.00)A.字符变量在定义时不能赋初值B.字符常量可以参与任何整数运算 C.同一英文字母的大写和小写形式代表的是同一个字符常量D.转义字符用符号开头解析:解析 A 选项中,字符变量在定义时可以赋初值;C 选项中,同一英文字母的大写和小写形式代表的是不同的字符常量;D 选项中,转义字符以反斜线“/”开头的。因此 B选项正确。17.以下程序的输出结

37、果是_。 a=1; b=2; c=2; while(abc) t=a; a=b; b=t; c-; printf(“% d, % d, % d“, a, b, c);(分数:2.50)A.1,2,0 B.2,1,0C.1,2,1D.2,1,1解析:18.若有以下程序: #include stdio.h void fun(int *s, int n1, int n2) int i,j,t; i=n1; j=n2; while(ij) t=si; si=sj; sj=t; i+ +; j-; main( ) int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fu

38、n(a,4,9); fun(a,0,9); for(k=0;k10;k+ +) printf(“%d“,ak); printf(“/n“); 则程序的运行结果是_。(分数:2.50)A.4321098765B.5678901234 C.0987654321D.0987651234解析:解析 该程序首先给一维数组赋值,然后三次调用 fun函数,其中 fun(a,0,3);的功能是将一维数组中的第 1个元素和第 4个元素互换,第 2个元素和第 3个元素互换;fun(a,4,9);的功能是将一维数组中的第 5个元素和第 10个元素互换,第 6个元素和第 9个元素互换,第 7个元素和第 8个元素互换;

39、fun(a,0,9);的功能是将将一维数组中的第 1个元素和第 10个元素互换,第 2个元素和第 9个元素互换依次类推。因此 B选项正确。19.设有两行定义语句: int scanf; float case; 则以下叙述正确的是_。(分数:1.00)A.两行定义语句都不合法B.两行定义语句都合法C.第 1行语句不合法D.第 2行语句不合法 解析:解析 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被 C语言保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。预定义标识符是系统已经有过定义的标识符,用户可以重新定义

40、,可以作为变量名。scanf为库函数名,属于预定义标识符,可以被用户重定义,所以第一行语句合法。case 为关键字,是选择结构 switch语句中的关键字,不可被用户重定义,所以第二行语句不合法。故 D选项正确。20.有如下程序: #include stdio.h struct person char name10; int age; main() struct person room4=“Zhang“,19,“Li“,20,“Wang“,17,“Zhao“,18; printf(“%s;%d/n“,(room+2)-name,room-age); 程序运行后的输出结果是_。(分数:1.00)

41、A.Wang:19 B.Wang:17C.Li:20D.Li:19解析:解析 可用以下 3种形式来引用结构体变量中的成员:结构体变量名.成员名;指针变量名-成员名;(*指针变量名).成员名。数组名是指向数组首地址,也可以当做指向数组的指针来使用。room+2指向数组第三个元素,(room+2)-name 为字符串 Wang;r00m 指向数组第一个元素,room-age=19。运行后的输出结果是 Wang:19,故 A选项正确。21.有如下程序: #include stdio.h main() if(“/0“ = 0) putehar(“X“); if(“0“ = 0) putehar(“Y“

42、); if(“a“b“) putchar(“Z“). printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)AX B.XYZC.YZDY解析:解析 字符所占内存为一个字节,故其 ASCII码值不能超过范围 0255,其中一些特殊字符/0的 ASCII码为 0,字符0的,ASCII 码值为 48,字符a的 ASCII码值为 97,字符b的ASCII码值为 98。putchar 函数是向标准输出设备上输出一个字符。程序执行过程为:判断“/0“=0 成立,输出 X,判断“0“=0 不成立,不输出,判断“a“b“不成立,不输出。故 A选项正确。22.下列叙述中正确的是_。(分数:1.

43、00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定 解析:解析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此 A错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此 B与 C错误,故本题答案为 D。23.下面选项中关于“文件指针”概念的叙述正确的是_。(分数:1.00)A.文件指针是程序中用 FILE定义的指针变量 B.文件指针就是文件位置指针,表示当前读写

44、数据的位置C.文件指针指向文件在计算机中的存储位置D.把文件指针传给 fscanf函数,就可以向文本文件中写入任意的字符解析:解析 文件指针的定义形式为 FILE*文件指针名,所以 A正确。24.有以下定义: struct personchar name9; int age; ; struct person class10=“Johu“, 17, “Paul“, 19, “Mary“, 18, “Adam“, 16,; 则下面能输出字母 M的语句是(分数:2.00)A.printf(“%c/n“, class3.name);B.printf(“%c/n“, class3.name1);C.pr

45、inff(“%c/n“, class2.name1);D.printf(“%c/n“, class2.name0); 解析:25.下列叙述中错误的是_。(分数:2.00)A.一个 C语言程序只能实现一种算法 B.C程序可以由多个程序文件组成C.C程序可以由一个或多个函数组成D.一个 C函数可以单独作为一个 C程序文件存在解析:解析 一个 C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个 C语言程序可以实现多种算法。26.执行以下语句段后,xy 的值是_。 int*pt,xy; xy=200; pt= xy=*pt+30;(分数:2.00)A.200B.170C.260D.230

46、 解析:27.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。(分数:2.00)A.必须是正数B.必须是整数值C.可以是任意合法的数值 D.必须是逻辑值解析:解析 “表达式”的值类型可以是合法的数值,但是都分为两类,0 是假,非 0是真。28.阅读下列程序,则运行结果为 #include “stdio.h“ fun() static int x=3; x+; return x; main() int i,x; for(i=0;i3;i+) x=fun(); printf(“%d/n“,x);(分数:1.00)A.3B.4C.5D.6 解析:解析 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续 3次

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

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

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