1、国家二级( C语言)笔试模拟试卷 256 及答案与解析 1 数据库系统在其内部具有 3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是 ( )。 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 2 数据结构主要研究的是数据的逻辑结构、数据的运算和 ( )。 ( A)数据的方法 ( B)数据的存储结构 ( C)数据的对象 ( D)数据的逻辑存储 3 下列有关数据库的描述 ,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变 时 ,数据的存储结构不变 ( C)关系中的每一列称为元组 ,一个元组就是一个字段 ( D)如果一
2、个关系中的属性或属性组并非该关系的关键字 ,但它是另一个关系的关键字 ,则称其为本关系的外关键字 4 常采用的两种存储结构是 ( )。 ( A)顺序存储结构和链式存储结构 ( B)散列方法和索引方式 ( C)链表存储结构和数组 ( D)线性存储结构和非线性存储结构 5 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对象之间的共同性质 ( D)类之间共享属性和操作的机制 6 已知数据表 A中每个元素距其最终位置不远,为节省时间,应采用的算法是 ( A)堆排序 ( B)直接插入排序 ( C)快速排序 ( D) B)和 C) 7
3、 关系表中的每一横行称为一个 ( A)元组 ( B)字段 ( C)属性 ( D)码 8 下列有关数据库的描述,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C)关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属 性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 9 结构化程序设计所规定的三种基本控制结构是 ( ) ( A)输入、处理、输出 ( B)树形、网形、环形 ( C)顺序、选择、循环 ( D)主程序、子程序、函数 10 有下列二叉树,对此二叉树中序遍历的
4、结果为 ( )。 ( A) ABCDEF ( B) BDAECF ( C) ABDCEF ( D) ABCDFE 11 设有以下程序段 int X=0, s=0; while(!X!=0)S+=+X; printf(“%d“, s); 则 ( A)运行程序段后输出 0 ( B)运行程序段后输出 1 ( C)程序段中的控制表达式是非法的 ( D)程序段执行无限次 12 设有定义: char s10; int i=0;,以下不能将一行 (不超过 100个字符 )带有空格的字符串正确读入的语句或语句组是 ( )。 ( A) gets(s); ( B) scanf(“ s”, s); ( C) whi
5、le(si+=getchar()!= n); si= 0; ( D) doscanf(“ c”, ( B) a=0,b=0,c=0; ( C) if(a 0); ( D) if(b= =0) m=1;n=2; 17 在 C语言中提供的合法的关键词是 _。 ( A) swicth ( B) cher ( C) Case ( D) default 18 算法具有五个特性,以下选项中不属于算法特性的是 ( A)有穷性 ( B)简洁性 ( C)可行性 ( D)确定性 19 下面程序输出的结果是 _。 main() int i=5,j=9,z; x=(i=j?i:(j=7); printf(:n%d,%
6、d“,i,j); ( A) 5,7 ( B) 5,5 ( C)语法错误 ( D) 7,5 20 若有下列定义 (设 int类型变量占 2个字节 ): floatx=123.4567; 则下列语句: printf(“x=%5.2f“,x); 输出的结果是 ( )。 ( A) x=123.46 ( B) 123.4567 ( C) x=123.4567 ( D) 123.46 21 有以下程序段: typedef struct NODE int num; struct NODE *next; OLD; 以下叙述中正确的是 _。 ( A)以上的说明形式非法 ( B) NODE是一个结构体类型 ( C
7、) OLD是一一个结构体类型 ( D) OLD是一个结构体变量 22 以下函数值的类型是 _。 fun(float x) float y; y=3*x-4; return y; ( A) int ( B)不确定 ( C) void ( D) float 23 以下关于函数的叙述中正确的是 _。 ( A)每个函数都可以被其他函数调用 (包括 main函数 ) ( B)每个函数都可以被单独编译 ( C)每个函数都可以单独运行 ( D)在一个函数内部可以定义另一个函数 24 若运行以下程序时,从键盘输入 ADescriptor CR ( CR表示回车 ),则下面程序的运行结果是 ( )。 #incl
8、ude stdio.h main() char c; int v0=1,v1=0,v2=0; do switch(c=getchar() casea:caseA: casee:caseE: casei:caseI: caseo:caseO: caseu:caseU:v1+=1: default:v0+=1;v2+=1; while(c!=n); printf(“v0=%d,v1=%d,v2=%dn“,v0,v1,v2); ( A) v0=7,v1=4,v2=7 ( B) v0=8,v1=4,v2=8 ( C) v0=11,v1=4,v2=11 ( D) v0=13,v1=4,v2=12 25
9、以下关于 C语言数据类型的叙述中正确的是 ( )。 ( A) C基本数据类型包括:分为整型、实型、浮点型、字符型四种 ( B)实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式 ( C)若要处理如 “人员信息 ”等含有不同类型的相关数据,应自定义结构体类型 ( D)若只处理 “真 ”和 “假 ”两种逻辑值,应使用逻辑类型 26 下列程序的运行结果是 ( )。 main() int x=1,y=3,a=0; while(x+!=(y-=1) ) a+=1; if(y x)break; printf(“%d,%d,%dn“,x,y,A) ; ( A) 2,3,2, (
10、 B) 2,3,1 ( C) 1,3,3 ( D) 3,1,2 27 有如下程序: main() char ch25=“6937“,“8254“, *p2; int i,j,s=0; for(i=0; i 2; i+)pi=chi; for(i=0; i 2; i+) for(j=0;pij!=O;j+=2) s=10*s+pij-0; printf(“%dn“, s); 该程序的输出结果是_。 ( A) 69825 ( B) 63825 ( C) 6385 ( D) 693825 28 有以下程序 void f(int*x,int*y) int t; t=*x; *x=*y; *y=t; m
11、ain() int a8=1, 2, 3, 4, 5, 6, 7, 8, i, *p, *q; p=a; q= if(x y) t=x; x=y; y=t; main() int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf(“%d,%d,%dn“,a,b,c); 执行后输出的结果是 ( A) 3, 4, 5 ( B) 5, 3, 4 ( C) 5, 4, 3 ( D) 4, 3, 5 32 有以下程序: #include stdio.h main() printf(“%dn“,NULL); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1
12、 ( C) -1 ( D) NULL没定义,出错 33 有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i 6;i+) fprintf(fp,“%d “,i); if(i%3=0) fprintf(fp,“n“); rewind(fp); fscanf(fp,“%d%d“, printf(“%d%dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( )。 ( A) 0 0 ( B) 123 45 ( C) 1 4 ( D) 1 2 34 以下程序的输出
13、结果是 _。 main() int a44=1,3,5,2,4,6,3,5,7); Print(“%d%d%d%dn“,a03,al2,a2 1,a30); ( A) 650 ( B) 1470 ( C) 5430 ( D)输出值不定 35 若输入 000051,下列程序的运行结果为 _。 main() unsigned int a; scanf(“%o“, c+=a+b; rerurn c; main() int x=5,y=3,z=7,r; r=fun(y,x+y),z); r=fun(x,y); printf(“%dn“,r); 上 面程序的输出结果是 _。 ( A) 23 ( B) 1
14、5 ( C) 19 ( D) 18 37 以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 ( )。 abs(int x) if(x =0)return x: else return -x; main() int y, z, (*p)(int x)=abs; scanf(“ d“ , for(i=0;i 3;i ) scanf(“%d“,xi); printf(“%3d%3d%3dn“,x00,x01,x10); 若运行时输入: 246回车,则输出结果为 _。 ( A) 200 ( B) 204 ( C) 240 ( D) 246 41 有以下程序 ma
15、in() char s=“aeiou“,*ps; ps=s; printf(“%cn“,*ps4); 程序运行后输出的结果是 _。 ( A) a ( B) e ( C) u ( D)元素 s4的地址 42 一棵二叉树共有 47个结点,其巾有 23个度为 2的结点。假设根结点在第 1层,则该二叉树的深度为 _。 43 软件工程研究的内容主要包括 :【 】技术和软件工程管理。 44 在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为 _。 45 派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的【 】。 46 对
16、长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 。 47 设有下列程序: #include stdio.h #include string.h main() int i; char s10,t10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0)strcpy(t,s); print f(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): DEF CR BADEF CRQTHRG CR ,则程序的输出结果是 _。 48 以下程序的功能是将字符串 s中所有小写字母 a删去,请填空。 #include stdi
17、o.h main() char s=“absuWWUDJFKFLaaakdK“; int i,j; for(i=j=0;si!=0;i+) if( ) sj+=si; sj=0; printf(“%s“,s); 49 以下程序运行后的输出结果是 ( )。 main() int a, b, c; a=10; b=20;c=(a/b 1) printf(“%dn“,*(p+3); 52 以下程序运行后的输出结果是 ( )。 main() int a=3,b=4,c=5,t=99; if(b a a C)t=a;a=c;c=t; if(a c b C)t=b;b=a;a=t; printf(“%d%
18、d%dn“,a,b,A); 53 以下程序运行后的输出结果是 _。 #define S(x) 4*X*x+1 main() int i=6, j=8; printf(“%dn“, S(i+i); 54 若输入 3、 4、 5,程序的输出结果为【 】。 #include “math.h“ main ( ) float a, b, c, s, area; scanf(“%f,%f,%f“, s=1.0/2*(a+b+c); area=sqrt (s* (s-a) * (s-b) * (s-c); printf (“a=%7.2f,b=%7.2f, c=%7.2f, s=%7.2f“, a,b, c
19、, s); printf (“area=%7.2fn“, area); 55 若有如下程序: main() int x=4, y 3, x 2, t; t x y z; printf(“%dn“, t); 则程序运 行后的输出结果是【 】。 56 以下程序的输出结果是【 】。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main( ) int i=2,j=3; printf(“%dn“,MCRB(j,MCRA(i); 57 若变量 a,b 已定义为 int类型并赋值 21和 55,要求用 printf函数以 a=21,b=55的形式输出,
20、请写出完整的输出语句 。 国家二级( C语言)笔试模拟试卷 256 答案与解析 1 【正确答案】 B 【试题解析】 概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户应用公共数据视图。它不涉及具体的硬件环境与平台,与具体的软件环境也无关。 2 【正确答案】 B 【试题解析】 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含 3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。 3 【正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程 ,故选项 A)叙述错误 ;数据的物理独立性是指数据的物理结构的改变 ,不会影响 数据库的逻辑结构 ,
21、故选项 B)叙述错误 ;关系中的行称为元组 ,对应存储文件中的记录 ,关系中的列称为属性 ,对应存储文件中的字段 ,故选项 C)叙述错误。 4 【正确答案】 A 【试题解析】 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。 5 【正确答案】 D 【试题解析】 继承:在程序设计中,继承是指子类自动享用父类的属性和方法,并可以追加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,这也是面向对象的主要 优点之一。继承又分为单重继承和多重继承。单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继
22、承了多个父类的属性和操作。熟悉 IT的人都知道, Java是一种单重继承语言,而 C+是一种多重继承语言。 6 【正确答案】 B 【试题解析】 堆排序的比较次数为 nlog2n;直接插入排序的比较次数为 n(n-1)/2;快速排序的比较次数为 nlog2n。当数据表 A中每个元素 7 【正确答案】 A 【试题解析】 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性, 对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。 8 【正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结
23、构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C)叙述错误。 9 【正确答案】 C 10 【正确答案】 B 【试题解析】 对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历 右子树。在遍历左、右子树时,注意依旧按照 “左子树 根结点 右子树 ”的顺序。 11 【正确答案】 B 【试题解析】 本题中, “!”表示逻辑非运算符, “! =”表示不等于运算符,逻辑非运算符比不等于运算符的优先级高。 12 【正确答案】 B 【试题解析】 本题考查标准输入输出函数和循环语句。 gets(
24、s)函数的作用是将输入的字符读入字符串 s,直到遇到回车。而 scanf()函数接收字符串时的结束标志为回车或者空格。因此选项 B 不能,选项 C和选项 D中按字符逐个读入字符串 s中,直到读入的字符是换 行符为止,因此正确。 13 【正确答案】 B 【试题解析】 本题涉及字符串最基本的 2个概念: 字符串的长度是指字符串中字符的个数,但不包括字符串结束符; 以反斜杆 开头的特殊字符序列,意思是把反斜杆后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内, 连同后面的字符为一个长度:而 也是如此。 14 【正确答案】 C 【试题解析】 一件 “商品 ”只能被一名 “顾客 ”
25、购买,而一名 “顾客 ”可以买多件 “商品 ”,所以 “商品 ”与 “顾客 ”两个实体集之间的联系是多对一关系。 15 【正确答案】 A 【试题解析】 u表示输出无符号的整数 (如果输出值前有符号,将自动转化为相应的无符号数输出 )。 16 【正确答案】 D 【试题解析】 在 if 后面只能有一条语句,或一条复合语句,即用花括号将多条语句括起来。选项 D)中没有将两条语句括起来,不能看成一条语句。 17 【正确答案】 D 【试题解析】 选项 A应为多分支语句中的 switch,选项 B应为定义字符类型的char,选项 C应为多分支语句中的分支关键词 case(小写 )。因此,选项 A、 B、
26、C都有书写上的错误, 只有选项 D正确。 18 【正确答案】 B 【试题解析】 算法具有的 5个特性是:有穷性;确定性;可行性;有 0个或多个输入;有一个或多个输出。 19 【正确答案】 A 【试题解析】 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3;先求解表达式 1,若为真则求解表达式 2;若表达式 1的值为假,则求解表达式 3。本题中先判断 i=j,不等,执行 j=7;然后执行 x=7。故本题为 A。 20 【正确答案】 A 【试题解析】 本题考查 printf函数的格式。 “%5.2f”格式符中的 “f”表示 以带小数点的形式输出单精度或者双精度数: “5”表示指定数据输出
27、宽度为 5; “.2”表示指定输出数据小数位占 2位数,并对截去的第一位小数做四舍五入处理。 21 【正确答案】 C 【试题解析】 typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用 typedef进行定义的话,则 struct NODE为结构体类型,现在用typedef 定义后,相当于用 OLD代表了 struct NODE这一结构体类型,故 OLD为结构体类型。 22 【正确答案】 A 【试题解析】 C语言规定函 数定义时若不声明函数值的类型,则默认为是整型。 23 【正确答案】 B 【试题解析】 main 函数是不能被其他函数调用的,函数可以单独编译,但不能单独
28、运行, C语言中,一个函数内部是不能再定义另一函数的。 24 【正确答案】 D 【试题解析】 本题考查的是 switch 语句的应用。分析程序, do-while语句是先执行 do后面的语句再判断是否符合 while的条件。 V2+=1;语句无论读入的是什么字母 (包括回车符 ),此语句都要执行,语句 default:v0+=1;亦是如此;而语句caseU:v1+=1;只有在读入的字母是 a、 A、 e、 E、 i、 I、 o、 O、 u、U时才会执行。 25 【正确答案】 C 【试题解析】 C基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有 2,
29、 8, 16进制表达,在 C语言中没有定义逻辑类型,而是一般用 0代表假,用非零代表真。 26 【正确答案】 D 【试题解析】 本题考查 while循环。第一次循环,先拿 x的值和 (y-1)比较,此时x=1, y-1=2,循环条件成立,比较完将 x的值加 1,此时 x=2,进入循环,a=a+1=1,判断 if语句的控制条件是否成立, y x不成立,接着执行下一次循环。第二次循环,先拿 x的值和 (y-1)比较,此时 x=2, y-1=1,循环条件成立,比较完将 x的值加 1,此时 x=3,进入循环, a=a+1=2,判断 if语句的控制条件是否成立, y x成立,执行 break 语句退出循
30、环。 27 【正确答案】 C 28 【正确答案】 D 29 【正确答案】 D 【试题解析】 strcat(s1, s2)是把 s2字符串连接到 s1字符串的末尾,要保证 s1能容纳下 连接后的字符串。 30 【正确答案】 D 【试题解析】 本题首先定义了一个字符型指针变量 p,并用一个宇符串给它赋值,然后调用 printf()函数输出 p所指向的字符串的长度。字符串的结束标记为“0”,其长度为 “0”前的字符个数,故长度为 5。所以 4个选项中 D正确。 31 【正确答案】 D 【试题解析】 本题考核的知识点是函数的定义、调用方式以及参数的传递。 C语言规定,在函数调用时变量作为参数传递是传值
31、的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数 f(),用变量 作为形参,在main()函数中调用了 3次 f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。所以输出的 a、 b、 c依旧是原来的值 4, 3、 5。所以, D选项为所选。 32 【正确答案】 A 【试题解析】 在 C语言中 NULL 的 ASCII 码值为 0,而输出函数要求以整形格式输出,故最后的输出数为 0。所以, 4个选项中选项 A符合愿意。 33 【正确答案】 D 【试题解析】 程序首先定义了一个文件指针 fp,并使用 fopen()函数以 “w+”方式新建一个可读写文件
32、 “data.dat”。然 后使用一个 for循环,循环变量 i从 1递增到5,在循环体中每次写入循环变量 i的值和 4个空格,当 i能被 3整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为: 1 2 3 4 5 接下来程序使用 rewind()函数,将文件的读写指针调回起始位置。并调用 fscanf()函数从文件中读取两个整数到变量 k 和 n。所以最终输出应该为: 1 2。故本题选D。 34 【正确答案】 A 【试题解析】 对未给出初始值的整数数组元素,被默认初始化为零。 35 【正确答案 】 A 36 【正确答案】 A 【试题解析】 static声明的外部变量只限于被本文件引
33、用,而不能被其他文件引用。用 static来声明 个变量的作用有: 对局部变量用 static声明,则为该变量分配的空间在整个程序执行期间始终存在; 全部变量用 static声明,则该变量的作用域只限于本文件模块 (即被声明的文件中 )。调用第 个 fun,其两个实参的值为 (3,5+3)与 7即 8与 7,在函数 fun执行结束返回 15。第二次调用 fun 时,由于static为静态类型,其值保留,执行 fun(5,3)后,其返回值为 23,故选 A。 37 【正确答案】 B 【试题解析】 可以使用函数指针来调用函数。调用形式为: (*指针变量 )(实参表列 )。注意:调用函数和被调用函数
34、之间的数据传递。 38 【正确答案】 D 【试题解析】 return 语句用于从被调函数带回一个函数值。 void关键字表示 “无类型 ”,即不需要从被调函数中带回函数值,所以不需要 return 语句,故编译时出错。 39 【正确答案】 A 【试题解析】 选项 A错误,原因是 typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型 。 40 【正确答案】 B 【试题解析】 此题中 “scanf(“%d“,xi);”相当于 “scarf(“%d“,xi0);”。输入246,执行 for语句也就是 x00=2, x10=4, x20=6,其余的数组元素为0:所以 x00=2,
35、x01=0, x10=4。 41 【正确答案】 B 【试题解析】 此题中先定义一个指针变量 ps,并将 s的首地址赋给此指针变量,*ps 4相当于先从指针变量 ps指向的地址中取出相应数据 “a”后,对此数据加 4,a的 ASC 码为 32, 32 4=36,对应于字符 e,所以答案选 B。 42 【正确答案】 6 【试题解析】 对于任意一棵二又树,如果其叶结点数为 N0,而度数为 2的结点总数为 N2,则 N0=N2+1;因此叶节点为 24个。在二叉树中,第 i层的结点总数不超过 2 (i1);围此 i=6 43 【正确答案】 软件开发 【试题解析】 本题考查了软件工程的基本概念。基于软件工
36、程的目标 ,软件工程的理论和技术性研究的内容主要包括 :软件开发技术和软件工程管理。软件开发技术包括 :软件开发方法学、开发过程、开发 工具和软件工程环境 ,其主体内容是软件开发方法学。软件工程管理包括 :软件管理学、软件工程经济学以及软件心理学等内容。 44 【正确答案】 逻辑独立性 【试题解析】 数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。 45 【正确答案】 数据和操作 46 【正确答案】 45 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n/2遍的从前往后扫描和 n/2遍的从后往前扫描,需要比较次数为 n(n-1)/2。 47 【正确答案
37、】 QTHRG 【试题 解析】 函数 strcmp(t,s)用来比较 t和 s所指字符串的大小,若 t s,则函数值大于 0;若 t=s,则函数值等于 0;若 t s,则函数值小于 0。函数 strcpy(t,s)的功能是,把字符数组 s所指字符串的内容复制到字符数组 t所指存储空间中。 本题中, t10=CDEF“。第一次循环, s10=BADEF“, if 语句的控制条件strcmp(t,s) 0不成立,接着执行第二次循环, s=“QTHRO“, if 语句的控制条件strcmp(t,s) 0成立,执行下列的语句,将字符数组 s所指字符串的内容 复制到字符数组 t所指存储空间中,然后输出字
38、符数组 t。 48 【正确答案】 si!=a 【试题解析】 本题是要将字符串 s中所有小写字母 a删去,所以 if 语句的判断条件应该是字符串 s中的字符和字符 a不相同的时候,就把它仍然存在原来的数组中,若是和字符 a相同,就不再保存它。 49 【正确答案】 10 20 0 【试题解析】 本题考查的是混合运算。 “(a/b 1)&(a%b 1)”的运算顺序为:括号算术运算符关系运算符逻辑运算符。其中 a%b=10, a, b=0,所以a%b 1的值为 0, a/b 1的值为 1,故整个表达式的结果为 0,所以输出的 a,b, c的值为 10 20 0。 50 【正确答案】 层次模型 【试题解
39、析】 层次模型是最早发展起来的数据库模型。层次模型的基本结构是树形结构。 51 【正确答案】 68 【试题解析】 本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组 str的指针 p,指针 p 指向数组 str的首地址, p+3将指针指向 str3,*(p+3)指的是字符 “D”,输出时是以 “%d”格式输出的,即输出其相应 ASCII 码值 68。 52 【正确答案】 4 5 99 【试题解析】 a、 b、 c的初值为 3、 4、 5, t的初值为 99, if语句的条件 “b a b c”为假,不执行 “t=a; ”,但紧随其后的 “a=c; c=t; ”与此 if 语句无关,
40、仍被执行。此时 a的值为 5, b 的值仍是 4, c的值为 99。再执行第二个 if 语句,由于此时 “a c b c”为真,执行 “t=b; ”,紧随其后的 “b=a; a=t; ”与此 if 语句无关,也被执行。此时 a的值为 4, b的值是 5, c的值为 99。因此输出结果是: 4 5 99。 53 【正确答案】 81 【试题 解析】 ,解此类题一定要注意宏替换与函数调用的区别。宏替换是字面上的,在编译期间就完成了,它只是将实参字符串替换蚌宏中形参出现的位置,得到的新串来替换掉宏调用。而函数是将实参先计算好,然后将值赋给形参,再执行函数体,整个过程在程序运行时发生。所以本题的宏调用
41、s(1+1)将被替换成表达式 4*i+j*i+j+1等于 4*6+8*6+8+1=24+48+8+1=81。所以本题输出 81。 54 【正确答案】 a=3.00,b=4.00,c=5.00,s=6.00,area=6.00 55 【正确答案】 1 56 【正确答案】 16 【试题解析】 由带参数的宏定义知, MCRB(j, MCRA(j) MCRB(j,2*i) 2*MCRA(j)+2*i 2*2*j+2*i。 57 【正确答案】 printf(“a=%d,b=%d“,a,b); 【试题解析】 printf函数为格式输出函数,括号内包括两部分: (1)“格式控制 ”是用双引号括起来的字符串,其中包括两种信息: “格式说明 ”由 “%”和格式字符组成,此题定义为 int型所以要用 %d; “普通字符 ”即需要原样输出的字符,此题目中为 a=,b=; (2)“输出列表 ”是需要输出的 些数据,可以是表达式。