【计算机类职业资格】二级C语言笔试-420及答案解析.doc

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

1、二级 C语言笔试-420 及答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:40,分数:61.00)1.算法的空间复杂度是指A) 算法程序的长度 B) 算法程序中的指令条数C) 算法程序所占的存储空间 D) 执行算法需要的内存空间(分数:2.00)A.B.C.D.2.以下选项中可以作为 C语言中合法整数的是 _。A) 10110B B) 0386 C) 0Xffa D) x2a2(分数:2.00)A.B.C.D.3.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间

2、中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.4.在软件开发中,需求分析阶段产生的主要文档是( )。 A) 数据字典 B) 详细设计说明书 C) 数据流图说明书 D) 软件需求规格说明书(分数:1.00)A.B.C.D.5.在软件开发中,需求分析阶段产生的主要文档是_。A) 软件集成测试计划 B) 软件详细设计说明书C) 用户手册 D) 软件需求规格说明书(分数:1.00)A.B.C.D.6.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C)

3、 程序设计语言的先进性 D) 程序的易读性(分数:1.00)A.B.C.D.7.模块本身的内聚是模块独立性的重要性度量因素之一。在 7类内聚中,具有最强内聚的类是_。A) 顺序性内聚 B) 过程性内聚 C) 逻辑性内聚 D) 功能性内聚(分数:2.00)A.B.C.D.8.从 Windows环境进入 MS-DOS方式后,返回 Windows环境的 DOS命令为_。A) EXIT B) QUIT C) RET D) MSDOS(分数:1.00)A.B.C.D.9.在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段 C) 概念设计阶段 D) 物理

4、设计阶段(分数:1.00)A.B.C.D.10.下列说法正确的是( )。A) 一个 C程序可以有多个主函数B) 一个 C语言的函数中只允许有一对花括号C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内D) 在对 C程序进行编译时,可以发现注释行中的拼写错误(分数:2.00)A.B.C.D.11.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B.C.D.12.若有语句:char*line5;,以下叙述中正确的是A) 定义 line是一个数组,每个数组元

5、素是一个基类型为 char的指针变量B) 定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C) 定义 line是一个指针数组,语句中的。号称为间址运算符D) 定义 line是一个指向字符型函数的指针(分数:1.00)A.B.C.D.13.以下选项中能表示合法常量的是( )。 A) 整数:1,200 B) 实数:1.5E2.0 C) 字符斜杠:/ D) 字符串:“/007/(分数:1.00)A.B.C.D.14.下列不能正确表示代数式 2abcd的 C语言表达式是( )。A2*8-*b/c/d Ba*b/c/d*2Ca/c/d*b*2 D2*a*b/c*d(分数:1.00)

6、A.B.C.D.15.有以下程序段char ch; int kch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D.16.有定义语句:int b;char c10 ;则正确的输入语句是( )。A) seanf(“%d%s“ , B) scanf(“%d%s“,C) seanf(“%d%

7、s“,b,c); D) scanf(“%d%s“,b,(分数:1.00)A.B.C.D.17.有以下程序:#includestdio.hmain()int a=6,b=7,m=1;switch(a%2)case 0:m+;break;case 1 :m+;switch(b%2)defaut:m+;case0:m+;break;printf(“%d/n“,m);A) 1 B) 2 C) 3 D) 4(分数:1.00)A.B.C.D.18.有以下程序段int a,b,c;a=10; b=50; c=30;if(ab)a=b, b=c; c=a;printf(“a=%d b=%d c=%d/n“,a

8、,b,c);程序的输出结果是_。A) a=10 b=50 c=10 B) a=10 b=50 c=30C) a=10 b=30 c=10 D) a=50 b=30 c=50(分数:1.00)A.B.C.D.19.数字字符 0的 ASCII值为 48,若有以下程序main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-a);程序运行后的输出结果是_。(A) 3,2(B) 50,2(C) 2,2(D) 2,50(分数:2.00)A.B.C.D.20.下面程序的运行结果是#includestdio.hmain()int a=28,b;char s10,

