1、国家二级( C语言)笔试模拟试卷 136及答案与解析 1 算法的时间复杂度是指 _。 ( A)执行算法程序所需要的时间 ( B)算法程序的长度 ( C)算法执行过程中所需要的基本运算次数 ( D)算法程序中的指令条数 2 下列叙述中正确的是 _。 ( A)线性表是线性结构 ( B)栈与队列是非线性结构 ( C)线性列表是非线性性结构 ( D)二叉树是线性结构 3 下面关于完全二叉树的叙述中,错误的是 _。 ( A)除了最后 层外,每 层上的结点数均达到最大值 ( B)可能缺少 若干个左右叶子结点 ( C)完全二叉树 般不是满二叉树 ( D)具有结点的完全二叉树的深度为 log2n+1 4 结构
2、化程序设计主要强调的是 _。 ( A)程序的规模 ( B)程序的易读性 ( C)程序的执行效率 ( D)程序的可移植性 5 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 _。 ( A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 6 数据流图用于抽象描述一下软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名 标识的图符不属于数据流图合法图符的是 _。 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 7 软件需求分析一般应确定的是用户对软件的 _。 ( A)功能需求 ( B)非功能需求 ( C)性能需求 ( D)功能需求和非
3、功能需求 8 下述关于数据库系统的叙述中正确的是 _。 ( A)数据库系统减少了数据冗余 ( B)数据库系统避免了 切冗余 ( C)数据库系统中数据的 致性是指数据类型的 致 ( D)数据库系统比文件系统能管理更多的数据 9 关系表中的每一横 行称为 个 _。 ( A)元组 ( B)字段 ( C)属性 ( D)码 10 数据库设计包括两个方面的设计内容,它们是 _。 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 11 以下有 4组用户标识符,其中合法的 组是 _。 ( A) FOR -sub Case ( B) 4d
4、 DO Size ( C) f2_G3 IF abc ( D) WORD void define 12 下列叙述中正确的是 _。 ( A) C程序中注释部分可以出现在程序中任何合适的地方 ( B)花括号 “”和 “”只能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的 部分 13 以下合法的赋值语句是 _。 ( A) X=Y=100 ( B) D-; ( C) X+Y; ( D) C=int(A+B) 14 设 x为 int型变量,执行以下语句, x=10;x+=x-=x-x;x的值为 _。 ( A) 10 (
5、 B) 20 ( C) 30 ( D) 40 15 以下程序的输出结果是 _。 main() int a=3; printf(“%dn“,(a+=a-+a*a) ) ( A) -6 ( B) 1 ( C) 2 ( D) -12 16 设 int型占 2个字节,则 unsigned int所能表示的数据范围是 _。 ( A) 0 65535 ( B) -32769 32767 ( C) 1 65536 ( D) 0 32767 17 设 a b、 c、 d、 m、 n均为 int型变量,且 a=5、 b=6、 c=7、 d=8、 m=2、 n=2,则逻辑表达式 (m=a B) ( B) type
6、def V2=int; ( C) typedef int v3; ( D) lypedef v4:int 20 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。 ( A)地址传递 ( B)单向值传递 ( C)由实参传绐形,再由形参传回实参 ( D)传递方式由用户指定 21 若变量已正确定义,下列正确的程序段是 ( )。 ( A) while(ch=getchar()=N)putchar(ch); ( B) while(ch=getchar()=n)putchar(ch); ( C) while(ch=getehar()!=N)putchar(ch); ( D) while
7、(ch=getchar()!=n, )putchar(ch); 22 有下列函数定义: int fun(double a,double b) return a*b; 若下列选项中所用变量都已正确定义并赋值,错误的函数调用是 ( )。 ( A) if(fun(x,y) ( B) z=fun(fun(x,y),fun(x,y); ( C) z=fun(fun(x,y)x,y); ( D) fun(x,y); 23 下列程序的输出结果是 ( )。 #include stdio.h int fun(int x) int a; if(x=0x=1) return 3; else a=x-fun(x-2)
8、; return a; void main() printf(“%d“,fun(7); ( A) 2 ( B) 8 ( C) 9 ( D) 5 24 下列程序段的运行结果是 ( )。 #include stdio.h void main() char str=“ABC“,*p=str; printf(“%dn“,* (p+3); ( A) 67 ( B) 0 ( C)字符 C的地址 ( D)字符 C 25 设有下列定义: struct sk int m; float x; data,*q;若要使 q指向 data中的m域,正确的赋值语句是 ( )。 ( A) q= ( B) *q=data.m
9、; ( C) q=(struct sk*) ( D) q=(struct sk*)data.m; 26 若有说明 int a3=0,0;,则不正确的叙述是 ( )。 ( A)数组 a的每个元素的初值都是 0 ( B)数组 a的第 一维大小为 1 ( C)数组 a的行数为 1 ( D)只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 0 27 下列叙述中正确的是 ( )。 ( A) break语句只能用于 swish语句体中 ( B) continue语句的作用是使程序的执行流程跳出包含它的所有循环 ( C) break语句只能用在循环体内和 switch语句体内 ( D)在循环体
10、内使用 break语句和 continue语句的作用相同 28 下列合法的字符型常量是 ( ), ( A) x13 ( B) 081 ( C) 65 ( D) n 29 在 C语言中,函数返回值的类型最终取决于 ( )。 ( A)函数定义时在函数首部所说明的函数类型 ( B) return语句中表达式值的类型 ( C)调用函数时主调函数所传递的实参类型 ( D)函数定义时形参的类型 30 下列二维数组初始化语句中,不正确的是 ( )。 ( A) int b2=1,2,3,4,5,6,7; ( B) int b35=0, 0, 0; ( C) int b4=1,2,3,4,5,6; ( D) i
11、nt b32=(1,2),(3,4),(5,6); 31 判断字符串 s1是否大于字符串 s2,应该使用 ( )。 ( A) if(strcmp(s1,s2) 0) ( B) if(s1 s2) ( C) if(strcmp(s2,s1) 0) ( D) if(strcmp(s1,s2) 32 下列程序的运行结果是 ( )。 #include stdio.h #include string.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1,s2); printf(“%d“,t); ( A)正数 ( B)负数 ( C)零
12、( D)不确定的值 33 已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。下列不能将变量 c中的大写字母转换为对应小写字母的语句是 ( )。 ( A) c=(c-A)%26+a ( B) c=c+32 ( C) c=c-A+a ( D) c=(A+C)%26-a 34 有下列函数: int fun(char*s) char*t=s; while(*t+); reurn(t-s); 该函数的功能是 ( )。 ( A)比较两个字符串的大小 ( B)计算 s所指字符串占用内存字节的个数 ( C)计算 s所指字符串的长度 ( D)将 s所指字符串复制到字符串 t中 35
13、 下列程序的运行结果是 ( )。 #include stdio.h void fun (int*s,int*p) static int t=3; *p=s t; t-; void main() int a=2, 3, 4, 5,k; int x; for(k=0; k 4; k+) fun (a, printf(“%d,“, x); ( A) 5,4,3,2 ( B) 2,3,4,5, ( C) 2,2,2,2, ( D) 5,5,5,5, 36 下列程序段的输出结果为 ( )。 #include stdio.h main() static char a=“language“; char *p
14、; p=a; for(p=a;p a+8;p+=2) putchar(*p); ( A) language ( B) lnug ( C)有语法错误 ( D) lang 37 #define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #define f(x)5*x*x+5*x+5 ( B) #define f5*x*x+5*x+5 ( C) #define f(a)(5*a*a+5*a+5) ( D) #define(5*x*x+5*x+5)fx) 38 下列程序的输出结果是 ( )。 #include stdio.h m
15、ain() struct st int y,x,z; ; union long i; int j; char k; un; printf(“%d,%dn“,sizeof(struct st),sizeof(un); ( A) 6, 2 ( B) 6, 4 ( C) 8, 4 ( D) 8, 6 39 下列程序中 c的二过值是 ( )。 char a=2,b=4,c; c=ab 2; ( A) 11 ( B) 10100 ( C) 11100 ( D) 11000 40 标准库函数 fgets(s,n,file)的功能是 ( )。 ( A)从 文件 file中读取长度为 n的字符串存入字符数组
16、s中 ( B)从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 s中 ( C)从文件 file中读取 n个字符串存入字符数组 s中 ( D)从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中 41 需求分析的最终结果是产生【 】。 42 软件维护活动包括以下几类:改正性维护、适应性维护、【 】维护和预防性维护。 43 数据结构分为逻辑结构与存储结构,线性链表属于【 】。 44 某二叉树中度为 2的结点有 n个,则该二叉树中有【 】个叶子结点。 45 5.【 】是数据库设计的核心。 46 以下程序的输出结果是【 】。 main() char c=z; prin
17、tf(“%c“, c-25); 47 函数 fun的返回值是【 】。 fun(char *a, char *b) int num=0, n=0; while(*(a+num)!=0)num+; while(bn) *(a+num)=bn; num+; n+; return num; 48 下列程序的输出结果是【 】。 main() int i; for(i=1; i+1; i+) if(i 4) printf(“%dn“, i); break; printf(“%dn“, i+); 49 以下程序的运行结果是【 】。 #include stdio h main() int x=1, y=0,
18、a=0, b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d, b=%dn“, a, b); 50 以下程序的输出结果是【 】。 #include stdio h void swap(int *a, int *b) int *t; t=a; a=b; b=t; main() int i=3, j=5, *p=”,而答案 C中,表达式是不能独立成为语句的,答案 B使用了 C语言的自减运算符它就相当于 D
19、D-1,所以答案 B为 赋值语句。 14 【正确答案】 B 【试题解析】 本题 x=l0,表达式 “x+=x-=x-x;”的求解步骤如下:先进行 x- x-x的运算,相当于 x=x-(x-x)=x=l0;再进行 x+=x的运算,即 x=x+x=20。 15 【正确答案】 D 【试题解析】 赋值运算符的结合方向是自右至左,所以表达式 a+=a=a*a先运算最右边的 a*a得 9,再运算 a=a-9,即 a=3-9,所以此时 a的值由 3变成了 -6,最后运算 a=a+(-6)=-12。 16 【正确答案】 A 【试题解析】 本题 int型占 2个字节,即 16位 unsigned int所能表示
20、的数据范围是 0 (216-1),即 0 65535。 17 【正确答案】 A 【试题解析】 C语言中比较表达式的运算结果为 0或 1。 0代表不成立, 1表示成立。 18 【正确答案】 D 【试题解析】 continue语句与 break语句的区别是: continue语句只结束本次循环,而不是终止整个循环的的执行。而 break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。 gpto语句可跳出多层循环,如果在函数的循环体内使用 return语句,就会直接结束循环返回函数值。 19 【正确答案】 C 【试题解析】 C语言中可以使用 typedef来重新定义已有的数据类型,相当于数
21、据类型取个别名。 20 【正确答案】 B 【试题解析】 C语言函数中的参数传递方式有传值与付址两种方式,传值方式是指将实参的值复制 份传递给形参,而传址方式是指将实参的变量地址传递给形参,也就是实参的引用。 21 【正确答案】 D 【试题解析】 本题考查两个知识点: C语言用 n这个字符常量表示换行; getchar函数的作用是从终端输入一个字符,当遇到换行时结束输入。 22 【正确答案】 C 【试题解析】 本题考查函数调用时的参数传递。 C项中第一个参数的表达式不正确,因此不能得到正确的结果。 23 【正确答案】 A 【试题解析】 本题考查函数的递归调用。在函数递归调用时, fun(7):a
22、=7-fon(5)fun(5):a=5 -fon(3)fun3:a=3 -fun(1)fun(1):a=3 ,反推回去 fun(3):a=3-3=0fun(5):a=5 -0=5fun(7):a=7 -5-2,最后的计算结果为 2。 24 【正确答案】 B 【试 题解析】 先定义了一个指向字符型数组 str的指针 p,指针 P指向数组 str的首地址, p+3将指针指向 str3,又因为字符型数组在存放字符串时会自动在末尾加上 0,所以 *(p+3)=0。 25 【正确答案】 C 【试题解析】 利用强制类型转换 (struct sk*),把整数型地址 &data.m转换成结构体变量指针赋给结构
23、体指针变量 q。 26 【正确答案】 D 【试题解析】 本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点: 在对二维数组元素赋初值时,可以只对部分元素赋初 值,未赋初值的元素自动取 0。 二维数组第一维的大小由下列规则确定:当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小 =所得商数 +1。 27 【正确答案】 C 【试题解析】 只能在循环体内和 swish语句体内使用 break语句。当 break出现在循环体的 switch语句体内时,其作用只是跳出该 switch语句体,并不能中止循环体的执
24、行。若想强行中止循环体的执行,可以在循环体中,但并不在 switch语句中设置 break语 句,满足某种条件则跳出本层循环体。 28 【正确答案】 A 【试题解析】 C语言的字符常量是用单引号 ()括起来的一个字符,也可以用以一个 “”开头的字符序列来表示字符常量。其中形式 ddd表示 1到 3位 8进制数所代表的字符;形式 xhh表示 1到 2位 16进制数所代表的字符。在本题中, x13表示回车符,是一个字符常量:而 081用 8进制数所代表的字符形式不正确,因为 8进制数所表示的字符中不会出现数字 “8“, 65单引号 (即撇号 )括起来的不是一个字符,而是一个十进制数字: “n“是用
25、双引号括 起来的一个字符,表示一个字符串,而不是字符常量。 29 【正确答案】 A 【试题解析】 在 C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和 return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换。即函数类型决定返回值的类型。 30 【正确答案】 D 【试题解析】 在对二维数组元素赋初值时,可以只对部分元素赋初值,末赋初值的元素自动取 0; C语 言规定,对于二维数组,只可以省略第 1个方括号中的常量表达式,而不能省略第 2个方括号中
26、的常量表达式;赋的初值不能多于事先定义好的数组元素个数。选项 D)赋值表达式中对每一维的元素赋初值应用 ,而不是()。 31 【正确答案】 C 【试题解析】 本题考查字符串比较函数 strcmp()。调用形式: strcmp(s1, s2),其中 s1、 s2分别是字符串存储区的首地址。函数功能:比较字符串 str1和 str2,当 str1 str2时,返回值为负数;当 str1=str2时,返回 0;当 str1 str2,返回值为 正数 (注意:不能使用关系运算符比较两个字符串的大小 )。 32 【正确答案】 A 【试题解析】 本题考查字符串比较函数和两个字符串比较的原则两个知识点, 原
27、则是依次比较两个字符串同一位置的 对字符,若它们的 ASCII码值相同,则继续比较下一对字符,若它们的 ASCII码值不同,则 ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部 i个字符与另一个字符串的前 i个字符相同,则字符串较长的较大。 strcmp(s1, s2)的返回值,当 str1 str2时,返回值 0;当 str1=str2时,返回值为 0;当 str1 str2,返回值 0。 33 【正确答案】 D 【试题解析】 由题意可知,小写字符 a和大写字符 A的 ASCII代码相差为 32,所以选项 C)能将大写字符 c的 ASCII代码转换
28、为小写字符 c的 ASCII代码:选项A)和 C)左侧的表达式都是大写字符 c与大写字符 A的差与 a的 ASCII代码的和就是小写字符 c的 ASCII代码。而选项 D)中应该是加上 a,而不是减去 a。 34 【正确答案】 C 【试题解析】 在函数 fun(char*s)中,首先 用字符指针变量 t指向 s,而循环语句while(*t+);的功能是使指针变量 t指向字符串变量 s的末尾,这时退出循环,因而语句 return(t-s);回的就是字符串 s所指字符串的长度。 35 【正确答案】 A 【试题解析】 分析 fun函数程序段,可知 fun函数要实现的功能是将 s中第 (t+1)个元素
29、以前的元素逆置赋给数组 P。由于 fun中函数定义了静态变量 t=3因此,在主函数中调用函数 fun(a, &x)时,就是要将数组 a中前 4个元素逆置赋给数组 x,最后输出 x数组。 36 【正确答案】 B 【试 题解析】 本程序首先定义了静态字符数组 a,然后将指针 P指向数组 a的首地址。第 1次 for循环, p=a, p指向数组的第 1个元素, *p是取指针 P所指地址的内容,输出 1;第 2次 for循环, p=p+2,则 p指向数组的第 3个元素, *p是取指针 p所指地址的内容,输出 n;第 3次 for循环, p=p+2,则 p指向数组的第 5个元素, *p是取指针 p所指地
30、址的内容,输出 u;第 4次 for循环, p=p+2,则 p指向数组的第 7个元素, *p是取指针 p所指地址的内容,输出 g,结束循环。 37 【正确答案】 C 【试题解析】 带参数宏 的格式为: #define标识符 (形参衰 ) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。 38 【正确答案】 B 【试题解析】 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。 39 【正确答
31、案】 A 【试题解析】 本题主要考查按位异或和右移运算。 b=4的二进制为 00000100, b 2后为 00000001, a=2的二进制为 00000010,两者异或为 00000011。 40 【正确答案】 B 【试题解析】 字符串输入函数 fgets()的调用形式为: fgets(s, n, fp)。 fgets函数参数说明: “s”可以是一个字符数组名,也可以是指向字符串的指针; “n”为要读取的最多的字符个数; “fp”是指向该文件的文件型指针。 fgets函数的功能是;从中所指向的文件中读取长度不超过 n-1个字符的字符串,并将该字符串放到字符数组 s中;读入字符串后会自动在字
32、符串末尾加入 “0”结束符,表示字符串结束。 41 【正确答案】 需求规格说明书 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。 42 【正确答案】 完善性 【试题解析】 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程; 适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提
33、出的新功能与性能要求,需要修改或再次开发软件,以扩充软件功能、增强软件性能、改进加丁效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。 43 【正确答案】 存储结构 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各 数据元素之间的前后件关系的信息。 44 【正确答案】 n+1 【试题解析】 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 0的结点多一个。 45 【正确答案】 数据模
34、型 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 46 【正确答案】 a 【试题解析】 “z”的 ASCII码值为 122,经过 c-25运算后得 97,以字符形式输出是 a。 47 【正确答案】 字符串 a和 b的长度之和 【试题解析】 本题首先通过第一个 while循环计算字符串 a的长度,再通过第二个循环,将字符串 a和 b相连,最后返回连接后的总长度。 48 【正确答案】 1 3 5 【试题解析】 本题考查了 for循环语句的使用, break语句用在本题中是结束 for循环直接跳出循环体外。当 i 1时
35、,因为 if语句条件不满足,所以直接执行printf(“%dn“, i+);输出 1,同时 i自加 1;执行第二次 for循环时, i=3;同样的 if语句条件不满足,所以直接执行 printf(“%dn“, i+);输出 3,同时 i自加1;执行第三次 for循环时, i 5, if语句条件满足,所以执行 printf(“%dn“,i),输出 5,然后 break语句跳出了 for循环。 49 【正确答案】 a 2, b 1 【试题解析】 本题考查了 switch结构的内容。 C语言中,程序执行完一个 case标号的内容后,如果没有 break语句,控制结构会转移到下一个 case继续执行,
36、因为 case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部 switch结构后,继续执行了外部 switch结构的 case 2分支,最后a和 b的值分别为 2和 1。 50 【正确答案】 3 5 【试题解析】 函数 swap(int *a, int *b)的功能是实现 *a和 *b中两个数据的交换,在主函数中调用 swap(p, q)后,形参指针变量 a和 b分别指向 i和 j,在swap(int *a, int *b)执行完后,指针变量 a和 b分别指向 j和 i,而指针变量 p, q所指向变量的值没有发生变化,所以输出结果为 3 5。 51 【正确答案】
37、*s-*t 【试题解析】 两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结 束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回。值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入 *s-*t,保证在 s t时,返回正值,当 s t时,返回负值。 52 【正确答案】 9 【试题解析】 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如: (double)a是将 a转换成 double类型; (int)(x+y)是将 x+y的值转
38、换成整型。 本题 可按部就班地逐步运算: fun(int)fun(a+c, b), a-c) fun(int)fun(10, 5), 2-8) fun(int)15.000000, -6) fun(15, -6) 9 53 【正确答案】 PER 【试题解析】 本题中, typedef声明新的类型名 PER来代替已有的类型名, PER代表上面指定的一个结构体类型,此时,也可以用 PER来定义变量。 54 【正确答案】 fseek(文件指针,位移量,起始点 ) 【试题解析】 本题考查函数 fseek的用法。 fseek函数的调用形式为: fseek(文件指针,位移量,起始点 ) “起始点 ”用 0, 1或 2代替,其中, 0代表 “文件开始 ”; 1为 “当前位置 ”; 2为 “文件末尾 ”。 “位移量 ”指以 “起始点 ”为基点,向前移动的字节数。 ANSI C和大多数C版本要求位移量是 long型数据,这样当文件的长度大于 64k时不致出现问题。 ANSI C标准规定在数字的末尾加一个字母 L,就表示 long型。 55 【正确答案】 filea.dat, “r“ 【试题解析】 fopen函数的调用方式通常为 fopen(文件名,使用文件方式 )。本题中要求程序可以打开 filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入 “filea dat“, “r“。