【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc

上传人:周芸 文档编号:1329723 上传时间:2019-10-17 格式:DOC 页数:16 大小:92KB
下载 相关 举报
【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc_第1页
第1页 / 共16页
【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc_第2页
第2页 / 共16页
【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc_第3页
第3页 / 共16页
【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc_第4页
第4页 / 共16页
【计算机类职业资格】全国计算机等级考试二级C语言真题2010年9月及答案解析.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、全国计算机等级考试二级 C 语言真题 2010 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列叙述中正确的是( )。(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构D.上述三种说法都不对2.下列叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指

2、针不变,栈中元素随栈顶指针的变化而动态变化D.上述三种说法都不对3.软件测试的目的是( )。(分数:2.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误4.下面描述中,不属于软件危机表现的是( )。(分数:2.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高5.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程6.面向对象方法中,继承是指( )。(分数:2.00)A.一组对象所具有的相似

3、性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制7.层次型、网状型和关系型数据库划分原则是( )。(分数:2.00)A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(分数:2.00)A.一对一B.一对多C.多对多D.多对一9.数据库设计中反映用户对数据要求的模式是( )。(分数:2.00)A.内模式B.概念模式C.外模式D.设计模式10.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.交C.投影D.并11

4、.以下关于结构化程序设计的叙述中正确的是( )。(分数:1.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto 语句会很便捷C.在 C 语言中,程序的模块化是利用函数实现的D.由三种基本结构构成的程序只能解决小规模的问题12.以下关于简单程序设计的步骤和顺序的说法中正确的是( )。(分数:1.00)A.确定算法后,整理并写出文档,最后进行编码和上机调试B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构13

5、.以下叙述中错误的是( )。(分数:1.00)A.C 程序在运行过程中所有计算都以二进制方式进行B.C 程序在运行过程中所有计算都以十进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中整型变量只能存放整数,实型变量只能存放浮点数14.有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。(分数:1.00)A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x15.以下选项中能表示合法常量的是( )。(分数:1.00)A.整数:1,200B.实数:1.5E2.0C.字符斜杠:/D.字符串:“/007“16.

6、表达式 a+=a-=a=9 的值是( )。(分数:1.00)A.9B.-9C.18D.017.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是( )。(分数:1.00)A.ab+cB.ch=getchat()C.a=b+cD.a+18.有以下程序: #includestdio.h main() int a=1,b=0; if(!a)b+: else if(a=0) if(a)b+=2; else b+=3: printf(“%d/n“,b); 程序运行后的输出结果是( )。(分数:1.00)A.0B.1C.2D.319.若有定义语句 int a,b;

7、double x;则下列选项中没有错误的是( )。(分数:1.00)A.switch(x%2) cage 0:a+;break; case 1:b+;break; default:a+;b+; B.switch(int)x/2.0) ease 0:a+;break; case 1:b+;break; default:a+;b+; C.switeb(int)x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D.switch(int)(x)%2) case 0.0:a+;break; case 1.0:b+;break; default:a

8、+;b+; 20.有以下程序 #includestdio.h main() int a=1,b=2; while(a6)b+=a;a+=2;b%=10; printf(“%d,%d、n“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.5,11B.7,1C.7,11D.6,121.有以下程序 #includestdio.b main() int y=10; While(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是( )。(分数:2.00)A.y=0B.y=-1C.y=1D.while 构成无限循环22.有以下程序 #includestdio.h ma

9、in() char S=“rstuv“; printf(“%c/n“,*s+2); 程序运行后的输出结果是( )。(分数:2.00)A.tuvB.字符 t 的 ASCII 码值C.tD.出错23.有以下程序 #includestdio.h #includestring.b main() char x=“STRING“; x0=0;x1=/0;x2=0; printf(“%d%d/n“,sizeof(x),strlen(x); 程序运行后的输出结果是( )。(分数:2.00)A.6 1B.7 0C.6 3D.7 124.有以下程序 #includestdio.h int f(int x); ma

10、in() int n=1,m; m=f(f(f(n);printf(“%d/n“,m); int f(int x) return x*2; 程序运行后的输出结果是( )。(分数:2.00)A.1B.2C.4D.825.以下程序段完全正确的是( )。(分数:2.00)A.int *p;scanf(“%d“,p);B.int *p;scanf(“%d“,p);C.int k,*p=k;scanf(“%d“,p)D.int k,*p;*p=k;scanf(“%d“,p)26.有定义语句:int*p4;以下选项中与此语句等价的是( )。(分数:2.00)A.int p4;B.int *p;C.int*

11、(p4);D.int(*p)4;27.下列定义数组的语句,正确的是( )。(分数:2.00)A.int N=10; int xN;B.#define N 10 int xN;C.int x010;D.int x;28.若要定义一个具有 5 个元素的整型数组,以下错误的定义语句是( )。(分数:2.00)A.int a5=0;B.int b=0,0,0,0,0;C.int c2+3;D.int i=5,di;29.有以下程序 #includestdio.h void f(int *p); main() int a5=1,2,3,4,5),*r=a; f(r);printf(“%d/n“,*r);

12、 void f(int *P) p=p+3;printf(“%d,“,*p); 程序运行后的输出结果是( )。(分数:2.00)A.1,4B.4,4C.3,1D.4,130.有以下程序(函数 fun 只对下标为偶数的元素进行操作) #includestdio.h void fun(int *a,int n) int i,j,k,t; for(i=0;in-1;i+=2) k=i; for(j=i;jn;j+=2)if(ajak)k=j; t=ai;ai=ak;ak=t; main() int aa10=1,2,3,4,5,6,7),i; fun(aa,7); for(i=0;i7;i+)pri

13、ntf(“%d,“,aai); printf(“/n“); 程序运行后的输出结果是( )。(分数:2.00)A.7,2,5,4,3,6,1B.1,6,3,4,5,2,7C.7,6,5,4,3,2,1D.1,7,3,5,6,2,131.下列选项中,能够满足“若字符串 s1 等于字符串 s2,则执行 ST”要求的是( )。(分数:2.00)A.if(strcmp(s2,s1)=0)ST;B.if(s1=s2)ST;C.if(strcpy(s1,s2)=1)ST;D.if(s1-s2=0)ST;32.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是( )。(分数:2.00)A.while(

14、*t= *s)t+;s+;)B.for(i=0;ti=si;i+);C.do*t+=*s+;while(*s);D.for(i=0,j=0;ti+=sj+;);33.有以下程序(strcat 函数用以连接两个字符串) #includestdio.h #includestring.h main() char a20=“ABCD/0EFG/0“,b=“IJK“; strcat(a,b);printf(“%s/n“,a); 程序运行后的输出结果是( )。(分数:2.00)A.ABCDE/0FG/0IJKB.ABCDIJKC.IJKD.EFGIJK34.有以下程序,程序中库函数 islower(ch)

15、用以判断 ch 中的字母是否为小写字母 #includestdio.h #includectype.h void fun(char*P) int i=0; while(pi) if(pi=islower(pi-1)pi-1=pi-1-a+A; i+: main() char s1100=“ab cd EFG!“; fun(s1);printf(“%s/n“,s1); 程序运行后的输出结果是( )。(分数:2.00)A.ab cd EFG!B.Ab Cd EFg!C.aB cD EFG!D.ab cd EFg!35.有以下程序 #includestdio.h void fun(int x) if

16、(x/21)fun(x/2); printf(“%d“,x); main() fun(7);printf(“/n“);) 程序运行后的输出结果是( )。(分数:2.00)A.1 3 7B.7 3 1C.7 3D.3 736.有以下程序 #includestdio.h int fun() static int x=1; x+=1;return x: main() int i,s=1; for(i=1;i=5;i+)s+=fun(); printf(“%d/n“,s); 程序运行后的输出结果是( )。(分数:2.00)A.11B.21C.6D.12037.有以下程序 #includestdio.h

17、 #includestdlib.h main() int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int); *a=1;*b=2,*c=3; a=b: printf(“%d,%d,%d/n“,*a,*b,*c); 程序运行后的输出结果是( )。(分数:2.00)A.3,3,3B.2,2,3C.1,2,3D.1,1,338.有以下程序 #includestdio.h main() hat s,t,A=10;double B=6; s=sizeof(A);t=sizeof(B);printf(“%d,%d/n“,s,t); 在 VC6 平台上编译运行,程序运行后的输

18、出结果是( )。(分数:2.00)A.2,4B.4,4C.4,8D.10,639.若有以下语句 typedef struct S int g;char h;T; 以下叙述中正确的是( )。(分数:2.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量C.S 是 struct 类型的变量D.T 是 struct S 类型的变量40.有以下程序 includestdioh main() short c=124; c=c_; printf(“dn”、C); 若要使程序的运行结果为 248,应在下划线处填入的是(分数:2.00)A.2B.|248C.0248D.1二、B填空题/B(总题数:

19、15,分数:30.00)41.一个栈的初始状态为空。首先将元素 5,4,3,2,1 依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为U (1) /U。(分数:2.00)填空项 1:_42.在长度为 n 的线性表中,寻找最大项至少需要比较U (2) /U次。(分数:2.00)填空项 1:_43.一棵二叉树有 10 个度为 1 的结点,7 个度为 2 的结点,则该二叉树共有U (3) /U个结点。(分数:2.00)填空项 1:_44.仅由顺序、选择(分支)和重复(循环)结构构成的程序是U (4) /U程序。(分数:2.0

20、0)填空项 1:_45.数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和U (5) /U。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是U (6) /U。 #includestdio.h main() int a=200,b=010; printf(“%d%d/n“,a,b); (分数:2.00)填空项 1:_47.有以下程序 #includestdio.h main() int x,y; scarf(“%2d%1d“,x,y);printf(“%d/n“,x+y); 程序运行时输入:1234567,程序的运行结果是U (7) /U。(分数:2.00)填空项 1:_48

21、.在 C 语言中,当表达式值为 0 时表示逻辑值“假”,当表达式值为U (8) /U时表示逻辑值“真”。(分数:2.00)填空项 1:_49.有以下程序 #includestdio.h main() int i,n=0,0,0,0,0; for(i=l;i=4;i+) ni=ni-1*3+1;printf(“%d“,ni); 程序运行后的输出结果是U (9) /U(分数:2.00)填空项 1:_50.以下 fun 函数的功能是:找出具有 N 个元素的一维数组中的最小值,并作为函数值返回,请填空。(设 N 已定义) int fun(int xN) int i,k=0; for(i=0;iN;i+

22、) if(xixk)k=U (10) /U; return xk; (分数:2.00)填空项 1:_51.有以下程序: #inciudestdio.h int *f(int *P,int *q); main() int m=1,n=2,*r=m; r=f(r,n);printf(“%d/n“,*r); int *f(int*p,int*q) return(*p*q)?p:q; 程序运行后的输出结果是U (11) /U(分数:2.00)填空项 1:_52.以下 fun 函数的功能是在 N 行 M 列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设 M,N 已定义) int fun(i

23、nt aNM) int i,j,row=0,co1=0; for(i=0;iN;i+) for(i=0;jM;j+) if(aijarowco1)row=i;co1=j; return U(12) /U; (分数:2.00)填空项 1:_53.有以下程序 #includestdio.h main() int n2,ij; for(i=0;i2;i+)ni=0; for(i=0;i2;i+) for(j=0;j2;j+)nj=ni+1; printf(“%d/n“,n1); 程序运行后的输出结果是U (13) /U。(分数:2.00)填空项 1:_54.以下程序的功能是:借助指针变量找出数组元素

24、中最大值所在的位置并输出该最大值。请在输出语句处填写代表最大值的输出项。 #includestdio.h main() int a10,*P,*s; for(p=a;p-a10;p+)scanf(“%d“,p); for(p=a,s=a;p-a10;p+)if(*p*s) s=p; printf(“max=%d/n“,U (14) /U; (分数:2.00)填空项 1:_55.以下程序打开新文件 f.txt,并调用字符输出函数将 a 数组中的字符写入其中,请填空。 #includestdio.h main() U (15) /U*fp: char a5=1,2,3,4,5,i; fp=fope

25、n(“f.txt“,“w“); for(i=0;i5;i+)fputc(ai,fp); fclose(fp); (分数:2.00)填空项 1:_全国计算机等级考试二级 C 语言真题 2010 年 9 月答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列叙述中正确的是( )。(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构D.上述三种说法都不对解析:解析 线性表的存储分为顺序存储和

26、链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。2.下列叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.上述三种说法都不对解析:解析

27、 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。3.软件测试的目的是( )。(分数:2.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误 解析:解析 软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。4.下面描述中,不属于软件危机表现的是( )。(分数:2.00)A.软件过程不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析 软件危机主要表现在以下 6 个方面: 软件

28、需求的增长得不到满足。 软件开发成本和进度无法控制。 软件质量难以保证。 软件不可维护或维护程序非常低。 软件的成本不断提高。 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。5.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程解析:解析 软件生命周期是指软件产品从提出、实现、使用、维护到停止使用、退役的过程。6.面向对象方法中,继承是指( )。(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之

29、间共享属性和操作的机制 解析:解析 面向对象方法中,继承是使用已有的类定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。7.层次型、网状型和关系型数据库划分原则是( )。(分数:2.00)A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式 解析:解析 根据数据之间的联系方式,可以把数据库分为层次型、网状型和关系型数据库,它们是根据数据之间的联系方式来划分的。8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(分数:2.00)A.一对一B.一对多C.多对多 D.多对一解析

30、:解析 如果一个工作人员只能使用一台计算机且一台计算机只能被一个工作人员使用,则关系为一对一;如果一个工作人员可以使用多台计算机,但是一台计算机只能被一个工作人员使用,则关系为一对多;如果一个工作人员可以使用多台计算机,一台计算机也可以被多个工作人员使用,则关系为多对多。9.数据库设计中反映用户对数据要求的模式是( )。(分数:2.00)A.内模式B.概念模式C.外模式 D.设计模式解析:解析 概念模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描

31、述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。 外模式对应于用户级,它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,也称为子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它反映了用户对数据的要求。包含模式中允许特定用户使用的那部分数据,用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行描述。 内模式,对应于物理级,它是数据库

32、中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。10.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接 B.交C.投影D.并解析:解析 选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。投影也是单目运算,该运算从表中选出指定的属性值组成一个新表。自然连接是一种特殊的等价连接,它将表中有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。11.以下关于结构化程序设

33、计的叙述中正确的是( )。(分数:1.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto 语句会很便捷C.在 C 语言中,程序的模块化是利用函数实现的 D.由三种基本结构构成的程序只能解决小规模的问题解析:解析 C 语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来,goto 就成了有争议的语句。首先,由于 goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto 语句

34、经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。Goto 语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。12.以下关于简单程序设计的步骤和顺序的说法中正确的是( )。(分数:1.00)A.确定算法后,整理并写出文档,最后进行编码和上机调试B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构解析:解析 对于简单程序设计的步骤是首先在确定数据结构,然后确定

35、算法,再编码并上机调试,最后整理文档。13.以下叙述中错误的是( )。(分数:1.00)A.C 程序在运行过程中所有计算都以二进制方式进行B.C 程序在运行过程中所有计算都以十进制方式进行 C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中整型变量只能存放整数,实型变量只能存放浮点数解析:解析 计算机程序都是编译为二进制的代码,计算机才会执行。14.有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。(分数:1.00)A.a%(int)(x-y)B.a=x!=y; C.(a*y)%bD.y=x+y=x解析:解析 选项 A),若 x 和 y 相

36、等,则分母为 0,出现除 0 错误。选项 C),double 类型不能进行取余(%)操作,要求两个运算数必须是整数。选项 D),x+y=x 错误。15.以下选项中能表示合法常量的是( )。(分数:1.00)A.整数:1,200B.实数:1.5E2.0C.字符斜杠:/D.字符串:“/007“ 解析:解析 选项 A),1200 中间不能有逗号,否则编译时会认为是 1 或出错。选项 B),2.0 错误,必须为整数。选项 C),要表示字符斜杠常量/,应该在反斜杠的前面再加上一个反斜杠。选项 D),字符串常量是用一对双引号括起来的一串字符。16.表达式 a+=a-=a=9 的值是( )。(分数:1.00

37、)A.9B.-9C.18D.0 解析:解析 第一步 a=9,然后计算 a-a 的值,并将此值赋给 a,因此此时 a=0,最后计算 a+a,并将此值赋给 a,因此最终结果为 0。17.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是( )。(分数:1.00)A.ab+c B.ch=getchat()C.a=b+cD.a+解析:解析 在 if()语句的括号是一个合法的 C 语言表达式即可,如果表达式的值为 0,则不执行 if 语句,否则执行 if 语句,而在选项 A 中,符号不是 C 语言的合法运算符,如果要表达 a 大于或小于b+c 可用 a!=b+c