9、*p;p=s;dob=a%16;if(b10) *p=b+48;else*p=b+55;p+;a=a/5;while(a0);*p=/0;puts(s);A) 10 B) C2 C) C51 D) /0(分数:2.00)A.B.C.D.21.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是_。A) n=0;while(chgetchar()!=/n)n+; B) n=0;while(getchar()!=/n)n+;C) for(n=0;getchar()!=/n;n+); D) n=0;for(ch=getchar();ch!=/n;n+);(分数:2.00)A.

10、B.C.D.22.有下列程序:#includestdio.hint f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,d);程序运行后的输出结果是( )。A10 B9 C8 D7(分数:1.00)A.B.C.D.23.有以下程序:#includestdio.hvoid fun(int*s,int nl,int n2)int i,j,t;i=nl;j=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main()int a10=1,2,3,4,5,6,7,8

11、,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“);程序运行的结果是_。A) 0987654321 B) 4321098765 C) 5678901234 D) 0987651234(分数:2.00)A.B.C.D.24.设有以下语句:char str1 =“string“mstr2 8,*str3,*str4=“string“;则 _不是对库函数的正确调用。A) strcpy(str1,“HELLO1“); B) strcpy(str2,“HELLO2“);C) strcpy(

12、str3,“HELLO3“); D) strcpy(str 4,“HELLO4“);(分数:2.00)A.B.C.D.25.以下程序运行后的输出结果是main( )char s=“ABCD“,*p;for(p=s+1;ps+4;p+)printf(“%s/n“,p);A) ABCDBCDCDDB) ABCDC) BCDD) BCDCDD(分数:2.00)A.B.C.D.26.设函数 fun的定义形式为:void fun(char ch,float x)则以下对函数 fun的调用语句中,正确的是_。A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8

13、); D) fun(32,32);(分数:2.00)A.B.C.D.27.若有定义语句:int a410,*p,*q4;且 0i4,则错误的赋值是( )。Ap=a Bqi=aiCp=ai Dp= B) char s5+A,B,C,D,E),C) char*s;s“ABCDE“; D) char*s;printf(“%SS);(分数:2.00)A.B.C.D.31.若有下列说明,则( )不是对 strcpy库函数的正确的调用。strcpy 库函数用于复制一个字符串:char*str1=“abcdt“,str210,*str3=“hijklmn“,*str42,*str5=“aaaa“;A) st

14、rcpy(str2,str1) B) strcpy(str3,str1)C) strcpy(str4,str1) D) strcpy(str5,str1)(分数:1.00)A.B.C.D.32.有以下程序段typedef struct node(int data; struct node *next;) *NODE;NODE p;以下叙述中正确的是_。(A) P是指向 struct node结构变量的指针的指针(B) NODE p;语句出错(C) P是指向 struct node结构变量的指针(D) P是 struct node结构变量(分数:2.00)A.B.C.D.33.下列叙述中错误的是

15、( )。A) 在 C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B) 在 C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C) 在 C语言中,外部变量的隐含类型是自动存储类别D) 在 C语言中,函数形参的存储类型是自动(auto)类型的变量(分数:2.00)A.B.C.D.34.有以下程序:#define f(x)(x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf(“%d,%d/n“,i1,i2);程序运行后的输出结果是_。A) 64,28 B) 4,4 C) 4,3 D) 64,64(分数:2.00)A.B

16、.C.D.35.有以下程序:#includestdio.hmain()FTLE*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“,n);fclose(fp);printf(“%d/n“,n);程序的运行结果是_。A) 12300 B) 123C) 1 D) 321(分数:2.00)A.B.C.D.36.以下函数值的类型是_。fun(float x)float y

17、;y=3*x-4;return y;A) int B) 不确定 C) void D) float(分数:2.00)A.B.C.D.37.如果需要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是( )。 A) fp=fopen(“FILE“,“r“); B) fp=fopen(“FILE“,“a+“); C) fp=fopen(“FILE“,“w+“); D) fp=fopen(“FILE“,“r+“);(分数:2.00)A.B.C.D.38.程序中若有如下说明和定义语句char fun(char *);main()char *s=“one“,a5=0,*f1)()=fun,ch;

