1、二级 C 语言笔试-290 及答案解析(总分:95.00,做题时间:90 分钟)一、选择题(总题数:50,分数:61.00)1.在下述程序中,判断 ij 共执行的次数是( )。#includestdiohmain()int i=0,j=10,k=2,s=0;for(;)i+ =k;if( ij)printf(“%d“,s);break;s+ =i;(分数:1.00)A.4B.7C.5D.62.若有以下程序:#includestdiohvoid f(int n);main()void f(int n);f(5);void f(int n)printf(“%d/n“,n);则以下叙述中不正确的是(
2、 )。(分数:1.00)A.若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 fB.若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC.对于以上程序,编译时系统会提示出错信息:对 f 函数重复说明D.函数 f 无返回值,所以可用 void 将其类型定义为无返回值型3.若有运算符,sizeof,B.main()int x,y,z;x=0,y=x+1;z=x+y;C.main()int x;int y;int z;x=0,y=x+1;z=x+y;D.main()int x,y,z;x=0;y=x+1;z=x+y,25.若运行以下程序时,从键盘输入
3、 ADescriptor回车,则下面程序的运行结果是 ( ) 。#includestdiohmain()char c;int v0=1,v1=0,v2=0;do switch(c=getehar()casea: caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1default:v0+=1;v2+=1;while(c! =/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);(分数:1.00)A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v
4、0=13,v1=4,v2=1226.在 C 语言中,退格符是( )。(分数:1.00)A./nB./tC./fD./b27.有以下程序:#include stdiohintf(intn)if(n=1) return 1;else return f(n-1)+1;main()int i,j=0;for(i=1; i3; i+) j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是( )。(分数:1.00)A.4B.3C.2D.128.检查软件产品是否符合需求定义的过程称为( )。(分数:1.00)A.确认测试B.集成测试C.验证测试D.验收测试29.软件生命周期中所花费用最多
5、的阶段是( )。(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护30.以下函数返回 a 所指数组中最大值所在的下标值:fun(int *a,int n)int i,j=0,p;p=j;for(i=j;in;i+)if(aiap)_;return(p);在下划线处应填入的内容是( )。(分数:1.00)A.i=pB.ap=aiC.p=jD.p=i31.有以下函数:char fun(char *P)return p;该函数的返回值是( )。(分数:1.00)A.无确切的值B.形参 p 中存放的地址值C.一个临时存储单元的地址D.形参 p 自身的地址值32.有如下程序段:int a
6、=14,b=15,x;char c=A;x=(avoid func2(int i);char st=“hello,friend!“;void funcl(int i)printf(“%c“,sti);if(i3)i+=2;func 2(i);void func 2(int i)printf(“%c“,sti);if(i3)i+=2;funcl(i);main()int i=0;funcl(i);printf(“/n“);(分数:2.00)A.helloB.helC.hloD.hlm44.结构化程序设计的三种结构是( )。(分数:2.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、
7、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构45.在 C 程序中,判断逻辑值时,分别用( )表示逻辑值“真”、“假”。(分数:2.00)A.非 0 0B.0 1C.非 0 非 0D.1 146.有以下程序:#includestdiohmain()FILE *fp;int i=20,j=30,k, n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“, i+,j-)k=stri;stri
8、=strj;strj=k;printf(“%s/n“,str);(分数:2.00)填空项 1:_65.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。#inelude stdiohmain()ehar b17=“0123456789ABCDEF“;int c64,d,i=0,base=16;long n;printf(“Enter a number:/n“);seanf(“%ld“,i+;n=n/base;while(n! =0);printf(“Transmite new base:/n“);for(-i; i=0;-i)d=ci;printf(“%c“,b 【18】 );prin
9、tf(“/n“);(分数:2.00)填空项 1:_66.若给 fun 函数的形参 s 传送字符串“6354abc“(其中表示空格字符),则函数的返回值是 【19】 。long fun(char s)long n; int sign;for(;isspace(*s);s+);sign=(*s=-)? -1:1;if(*s=+|*s=-) s+;for(n=0;isdigit(*s);s+)n=10*n+( *s-0);return sign*n;(分数:2.00)填空项 1:_67.设有定义:structint a;float b;charc; abc;*p_abc=B.main()int x,
10、y,z;x=0,y=x+1;z=x+y;C.main()int x;int y;int z;x=0,y=x+1;z=x+y;D.main()int x,y,z;x=0;y=x+1;z=x+y, 解析:解析 选项 A) 、B) 、C) 都没有错误。选项 D) 中的最后一条语句是以逗号结束的,而 C 语言中不能用逗号作为一条语句的结束标志,应该用分号,所以选项 D) 的程序是错误的。25.若运行以下程序时,从键盘输入 ADescriptor回车,则下面程序的运行结果是 ( ) 。#includestdiohmain()char c;int v0=1,v1=0,v2=0;do switch(c=ge
11、tehar()casea: caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1default:v0+=1;v2+=1;while(c! =/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);(分数:1.00)A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v0=13,v1=4,v2=12 解析:解析 由于只有 4 个元音字符,所以 v1=4,v0 和 v2 在循环 11 次中都要加 1,共循环 12 次,由于 v0 的初值为 1,所以 v
12、0=13,v2=12。26.在 C 语言中,退格符是( )。(分数:1.00)A./nB./tC./fD./b 解析:解析 /n 是回车换行符;/t 横向跳到下一制表位置;/f 是换页符;/b 是退格符。27.有以下程序:#include stdiohintf(intn)if(n=1) return 1;else return f(n-1)+1;main()int i,j=0;for(i=1; i3; i+) j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是( )。(分数:1.00)A.4B.3 C.2D.1解析:解析 在 main 函数中,j 的值是 f(1)和 f(
13、2)的值相加的结果。f(1)=1,f(2)=f(1)+1=2,j 的值为 1+2=3。28.检查软件产品是否符合需求定义的过程称为( )。(分数:1.00)A.确认测试 B.集成测试C.验证测试D.验收测试解析:解析 确认测试的任务是验证软件的功能柏性能及其他特性是否满足了需求规格说明中确定的各种需求以及软件配置是否完全、正确。29.软件生命周期中所花费用最多的阶段是( )。(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护 解析:解析 软件维护是软件生命周期的最后一个阶段,也是持续时间最长,花费最多的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。30.
14、以下函数返回 a 所指数组中最大值所在的下标值:fun(int *a,int n)int i,j=0,p;p=j;for(i=j;in;i+)if(aiap)_;return(p);在下划线处应填入的内容是( )。(分数:1.00)A.i=pB.ap=aiC.p=jD.p=i 解析:解析 该题目要求的是最大数的位置(下标)。程序通过对 a 所指数组中的元素进行逐个比较,记录最大数的下标 i,并把该下标记录在变量 p 中,所以,如果 aiap关系成立,应该把 i 的值赋给p,这样才满足题目的要求。31.有以下函数:char fun(char *P)return p;该函数的返回值是( )。(分数
15、:1.00)A.无确切的值B.形参 p 中存放的地址值 C.一个临时存储单元的地址D.形参 p 自身的地址值解析:解析 本题考查函数返回值的知识。函数返回值是通过函数中的 return 语句获得,return 语句中表达式的值就是所求函数的值,该表达式的值必须与函数的类型一致。若类型不一致,则以函数值的类型为准,由系统进行转换。32.有如下程序段:int a=14,b=15,x;char c=A;x=(avoid func2(int i);char st=“hello,friend!“;void funcl(int i)printf(“%c“,sti);if(i3)i+=2;func 2(i)
16、;void func 2(int i)printf(“%c“,sti);if(i3)i+=2;funcl(i);main()int i=0;funcl(i);printf(“/n“);(分数:2.00)A.helloB.helC.hlo D.hlm解析:解析 本题首先调用函数 funcl(0),输出 st0=h,i 值变为 2,再调用函数 func2(2),输出st2=1,此时 i3,执行 i+=2,i 值变为 4,然后再调用函数 funcl(4),输出 st4=o,此时 i 值大于3,函数调用结束。因此,输出结果为 hlo。44.结构化程序设计的三种结构是( )。(分数:2.00)A.顺序结
17、构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构 解析:解析 顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的三种基本结构。45.在 C 程序中,判断逻辑值时,分别用( )表示逻辑值“真”、“假”。(分数:2.00)A.非 0 0 B.0 1C.非 0 非 0D.1 1解析:解析 在 C 程序中,判断逻辑值时,用非 0 表示“真”,用 0 表示“假”。计算逻辑表达式时,逻辑表达式的值为“真”是用 1 表示的,若逻辑表达式的值为“假”,则用 0 表示。46.有以下程序:#includestdiohmain()FI
18、LE *fp;int i=20,j=30,k, n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“, k+)和要求的 akk可以得出本题的答案应该是 951。49.以下四个选项中,不能看作一条语句的是( )。(分数:2.00)A.;B.a=5,b=2.5,c=3.6;C.if(a5);D.if(b! =5)x=2;y=6; 解析:解析 选项 D) 为两条语句,每条语句以分号结束。50.以下叙述中正确的是( )。(
19、分数:2.00)A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数C.main 函数必须放在其他函数之前D.所有被调用函数一定要在调用之前进行定义解析:解析 C 程序是由函数构成的,A) 正确;main 函数可以放在其他函数之前,也可以放在其他函数之后,C) 错误;函数可以嵌套调用,但不能嵌套定义,B) 错误;被调用函数可以在调用之后定义,但需要在调用前声明,D) 错误。二、填空题(总题数:17,分数:34.00)51.数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据的逻辑结构是指反映数据元素之
20、间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。52.在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。(分数:2.00)填空项 1:_ (正确答案:继承)解析:解析 类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。53.耦合和内聚是评价模块独立性的两个主要标准,其中 【3】 反映了模块内各成分之间的联系。(分数:2.00)填空项 1:_ (正确答案:内聚)解析:解析 内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。54.一个项目有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 【4】 的联系。