38、 或(ab+c)|(ab+c)来表达,而不能使用 ab+c。所以它不是一个合法的 C 语言表达式。18.有以下程序: #includestdio.h main() int a=1,b=0; if(!a)b+: else if(a=0) if(a)b+=2; else b+=3: printf(“%d/n“,b); 程序运行后的输出结果是( )。(分数:1.00)A.0 B.1C.2D.3解析:解析 本题考查 if else 语句。最开始 a=1,b=0;此时 if(!a)不成立,转到执行 else if(a=0),由于 a=1,导致对应的语句 if(a)b+=2;else b+=3;不会执行,

39、所以 b 的值没有改变,最后执行printf(“%d/n”,b);输出 0。19.若有定义语句 int a,b;double x;则下列选项中没有错误的是( )。(分数:1.00)A.switch(x%2) cage 0:a+;break; case 1:b+;break; default:a+;b+; B.switch(int)x/2.0) ease 0:a+;break; case 1:b+;break; default:a+;b+; C.switeb(int)x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D.switch(in

40、t)(x)%2) case 0.0:a+;break; case 1.0:b+;break; default:a+;b+; 解析:解析 %运算符两边的表达式必须是整型,所以选项 A)、B)错误。选项 D 中 switch 后的表达式类型和 case 后的表达式类型不一致。20.有以下程序 #includestdio.h main() int a=1,b=2; while(a6)b+=a;a+=2;b%=10; printf(“%d,%d、n“,a,b); 程序运行后的输出结果是( )。(分数:1.00)A.5,11B.7,1 C.7,11D.6,1解析:解析 程序的执行过程如下: a=1 时,