18、以下选项中对函数 fun的正确调用语句是_。A) (*f1)(a); B) *f1(*s); C) fun( D) ch=*f1(s);(分数:1.00)A.B.C.D.39.fscanf函数的正确调用形式是( )。A) fscanf(文件指针,格式字符串,输出表列);B) fscanf(格式字符串,输出表列,文件指针);C) fscanf(格式字符串,文件指针,输入表列);D) fscanf(文件指针,格式字符串,输入表列);(分数:1.00)A.B.C.D.40.有以下程序段:int a10=1,2,3,4,5,6,7,8,9,10,*p=b=p5;则 b中的值是( )。A) 5 B) 6

19、 C) 8 D) 9(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:32.00)41.结构化程序设计的 3种基本结构分别是顺序、选择和 1。(分数:2.00)填空项 1:_42.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_43.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_44.有以下程序:main()char str=“xyz“, *ps=str;while(* ps)ps+;for(ps-; ps-str=0;ps-)puts(ps);执行后的输出结果是U /U。(分数:2.00)填空项 1:_45.若 a

20、=1,b=2,c=3,d=4;则条件表达式 ab?a:cd?c:d 的结果为 1。(分数:2.00)填空项 1:_46.下列程序的输出结果是_。#includestdio.hmain()int x=1,y=1,a=1,b=1;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;printf(“a=%d,b=%d/n“,a,b);(分数:2.00)填空项 1:_47.有以下程序,若运行时从键盘输入:18,11回车,则程序的输出结果是_。main()int a,b;printf(“Enter a,

21、b:“);scanf(“%d, %d“,a,b);while(a!=b)while(ab)a-=b;while(ba)b-=a;printf(“%3d%3d“,a,b);(分数:2.00)填空项 1:_48.下列程序的运行结果是_。#includestdio.hmain()int a,b,c,n;a=2;b=0;c=1;n=1;while(n=3)c=c*a;b=b+c;+n;printf(“b=%d“,b);(分数:2.00)填空项 1:_49.下列语句的输出结果是_。char s20= “aaaa“,*sp=s;puts(strcat(sp,“AAAAA“);(分数:2.00)填空项 1:

22、_50.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main()int t=0,s=0,i;for(i=1;i=5;i+)t=i+_;s=s+t;printf(“s=%d/n“,s);(分数:2.00)填空项 1:_51.设有定义:struct personint ID;char name12;p;请将 scanf(“%d“,_);语句补充完整,使其能够为结构体变量 p的成员 ID正确读入数据。(分数:2.00)填空项 1:_52.函数 void fun(float *sn,int n)的功能是:根据以下公式计算 s,计算结果通过形参指针 sn 传回;n通过形参传

23、入,n 的值大于或等于 0。请填空。*void fun(float *sn,int n)float s=0.0,w,f=-1.0;int i;for(i=0;i=n;i+)f=U /U * f;w=f/(2*i+1);s+=w;U /U=s;(分数:2.00)填空项 1:_53.下列程序运行后的输出结果是_。#includestdio.hmain()char s20;scanf(“%s“,s);printf(“%s“,s);运行程序,输入 HOW ARE YOU。(分数:2.00)填空项 1:_54.下面程序的功能是将一个字符串 str的内容倒序,请填空。#inelude stdioh#inc

24、lude strinshmain()int i,j,U /U;charstr=“1234567“;for(i=0,j=strlen(str)U /U;ij; i+,j-)k=stri;stri=strj;strj=k;printf(“%s/n“,str);(分数:2.00)填空项 1:_55.下列程序的功能是:将输入的正整数按逆序输出。例如:若输入 135则输出 531。请填空。#includestdio.hmain()int n,s;printf(“Enter a number:“);scanf(“%d“, _;while(n!=0);printf(“/n“);(分数:4.00)填空项 1:

