1、二级 C 语言笔试-363 及答案解析(总分:104.00,做题时间:90 分钟)一、选择题(总题数:50,分数:69.00)1.数字字符 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(分数:1.00)A.B.C.D.2.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定这属于算法的_。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:2.00)A.B.C.D.3.运行下列程序时,
2、若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=a; a=b; b=t;if(ac)t=a; a=c; c=t;if(bc)t=-b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,c);A) 1.002.003.00B) 1.003.002.00C) 132D) 3.0000002.0000001.000000(分数:1.00)A.B.C.D.4.在单链表中,增加头结点的目的是A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单链表是线性表的链
3、式存储实现(分数:2.00)A.B.C.D.5.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大C) 各模块之间的联系应尽量紧密D) 模块内具有高内聚度,模块间具有低耦合度(分数:2.00)A.B.C.D.6.有以下程序main( )int i;for(i=0;i3;i+)switch(i)case 0:printf(“%d“,i);case 2:printf(“%d“,i);default:printf(“%d“,i);程序运行后的输出结果是A)022111B)021021C)000122D)012 (分数:1.00)A.B.C.D.7.以下选项中
4、不属于字符常量的是( )。A) C B) “C“ C) /xCC D) /072(分数:1.00)A.B.C.D.8.下列叙述中正确的是_。A) 程序设计就是编制程序 B) 程序的测试必须由程序员自己去完成C) 程序经调试改错后还应进行再测试 D) 程序经调试改错后不必进行再测试(分数:2.00)A.B.C.D.9.以下程序的输出结果是_。main()int num=0while(num=2)num+; printf(“%d/n“,num);A) 1 2 3 4B) 1 2 3C)1 2D)1(分数:1.00)A.B.C.D.10.有以下程序:main()int s=0,a=1,n;scanf
5、(“%d“,dos+=1; a=a-2;while (a!=n);printf(“%d/n“,s);若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。A) -1 B) -3 C) -5 D) 0(分数:1.00)A.B.C.D.11.若有下列定义(设 int 类型变量占 2 个字节):float x=123.4567;则下列语句:printf(“x=%5.2f“,x);输出的结果是( )。A) x=123.46 B) 123.4567 C) x=123.4567 D) 123.46(分数:2.00)A.B.C.D.12.以下 4 个选项中,不能看作一条语句的是A) ; B) a=
6、5,b=2.5,c=3.6;C) if(a5); D) if(b!=5)x=2;y=6;(分数:2.00)A.B.C.D.13.在函数调用过程中,如果函数 funA 调用了函数 funB,函数 funB 又调用了函数 funA,则( )。A) 称为函数的直接递归调用 B) 称为函数的间接递归调用C) 称为函数的循环调用 D) C 语言中不允许这样的递归调用(分数:1.00)A.B.C.D.14.冒泡排序在最坏情况下的比较次数是( )。A) n(n+1)/2 B) nlog2n C) n(n-1)/2 D) n/2(分数:2.00)A.B.C.D.15.有以下程序:#includestdio.h
7、#includestring.htypedef structchar name9;char sex;float score2;STU;STU f(STU a)STU b=“Zhao“,m,85.0,90.0;int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i,2;i+)a.scorei=b.scorei;return a;main()STU c=“Qian“,f,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f%2.0f/n“,d.name,d.sex,d.score0,d.score1);程序的运行结果是_。A) Q
8、ian,f,95,92 B) Qian,85,90C) Zhao,m,85,90 D) Zhao,f,95,92(分数:2.00)A.B.C.D.16.数据结构中,与所使用的计算机无关的是数据的A) 存储结构 B) 物理结构 C) 逻辑结构 D) 物理和存储结构(分数:2.00)A.B.C.D.17.设有定义:longx-123456L;,则以下能够正确输出变量 x 值的语句是A) printf(“x=%d/n“,x); B) printf(“x=%1d/n“,x);C) printf(“x=%8dL/n“,x); D) printf(“x=%LD/n“,x);(分数:1.00)A.B.C.D
9、.18.有以下的程序#includestdio.hvoid fun(char *fname,char *st)FILE *myf; int i;myf=fopen(fname,“w“);for(i=0;istrlen(st);i+)fputc(sti,myf);fclose(myf);main()fun(“test.t“,“new world“);fun(“test.t“,“hello,“);程序执行后,文件 testt 中的内容是 ( )A) hello, B) new worldhello, C) new world D) hello,rld(分数:1.00)A.B.C.D.19.有以下程
10、序:main()int i=0,S=0;doif(i%2)i+;continue;i+;s+=i;)while(i7);printf(“%d/n“,s);执行后输出结果是( )。A) 16 B) 12 C) 28 D) 21(分数:1.00)A.B.C.D.20.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细没计属于( )。A定义阶段 B开发阶段C维护阶段 D上述三个阶段(分数:1.00)A.B.C.D.21.为了避免嵌套的 if-else 的二义性,C 语言规定:else 与_配对。A) 缩排位置相同的 if B) 其之前最近的 ifC) 其之后最近的 if D) 同一行上的 if(分
11、数:1.00)A.B.C.D.22.有下列程序:#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.23.设有如下程序:fun(float*p1,int n,float*p2,int m,float*s)int i;*s=0.0;for(i=0;in;i+)*s+=*p1+;for(i=0;im
12、;i+)*s+=*p2+;main()float a=1.1,2.2,b=1.0,2.0,3.0),*s=a;fun(a,2,b,3,s);printf(“%f/n“,*s);上面程序的输出结果是_。A) 8.200000 B) 9.300000C) 3.300000 D) 1.100000(分数:1.00)A.B.C.D.24.以下不正确的叙述是A) 在 C 程序中,逗号运算符的优先级最低B) 在 C 程序中,APH 和 aph 是两个不同的变量C) 若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变D) 当从键盘输入数据时,对于整型变量只
13、能输入整型数值,对于实型变量只能输入实型数值(分数:1.00)A.B.C.D.25.下面描述中,不符合结构化程序计风格的是_。A) 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B) 自顶向下C) 注重提高程序的执行效率D) 限制使用 goto 语句(分数:1.00)A.B.C.D.26.下列有关数据库的描述,正确的是( )。 A) 数据库设计是指设计数据库管理系统 B) 数据库技术的根本目标是要解决数据共享的问题 C) 数据库是一个独立的系统,不需要操作系统的支持 D) 数据库系统中,数据的物理结构必须与逻辑结构一致(分数:2.00)A.B.C.D.27.在软件开发过程中,软
14、件结构设计是描述_。A) 数据存储结构 B) 软件体系结构C) 软件结构测试 D) 软附控制挝程(分数:1.00)A.B.C.D.28.有以下程序:#includestdio.hmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+)csi+;for(i=1;i5;i+)printf(“%d“,ci);printf(“/n“);程序的运行结果是_。A) 1 2 3 4 B) 2 3 4 4C) 4 3 3 2 D) 1 1 2 3(分数:2.00)A.B.C.D.29.设 a、b、c、d、m、n 均为 int 型变量,且 a=5、
15、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)该程序中的 for 循环执行的次数是_。A) 5 B) 6 C) 7 D) 8(分数:1.00)A.B.C.D.37.要求以下程序的功能是计算 (分数:1.00)A.B.C.D.38.若以下选项中的变量已正确定义,则正确的赋值语句足A) x1=26.8%3; B) 1+2=x2 C) x3=0x12; D) x4=1+2=3;(分数:1.00)A.B.C.D.39.下列各选项中,不属于序言性注释的是( )。 A) 程序标题 B) 程序设计者 C) 主要算法 D) 数据状态(分数:2.00)A.B.C.D.40.以下错误的定义语句是
16、A) int x3=0,1,1,2,3;B) int x43=1,2,3,1,2,3,1,2,3,1,2,3;C) int x4=1,2,3,1,2,3,1,2,3,1,2,3;D) int x3=1,2,3,4;(分数:2.00)A.B.C.D.41.在数据库系统的内部结构体系中,索引属于( )。 A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B.C.D.42.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空问复杂度必定小D) 上述三种说法都不对(分数:2
17、.00)A.B.C.D.43.在执行以下程序时,如果从键盘上输入 ABCdef回车,则输出为_。#include stdio.hmain ()char ch;while (ch=getchar()!=“/n“)if (ch=Ay=st;t-;main()int a=1,2,3,4,i,x=0;for(i=0;i4;i+)sub(a,x);printf(“%d“,x);printf(“/n“);A) 1234 B) 4321 C) 0000 D) 4444(分数:1.00)A.B.C.D.二、填空题(总题数:20,分数:35.00)51.以下程序运行后的输出结果是_。maininn a=1. b
18、=3. c=5:if (c=a+b)printf ( “yes/n);elseprintf (“no/n);(分数:3.00)填空项 1:_52.一个关系表的行称为 1。(分数:2.00)填空项 1:_53.有以下程序:void f(int a,int i,int j)int t;if(ij)t=ai;ai=aj;aj=t;f(a,i+1,j-1);main()int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(“%d,“,aai);printf(“/n“);执行后的输出结果是_。(分数:2.00)填空项 1:_54.数据管理技术发展过程经过
19、人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 1。(分数:2.00)填空项 1:_55.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作。(分数:2.00)填空项 1:_56.以下程序中给指针 P 分配三个 double 型动态内存单元,请填空:#includestdiohmain()double*p;p=(double*)malloc_;p0=1.5;p1=2.5;p2=3.5;printf(“%f%f%f/n“,p0,p1,p2);(分数:1.00)填空项 1:_57.以下程序的输出结果是_。# include stdio.hmain()
20、int n=12345, d;while(n!=O) d=n%10; printf(“%d“,d); n/=10; (分数:2.00)填空项 1:_58.下面程序的运行结果是_。#includestdio.hmain()int i,f10;f0=f1=1;for(i=2;i10;i+)fi=fi-2+fi-1;for(i=0;i10;i+)if(i%4=0)printf(“/n“);printf(“%3d“,fi);(分数:2.00)填空项 1:_59.设 int a=5,b=6,表达式(+a=b-)?+a:-b 的值是 1。(分数:1.00)填空项 1:_60.以下程序用以删除字符串中所有的
21、空格,请填空。#includestdio.hmain()char s100=“Our teacher teach C language!“;int i,j;for(i=j=0;si!=/0;i+)if(si!=)_sj=/0;printf(“%s/n“,s);(分数:2.00)填空项 1:_61.执行程序时的输入为 123456789,则程序的运行结果为_。 #include“stdio.h“ main() int a,b; scanf(“%2d%*2d%1d“,for(i=0;iN;i+)k=0;for(j=1;jM;j+)if(akiaji)k=j;s+= _;_ =s;main( )in
22、t xMN=3,2,5,1,4,1,8,3,s;SumColumMin( _ );printf(“%d/n“,s);(分数:1.00)填空项 1:_67.数据结构分为逻辑结构与 1。(分数:2.00)填空项 1:_68.下列程序的输出结果是_。#includestdio.hmain()int x=3,y=2,z=1;if(xy)if (y0) z=0;else z+=1;printf(“%d/n“,z);(分数:2.00)填空项 1:_69.两种基本测试方法中, 1 测试的原因之一是保证所测试模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_70.以下程序中,函数 fun 的
23、功能是计算 x2(上标)-2x6,主函数中将调用 fun 函数计算:y1=(x8) 2-2(x8)6y2=sin2(x)-2sin(x)6请填空。#include “math.h“double fun(double x) return (x*x-2*x6);main()double x,y1,y2;printf(“Enter x:“); scanf(“%1f“,y1=fim(_);y2=run(_);printf(“y1=%1f,y2=%1f/n“,y1,y2);(分数:1.00)填空项 1:_二级 C 语言笔试-363 答案解析(总分:104.00,做题时间:90 分钟)一、选择题(总题数:
24、50,分数:69.00)1.数字字符 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(分数:1.00)A.B.C. D.解析:解析 b+是先使用 b 再给 b 赋值 1,因此是先输出 2,再将 b 加 1,b=3,则第一条语句输出2,第二条语句输出 2。2.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定这属于算法的_。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:2.00)A
25、.B.C. D.解析:解析 算法具有 5 个特性:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。3.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=a; a=b; b=t;if(ac)t=a; a=c; c=t;if(bc)t=-b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,c);A) 1.002.003.00B) 1.003.002.00C) 132D) 3.0000002.0000001.000000(分数:1.00)A.B.C.D. 解析:解
26、析 本题考查 if 语句。第 1 个 if 语句,实现如果 ab,则交换 a、b 值的功能;第 2 个 if 语句,实现如果 ac,则交换 a、c 的值的功能:第 3 个 if 语句,实现如果 bc,则交换 b,c 的值的功能。3 个 if 语句结合起来实现的功能就是将 a、b、c 按从大到小排序。4.在单链表中,增加头结点的目的是A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单链表是线性表的链式存储实现(分数:2.00)A. B.C.D.解析:解析 头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链
27、表,因此增加头结点目的是为了便于运算的实现。5.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大C) 各模块之间的联系应尽量紧密D) 模块内具有高内聚度,模块间具有低耦合度(分数:2.00)A.B.C.D. 解析:解析 在结构化程序设计中,软件设计应尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,这也是模块划分的原则。6.有以下程序main( )int i;for(i=0;i3;i+)switch(i)case 0:printf(“%d“,i);case 2:printf(“%d“,i);default:printf(“%d“,i);程序运行
28、后的输出结果是A)022111B)021021C)000122D)012 (分数:1.00)A.B.C. D.解析:解析 swltch 分支结构程序中每一个分支(case)后应有一个 break 语句跳出,否则程序会由符合条件的入点顺序执行,所以本程序中循环 3 次的入点分别为 caseO、(default、case2,由于没有跳出语句,从进入点顺序执行,最后输出结果为 000122。7.以下选项中不属于字符常量的是( )。A) C B) “C“ C) /xCC D) /072(分数:1.00)A.B. C.D.解析:解析 本题主要考查的是字符常量。字符常量是用单引号括起来的一个字符,而以双引
29、号括起来的任意多个字符是字符串常量,所以本题中 B)不属于字符常量。注意,选项 C)和 D)虽然用单引号括起来的并不止一个字符,但它们都是以“/”开头的,都是代表一个字符的转义字符。8.下列叙述中正确的是_。A) 程序设计就是编制程序 B) 程序的测试必须由程序员自己去完成C) 程序经调试改错后还应进行再测试 D) 程序经调试改错后不必进行再测试(分数:2.00)A.B.C. D.解析:解析 软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件没计是确定系统的物理模型。软件测试即使用人工或自动手段来运行或测定某个系统的过程,其日的在于检验它是否满足规定的需求或是弄清预期
30、结果与实际结果之间的差别。软件调试后要进行回归测试,防止引进新的错误。9.以下程序的输出结果是_。main()int num=0while(num=2)num+; printf(“%d/n“,num);A) 1 2 3 4B) 1 2 3C)1 2D)1(分数:1.00)A.B. C.D.解析:解析 while 的执行过程是:先计算条件表达式的值,若成立则执行循环体,重复上述过程,直到条件表达式的值为“假” (值为零)时,退出循环,并转下一语句去执行。本题在输出 num 的值为 3 之后,再判断 while 的循环条件 3=2,不成立,所以不再输出 num 的值,故本题的答案选 B。10.有以
31、下程序:main()int s=0,a=1,n;scanf(“%d“,dos+=1; a=a-2;while (a!=n);printf(“%d/n“,s);若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。A) -1 B) -3 C) -5 D) 0(分数:1.00)A.B. C.D.解析:解析 根据题目要求,最后要使输出的 s 值为 2,在程序中改变 s 的值的语句只有循环体中的s+=1;语句,而初始 s 的值为 0,显然要使 s 的值变为 2,该语句必须执行两次,即 do-while 循环中的循环体要执行两次,而在 do-while 中,首先不执行条件而执行 do 后面的循
32、环体语句,然后再判断 while循环条件。所以不管循环判断条件是否为真 s+=1;语句至少执行一次,根据分析,只需要 while 后面括号的循环判断表达式的值为真成立一次且只能为真一次,将 4 个选项中的内容依次代入该程序中不难得到只有 n=-3 刚好使循环判断条件 a!=n 为真一次。故 4 个选项中选项 B 符合题意。11.若有下列定义(设 int 类型变量占 2 个字节):float x=123.4567;则下列语句:printf(“x=%5.2f“,x);输出的结果是( )。A) x=123.46 B) 123.4567 C) x=123.4567 D) 123.46(分数:2.00)
33、A. B.C.D.解析:解析 本题考查 printf 函数的格式。“%5.2f”格式符中的“f”表示以带小数点的形式输出单精度或者双精度数;“5”表示指定数据输出宽度为 5;“.2”表示指定输出数据小数位占 2 位数,并对截去的第一位小数做四舍五入处理。12.以下 4 个选项中,不能看作一条语句的是A) ; B) a=5,b=2.5,c=3.6;C) if(a5); D) if(b!=5)x=2;y=6;(分数:2.00)A.B.C.D. 解析:解析 选项 D 为两条语句,每条语句以分号结束。13.在函数调用过程中,如果函数 funA 调用了函数 funB,函数 funB 又调用了函数 fun
34、A,则( )。A) 称为函数的直接递归调用 B) 称为函数的间接递归调用C) 称为函数的循环调用 D) C 语言中不允许这样的递归调用(分数:1.00)A.B. C.D.解析:解析 在 C 语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。显然题目中所说得函数调用为函数的间接递归调用。所以,4 个选项中选项 B 符合题意。14.冒泡排序在最坏情况下的比较次数是( )。A) n(n+1)/2 B) nlog2n C) n(n-1)/2 D) n/2(分数:2.00)A.B.C. D.解析:解
35、析 冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其它值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有 n 个数据的序列,共需 n-1 趟排序,第 i 趟对从 1 到 n-i 个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第 1 趟比较 n-1 次,第 2 趟比较 n-2 次,依此类推,最后一趟比较 1 次,一共进行 n-1 趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+1,结果为n(n-1)/2。15.有以下程序:#includestdio.h#includest
36、ring.htypedef structchar name9;char sex;float score2;STU;STU f(STU a)STU b=“Zhao“,m,85.0,90.0;int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i,2;i+)a.scorei=b.scorei;return a;main()STU c=“Qian“,f,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f%2.0f/n“,d.name,d.sex,d.score0,d.score1);程序的运行结果是_。A) Qian,f,95,9
37、2 B) Qian,85,90C) Zhao,m,85,90 D) Zhao,f,95,92(分数:2.00)A.B.C. D.解析:解析 本题考查的重点是对向函数传递结构体的理解。用结构体做函数的参数时,是按传值规则把全部结构传给函数,因此,函数内对结构内容的修改不影响原结构,即退出函数时,原结构内容不变。本题中,d 中的值应为 b 中的值,所以选项 C 是正确的。16.数据结构中,与所使用的计算机无关的是数据的A) 存储结构 B) 物理结构 C) 逻辑结构 D) 物理和存储结构(分数:2.00)A.B.C. D.解析:解析 数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合等。
38、数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储形式。17.设有定义:longx-123456L;,则以下能够正确输出变量 x 值的语句是A) printf(“x=%d/n“,x); B) printf(“x=%1d/n“,x);C) printf(“x=%8dL/n“,x); D) printf(“x=%LD/n“,x);(分数:1.00)A.B. C.D.解析:解析 本题考查的知识点是输出语句 printf()的基本用法。x 为一个长整型的变量,而且是一个十进制的数,它的输出控制符是“%1d”,所以排除选项 A 和选项 C;由于 C 语言中是区分大小写的, “1d
39、”中的“d”不能为大写,故排除选项 D。4 个选项中 B 正确。18.有以下的程序#includestdio.hvoid fun(char *fname,char *st)FILE *myf; int i;myf=fopen(fname,“w“);for(i=0;istrlen(st);i+)fputc(sti,myf);fclose(myf);main()fun(“test.t“,“new world“);fun(“test.t“,“hello,“);程序执行后,文件 testt 中的内容是 ( )A) hello, B) new worldhello, C) new world D) he
40、llo,rld(分数:1.00)A. B.C.D.解析:19.有以下程序:main()int i=0,S=0;doif(i%2)i+;continue;i+;s+=i;)while(i7);printf(“%d/n“,s);执行后输出结果是( )。A) 16 B) 12 C) 28 D) 21(分数:1.00)A. B.C.D.解析:解析 在循环体中有一条 if 语句,其后面表达式为 i%2,当 i 的值为奇数时,其值为真,执行其后面的语句,i 的值加 1,重新开始循环,当 i 的值为偶数时,i%2 为假,执行“i+;s+=i。在循环中 i为偶数时的值分别为 0、2、4、6,加 1 后的值分别
41、为 1、3、5、7,s 中存放的是它们的和,值为 16。20.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细没计属于( )。A定义阶段 B开发阶段C维护阶段 D上述三个阶段(分数:1.00)A.B. C.D.解析:解析 开发阶段在开发初期分为需求分析、总体设计、详细设计 3 个阶段,在开发后期分为编码、测试两个子阶陂。21.为了避免嵌套的 if-else 的二义性,C 语言规定:else 与_配对。A) 缩排位置相同的 if B) 其之前最近的 ifC) 其之后最近的 if D) 同一行上的 if(分数:1.00)A.B. C.D.解析:解析 在 if 语句中又包含个或多个 if 语句称
42、为 if 语句的嵌套。应当注意 if 与 else 的配对关系,在 C 语言中,从最内层开始,else 总是与它上面最近的(未曾配对的)if 配对。22.有下列程序:#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.解析:解析 本题考查 switch 语句。第一个 switch 语句,因为
43、a=6,a%2=0,所以执行 case0将 m 加1,遇到 break 语句跳出 switch 语句,结束循环。23.设有如下程序:fun(float*p1,int n,float*p2,int m,float*s)int i;*s=0.0;for(i=0;in;i+)*s+=*p1+;for(i=0;im;i+)*s+=*p2+;main()float a=1.1,2.2,b=1.0,2.0,3.0),*s=a;fun(a,2,b,3,s);printf(“%f/n“,*s);上面程序的输出结果是_。A) 8.200000 B) 9.300000C) 3.300000 D) 1.100000
44、(分数:1.00)A. B.C.D.解析:解析 实参指针变量 s 指向数组 a 的第一个元素,在函数 fun 中首先将 s 所指数组 a 的第一个元素赋值为 0.0,然后将数组 a 和 b 中的元素值依次累加到数组 a 的第一个元素中。24.以下不正确的叙述是A) 在 C 程序中,逗号运算符的优先级最低B) 在 C 程序中,APH 和 aph 是两个不同的变量C) 若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(分数:1.00)A.B.C.D. 解析:解析
45、 在 C 语言所有的运算符中,逗号运算符的优先级最低。C 语言中区分大小写,所以 APH 和aph 是两个不同的变量。赋值表达式 a=b 表示将 b 的值付给 a,而 b 本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项 D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。25.下面描述中,不符合结构化程序计风格的是_。A) 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B) 自顶向下C) 注重提高程序的执行效率D) 限制使用 goto 语句(分数:1.00)A.B.C. D.解析:解析 结构化程序设计方法
46、的四条原则是:1自顶向下;2逐步求精;3模块化;4限制使用 goto 语句。26.下列有关数据库的描述,正确的是( )。 A) 数据库设计是指设计数据库管理系统 B) 数据库技术的根本目标是要解决数据共享的问题 C) 数据库是一个独立的系统,不需要操作系统的支持 D) 数据库系统中,数据的物理结构必须与逻辑结构一致(分数:2.00)A.B. C.D.解析:解析 数据库设计的目的实质上是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的致性和完整性;提供数据与应用程
47、序的独立性,从而减少应用程序的开发和维护代价。27.在软件开发过程中,软件结构设计是描述_。A) 数据存储结构 B) 软件体系结构C) 软件结构测试 D) 软附控制挝程(分数:1.00)A.B. C.D.解析:解析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。28.有以下程序:#includestdio.hmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+)csi+;for(i=1;i5;i+)printf(“%d“,ci);printf(“/n“);程序的运行结果是_。A) 1 2 3 4 B) 2 3 4 4C) 4