41、b=b+a=3,a=a+2=3,b=b%10=3; a=3 时,b=b+a=6,a=3+2=5,b=b%10=6; a=5 时,b=b+a=11,a=a+2=7,b=b%10=1。 此时 a=76 不满足循环条件,退出循环,此时 a=7,b=1。21.有以下程序 #includestdio.b main() int y=10; While(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是( )。(分数:2.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:解析 在 while 循环中每次变量 y 的值减 1,直到其值等于 0 时退出循环,这时 y

42、 的再减 1 变为-1。22.有以下程序 #includestdio.h main() char S=“rstuv“; printf(“%c/n“,*s+2); 程序运行后的输出结果是( )。(分数:2.00)A.tuvB.字符 t 的 ASCII 码值C.t D.出错解析:解析 本题考查字符变量,s 是字符指针,*s 为即 s0,*s+2 相当于将指针后移两位,然后取其值。s 后移 2 位则指向字符 t,所以输出 t。23.有以下程序 #includestdio.h #includestring.b main() char x=“STRING“; x0=0;x1=/0;x2=0; print

43、f(“%d%d/n“,sizeof(x),strlen(x); 程序运行后的输出结果是( )。(分数:2.00)A.6 1B.7 0 C.6 3D.7 1解析:解析 sizeof(表达式)的功能是返回“表达式”结果所占机器“字节”的大小。strlen(字串)的功能是计算“字串”中的/0之前的字符个数。二者都可以用来取字符串长度,不同之处在于 sizeof 取到的字符串长度包括字符串结束标记/0,而 strlen 得到的长度则不包括/0,而/0在字符串中是不显示的,所以 sizeof 得到的字符串长度要比 strlen 得到的字符串长度大 1。本题中 sizeof。求得的为数组分配的空间的大小,

44、字符串“STRING”6 个字符再加上最后的/0,为 7 个字符。strlen 遇见 0 或/0结束统计,所以为 0。24.有以下程序 #includestdio.h int f(int x); main() int n=1,m; m=f(f(f(n);printf(“%d/n“,m); int f(int x) return x*2; 程序运行后的输出结果是( )。(分数:2.00)A.1B.2C.4D.8 解析:解析 根据函数 f(int x)的定义可以知,函数 f 每执行一次变量 x 的值乘以 2,所以在主函数中,函数 f 共嵌套执行了 3 次,所以对变量 n 的值连续 3 次乘以 2,

45、所以 m 的值等于 8。25.以下程序段完全正确的是( )。(分数:2.00)A.int *p;scanf(“%d“,p);B.int *p;scanf(“%d“,p);C.int k,*p=k;scanf(“%d“,p) D.int k,*p;*p=k;scanf(“%d“,p)解析:解析 选项 A)错在没有对指针进行初始化,无效指针,并且在 scanf(“%d“,p)中无需再进行取地址操作。选项 B)没有对指针进行初始化,无效指针。选项 D),语句*p=k;的左端*p 是指针所指内存空间的值,k 是地址,应为 p=k。26.有定义语句:int*p4;以下选项中与此语句等价的是( )。(分数

46、:2.00)A.int p4;B.int *p;C.int*(p4); D.int(*p)4;解析:解析 int *p2;首先声明了一个数组,数组的元素是 int 型的指针。int(*p)2;声明了一个指针,指向了一个有两个 int 元素的数组。其实这两种写法主要是因为运算符的优先级,因为的优先级比*高。所以第一种写法,p 先和结合,所以是一个数组,后与*结合,是指针。后一种写法同理。27.下列定义数组的语句,正确的是( )。(分数:2.00)A.int N=10; int xN;B.#define N 10 int xN; C.int x010;D.int x;解析:解析 数组说明的一般形式为:类型说明符数组名常量表达式;其中类型说明符可以是任一种基本数据类型或构造数据类型,数组名是定义的数组标识符。常量表达式表示数据元素的个数,也就是数组的长度,必须是整型常量。28.若要定义一个具有 5 个元素的整型数组,以下错误的定义语句是( )。(分数:2.00)A.int a5=

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

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

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