1、二级 C语言笔试-279 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.下面关于算法的叙述中,正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的有穷性是指算法必须能在执行有限个步骤之后终止C.算法的空间复杂度是指算法程序中指令(或语句)的条数D.以上三种描述都正确2.if语句的基本形式为:if(表达式)语句,其中“表达式”( )。(分数:2.00)A.可以是任意合法的表达式B.必须是逻辑表达式C.必须是逻辑表达式或关系表达式D.必须是关系表达式3.以下选项中非法的字符常量是( )。(分数:2.00)A./B.
2、/0201C./xAAD.04.运行下面的程序,输入字符串 Microsoft Visual Studio,则程序的执行结果是( )。 #includestdio.h main() char Chr20; scanf(“%s“,&Chr); printf(“%s/n”,Chr); (分数:2.00)A.Microsoft Visua1 StudioB.MC.MicrosoftD.MicrosoflVisualStudio5.若 x=2,y=3,则 x&y的结果是( )。(分数:2.00)A.0B.2C.3D.56.下列二叉树描述中,正确的是( )。(分数:2.00)A.任何一棵二叉树必须有一个
3、度为 2的结点B.二叉树的度可以小于 2C.非空二叉树有 0个或 1个根结点D.至少有 2个根结点7.下列叙述中,不属于软件需求规格说明书的作用的是( )。(分数:2.00)A.便于用户,开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析8.设函数中有整型变量 a,为保证其在未赋初值的情况下初值为 0,应选择的存储类别是( )。(分数:2.00)A.staticB.registerC.autoD.auto或 register9.下列各选项中,不属于序言性注释的是( )。(分数:2.00)A.程序标题B.程序设
4、计者C.主要算法D.数据状态10.有以下程序: #includestdio.h int fun(int*k) int b=0; b=*k+b: return(b); main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)printf(“%d“,fun(&ai); printf(“/n“); 程序运行后的输出结果是( )。(分数:2.00)A.10 12B.8 10C.3 4D.10 2811.以下程序段的输出结果是( )。 #includestdio.h main() char p4=“ABC“,“DEF“,“GHI“; int i; for(i=0;
5、i3;i+) puts(pi); (分数:1.00)A.A B CB.A D GC.A B C D E F G H ID.A B C12.有以下程序: #includestdio.h int fun(int x,int y) if(x=y)return(x); else return(x+y)/2); main() int a=1,b=2,c=3; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是( )。(分数:1.00)A.2B.3C.4D.513.已知:int c34;,则对数组元素引用正确的是( )。(分数:1.00)A.c14B.c1.50C.c1
6、+00D.以上表达都错误14.下列不属于软件工程 3个要素的是( )。(分数:1.00)A.工具B.过程C.方法D.环境15.以下叙述中不正确的是( )。(分数:1.00)A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效16.sizeof(char)是( )。(分数:1.00)A.一种函数调用B.一个整型表达式C.一个字符型表达式D.一个不合法的表达式17.下面程序运行后的输出结果是( )。 #includestdio.h main() int a5=1,0,4,2,0
7、,b5=1,2,3,4,5,i,s=0; for(i=0;i5;i+)s=s+bai; printf(“%d/n”,s); (分数:1.00)A.12B.15C.11D.818.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是( )。(分数:1.00)A.char*s=“AAA“,“BBB“,“CCC“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“;19.某二叉树中度为 2的结点有 10个,则该二叉树中有( )个叶子结点。(分数:1.
8、00)A.9B.10C.11D.1220.C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是( )。(分数:1.00)A.冠以关键字 externB.位置在函数体外部C.作用范围是全程的D.位置在函数的外部21.下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式22.设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。下列所示的输入形式中正确的是(注:口代表空格字
9、符)( )。(分数:2.00)A.10X20YCRB.10X20YCRC.10XCR20YCRD.10XCR 20YCR23.下列 4个程序中,完全正确的是( )。(分数:2.00)A.#includestdio.h main(); (/*programming*/ printf(“programming!/n“);B.# includestdio.h main() /*/programming/*/ printf(“programming!/n“);C.#includestdio.h main() /*/programming*/*/ printf(“programming!/n“);)D.
10、includestdio.h main() /*programming*/ printf(“programming!/n“);24.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%1f“,a);B.scanf(“%f“,&a);C.scanf(“%1f“,&a)D.scanf(“%1e“,a);25.若 i、j 已定义成 int型,则以下程序段中内循环体的总执行次数是( )。 for(i=6;i0;i-) for(j=0;j4j+)(分数:2.00)A.20B.24C.25D.3026.以下程序: #includestdio.h #includest
11、ring.h main() char str=“abcd/n/123/xab“; printf(“%d“,(str); 运行后的输出结果是( )。(分数:2.00)A.10B.9C.7D.1427.以下程序的输出结果是( )。 #includestdio.h int m=13; int fun(int x,int y) int m=2; return(x*y-m); main() int a=7,b=6; printf(“%d“,fun(a,b)/m); (分数:2.00)A.1B.3C.7D.1028.若有如下说明,且 int类型占两个字节,则正确的叙述为( )。 struct st int
12、 a; int b2; a;(分数:2.00)A.结构体变量 a与结构体成员 a同名,定义是合法的B.程序只在执行到该结构体时才为结构体 st分配存储单元C.程序运行时为结构体 st分配 8字节存储单元D.类型名 struct st可以通过 extern关键字提前引用29.设有一联合体变量定义如下: union data long a; float b; int c; char d: ; union data x; 执行下列语句后,正确的联合体变量 x的值是( )。 x.a=111111; x.b=2222; x.c=2.1546; x.d=R:(分数:2.00)A.111111B.2222C
13、.2.1546D.R30.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。(分数:2.00)A.属性B.关系C.记录D.码31.两次运行下面的程序,如果从键盘上分别输入 3和 2,则输出结果是( )。 #includestdio.h main() int x; scanf(“%d“,&x); if(x+2)printf(“%d“,x); else printf(“%d/n“,x-); (分数:2.00)A.4和 3B.4和 2C.4和 1D.3和 232.以下叙述中正确的是( )。(分数:2.00)A.C程序中注释部分可以出现在程序中任意合适的地方B.C程序的书写格式是固定的,每行
14、只能写一条语句C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.在对 C语言程序进行编译时,可以发现注释行中的拼写错误33.如果进栈序列为 A,B,C,D,则可能的出栈序列是( )。(分数:2.00)A.C,A,D,BB.B,D,C,AC.C,D,A,BD.任意顺序34.下面的程序在编泽时产生错误,其出错原因是( )。 #includestdio.h main() int 1_case;float printF; printf(“请输入 2个数:“); scanf (“%d%f“,&1_case,&printF); printf(“%d%f/n“,1_case,printF);
15、(分数:2.00)A.定义语句出错,1_case 不能作为变量名B.定义语句出错,printF 不能用作用户自定义标识符C.定义语句无错,scanf 不能作为输入函数使用D.定义语句无错,printf 不能输出 1_case的值35.已知下列函数定义: fun(int%,int c,int n,int dat(分数:2.00)A.int k; for(k=0;km*n;k+) 36.下面程序的运行结果是( )。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1
16、,s2); printf(“%d“,t); (分数:2.00)A.正数B.负数C.零D.不确定的值37.已知一个文件中存放若干工人档案记录,其数据结构如下: struct a char number100; int age; float p6; 定义一个数组:struct a number10; 假定文件已正确打开,不能正确地从文件中读入 10名工人数据到数组 b中的是( )。(分数:2.00)A.fread(b,sizeof(structa),10,fp);B.for(i=0;i10;i+) fread(bi,sizeof(structa),1,fp);C.for(i=0;i10;i+) f
17、read(b+i,sizeof(structa),1,fp);D.for(i;0;i5;i+=2) fread(b+i,sezeof(stmcta),2,fp);38.以下不正确的转义字符是( )。(分数:2.00)A./B./dC./sD.08839.数据库系统在其内部具有 3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是( )。(分数:2.00)A.外模式B.概念模式C.内模式D.存储模式40.下面程序的运行结果是( )。 y=5;x=14;y=(x=3*y,x+6),x-1); printf(“x=%d,y=%d”,x,y);(分数:2.00)A.x=27,y=27B.x=12
18、,y=13C.x=15,y=14D.x=y=27二、填空题(总题数:13,分数:26.00)41.数据结构分为逻辑结构与 1。(分数:2.00)填空项 1:_42.在面向对象方法中,对象之间进行通信的构造称为 1。(分数:2.00)填空项 1:_43.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其中 1 是度量一个模块功能强度的一个相对指标。(分数:2.00)填空项 1:_44.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于 1 的联系。(分数:2.00)填空项 1:_45.数据模型包括数据结构、 1 和数据条件。(分数:2.00)填空项 1
19、:_46.若有定义:int a=10,b=8,c=4;然后顺序执行下列语句后,变量 a中的值是_。 c=(b-=(a-4);a=(c%2)+(b-1);(分数:2.00)填空项 1:_47.以下程序的输出结果是_。 #includestdio.h void main() int f,f1,f2,i; f1=0;f2=1; printf(“%d%d“,f1,f2); for(i=3;i=5;i+) f=-f1+f2,printf(“%d“,f); f2=f1;f1=f; printf(“/n“); (分数:2.00)填空项 1:_48.以下程序运行后的输出结果是_。 main() int a=3
20、,b=4,c=5,t=79; if(ba&ac)t=a;a=c;c=t; if(ac&bc)t=b;b=a;a=t;printf(“%d%d%d/n“,a,b,c); (分数:2.00)填空项 1:_49.以下程序的定义语句中,x1的初值是_,程序运行后输出的内容是_。 #includestdio.h main() int x=1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi=&x2*i+1,printf(“q%d”,pi0); printf(“/n“); (分数:2.00)填空项 1:_50.以下程序的输出结果是_
21、。 #includestdio.h void swap(int*a,int*b) int*t; t=a;a=b;b=c;main() int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf(“%d %d/n“,*p,*q); (分数:2.00)填空项 1:_51.以下程序的输出结果是_。 #includestdio.h int fun(int x) static int t=0; return(t+=x); main() int s,i; for(i=1;i=5;i+)s=fun(i); printf(“%d/11“,s); (分数:2.00)填空项 1:_52.当
22、运行以下程序时,输入 abcd,程序的输出结果是_。 insert(char str) int i; i=strlen(str); while(i0) str2*i=stri;str2*i-1=*;i-; printf(“%s/n“,str); main() char str40; scanf(“%s/n“,str);insert(str); (分数:2.00)填空项 1:_53.以下程序的功能是:通过函数 func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。 #includestdio.h long_;/*函数说明语句*/ main() long n; n=func(
23、);printf“n=%1d/n“,n); long func() long m; for(m=0;getchar()!=;_); return m: (分数:2.00)填空项 1:_二级 C语言笔试-279 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.下面关于算法的叙述中,正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的有穷性是指算法必须能在执行有限个步骤之后终止 C.算法的空间复杂度是指算法程序中指令(或语句)的条数D.以上三种描述都正确解析:解析 算法在运行过程中需辅助存储空间的大小称为算法的空间复杂
24、度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。2.if语句的基本形式为:if(表达式)语句,其中“表达式”( )。(分数:2.00)A.可以是任意合法的表达式 B.必须是逻辑表达式C.必须是逻辑表达式或关系表达式D.必须是关系表达式解析:解析 本题考查 if表达式。if(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(=)误写为赋值号(=)时不会报错的,但是其值恒为 1。3.以下选项中非法的字符常量是( )。(分数:2.00)A./B./0201 C./xAAD.0解析:解析 选项 A)表示的是反斜杠字符;一般可是用 13 位八进制数表
25、示的字符,而选项 B)中/0201有 4位八进制数,所以错误;选项 C)是用两位十六进制数 AA表示的 ASCII码字符;选项 D)表示的是字符 0对应的 ASCII码值。4.运行下面的程序,输入字符串 Microsoft Visual Studio,则程序的执行结果是( )。 #includestdio.h main() char Chr20; scanf(“%s“,&Chr); printf(“%s/n”,Chr); (分数:2.00)A.Microsoft Visua1 StudioB.MC.Microsoft D.MicrosoflVisualStudio解析:解析 当从键盘输入 Mi
26、crosoft Visual studio时,由于 scanf输入函数的特点是遇到空格时结束读入字符,因此,该程序只将 Microsoft这 9个字符送到了字符数组 str中,并在其后自动加上结束符“/0”。5.若 x=2,y=3,则 x&y的结果是( )。(分数:2.00)A.0B.2 C.3D.5解析:解析 本题主要考查按位与(&)运算的知识点。“&”是对两个运算量相应的位进行逻辑与,“&”的规则与逻辑与“&”相同。x=2 的二进制为 00000010,y=3 的二进制为 00000011,x&y=00000010,转化为十进制即为 2。6.下列二叉树描述中,正确的是( )。(分数:2.0
27、0)A.任何一棵二叉树必须有一个度为 2的结点B.二叉树的度可以小于 2 C.非空二叉树有 0个或 1个根结点D.至少有 2个根结点解析:解析 二叉树是由 n0 个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。二叉树可以是空集合,根可以有空的左子树或空的右子树。二叉树不是树的特殊情况,它们是两个概念。 二叉树具有如下两个特点: 非空二叉树只有一个根结点。 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。7.下列叙述中,不属于软件需求规格说明书的作用的是( )。(分数:2.00)A.便于用户,开发人员进行理解和交流B.反映
28、出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析 解析:解析 软件需求规格说明书有以下几个方面的作用: 便于用户、开发人员进行理解和交流。 反映出用户问题的结构,可以作为软件开发工作的基础和依据。 作为确认测试和验收的依据。8.设函数中有整型变量 a,为保证其在未赋初值的情况下初值为 0,应选择的存储类别是( )。(分数:2.00)A.static B.registerC.autoD.auto或 register解析:解析 存储类说明符有 auto、register、static、extern 和 typedef。 auto 和 reg
29、ister将声明的对象说明为自动存储类对象,这些对象仅可用在函数中。 这种声明也具有定义的作用,并将预留存储空间。register 说明的声明等价于 auto说明的声明,所不同的是,register 暗示了声明的对象将被频繁地访问,将尽可能存储在寄存器中。如果一个对象被声明为register,则将不能对它应用一元运算符&,声明为 register但实际按照 auto类型处理的对象的地址进行计算是非法的。 static 将声明的对象说明为静态存储类。这种对象可以用在函数内部或者函数外部。在函数内部,该说明符将引起存储空间的分配,具有定义的作用。在函数外部,该说明符将引起声明对象为具有内部链接。另
30、外,若将其定义为 static类型,则其初值默认为 0。 函数内部的 extern声明表明,被声明的对象的存储空间定义在其他地方。在函数外部,说明声明的对象具有外部链接。 typedef 说明符并不会为对象预留存留空间。9.下列各选项中,不属于序言性注释的是( )。(分数:2.00)A.程序标题B.程序设计者C.主要算法D.数据状态 解析:解析 注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。10.有
31、以下程序: #includestdio.h int fun(int*k) int b=0; b=*k+b: return(b); main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)printf(“%d“,fun(&ai); printf(“/n“); 程序运行后的输出结果是( )。(分数:2.00)A.10 12B.8 10C.3 4 D.10 28解析:解析 b 是局部变量,因此当 i=2时,fun(2)的值为 3,i=3 时为 411.以下程序段的输出结果是( )。 #includestdio.h main() char p4=“ABC“,“D
32、EF“,“GHI“; int i; for(i=0;i3;i+) puts(pi); (分数:1.00)A.A B CB.A D GC.A B C D E F G H I D.A B C解析:解析 本题首先定义了一个字符串数组 p,通过 for循环输出 p0、p1、p2的值。12.有以下程序: #includestdio.h int fun(int x,int y) if(x=y)return(x); else return(x+y)/2); main() int a=1,b=2,c=3; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是( )。(分数:1
33、.00)A.2 B.3C.4D.5解析:解析 fun(b,c)即 fun(2,3),2!=3,所以返回(2+3)/2=2;fun(2*a,2)即 fun(2,2),2=2,所以返回 2。13.已知:int c34;,则对数组元素引用正确的是( )。(分数:1.00)A.c14B.c1.50C.c1+00 D.以上表达都错误解析:解析 此题考查的是数组元素的引用。对于已定义的数组 aMN,数组元素的正确引用必须满足行下标小于 M,列下标小于 N,且为正整数。因此,选项 A)中列下标溢出;选项 B)中行下标出现小数;选项 C)满足要求。14.下列不属于软件工程 3个要素的是( )。(分数:1.00
34、)A.工具B.过程C.方法D.环境 解析:解析 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。15.以下叙述中不正确的是( )。(分数:1.00)A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效 解析:解析 此题考查的是变量的作用范围。选项 D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。16.siz
35、eof(char)是( )。(分数:1.00)A.一种函数调用B.一个整型表达式 C.一个字符型表达式D.一个不合法的表达式解析:解析 sizeof(char)是一个 C语言的关键字,它不是函数调用。sizeof 的功能是计算出运算对象在计算机的内存中所占用的字节数量,该表达式的返回值是一个整数,而不是一个字符型表达式。17.下面程序运行后的输出结果是( )。 #includestdio.h main() int a5=1,0,4,2,0,b5=1,2,3,4,5,i,s=0; for(i=0;i5;i+)s=s+bai; printf(“%d/n”,s); (分数:1.00)A.12 B.1
36、5C.11D.8解析:解析 这道题目是计算机一维数组 b中某些元素的和。这些元素的下标值是一维数组 a中元素值。s=0+b1+b0+b4+b2+bO=2+1+5+3+1=12。18.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是( )。(分数:1.00)A.char*s=“AAA“,“BBB“,“CCC“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“; 解析:解析 二维字符数组在定义时可省略第一维的维数,根据初始化有 3个字符串,所
37、以选项 D)中数组有 3行,与已知说明语句等价。19.某二叉树中度为 2的结点有 10个,则该二叉树中有( )个叶子结点。(分数:1.00)A.9B.10C.11 D.12解析:解析 根据二叉树的性质 3:对任何一棵二叉树,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。20.C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是( )。(分数:1.00)A.冠以关键字 externB.位置在函数体外部C.作用范围是全程的D.位置在函数的外部 解析:解析 C 语言中允许用位置在函数外部的说明来指定变量、函数和其他标识符的特征。21.下列模式中,能够给出数据库物理
38、存储结构与物理存取方法的是( )。(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:解析 数据库管理系统的三级模式结构由外模式、模式和内模式组成。 外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。22.设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量 a1
39、和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。下列所示的输入形式中正确的是(注:口代表空格字符)( )。(分数:2.00)A.10X20YCR B.10X20YCRC.10XCR20YCRD.10XCR 20YCR解析:解析 在使用 scanf函数进行输入数据时,输入的数据之间必须用空格、回车符、制表符(Tab 键)等间隔符隔开。23.下列 4个程序中,完全正确的是( )。(分数:2.00)A.#includestdio.h main(); (/*programming*/ printf(“programming!/n“);B.# includestdio.h main(
40、) /*/programming/*/ printf(“programming!/n“); C.#includestdio.h main() /*/programming*/*/ printf(“programming!/n“);)D.includestdio.h main() /*programming*/ printf(“programming!/n“);解析:解析 选项 A)中,main()函数后面的分号是错误的,C 语言在函数名后面不能有分号;在 C语言中注释内容必须放在“/*”和“*/”之间,“/*”和“*/”必须成对出现,按语法规定在注释之间不可再嵌套“/*”和“*/”,选项 C)
41、的程序段中注释语句之间有嵌套;C 语言用#include 命令行来实现文件包含的功能。#include 命令行的形式为:#include“文件名”,选项 D)中的 include前面少了一个#符号。24.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%1f“,a);B.scanf(“%f“,&a);C.scanf(“%1f“,&a) D.scanf(“%1e“,a);解析:解析 scanf 函数的调用形式是:scanf(“格式字符串“,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。a 是 doubl
42、e型数据,格式字符串可以用%1f,%f 是浮点型。 题中定义变量 a为双精度型变量,双精度变量的格式符为“if;变量的地址用取地址符“&”加变量名表示,变量 a的地址为“&a”。25.若 i、j 已定义成 int型,则以下程序段中内循环体的总执行次数是( )。 for(i=6;i0;i-) for(j=0;j4j+)(分数:2.00)A.20B.24 C.25D.30解析:解析 本题考查的是嵌套 for循环执行次数。对于外层 i的循环中任何一个 i,内层 j的循环中的 j都要从 0变化到 3,j=4 时退出循环;然后外层 i循环的 i减少 1,内层循环的 i仍要从 0变化到3,j=4 时退出循
43、环直到外层 i循环的 i变为 0,退出 i循环。所以执行多重循环时,对外层循环变量的每一个值,内层循环的循环变量都要从初始值变化到终值。对外层循环的每一次循环,内层循环要执行完整的循环语句。外层 for语句执行 6次,内层 for语句执行 4次,所以内循环体执行 6*4=24次。26.以下程序: #includestdio.h #includestring.h main() char str=“abcd/n/123/xab“; printf(“%d“,(str); 运行后的输出结果是( )。(分数:2.00)A.10B.9C.7 D.14解析:解析 本题考查字符串的长度,需注意转义字符串,例如
44、,“/n”表示换行,为一个长度,“/123”表示 3位八进制数 123表示的字符,为一个长度,“/xab”表示二位十六进制数 ab表示的字符,也为一个长度。27.以下程序的输出结果是( )。 #includestdio.h int m=13; int fun(int x,int y) int m=2; return(x*y-m); main() int a=7,b=6; printf(“%d“,fun(a,b)/m); (分数:2.00)A.1B.3 C.7D.10解析:解析 本题考查的是函数调用时的参数的作用域。在函数调用时,当全局变量和局部变量的名称相同时,在局部变量的作用域内,局部变量起
45、作用,因而在 fun函数内 m的应该等于 2,main 中的 m为13,所以返回值为 76-2=40,而 fun(a,b)/m值为 40/13=3。28.若有如下说明,且 int类型占两个字节,则正确的叙述为( )。 struct st int a; int b2; a;(分数:2.00)A.结构体变量 a与结构体成员 a同名,定义是合法的 B.程序只在执行到该结构体时才为结构体 st分配存储单元C.程序运行时为结构体 st分配 8字节存储单元D.类型名 struct st可以通过 extern关键字提前引用解析:解析 本题主要考查结构体的用法:结构体变量 a与结构体成员 a同名,定义合法:在
46、程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;int a 占 2个字节,int b2占 4个字节,共 6个;类型名 struct st不可以通过 extern关键字提前引用。29.设有一联合体变量定义如下: union data long a; float b; int c; char d: ; union data x; 执行下列语句后,正确的联合体变量 x的值是( )。 x.a=111111; x.b=2222; x.c=2.1546; x.d=R:(分数:2.00)A.111111B.2222C.2.1546D.R 解析:解析 本题主要考查
47、的知识点是联合体的内存使用。联合体与结构体的定义相同,其本质区别就在于内存使用方式的不同。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元;联合体中的空间在某一时刻只能保持某一个成员的数据,所以本题执行完一系列赋值后,只得到最后执行的字符R。30.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。(分数:2.00)A.属性B.关系 C.记录D.码解析:解析 E-R 图由实体、实体的属性和实体之间的联系 3个要素组成,关系模型的逻辑结构是一组关系模式的集合,将 E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。如下表所示。表 E-R 模型与关系间的比较表E-R模型 关系 E-R模型 关系属性 属性 实体集 关系实体 元组 联系 关系31.两次运行下面的程序,如果从键盘上分别输入 3和 2,则输出结果是( )。 #includestdio.h main() int x; scanf(“%d“,&x)
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1