25、_二级 C语言笔试-420 答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:40,分数:61.00)1.算法的空间复杂度是指A) 算法程序的长度 B) 算法程序中的指令条数C) 算法程序所占的存储空间 D) 执行算法需要的内存空间(分数:2.00)A.B.C.D. 解析:解析 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。2.以下选项中可以作为 C语言中合法整数的是 _。A) 10110B B) 0386 C) 0Xffa D) x2a2(分数:2.00)A.B

26、.C. D.解析:解析 C 语言中整型常量有 3种表示形式:十进制、八进制和十六进制。选项 A是二进制表示,错误;八进制的数字是 0、1、2、3、4、5、6、7,选项 B错误;十六进制整数常量用 0X开头,选项 D错误。3.下列叙述中正确的是( )。A) 线性链表的各元素在存储空间中的位置必须是连续的B) 线性链表的头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D. 解析:解析 在线性链表中,各元素在存储

27、空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。4.在软件开发中,需求分析阶段产生的主要文档是( )。 A) 数据字典 B) 详细设计说明书 C) 数据流图说明书 D) 软件需求规格说明书(分数:1.00)A.B.C.D. 解析:解析 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便。5.在软件开发中,需求分析阶段产生的主要文档是_。A) 软件集成测试计划 B) 软件详细设计说明书C) 用户手册 D) 软件需求规格说明书(分数:1.00)A.B.C.D. 解析:解析 本题考查的知识点是软件需求分析。软件需求规格说明书

28、是需求分析阶段的最后成果,是软件开发中的重要文档之一。6.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数:1.00)A.B.C.D. 解析:解析程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。7.模块本身的内聚是模块独立性的重要性度量因素之一。在 7类内聚中,具有最强内聚的类是_。A) 顺序性内聚 B) 过程性内聚 C) 逻辑性内聚 D) 功能性内聚(分数:2.00)A.B.C.D. 解析:评析 内聚性是一个模块内部

29、各元素间彼此结合的紧密程度的度量。内聚共有 7类,它们之间的内聚性由弱至强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺芋内聚和功能内聚。8.从 Windows环境进入 MS-DOS方式后,返回 Windows环境的 DOS命令为_。A) EXIT B) QUIT C) RET D) MSDOS(分数:1.00)A.B. C.D.解析:解析 EXIT 是指退出 cmd.exe程序,QUIT 指退出当前的连接(一般是用于 FTP连接),RET 是子程序返回指令。9.在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段 C) 概念

30、设计阶段 D) 物理设计阶段(分数:1.00)A.B. C.D.解析:解析 E-R 模型即实体-联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念以及它们之间的两种连接关系。数据库逻辑设计阶段包括的过程有:从 E-R图向关系模式转换,逻辑模式规范化及调整,实现规范化和 RDBMS,以及关系视图设计。10.下列说法正确的是( )。A) 一个 C程序可以有多个主函数B) 一个 C语言的函数中只允许有一对花括号C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内D) 在对 C程序进行编译时,可以发现注释行中的拼写错误(分数:2.00)A.B.C. D.解析:解析 本

31、题涉及 C语言基本的 3个知识点:C 语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;C 语言的标识符是由字母、数字、下划线组成的,可以是大写字母,而且标识符区分字母的大小写;C 程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释行中的错误。11.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B. C.D.解析:解析 选项 A中包含一个不合法的运算符“:=”;对于选项 C,应改为(int)1

32、8.5%3;对于选项D,可理解为两个表达式:a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以 a+7=c+h是错的。因此,正确答案是选项 B,它相当于 a=(b=c+2),可分解为两个表达式:b=c+2 和 a=b。12.若有语句:char*line5;,以下叙述中正确的是A) 定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量B) 定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C) 定义 line是一个指针数组,语句中的。号称为间址运算符D) 定义 line是一个指向字符型函数的指针(分数:1

33、.00)A. B.C.D.解析:解析 C 语言中比*优先级高,因此 line先与5结合,形成 line5形式,这是数组形式,它有 5个元素,然后再与 line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为 char的指针变量。13.以下选项中能表示合法常量的是( )。 A) 整数:1,200 B) 实数:1.5E2.0 C) 字符斜杠:/ D) 字符串:“/007/(分数:1.00)A.B.C.D. 解析:解析 选项 A),1200 中间不能有逗号,否则编译时会认为是 1或出错。选项 B),2.0 错误,必须为整数。选项 C),要表示字符斜杠常量/,应该在反斜杠的前面

