1、二级 C语言笔试 80及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下面一组中都是 C语言关键字的是_。(分数:1.00)A.double Int forB.main while gotoC.volatile break staticD.malloc sizeof new2.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。(分数:1.00)A.a=1B.+i;C.a=a+=5;D.a=int(;3.有如下程序 int func(int a, int b) return(a+b); main() int x=2,y=5,z
2、=8,r; r=func(func(x,y),z); printf(“%d/n“,r); 该程序的输出结果是_。(分数:1.00)A.12B.13C.14D.154.有以下程序段: main() int a=5,*b,*c; c=b= 程序在执行了 c= d=c+Max(a,b); printf(“%d“,d); 其输出结果为_。(分数:1.00)A.10B.5C.6D.编译错误6.有如下程序 main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%d/n“,a,b); 该
3、程序的输出结果是_。(分数:1.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=27.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9的表达式是_。(分数:1.00)A.*p+9B.*(p+8)C.*p+=9D.p+88.索引属于_。(分数:1.00)A.模式B.内模式C.外模式D.概念模式9.下面程序的输出结果是 main() char str10,c=a; int i=0; for(;i5;i+) stri=c+; printf(“%s“,str); (分数:1.00)A.abcdeB.aC.不确定D.bcdef1
4、0.下列关键字中,不属于 C语言变量存储类别的是_。(分数:1.00)A.registerB.autoC.externD.public11.有如下程序: long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(“%ld/n“,fib(3); 该程序的输出结果是_。(分数:1.00)A.2B.4C.6D.812.在 C语言中,函数中变量的隐含存储类别是_。(分数:1.00)A.autoB.staticC.externD.无存储类别13.下面不属于软件设计原则的是_。(分数:1.00)A.抽象B.
5、模块化C.自底向上D.信息隐蔽14.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为_。 main() int m,n; printf(“Enter m,n:“); scanf(“%d%d“, while(m!=n) while(mn)m-=n; while(nm)n-=m; printf(“m=%d/n“,m); (分数:1.00)A.m=3B.m=2C.m=1D.m=015.在关系数据库中,用来表示实体之间联系的是_。(分数:1.00)A.树结构B.网结构C.线性表D.二维表16.若已建立如下图所示的单向链表结构: (分数:1.00)A.p=p-next; s-next=p;
6、 p-next=s;B.p=p-next; s-next=p-next; p-next=s;C.s-next=NULL; p=p-next; p-next=s;D.p=(*.next; (*.next=(*.next; (*.next=s;17.将 E-R图转换到关系模式时,实体与联系都可以表示成_。(分数:1.00)A.属性B.关系C.键D.域18.有以下程序: int *f(int *x,int *y) if(*x*y)return x; else return y; main() int a=7,b=8,*p,*q,*r; p= q= r=f(p,q); printf(“%d,%d,%d
7、/n“,*p,*q,*r); 程序运行后输出结果是_。(分数:1.00)A.7,8,8B.7,8,7C.8,7,7D.8,7,819.设有声明语句 char a=/72;,则变量 a_。(分数:1.00)A.包含 1个字符B.包含 2个字符C.包含 3个字符D.声明不合法20.有如下程序 main() int x=3; do printf(“%d“,x-); while(!x); 该程序的执行结果是_。(分数:1.00)A.321B.3C.不输出任何内容D.陷入死循环21.有如下程序: #define n 2 #define m N+1 #define NUM 2*m+1 main() int
8、 i; for(i=1;i=NUM;i+)printf(“%d/n“,i); 该程序中的 for循环执行的次数是_。(分数:1.00)A.5B.6C.7D.822.C语言运算对象必须是整型的运算符是_。(分数:1.00)A.%=B./C.=D.=23.若已定义 x和 y为 double类型,则表达式 x=1,y=x+3/2的值是_。(分数:1.00)A.1B.2C.2.0D.2.524.下列函数定义中,会出现编译错误的是_。(分数:1.00)A.max(int x,int y,int * *z=xy?x:y; z=xy?x:y;B.int max(int x, int z; return z;
9、 C.max(int x,int int z; z=xy?x:y; return (;D.int max(int x,int return xy?x:y;25.能正确表示逻辑关系“a10 或 a0“的 C语言表达式是_。(分数:1.00)A.a=100 or a=0B.a=0|a=10C.a10 main() struct abc s 2=1,2,3,4,5,6; int t=-s0.a+s1.b; printf(“%d/n“,t); (分数:1.00)A.5B.6C.7D.830.若变量已正确定义并赋值,下面符合 C语言的表达式是_。(分数:1.00)A.a:=b+1B.a=b=c+2C.i
10、nt 18.5%3D.a=a+7=c+b31.有如下函数调用语句 func(rec1,rec2 +rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是_。(分数:1.00)A.3B.4C.5D.有语法错误32.有如下程序 main() int i,sum; for(i=1;i=3;sum+) sum +=i; printf(“%d/n“,sum); 该程序的执行结果是_。(分数:1.00)A.6B.3C.死循环D.033.已经定义 ch为字符型变量,以下赋值表达式中错误的是_。(分数:1.00)A.ch=/B.ch=62+3C.ch=NULLD.ch=/xaa34.有如下程序
11、: main() int a33=i,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+=aij; printf(“%d/n“,s); 该程序的输出结果是_。(分数:1.00)A.18B.19C.20D.2135.有如下程序段 int *p,a=10,b=1; p= a=*p+b; 执行该程序段后,a 的值为_。(分数:1.00)A.12B.11C.10D.编译出错36.执行语句 for(i=1;i+4;);后变量 i的值是_。(分数:1.00)A.3B.4C.5D.不定37.下列工具中为需求分析常用工具的是_。(分数:1.00)A.PAD
12、B.PFDC.N-SD.DFD38.有如下程序 main() int y=3,x=3,z=1, printf(“%d%d/n“,(+x,y+),z+2); 运行该程序的输出结果是_。(分数:1.00)A.3 4B.4 2C.4 3D.3 339.检查软件产品是否符合需求定义的过程称为_。(分数:1.00)A.确认测试B.集成测试C.验证测试D.验收测试40.若有以下定义:int t32;,能正确表示 t数组元素地址的表达式是_。(分数:1.00)A. int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for(j=0;pij/0; j+=2)
13、s=10*s+(pij-0); printf(“%d/n“,s); 该程序的输出结果是_。(分数:1.00)A.69825B.63825C.6385D.69382542.数据的存储结构是指_。(分数:1.00)A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据43.下述关于 C语言文件的操作的结论中,正确的是_。(分数:1.00)A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序无要求D.对文件操作前必须先测文件是否存在,然后再打开文件44.算法一般都可以用_控制结构组合而成。(分数:1.00)A.循环、分支
14、、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环45.假设在 turboc2.0采用 small模式编译如下程序 main() char a4= a,b; char *b=“abc“; printf(“%d,%d“,sizeof(a),sizeof(b); 其输出结果为_。(分数:1.00)A.4,2B.4,4C.4,3D.2,246.有如下程序段 int a=14,b=15,x; char c=A; x=(a if(x0.0)y=0.0; else if(x10.0)y=1.0/x; else y=1.0; printf(“%f/n“,y); 该程序输出结果是_。(分数:1
15、.00)A.0.000000B.0.250000C.0.500000D.1.00000049.有如下程序 main() char s5=“abc“,“de“,“fgh“; printf(“%c“,s26); 其输出为_。(分数:1.00)A.不确定B.编译错误C.gD.输出 null字符50.以下叙述不正确的是_。(分数:1.00)A.分号是 C语言的必要组成部分B.C程序的注释可以写在句的后面C.函数是 C程序的基本单位D.主函数的名字不一定用 main表示二、B填空题/B(总题数:19,分数:38.00)51.在运算过程中,能够使空表与非空表的运算统一的结构是U 【1】 /U。(分数:2.
16、00)填空项 1:_52.软件工程研究的内容主要包括:U 【2】 /U技术和软件工程管理。(分数:2.00)填空项 1:_53.与结构化需求分析方法相对应的是U 【3】 /U方法。(分数:2.00)填空项 1:_54.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、U 【4】 /U和自定义完整性。(分数:2.00)填空项 1:_55.数据模型按不同的应用层次分为三种类型,它们是U 【5】 /U数据模型、逻辑数据模型和物理数据模型。(分数:2.00)填空项 1:_56.表示“整数 x的绝对值大于 5“时值为“真“的 C语言表达式是U 【6】 /U。(分数:2.00)填空项 1:_57
17、.以下程序的输出结果是U 【7】 /U。 main() unsigned short a=65536; int b; printfC%d/n“,b=a); (分数:2.00)填空项 1:_58.若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b中的值是U 【8】 /U。 c=(a-=(b-5); c=(a%11)+(b=3);(分数:2.00)填空项 1:_59.以下程序运行后的输出结果是U 【9】 /U。 main() int p=30; printf(“%d/n“,(p/30?p/10:p%3); (分数:2.00)填空项 1:_60.函数 pi的功能是根据以下近
18、似公式求 值: (*)/6=1+1/(2*2)+1/(3*3)+.+1(n*n) 现在请你在下面的函数中填空,完成求 的功能。 #include “math.h“ double s=0.0; long i; for(i=1;i=n;i+)s=s+U 【10】 /U; return (sqrt(6*s); (分数:2.00)填空项 1:_61.函数 pi的功能是根据以下公式近似求得的: pi*pi/6=1+1/(2*2)+1/(3.3)+.+1/(n*n) 请在下面的函数中天空,完成求 pi的功能。 #includemath.h double pi(long n) double s=0.0,lo
19、ng i; for(i=1;i=n;i+)s=s+U 【11】 /U; return(sqrt(6*s); (分数:2.00)填空项 1:_62.若输入字符串:(图片),则以下 while循环体将执行U 【12】 /U次。 while(ch=getchar()=e)printf(“*“);(分数:2.00)填空项 1:_63.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 void func(int x,int y,U 【13】 /Uz) *z=x+y; (分数:2.00)填空项 1:_64.若有以下定义,则不移动指针 p,且通过指针 p引用值为 98的数组元素的表达式是U 【14
20、】 /U。 int w10=23,54,10,33,47,98,72,80,61, *p=w;(分数:2.00)填空项 1:_65.设在主函数中有以下定义和函数调用语句,且 fun函数为 void类型;请写出 fun函数的首部U 【15】 /U。要求形参名为 b。 main() double s1022; int n; fun(s); (分数:2.00)填空项 1:_66.有以下程序: int f(int n) if(n=1)retum 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+)j+=f(i); printf(“%d/n“
21、,j); 程序运行后的输出结果是U 【16】 /U。(分数:2.00)填空项 1:_67.以下程序的输出结果是U 【17】 /U。 void fun() static int a=0; a+=2; printf(“%d“,a); main() int cc; for(cc=1;cc4;cc+)fun(); printf(“/n“); (分数:2.00)填空项 1:_68.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 copy命令),假定文件在当前目录下。请补全程序。 #includestdio.h void main(int argc,char
22、*argv) FILE *f1,*f2; if(argcU 【18】 /U) printf(“parameter error!/n“);exit(0); f1=fopen(argv1,“r“); f2=fopen(argv2,“w“); while(U 【19】 /U)fputc(fgetc(f1),f2); fclose(f1); fclose(f2); (分数:2.00)填空项 1:_69.以下程序的输出结果是U 【20】 /U。 #define MAX(x,y) (x)(y)?(x):(y) main() int a=5,b=2,c=3,d=3,t; t=MAX(a+b,e+d)*10;
23、 printf(“%d/n“,t); (分数:2.00)填空项 1:_二级 C语言笔试 80答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下面一组中都是 C语言关键字的是_。(分数:1.00)A.double Int forB.main while gotoC.volatile break static D.malloc sizeof new解析:评析 C 语言中的关键字有 32个关键字(BEC 语言教程),本题中只有 C符合题意。2.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。(分数:1.00)A.a=1B.+i;
24、C.a=a+=5;D.a=int(;解析:评析 选项 D显然是错的,而选项 A没有分号结束,不是 C语句:a+=5 违反了赋值表达式左侧必须为一个变量(不能是常量或表达式)的规定。3.有如下程序 int func(int a, int b) return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d/n“,r); 该程序的输出结果是_。(分数:1.00)A.12B.13C.14D.15 解析:评析 调用函数 func(x,y),返回 x+y,即 7;再调用函数 func(7,z),返回 7+z,即 15。4.有以
25、下程序段: main() int a=5,*b,*c; c=b= 程序在执行了 c= d=c+Max(a,b); printf(“%d“,d); 其输出结果为_。(分数:1.00)A.10B.5 C.6D.编译错误解析:评析 在 C语言中,宏定义是直接替换的,所以在 c+ab?a:b 这个条件表达式中,c+ab 为真,所以用 a的值作为整个表达式的值,而 a的值为 5,所以整个表达式的值为 5。6.有如下程序 main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%d/n“
26、,a,b); 该程序的输出结果是_。(分数:1.00)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:评析 在这个 switch语句中,因为 x的值为 1,所以执行 case 1:后面的 a+,这样 a=1。但又由于其下没有 break语句,所以其后面的语句“a+;b+”也将被执行,这样一来,a=2,b=1。7.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9的表达式是_。(分数:1.00)A.*p+9B.*(p+8) C.*p+=9D.p+8解析:评析 p 是指针,p+8 是地址值,D 是错的;*p 是 p的目标
27、变量,即 a0,值为 1,所以*p+9 的值是 10,而*p+=9 值是重新给 a0赋了值(1+9);所以 A和 C也是错的。p+8 是地址值,指向 a8,那么*(p+8)的值就是 a8的值,即 9。8.索引属于_。(分数:1.00)A.模式B.内模式 C.外模式D.概念模式解析:评析 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等存取方式与存取路径。9.下面程序的输出结果是 main() char str10,c=a; int i=0; for(;i5;i+) s
28、tri=c+; printf(“%s“,str); (分数:1.00)A.abcdeB.aC.不确定 D.bcdef解析:评析 字符串少一个结束标志,所以输出的结果不确定。10.下列关键字中,不属于 C语言变量存储类别的是_。(分数:1.00)A.registerB.autoC.externD.public 解析:评析 变量的存储类别具体包含四种:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。11.有如下程序: long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); m
29、ain() printf(“%ld/n“,fib(3); 该程序的输出结果是_。(分数:1.00)A.2B.4 C.6D.8解析:评析 函数 fib内部有两个递归调用,当 n=3时,fib(n-1)返回 2,fib(n-2)也返回 2,所以fib(n-1)+fib(n-2)的值为 4。12.在 C语言中,函数中变量的隐含存储类别是_。(分数:1.00)A.auto B.staticC.externD.无存储类别解析:评析 函数中变量的存储类别包括 auto,static,extern,其中 auto为隐含存储类别,static为静态存储类别,register 是寄存器存储类别。13.下面不属于
30、软件设计原则的是_。(分数:1.00)A.抽象B.模块化C.自底向上 D.信息隐蔽解析:评析 在软件设计过程中,必须遵循软件工程的基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。14.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为_。 main() int m,n; printf(“Enter m,n:“); scanf(“%d%d“, while(m!=n) while(mn)m-=n; while(nm)n-=m; printf(“m=%d/n“,m); (分数:1.00)A.m=3B.m=2C.m=1 D.m=0解析:评析 分析程序可
31、知,该程序实现的功能是对数 m,n求其最大公约数。在本题中 m与 n的值分别为 65与 14,其最大公约数为 1,故其输出结果为 m=1。15.在关系数据库中,用来表示实体之间联系的是_。(分数:1.00)A.树结构B.网结构C.线性表D.二维表 解析:评析 在关系数据库中,用二维表来表示实体之间联系。16.若已建立如下图所示的单向链表结构: (分数:1.00)A.p=p-next; s-next=p; p-next=s; B.p=p-next; s-next=p-next; p-next=s;C.s-next=NULL; p=p-next; p-next=s;D.p=(*.next; (*.
32、next=(*.next; (*.next=s;解析:评析 在答案 A中:p=p-next;s-next=p;p-next=s;s 的确已插到了链表的末尾,但它的 next却并没有为 NULL,而是指向了它的直接前趋 p,这样它就不是一个单向链表(单向链表最后一个结点的 next指针一定是一个 NULL)。17.将 E-R图转换到关系模式时,实体与联系都可以表示成_。(分数:1.00)A.属性B.关系 C.键D.域解析:评析 关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将 E-R图转换到关系模式时,实体与联系都可以表示成关系。18.有以下程序: int *f(int *x,int
33、 *y) if(*x*y)return x; else return y; main() int a=7,b=8,*p,*q,*r; p= q= r=f(p,q); printf(“%d,%d,%d/n“,*p,*q,*r); 程序运行后输出结果是_。(分数:1.00)A.7,8,8B.7,8,7 C.8,7,7D.8,7,8解析:评析 f 函数的功能是返回地址为 x,y的两个数中值铰的数的地址,本题输出结果是 7,8,7。19.设有声明语句 char a=/72;,则变量 a_。(分数:1.00)A.包含 1个字符 B.包含 2个字符C.包含 3个字符D.声明不合法解析:评析 转文字符常量/
34、xx可以把/后面的数字转换为对应的 ASCII字符。20.有如下程序 main() int x=3; do printf(“%d“,x-); while(!x); 该程序的执行结果是_。(分数:1.00)A.321B.3 C.不输出任何内容D.陷入死循环解析:评析 本题 x赋初值为 3,当执行 printf(“%d“,x-);时,由于 x-的作用是先运算 x,再将 x的值减 1,所以,printf 输出的 x 值为 3,等输出后,x 的值减 1变为 2,继续执行,判断条件!x 为假,循环只被执行一次。21.有如下程序: #define n 2 #define m N+1 #define NUM
35、 2*m+1 main() int i; for(i=1;i=NUM;i+)printf(“%d/n“,i); 该程序中的 for循环执行的次数是_。(分数:1.00)A.5B.6 C.7D.8解析:评析 在 C语言中,宏定义在编译时将被直接替换,所以 NUM最后会被替换成 2*N+1+1,即2*2+1+1,值为 6。因此,for 循环执行的次数为 6。22.C语言运算对象必须是整型的运算符是_。(分数:1.00)A.%= B./C.=D.=解析:评析 在 C语言中,模运算(即取余运算%)的运算对象必须是整型数据(常量、变量或表达式)。23.若已定义 x和 y为 double类型,则表达式 x
36、=1,y=x+3/2的值是_。(分数:1.00)A.1B.2C.2.0 D.2.5解析:评析 这是一个逗号表达式,它的值应为表达式 y=x+3/2的值,而前一个表达式已给 x赋值 1,在没有进行类型转换的情况下,3/2 的值为 1,所以 x+3/2的值应为 2.0。24.下列函数定义中,会出现编译错误的是_。(分数:1.00)A.max(int x,int y,int * *z=xy?x:y; z=xy?x:y;B.int max(int x, int z; return z; C.max(int x,int int z; z=xy?x:y; return (;D.int max(int x,
37、int return xy?x:y;解析:评析 在 C语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项 B是错误的。其正确的表示方式应为: int max(int x,int y) 或 int max(x,y) int x,y; 25.能正确表示逻辑关系“a10 或 a0“的 C语言表达式是_。(分数:1.00)A.a=100 or a=0B.a=0|a=10C.a10 ,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为 void的函数,不能作为赋值表达式的组成部分,所以选 C。29.下面程序运行后的输出结果是_。 struct abc
38、int a,b,c; main() struct abc s 2=1,2,3,4,5,6; int t=-s0.a+s1.b; printf(“%d/n“,t); (分数:1.00)A.5B.6 C.7D.8解析:评析 在 main函数中定义了一个 struct abc类型的数组,同时分别利用1,2,3及(4,5,6对数组中两个元素进行初始化。在该结构体,依次对其中的 a,b,c三个变量进行初始化。故 s0.a=1,s1.b=5,所以本题输出为 6。30.若变量已正确定义并赋值,下面符合 C语言的表达式是_。(分数:1.00)A.a:=b+1B.a=b=c+2 C.int 18.5%3D.a=
39、a+7=c+b解析:评析 选项 A和 C一望而知其错;对于表达式 a=a+7=c+b(答案 D) ,是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给 a,显然,表达式 a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。31.有如下函数调用语句 func(rec1,rec2 +rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是_。(分数:1.00)A.3 B.4C.5D.有语法错误解析:评析 (rec4,rec5)是逗号表达式,它的值是 rec5的值。所以该函数调用语句含有的实参个数是3。32.有如下程序 main() int i,sum; for(i=1;
40、i=3;sum+) sum +=i; printf(“%d/n“,sum); 该程序的执行结果是_。(分数:1.00)A.6B.3C.死循环 D.0解析:评析 在循环过程中,i 的值一直没有被改变,所以这是一个死循环。33.已经定义 ch为字符型变量,以下赋值表达式中错误的是_。(分数:1.00)A.ch=/ B.ch=62+3C.ch=NULLD.ch=/xaa解析:评析 反斜杠字符“/”赋给字符,应该写成 ch=/,所以 A是错误的。34.有如下程序: main() int a33=i,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+) s+
41、=aij; printf(“%d/n“,s); 该程序的输出结果是_。(分数:1.00)A.18 B.19C.20D.21解析:评析 题中的外循环只执行了 2次: 第 1次:a10=3,a11=4,所以 s=7; 第 2次:a20=5,a21=6,a22=0,所以 s=7+5+6+0=18。35.有如下程序段 int *p,a=10,b=1; p= a=*p+b; 执行该程序段后,a 的值为_。(分数:1.00)A.12B.11 C.10D.编译出错解析:评析 执行 p=后,p 指向整数 a,*p 即 p的目标变量,也就是 a;所以 a=*p+b等价于 a=a+b,可知 a的值最终为 11。3
42、6.执行语句 for(i=1;i+4;);后变量 i的值是_。(分数:1.00)A.3B.4C.5 D.不定解析:评析 for 语句的一般形式为;for(表达式 1;表达式 2;表达式 3)语句,循环结束的条件是i+4,所以当 i+=4时,循环结束,此肘变量 i的值为 5。37.下列工具中为需求分析常用工具的是_。(分数:1.00)A.PADB.PFDC.N-SD.DFD 解析:评析 常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图(DFD) 、数据字典(DD) 、判定树和判定表等。38.有如下程序 main() int y=3,x=3,z=1, pr
43、intf(“%d%d/n“,(+x,y+),z+2); 运行该程序的输出结果是_。(分数:1.00)A.3 4B.4 2C.4 3D.3 3 解析:评析 逗号表达式(+x,y+)的值应该是 y+的值,由于 y+是先引用后自增,所以 y+的值是 3。39.检查软件产品是否符合需求定义的过程称为_。(分数:1.00)A.确认测试 B.集成测试C.验证测试D.验收测试解析:评析 确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。40.若有以下定义:int t32;,能正确表示 t数组元素地址的表达式是_。(分数:1.00)A. int
44、 i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for(j=0;pij/0; j+=2) s=10*s+(pij-0); printf(“%d/n“,s); 该程序的输出结果是_。(分数:1.00)A.69825B.63825C.6385 D.693825解析:评析 本题“ch25=“6937“,“8254“”用于 2行 5列的二维数组初始化,ch00-ch04的值分别为:6,9,3,7,/0;ch10-ch14的值分别为:8,2,5,4,/0;第一个 for循环用于将数组指针分别指向二给数组的第一行和第二行:第二个 for嵌套循环用于取出 p00,p02,p10,p12四个存储单元的数组成一个四位数进行输出。42.数据的存储结构是指_。(分数:1.00)A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示 C.数据在计算机中的顺序存储方式D.存储在外存中的数据解析:评析 数据的逻辑结构在计算机存储空间中的存放