1、国家二级( C语言)笔试模拟试卷 94 及答案与解析 1 下面叙述正确的是 _。 ( A)算法的执行效率与数据的存储结构无关 ( B)算法的空间复杂度是指算法程序中指令 (或语句 )的条数 ( C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)算法的时间复杂度是指执行算法程序所需要的时间 2 以下数据结构属于非线性数据结构的是 _。 ( A)队列 ( B)线性表 ( C)二叉树 ( D)栈 3 在一棵二叉树上第 8层的结点数最多是 _。 ( A) 8 ( B) 16 ( C) 128 ( D) 256 4 下面描述中,不符合结构化程序计风格的是 _。 ( A)使用顺序、选择和重复
2、 (循环 )三种基本控制结构表示程序的控制逻辑 ( B)自顶向下 ( C)注重提高程序的执行效率 ( D)限制使用 goto语句 5 以下概念中,不属于面向对象方法的是 _。 ( A)对象、消息 ( B)继承、多态 ( C)类、封装 ( D)过程调用 6 在结构化方法中,用数据流程图 (DFD) 作为描述工具的软件开发阶段是_。 ( A)可行性分析 ( B)需求分 析 ( C)详细设计 ( D)程序编码 7 软件生命周期中所花费用最多的阶段是 _。 ( A)详细设计 ( B)软件编码 ( C)软件测试 ( D)软件维护 8 数据库系统的核心是 _。 ( A)数据模型 ( B) DBMS ( C
3、)软件工具 ( D)数据库 9 下列叙述中正确的是 _。 ( A)数据处理是将信息转化为数据的过程 ( B)数据库设计是指设计数据库管理系统 ( C)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的 外关键字 ( D)关系中的每列称为元组,一个元组就是一个字段 10 下列模式中, _是用户模式。 ( A)内模式 ( B)外模式 ( C)概念模式 ( D)逻辑模式 11 请读程序: #include stdio.h main() int a; float b,c; scanf(“%2d%3f%4f“, ( A) abbbc ( B) ac ( C) ab
4、c ( D) abc 15 若 x是整型变量, pb是基类型为整型的指针变量,则正确的赋值表达式是_。 ( A) pb= 则应填入 _。 ( A) int ( B) int* ( C) (*int) ( D) (int*) 18 下面程序输出的结果是 _。 main() int i=5,j=9, x; x=(i=j?i:(j=7); printf(“n%d,%d“, i,j); ( A) 5, 7 ( B) 5, 5 ( C)语法错误 ( D) 7, 5 19 若执 行下面程序时从键盘上输入 5, main() int x; scanf(“%d“, 则输出是 _。 ( A) 7 ( B) 6
5、( C) 5 ( D) 4 20 若有以下定义和语句: int a=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p=a 则值为 3的表达式是 _。 ( A) P+=2, *(p+) ( B) P+=2, *+p ( C) P+=3, *p+ ( D) P+=2, +*p 21 下列程序执行后的输出结果是 _。 main() int m3=1, 4, 7, 2,5, 8, 3, 6, 9; int i,k=2; for(i=0; i 3; i+) printf(“%d“,mki); ( A) 456 ( B) 258 ( C) 369 ( D) 789 22 设已定义 i和
6、k为 int类型变量,则以下 for循环 语句 _。 for(i=0; k=-1,k=1;i+,k+) printf(“*n“); ( A)判断循环结束的条件不合法 ( B)是无限循环 ( C)循环一次也不执行 ( D)循环只执行一次 23 下面程序的输出结果是 _。 unsigned fun(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return(k); main() unsigned n=26; printf(“%dn“,fun(n); ( A) 0 ( B) 4 ( C) 12 ( D)无限次循环 24
7、己知字母 A的 ASCII码值是 65,字母 a的 ASCII码值是 97,以下程序_。 main() char a=A; int b=20; printf(“%d,%o“,(a=a+a,a+b,B) ,a+a-A,b) ; ( A)表达式非法,输出零或不确定值 ( B)因输出项过多,无输出或输出不确定值 ( C)输出结果 20,141 ( D)输出结果为 20,141,20 25 C语言函数返回值的类型是由 _决定的。 ( A) return语句中的表达式类型 ( B)调用函数的主调函数类型 ( C)调用函数时临时 ( D)定义函数时所指定的函数类型 26 下列程序执行后输出的结果是 _。
8、int d=1; fun(int p), int d=5; d+=p+; printf(“%d,“,d) main() int a=3; fun(a) ; d+=a+; printf(“%dn“d) ; ( A) 8,12 ( B) 9,13 ( C) 8,4 ( D) 9,5 27 已知下面的程序段,正确的判断是 _。 #define A3 #define B; (A) (A+1)*A) int a=3; X=3*(A+B(7); ( A)程序错误,不允许嵌套定义 ( B) X=93 ( C) X=81 ( D)程序错误,宏定义不允许有参数 28 定义 int*swap()的是 _。 ( A
9、)一个返回整型值的函数 swap() ( B)一个返回指向整型值指针的函数 swap() ( C)一个指向函数 swap()的指针,函数返回一个整型值 ( D)以上说法均错 29 以下程序段的输出结果是 _。 main() char s110, s210, s310; scanf(“%s“, s1);gets(s2);gets(s3); puts(s1);puts(s2);puts(s3); 输入数据如下: (此处 CR代表回车符 ) aaa CR bbb CR ( A) aaa bbb ( B) aaa bbb ( C) aaa0bbb0 ( D) aaabbb 30 下述函数功能是 _。
10、int fun(char*x) char*y=x; while(*y+); return y-s-1; ( A)求字符串的长度 ( B) 求字符串存放的位置 ( C)比较两个字符串的大小 ( D)将字符串 x连接到字符串 y后面 31 以下程序的输出结果,是 _。 main() char str12=s, t, r, i,n, g; printf(“%dn“, strlen(str); ( A) 6 ( B) 7 ( C) 11 ( D) 12 32 请读程序段: char str=“ABCD“,*p=str; printf(“%dn“,*(p+4); 程序段的输出结果,是 _。 ( A) 6
11、8 ( B) 0 ( C)字符 D的地址 ( D)不确定的值 33 若有定义: int a410;,则以下选项中对数组元素 aij引用错误的是_。 (0 =i 4, 0 =j 10) ( A) *( ( B) strcpy(str2,“HELLO2“); ( C) strcpy(str3,“HELLO3“); ( D) strcpy(str4,“HELLO4“); 35 请读程序: #include stdio.h #include string.h main() char*s1=“AbCdEf,*s2=“aB“; s1+; s2+; printf(“%dn“,strcmp(s1,s2); 上
12、面程序的输出结果是 _。 ( A)正数 ( B)负数 ( C)零 ( D)不确定的值 36 下面程序的输出是 _。 char s=“ABCD“; main() char*p for(p=s;p s+4, p+) printf(“%sn“,p); ( A) ABCD BCD CD D ( B) A B C D ( C) D C B A ( D) ABCD ABC AB A 37 以下程序输出的结果为 _。 main() char*alpha6=“ABCD“,“EFGH“, “IJKL“,“MNOP“, “QRST“, “UVWX“; char*p; int i; p=alpha; for(i=0
13、;i 4; i+) printf(“%s“, pi); ( A) ABCDEFGHIJKL ( B) ABCD ( C) ABCDEFGHIJKLMNOP ( D) AEIM 38 下面程序的输出结果是 _。 #include stdio.h main() char*p=“DOOL“, “OPK“, “H“, “SP“; int i; for (i=3; i =0; i-,i-) printf(“%c“,*pi); printf(“n“); ( A) SO ( B) SP ( C) SPOPK ( D) SHOB 39 以下程序的输出结果是 _。 #include stdio.h void p
14、rt(int*x, int*y,int*z) printf(“%d,%d,%dn“,+*x,+*y,*(z+); int a=10, b=40, c=20; main() prt(k=3; a=+SQR(k+1); printf(“%dn“,a) ; ( A) 8 ( B) 9 ( C) 17 ( D) 20 42 下面是对宏定义的描述,不正确的是 _。 ( A)宏不存在类型问题,宏名无类型,它的参数也无类型 ( B)宏替换不占用运行时间 ( C)宏替换时先求出实参表达式的值,然后代入形参运算求值 ( D)宏替换只不过是字符替代而已 43 以下程序 (程序左边的数字为符加的行号 )。 1#in
15、clude str.h 2#includestdio.h 3main() 4 char s=“string“; 5puts(s); 6strcpy(s,“hello“); 7printf(“%3sn“,s); ( A)没有错 ( B)第 1行有错 ( C)第 6行有错 ( D)第 7行有错 44 若有如下说明,则 _的叙述是正确的。 struct st int a; int b2; a; ( A)结构体变量 a与结构体成员 a同名,定义是非法的 ( B)程序只在执行 到该定义时才为结构体 st分配存储单元 ( C)程序运行时为结构体 st分配 6个字节存储单元 ( D)类型名 struct s
16、t可以通过 extern关键字提前引用 (即引用在前,说明在后 ) 45 若有以下结构体定义,则 _是正确的引用或定义。 struct example int x; int y; v1; ( A) example.x=10 ( B) example v2.x=10 ( C) struct v2; v2.x=10 ( D) struct example v2=10; 46 下列程序的执行结果是 _。 #include stdio.h union un int i; char c2; ; void main() union un x; x.c0=10; x.c1=1; printf(“n%d“,x
17、.i); ( A) 266 ( B) 11 ( C) 265 ( D) 138 47 已知形成链表的存储结构如下图所示,则下述类型描述中的空 白处应填_。 struct link char data; _, node; ( A) struct link next ( B) link*next ( C) struct next link ( D) struct link*next 48 已知小写母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是 _。 main() unsigned int a=32,b=66; printf(“%cn“, a|B) ; ( A
18、) 66 ( B) 98 ( C) b ( D) B 49 C语言库函数 fgets(str,n,fg)的功能是 _。 ( A)从中指向的文件中读取长度 n的字符串存入 str指向的内存 ( B)从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存 ( C)从 fp指向的文件中读取 n个字符串存入 str指向的内存 ( D)从 sb读取至多 n个字符到文件 fp 50 下述程序向文件输出的结果是 _。 #include stdio.h void main() FILE*fp=fopen(“TEST“,“wb“); fprintf(fp,“%d%5.of%c%d“,58,76
19、273.0,-2278); fclose(fp); ( A) 5876273-2278 ( B) 5876273.000000-2278 ( C) 5876273-2278 ( D)因文件为二进制文件而不可读 51 计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是【 】 52 若想通过以下输入语句使 a中存放字符串 1234, b中存放字符 5,则输入数据的形式应该是【 】。 char a10, b; scanf(“a %s b %c“, a, i + 2; printf(”%d, i); 58 若有下列定义 (设 int类型变量占两个字节 ),则 i=【 】 , j【 】。 i
20、nt i 8, j 9; float x 123 456; print(“i %oj %on“, i, j); 59 以下程序的功能是输出字符串。请填空。 main( ) char * a=“Pascal“ , “C language“, “dbase“, “Cobol“; char【 】 ; int j 0; p=a; for(; j 4; j+ +) print(“%sn“, *【 】 ); 60 以下程序将两个数从小到大输出。请填空。 float a, b,【 】 ; scanf(,【 】 & a, & b); if(a b) t a; 【 】 ; b t; printf(“%5.2f%
21、5.2fn“, a, b); 61 填空补充以下程序。 # define【 】 30 【 】 ; total num PRICE; printf(“total %d, num %dn“,【 】 ); 62 以下程序段用以统计链表中元素的个数。其中 first指向链表第一个结点, count用来统计结点个数。请填空。 struct link char data; struct link * next; struct link * p, * first; | int count 0; p first; while(【 】 ) 【 】 ; p【 】 ; 国家二级( C语言)笔试模拟试卷 94 答案与
22、解析 1 【正确答案】 C 【试题解析】 算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。 2 【正确答案】 C 【试题解析】 线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈又称后进先出表 (Last In First Out);队列又称先进先出表 (First In First Out)。二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的 关系,因此它是一种非线性数据结构。 3 【正确答案】 C 【试题解析】 根据二叉树的性质:二叉树第 j(i1)层上至多有 2i-
23、1个结点。得到第 8层的结点数最多是 128。 4 【正确答案】 C 【试题解析】 结构化程序设计方法的四条原则是: 1自顶向下; 2逐步求精;3模块化; 4限制使用 goto语句。 5 【正确答案】 D 【试题解析】 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承 等概念。 6 【正确答案】 B 【试题解析】 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。 7 【正确答案】 D 【试题解析】 软件生命周期分为软件定义、软件开发及软件
24、运行维护 3个骱段。本题中详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段。 8 【正确答案】 B 【试题解析】 数据库管理系统 DBMS是数据库系统的核心。 DBMS 是负责数据库的建立、使用和维护的软件。 DBMS建立 在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过 DBMS。 9 【正确答案】 C 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A叙述错误:设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型:关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文
25、件中的字段,故 D选项叙述错误。 10 【正确答案】 B 【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,指数据库用户所 看到的数据结构,是用户看到的数据视图。模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。 11 【正确答案】 C 【试题解析】 scanf()把用户从键盘录入的数字第 1、 2位存入整型变量 a;把第3、 4、 5位存入单精度实型变量 b,把第 6、 7、 8、 9位存入单精度实型变量 c,用户录入的第 10位被 scanf()
26、遗弃。这时变量 a、 b、 c的值分别为: 98、765.000000、 4321.0000000。 12 【正确答案】 D 【试题解析】 1966年, Bohra 和 Jacopini提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元: 1、顺序结构; 2、选择结构; 3、循环结构。 13 【正确答案】 B 【试题解析】 sub()函数的作用是将形参 y和 x的差赋给了 z指向的那个内存地址,所以在 sub(10,5,&a), 10和 5属于值传递, a是属于她址传递,也就是 a与 z指向了同一个存储单元,在执行函数后, a的值随 *2变化,所以此次函数被调用后, a的值为
27、y-x=5, 同理可知,在 sub(7,a,&b)后, b的值发生变化,其值为 -5-7=12,在 sub(a,b,&c)后, c的值发生变化,其值为 -12-(-5)=-7。 14 【正确答案】 B 【试题解析】 C语言中允许使用一种特殊形式的字符常量,就是以一个 “”开头的字符序列,这样的字符称为 “转义字符 ”。常用的转义字符有: n,换行; t,水平制表; b,退格; r,回车。 15 【正确答案】 A 【试题解析】 选项 A将变量 x的地址赋绐指针变量 pb,使 pb指向 x选项 B 是烙 x的值当作地址赋给指针 pb, pb 指向一个地址等于 x值的内存单元;选项 c将x的地址赋给
28、指针 pb指向的地址等于 x的内存单元。 16 【正确答案】 D 【试题解析】 C语言中有基本的算术运算符 (+、 -、 *、 /)还包括自增自减运算符(+、 -),在 C语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为 i+i,显然该表达式不合 C语言语法。 17 【正确答案】 D 【试题解析】 不论 p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为 (数据类型 *)。 18 【正确答案】 A 【试题解析】 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3;先求解表达式 1,若为真则求解表达式 2;若表达式 1的值为假,则求解
29、表达式 3。本题中先判断 i=j,不等,执行 j=7;然后执行 x=7。故本题为 A。 19 【正确答案】 B 【试题解析】 根据 C语言的语法, x+是使用 x之后,再将 x的值加 1,在 if语句中, x的值为 5,条件不成立,执行 else后面的语句,因为 x 的值已经加 1,为6,所以打印结果为 6。 20 【正确答案】 A 【试题解析】 引用一个数组元素,可以用: (1)下标法,如 ai形式; (2)指针法,如 *(a+i)或 *(p+i)。数组的下标从 0开始,值为 3的数组元素是 a2。 B、 C的内容为 a3, D将 a2前自加,结果为 4。 21 【正确答案】 C 【试题解析
30、】 根据二维数组的定义得出: m00=1, m01=4, m02=7,m10=2,m11=5, mi2=8, m20=3, m21=6, m22=9,所以本题的输出是第 3行的值 m20, m21, m22,即 369。 22 【正确答案】 B 【试题解析】 本题定义了一个 for循环,循环变量是 i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。 23 【正确答案】 C 【试题解析】 本题定义了一个 fun函数,用于 num求和,具体执行过程如下: num=26: k=k*(num 10)=1*(26%10),所以 k=6, num=num/10=2; num=
31、2: k=k*(num%10)=6*(2%10),所以 k=12, num=num/10=0); num=O: while条件不成立,所以返回 k 的值 12。 24 【正确答案】 C 【试题解析】 本题中首先输出逗号表达式 “a=a+a,a+b,b”的值,即 20。然后以八进制的形式输出 a+a-A,的值为 97对应的八进制数 141,由于最后一个表达式b 没有对应输出格式的输出项表列就不会输出。 25 【正确答案】 D 【试题解析】 函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和 return语句中的表达式类型一致,如果不一致,则以函数类型为准,即函数类型决
32、定返回值的类型。 26 【正确答案】 C 【试题解析】 本题执行过程如下:首先调用 fun 函数,使得实参 a的值 3传递给形参 p,得到局部变量 d=8,打印出局部变量 d的值 8;返回主函数执行 “d+=a+”,此处 d为全局变量,所以 d=1+3+4(由于本题是值传递,所以在函数 run 中对 p 值的改变并不能引起 a 的改变 ),故本题材的输出是 8, 4。 27 【正确答案】 C 【试题解析】 本题的宏定义是合法的,宏定义展开为3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。 28 【正确答案】 B 【试题解析】 一个函数可以带回一个整型值、字符值、实型值等,但也可以
33、带回指针型数据,即地址。本题的定义中,包括括号和 *号,由于 ()优先级高于 *。故它是一个返回整型指针的函数。 29 【正确答案】 B 【试题解析】 scanf是标准输入函数,在输入字符串 aaa时,实际的内容为“aaa0”, “0”是由系统自动加入的: gets的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以 “/0”代替换行符。 30 【正确答案】 A 【试题解析】 在函数体内定义一字符型指针并指向形 参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。 31 【正确答案】 A 【试题解析】 在 C语言中,字符串的长度是其首字符到 NULL
34、(不含 )字符的总字符个数。本题定义字符数组 str的同时,对第 7个元素,由系统自动加上 “0”,故字符串的长度为 6。 32 【正确答案】 B 【试题解析】 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志 “/0”,故指向字符数组的指针 p 的 *(p+4)的值为 “0”。由于 “0”的编码值就是 0,所以本题输 出为 0。 33 【正确答案】 B 【试题解析】 本题中选项 B是错误的引用, *(a+i)+j只代表了 aij的地址。 34 【正确答案】 C 【试题解析】 C语言中: strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C中的目
35、的串指针 str3没有指向具体有效的存储单元,故是错误的调用。 35 【正确答案】 A 【试题解析】 函数 strcmp 的功能是比较字符串 s1和 s2,如果 s1 s2,则返回个正数;如果 s1 s2,则返回负数,否则返回零。由于本题中小写字 母 b 的 ASCII码值大于大写字母 D,故 s1 s2,所以函数的值为正数。 36 【正确答案】 A 【试题解析】 在第一次执行 for循环时,字符数组的首地址赋给了指针变量 p,使得指针变量 p 指向了 s的首地址,输出 p所指向的字符串;第二次执行 for循环时, p值增加 1, p 指向了 s的第二个元素输出 BCD;第三次输出 CD;第四
36、次输出 D;直到 P指向字符串的结束字符 “0”, for循环终止抽行。 37 【正确答案】 C 【试题解析】 alpha0指向 “ABCD”的首地址; alpha1指向 “EFGH”的首地址;alpha2指向 “IJKL”的首地址,依此类推。当执行 p=alpha后, p指向指针数组alpha的首地址。 for循环中输出了 4个字符串。 38 【正确答案】 A 【试题解析】 p0存放的是 “BOOL0”的首地址; p1存放的是 “OPK0”的首址等。在 printf语句中输出的 *pi表示 pi字符串的第一个字符。在 for循环中, i的初值为 3,那么输出的第一个字符为 “S”,接着两次
37、i-,则输出的值为 *p1,即字符 “0”,所以本题的输出为 SO。 39 【正确答 案】 B 【试题解析】 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。 40 【正确答案】 C 【试题解析】 事实上,无论有无 static修饰,外部变量都具有 A、 B 和 C三种特性。作为一种修饰, static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。 41 【正确答案】 B 【试题解析】 本题宏替换中遇到形参 x以实参 k+1代替,其他字符不变。SQR(k+1)展开后应为字符串 k+1*k+1。 42 【正确答案】 C 【试题解析】 宏替换
38、实质上就是字符替代,它不可能进行计算,故 C错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。 43 【正确答案】 B 【试题解析】 字符串复制函数 strcpy包含在头文件 string.h 中,因此,程序中的第 1行文件包含命令是错误的。 44 【正确答案】 D 【试题解析】 结构体变量 a与结构体成员 a同名是合法的定义,引用成员 a的方法是 aa,变量 a处于不同的 “层次 ”上,系统完全能够分情。 st是一个 结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量 a分配 6个字节的存储单元,故选项
39、 B 和选项 C错误。 45 【正确答案】 D 【试题解析】 在定义结构体变量时,不能只用结构体名 example或关键字 struct进行定义,必需要用结构体类型名 struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选 D。 46 【正确答案】 A 【试题解析】 由于本题定义的是共用体,所以成员表列中的整型变量 x与字符数组 c共占用同一个存储单元,且此存储单元为 2千字 节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。 47 【正确答案】 D 【试题解析】 在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类
40、型与前一个结点的数据类型完全相同,故应为 struct link *next。 48 【正确答案】 C 【试题解析】 位运算符 “|”的作用是按位或,即两个二进制数的相应位中只要有一个为 1,该位的结果值为 1。最后以字符型输出, 98对应的字符 “b” 49 【正确答案】 B 【试题解析】 fgets函数的 作用是从指定的文件读入一个字符串。 fgets(str,n,fp);中的 n为要求得到的字符的个数,但只从 fp指向的文件输入 n-1个字符,然后在最后加一个 0字符,因此得到的字符串共有 n 个字符。 50 【正确答案】 C 【试题解析】 fprintf函数工作时,多个数据间不会自动加
41、分隔符,选项 A错误;浮点数的输出格式是 “%5.of”表明其小数部分输出 0位,即没有输出,所以选项 B 也是错误的。 51 【正确答案】 传染性或传播性 52 【正确答案】 a 123 b 5 53 【正确答案】 AB 54 【正确答案】 r + bk * x 55 【正确答案】 d 0 x u 56 【正确答案】 880 57 【正确答案】 2468(若字符间有空格扣 1分 ) 58 【正确答案】 10 11 59 【正确答案】 * * p (p + i) 60 【正确答案】 t “%f%f“ a b 61 【正确答案】 PRICE int num, total total, num 62 【正确答案】 p! NULL count + + (* p).next