34、再加上一个反斜杠。选项 D),字符串常量是用一对双引号括起来的一串字符。14.下列不能正确表示代数式 2abcd的 C语言表达式是( )。A2*8-*b/c/d Ba*b/c/d*2Ca/c/d*b*2 D2*a*b/c*d(分数:1.00)A.B.C.D. 解析:解析 本题考查运算符的优先级书写及运算。“*和/”运算优先级相同,据此判断,选项 D表示的是 2abd/c,而不是 2ab/(cd)。15.有以下程序段char ch; int kch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a的 ASCII码值为 97,则

35、执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D. 解析:解析 输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。16.有定义语句:int b;char c10 ;则正确的输入语句是( )。A) seanf(“%d%s“ , B) scanf(“%d%s“,C) seanf(“%d%s“,b,c);

36、 D) scanf(“%d%s“,b,(分数:1.00)A.B. C.D.解析:解析 scanf 函数中格式控制后面是地址表列,不能用变量名。数组名 c代表数组在内存的首地址,switch(a%2)case 0:m+;break;case 1 :m+;switch(b%2)defaut:m+;case0:m+;break;printf(“%d/n“,m);A) 1 B) 2 C) 3 D) 4(分数:1.00)A.B. C.D.解析:解析 本题考查 swish语句。第一个 switch语句,因为 a=6,a%2=0,所以执行 case 0,将 m加1,遇到 break语句跳出 switch语句

37、,结束循环。18.有以下程序段int a,b,c;a=10; b=50; c=30;if(ab)a=b, b=c; c=a;printf(“a=%d b=%d c=%d/n“,a,b,c);程序的输出结果是_。A) a=10 b=50 c=10 B) a=10 b=50 c=30C) a=10 b=30 c=10 D) a=50 b=30 c=50(分数:1.00)A. B.C.D.解析:评析 本题 if条件表达式“ab”的值为 0,所以不执行其后的 if语句“a-b,b=c;”,直接执行下一条语句“c=a”,故 c变量的值为 10,所以输出结果为“a=10 b=50 c=10”。19.数字字

38、符 0的 ASCII值为 48,若有以下程序main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-a);程序运行后的输出结果是_。(A) 3,2(B) 50,2(C) 2,2(D) 2,50(分数:2.00)A.B.C. D.解析:20.下面程序的运行结果是#includestdio.hmain()int a=28,b;char s10,*p;p=s;dob=a%16;if(b10) *p=b+48;else*p=b+55;p+;a=a/5;while(a0);*p=/0;puts(s);A) 10 B) C2 C) C51 D) /0(分数:

39、2.00)A.B.C. D.解析:命题目的 考查用字符指针处理字符串的方法。解题要点 语句“p=s;”是使指针 P指向字符数组 s。 *p 则引用了 p所指位置的数组元素。考点链接 通过指针来引用一维数组元素。21.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是_。A) n=0;while(chgetchar()!=/n)n+; B) n=0;while(getchar()!=/n)n+;C) for(n=0;getchar()!=/n;n+); D) n=0;for(ch=getchar();ch!=/n;n+);(分数:2.00)A.B.C.D. 解析:评析

40、本题主要考查了 while和 for循环语句的执行过程。for 循环的一般形式如下: for(表达式 1;表达式 2;表达式 3)循环体 for循环的执行过程如下:计算表达式 1;计算表达式 2。若其值为非 o,转步骤 3;若其值为 0,转步骤 5;执行次 for循环体:计算表达式 3,转向步骤 2:结束循环。在选项 D中,由于 for循环语句末尾直接是分号,没有循环体,因此可以将其看做条空循环语句,循环体部分可以忽略。程序首先在 for循环语句外为变量 n赋初值 0,在 for循环中,先执行表达式“cb=getchar();”,getchar 函数用于输入字符,因此程序首先将输入的字符赋值绐

41、变量 ch,然后执行表达式“ch!=/n;”,判断输入的字符是否为回车,如果此时输入的字符是回车,结束循环,所以 D选项错误。22.有下列程序:#includestdio.hint f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,d);程序运行后的输出结果是( )。A10 B9 C8 D7(分数:1.00)A.B. C.D.解析:解析 在 C语言中子函数 f(int x,int y)的功能是计算 y减去 x的差与 x之积。所以在主函数中,调用 f(a,b)的值等于 3,调

42、用 f(a,c)的值等于 6,然后再调用 f(3,6)的值等于 9,所以正确答案为选项 B。23.有以下程序:#includestdio.hvoid fun(int*s,int nl,int n2)int i,j,t;i=nl;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);fun(a,4,9);fun(a,0,9);for(k=0;k10;k+)printf(“%d“,ak);printf(“/n“);程序运行的结果是_。A) 0987654321 B) 4321098765

43、 C) 5678901234 D) 0987651234(分数:2.00)A.B.C. D.解析:解析 函数 fun的功能是:将数组 s中从 n1至 n2的元素首尾互换,然后将第 2个和倒数第 2个元素互换,依次类推,其实也就是将原来的元素倒置。执行 fun(a,0,3);将数组 a中的第 03 个元素互换,结果为 4 32 1;执行 fun(a,4,9);将数组 a中的第 49 个元素互换,结果为 0 9 8 7 65。此时 a中的元素依次为 4 3 2 1 0 9 8 7 6 5,执行 fun(a,0,9);再次将这 10个元素倒置,结果为 5 6 7 8 9 0 1 2 3 4。24.设

44、有以下语句:char str1 =“string“mstr2 8,*str3,*str4=“string“;则 _不是对库函数的正确调用。A) strcpy(str1,“HELLO1“); B) strcpy(str2,“HELLO2“);C) strcpy(str3,“HELLO3“); D) strcpy(str 4,“HELLO4“);(分数:2.00)A.B.C. D.解析:评析 C 语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C中的目的串指针 str3没有指向具体有效的存储单元,故是错误的调用。25.以下程序运行后的输出结果是main( )cha

45、r s=“ABCD“,*p;for(p=s+1;ps+4;p+)printf(“%s/n“,p);A) ABCDBCDCDDB) ABCDC) BCDD) BCDCDD(分数:2.00)A.B.C.D. 解析:解析 本题考查指向字符串指针的运算方法。执行 p=s+1后,指针变量 p就指向字符串中的第二个字符 B,然后输出字符串“BCD“并换行;继续执行循环语句,指针变量 p指向下一个字符 c,输出字符串“CD“,最后一次循环,p 指向字符“D“,输出字符串“D“。26.设函数 fun的定义形式为:void fun(char ch,float x)则以下对函数 fun的调用语句中,正确的是_。A

46、) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8); D) fun(32,32);(分数:2.00)A.B.C.D. 解析:解析 函数调用时,函数名必须与所调用的函数名完全一致且实参的个数必须与形参的个数一致,类型上也应按位置与形参一一对应匹配。选项 A中 abc是字符串,与形参不匹配;由于 fun函数的返回值类型为 vold,所以选项 B中进行了赋值操作是不正确的;选项 C中的65是不合法的表示形式,单引号中应该是单个字符。所以只有选项 D是合法的函数调用形式。27.若有定义语句:int a410,*p,*q4;且 0i4,则错误的赋值是( )

47、。Ap=a Bqi=aiCp=ai Dp= B) char s5+A,B,C,D,E),C) char*s;s“ABCDE“; D) char*s;printf(“%SS);(分数:2.00)A.B.C. D.解析:解析 字符串存储要有结束符“/0”且要占用一个空间,选项 A)、B)的空间不够;printf 用来输出字符,不能输入字符串。31.若有下列说明,则( )不是对 strcpy库函数的正确的调用。strcpy 库函数用于复制一个字符串:char*str1=“abcdt“,str210,*str3=“hijklmn“,*str42,*str5=“aaaa“;A) strcpy(str2,s

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

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

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