1、二级 C 语言分类模拟题 512 及答案解析(总分:54.00,做题时间:90 分钟)一、选择题(总题数:35,分数:54.00)1.有以下程序 #includestdio.h void fun(int *p, int*q) int t; t=*p; *p=*q; *q=t; *q=*p; main() int a=0, b=9; fun( printf(“%d%d/n“, a, b); 程序的输出结果是_。(分数:2.00)A.0 9B.0 0C.9 0D.9 92.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值
2、B.“/0“C.0D.NULL3.以下叙述中正确的是_。(分数:1.00)A.每个后缀为.C 的 C 语言源程序都可以单独进行编译B.每个后缀为.C 的 C 语言源程序都应该包含一个 main 函数C.在 C 语言程序中,main 函数必须放在其他函数的最前面D.在 C 语言程序中,只有 main 函数才可单独进行编译4.下列叙述中正确的是_。(分数:1.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.以上说法都不对5.若有定义:char*ps=“aa“,“bb“,“cc“
3、,“dd“;,则以下叙述正确的是_。(分数:1.00)A.* ps0是字符“a“B.* ps 0是字符串“aa“C.ps0是字符“a“D.ps 是字符串“aa“6.下列不属于软件工程的 3 个要素的是 _ 。(分数:2.00)A.32 具B.过程C.方法D.环境7.以下关于算法的叙述中错误的是_。(分数:1.00)A.算法可以用伪代码、流程图等多种形式来描述B.一个正确的算法必须有输入C.一个正确的算法必须有输出D.用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码8.以下不正确的定义语句是_。(分数:2.50)A.double x5=1.0,2.0,3.0,4.0,5.0;B.in
4、t y5=0,1,2,3,4,5;C.char c1=“1“,“2“,“3“,“4“,“5“;D.char c2=“a“,“b“,“c“;9.对关系 S 和关系 R 进行集合运算,结果中既包含关系 S 中的所有元组也包含关系 R 中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算B.交运算C.差运算D.除运算10.有如下程序: #includestdio.h main_ int i,data; scanf(“%d“, for(i=0;i5,i+) if(idata)break; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输
5、出结果为_。(分数:1.00)A.3,4,B.0,1,C.3,4,5,D.0,1,2,3,11.设 x 为 int 型变量,则执行以下语句后,x 的值为_。 x=10; x=x-=x-x;(分数:2.50)A.10B.20C.40D.3012.在一个 C 源程序文件中,定义一个只允许本源文件中所有函数使用的全局变量的存储类别是_。(分数:2.00)A.externB.staticC.registerD.auto13.以下说法正确的是_。(分数:2.00)A.宏定义是 C 语句,要在行末加分号B.可以使用#undefine 提前结束宏名的使用C.在进行宏定义时,宏定义不能嵌套D.双引号中出现的宏
6、名也要进行替换14.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d,%s,%6.lf/n“,a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行后的输出结果是_。(分数:1.00)A.1002,ZhangDa,1202.
7、0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1001,ZhangDa,1098.015.C 语言中 char 类型数据占字节数为_。(分数:1.00)A.1B.2C.3D.416.针对简单程序设计,以下叙述的实施步骤顺序正确的是_。(分数:1.00)A.确定算法和数据结构、编码、调试、整理文档B.编码、确定算法和数据结构、调试、整理文档C.整理文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、整理文档17.有以下程序: #includestdio.h main() char a20, b20, c20; scanf(“
8、%s%s“, a, b); gets(c); printf(“%s%s%s/n“, a, b, c); 程序运行时从第一列开始输入: This is a cat!回车 则输出结果是_。(分数:1.00)A.Thisisacat!B.Thisis aC.Thisis a cat!D.Thisisa cat!18.以下数组定义中错误的是_。(分数:2.00)A.int x23=1,2,(3,4,5,6;B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;19.以下叙述中错误的是 _ 。(分数:1.00)A.算法正确的程序最终一定会结束B.算法
9、正确的程序可以有零个输出C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果20.以下 for 循环语句_。 int i, k ; for(i=0, k=-1; k=1; i+, k+) printf(“* * *“);(分数:2.50)A.判断循环结束的条件非法B.是无限循环C.只循环一次D.一次也不循环21.以下程序的输出结果是_。 void sub(int x,int y,int *z) *z=y-x; main() int a,b,c; sub(10,5, sub(7,a, sub(a,b, printf(“%d,%d,%d/n“,a,b,c); (分数:2
10、.00)A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-722.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2)|(c=4)|(c=6)B.(c=2float b;,执行 scanf(“%2d%f“,语句时,若从键盘输入 876 543.0回车,则 a 和 b 的值分别是_。(分数:2.00)A.87 和 6.0B.876 和 543.0C.87 和 543.0D.76 和 543.024.设有定义: int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是_。(分数:1.00)A.+kB.k+=1C.k
11、+D.k+125.有以下程序: #include stdio.h main( ) int x = 0x13; printf(“INT:%d/n“, x+1); 程序运行后的输出结果是_。(分数:1.00)A.INT:14B.INT:13C.INT:12D.INT:2026.以下叙述中错误的是_。(分数:1.00)A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个 C 语言程序只能有一个主函数27.有以下定义: struct personchar name9; int age; ;
12、struct person class10=“Johu“, 17, “Paul“, 19, “Mary“, 18, “Adam“, 16,; 则下面能输出字母 M 的语句是(分数:2.00)A.printf(“%c/n“, class3.name);B.printf(“%c/n“, class3.name1);C.prinff(“%c/n“, class2.name1);D.printf(“%c/n“, class2.name0);28.下面选项中关于“文件指针”概念的叙述正确的是_。(分数:1.00)A.文件指针是程序中用 FILE 定义的指针变量B.文件指针就是文件位置指针,表示当前读写数
13、据的位置C.文件指针指向文件在计算机中的存储位置D.把文件指针传给 fscanf 函数,就可以向文本文件中写入任意的字符29.设有定义: char str=“Hello“; 则语句 printf(“%d%d“,sizeof(str),strlen(str);的输出结果是_。(分数:1.00)A.5 5B.6 6C.6 5D.5 630.已知在 ASCII 字符集中,数字 0 的序号为 48,下列程序的输出结果为_。 main() char a=“0“,b=“9“; printf(“%d,%c/n“,a,b) ; (分数:1.00)A.因输出格式不合法B.48,57C.0,9D.48,931.有
14、以下程序 #includestdio.h main() int i=1; i=ii; printf(“%d/n“, i); 程序运行后的输出结果是_。(分数:2.00)A.7B.-1C.1D.032.一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是_。(分数:2.50)A.DBACEFB.CBEFDAC.FDAEBCD.DFABEC33.有如下程序: #include stdio.h main() char name10=“S“,“T“,“R“,“I“,“N“,“G,; name3=“E“;name5 = 0; printf(“%s/n“,name)
15、; 程序运行后的输出结果是_。(分数:1.00)A.STRENGB.STRIEGC.STREND.STRENO34.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:1.00)A.auto 和 staticB.extern 和 registerC.auto 和 registerD.static 和 register35.以下程序运行后的输出结果是 #includestdio.h main() FILE *fp; char str10; fp=fopen(“myfile.dat“, “w“); fputs(“abc“, fp); fclose(fp); fp=fopen(
16、“myfile.data“, “a+“); fprintf(fp, “%d“, 28); rewind(fp); fscanf(fp, “%s“, str); puts(str); fclose(fp); (分数:2.00)A.abcB.28cC.abc28D.因类型不一致而出错二级 C 语言分类模拟题 512 答案解析(总分:54.00,做题时间:90 分钟)一、选择题(总题数:35,分数:54.00)1.有以下程序 #includestdio.h void fun(int *p, int*q) int t; t=*p; *p=*q; *q=t; *q=*p; main() int a=0,
17、 b=9; fun( printf(“%d%d/n“, a, b); 程序的输出结果是_。(分数:2.00)A.0 9B.0 0C.9 0D.9 9 解析:解析 fun 函数完成的功能是将两个数交换,然后再将第一个数赋值给第二个数,main 中调用后a b 分别为 9 9,答案选择 D。2.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值 B.“/0“C.0D.NULL解析:解析 本题考查的是文件指针 feof 的运用。当文件读到结尾时,feof(fp)为非零值,否则为 0。3.以下叙述中正确的是_。(分数:1.00
18、)A.每个后缀为.C 的 C 语言源程序都可以单独进行编译 B.每个后缀为.C 的 C 语言源程序都应该包含一个 main 函数C.在 C 语言程序中,main 函数必须放在其他函数的最前面D.在 C 语言程序中,只有 main 函数才可单独进行编译解析:解析 一个普通的 C 函数可以单独作为一个 C 的程序文件被包含到其他程序中,每个后缀为.C 的C 语言源程序都可以单独进行编译,所以 B、D 错误。main 函数可以放在程序的开始、中间和最后,所以C 错误。4.下列叙述中正确的是_。(分数:1.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 B.循环队列中的元素个数随队
19、头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.以上说法都不对解析:解析 在循环队列中,用队尾指针 rear 指向队列中的队尾元素,用队头指针 front 指向队头元素的前一个位置。因此,从队头指针 front 指向的后一个位置直到队尾指针 rear 指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数随队头指针和队尾指针的变化而变化,故 A 正确。5.若有定义:char*ps=“aa“,“bb“,“cc“,“dd“;,则以下叙述正确的是_。(分数:1.00)A.* ps0是字符“a“ B.* ps 0是字符串“aa“C.ps0是字符“a“D.ps 是
20、字符串“aa“解析:解析 指针数组 ps定义后,ps0代表数组首个元素的地址,即“aa”的地址,同时也是“aa”第一个字符 a 的地址,所以*ps0代表字符 a,答案为 A 选项。6.下列不属于软件工程的 3 个要素的是 _ 。(分数:2.00)A.32 具B.过程C.方法D.环境 解析:解析 软件工程包括 3 个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管理和文档生成:过程支持软件开发的各个环节的控制、管理。7.以下关于算法的叙述中错误的是_。(分数:1.00)A.算法可以用伪代码、流程图等多种形式来描述B.一个正确的算法必须有输入 C.一个正确的算法必
21、须有输出D.用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码解析:解析 一个正确的算法应该有零个或者多个输入。8.以下不正确的定义语句是_。(分数:2.50)A.double x5=1.0,2.0,3.0,4.0,5.0;B.int y5=0,1,2,3,4,5; C.char c1=“1“,“2“,“3“,“4“,“5“;D.char c2=“a“,“b“,“c“;解析:解析 本题考查对一维数组的赋值。选项 B 中,y5说明数组中有 5 个元素,但却给它赋了 6 个值,数组溢出所以是错误的。9.对关系 S 和关系 R 进行集合运算,结果中既包含关系 S 中的所有元组也包含关系 R
22、 中的所有元组,这样的集合运算称为_。(分数:2.50)A.并运算 B.交运算C.差运算D.除运算解析:解析 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。10.有如下程序: #includestdio.h main_ int i,data; scanf(“%d“, for(i=0;i5,i+) if(idata)break; printf(“%d,“,i); printf(“/n“); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,4,B.0,1,C.3,4,5,D.0,1,2,3, 解析:解析 break 语句作
23、用是结束整个循环过程,不再判断循环的条件是否成立,在嵌套循环中,break 语句只跳出最内层的一层循环。程序执行过程为:输入 3,则 data=3;执行 for 循环,在 i=3 时,if 条件不成立,执行语句 printf(“%d,“,i);依次输出 i 值,0,1,2,3;直到 i=4 时,if 条件成立,执行 break 退出 for 循环。11.设 x 为 int 型变量,则执行以下语句后,x 的值为_。 x=10; x=x-=x-x;(分数:2.50)A.10 B.20C.40D.30解析:解析 执行 x=x-=x-x 语句可写成 x=x-(x-x),可看出结果为 10,故 A 选项
24、正确。12.在一个 C 源程序文件中,定义一个只允许本源文件中所有函数使用的全局变量的存储类别是_。(分数:2.00)A.externB.static C.registerD.auto解析:13.以下说法正确的是_。(分数:2.00)A.宏定义是 C 语句,要在行末加分号B.可以使用#undefine 提前结束宏名的使用 C.在进行宏定义时,宏定义不能嵌套D.双引号中出现的宏名也要进行替换解析:14.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; ; void f(struct A t);
25、main() struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d,%s,%6.lf/n“,a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行后的输出结果是_。(分数:1.00)A.1002,ZhangDa,1202.0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1001,ZhangDa,1098.0 解析:解析 本题考查结构体的相关操作以及传值、传址的区别,该题中调用 f 函数
26、后,会生成参数 a的一个副本,而不会改变 a 的值,所以 a 值维持原值,选项 D 正确。15.C 语言中 char 类型数据占字节数为_。(分数:1.00)A.1 B.2C.3D.4解析:解析 每个字符变量被分配一个字节的内存空间。因此 A 选项正确。16.针对简单程序设计,以下叙述的实施步骤顺序正确的是_。(分数:1.00)A.确定算法和数据结构、编码、调试、整理文档 B.编码、确定算法和数据结构、调试、整理文档C.整理文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、整理文档解析:解析 C 语言中程序中的步骤实现为:先确定程序中的算法和数据结构,然后进行程序的编码,
27、再进行对程序的调试,最后进行文档的整理和记录。使用这种步骤可以方便程序的编写以及在完成后提高代码的重用性。17.有以下程序: #includestdio.h main() char a20, b20, c20; scanf(“%s%s“, a, b); gets(c); printf(“%s%s%s/n“, a, b, c); 程序运行时从第一列开始输入: This is a cat!回车 则输出结果是_。(分数:1.00)A.Thisisacat!B.Thisis aC.Thisis a cat! D.Thisisa cat!解析:解析 在输入字符串时,空格表示输入结束,所以 a=“This
28、“,b=“is“,c=“a cat“,所以在输出时会输出 Thisis a cat!。18.以下数组定义中错误的是_。(分数:2.00)A.int x23=1,2,(3,4,5,6; B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;解析:解析 本题考核的知识点是二维数组的定义及初始化。在定义一个二维数组同时初始化时,其第一维的长度可以省略。二维数组的初始化列表可以只使用一重花括号,其中的每个值依次代表从第 1 行的第 1 个元素起,直到第 1 行满,接着代表第 2 行、第 3 行的每一个元素,若第 1 维长度没有省略,则这些值总个数不
29、得超过两个维度的乘积。故选项 D 是正确的。二维数组的初始化列表还可以使用二重花括号括起来,其中每一个内花括号代表一行的值,在内花括号中值的个数不得超过数组第二维的长度,若不足第 2 维长度,则该行多出部分值被初始化为 0,若第一维省略,花括号的个数代表行数。A 选项第一维为 2,故只有两行,但有三个花括号超出了行的要求,所以本题答案选 A。19.以下叙述中错误的是 _ 。(分数:1.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出 C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果解析:解析 算法的目的是为了求解,所谓的“解”就是输出。一个
30、算法得到的结果就是算法的输出。没有输出的算法是没有意义的。20.以下 for 循环语句_。 int i, k ; for(i=0, k=-1; k=1; i+, k+) printf(“* * *“);(分数:2.50)A.判断循环结束的条件非法B.是无限循环 C.只循环一次D.一次也不循环解析:解析 本例的关键是赋值表达式 k=1。由于表达式 2 是赋值表达式 k=1,为真,因此执行循环体,使 k 增 1,但循环再次计算表达式 2 时,又使 k 为 1,如此反复循环。21.以下程序的输出结果是_。 void sub(int x,int y,int *z) *z=y-x; main() int
31、 a,b,c; sub(10,5, sub(7,a, sub(a,b, printf(“%d,%d,%d/n“,a,b,c); (分数:2.00)A.5,2,3B.-5,-12,-7 C.-5,-12,-17D.5,-2,-7解析:22.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2)|(c=4)|(c=6)B.(c=2float b;,执行 scanf(“%2d%f“,语句时,若从键盘输入 876 543.0回车,则 a 和 b 的值分别是_。(分数:2.00)A.87 和 6.0 B.876 和 543.0C.87 和 543.0D.76 和
32、 543.0解析:解析 在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将 87 赋给变量a,把 6.0 赋给 float 型变量 b。24.设有定义: int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是_。(分数:1.00)A.+kB.k+=1C.k+ D.k+1解析:解析 k+表达式值为 k 的值,其余为 k+1 的值。所以 C 错误。25.有以下程序: #include stdio.h main( ) int x = 0x13; printf(“INT:%d/n“, x+1); 程序运行后的输出结果是_。(分数:1.00)A.INT:14B.INT:1
33、3C.INT:12D.INT:20 解析:解析 0 x 13 是十六进制数,%d 需要输出十进制数,换算成十进制:161+163=16+3=19,输出 INT=x+1=20因此答案为 D 选项。26.以下叙述中错误的是_。(分数:1.00)A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行 D.一个 C 语言程序只能有一个主函数解析:解析 函数是指预先定义功能块,其目的是提高程序的重用性。在 C 语言中函数的源程序,后缀名可以为 C。C 语言所编写的函数都可以是一个独立的源文件。一个 C
34、语言程序只能有一个主函数。C 语言中编写的函数不是每个都可以独立地编译和执行的,因为 C 语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。27.有以下定义: struct personchar name9; int age; ; struct person class10=“Johu“, 17, “Paul“, 19, “Mary“, 18, “Adam“, 16,; 则下面能输出字母 M 的语句是(分数:2.00)A.printf(“%c/n“, class3.name);B.printf(“%c/n“, class3.name1);C.prinff(“%c/n“, cl
35、ass2.name1);D.printf(“%c/n“, class2.name0); 解析:28.下面选项中关于“文件指针”概念的叙述正确的是_。(分数:1.00)A.文件指针是程序中用 FILE 定义的指针变量 B.文件指针就是文件位置指针,表示当前读写数据的位置C.文件指针指向文件在计算机中的存储位置D.把文件指针传给 fscanf 函数,就可以向文本文件中写入任意的字符解析:解析 文件指针的定义形式为 FILE*文件指针名,所以 A 正确。29.设有定义: char str=“Hello“; 则语句 printf(“%d%d“,sizeof(str),strlen(str);的输出结果
36、是_。(分数:1.00)A.5 5B.6 6C.6 5 D.5 6解析:解析 本题考查 sizeof 和 strlen 对字符串的处理不同之处。sizeof 求出字符串的字符个数,包括结尾符;Strlen 求出字符串的实际字符,不包括结尾符。所以答案为 6 5,C 选项正确。30.已知在 ASCII 字符集中,数字 0 的序号为 48,下列程序的输出结果为_。 main() char a=“0“,b=“9“; printf(“%d,%c/n“,a,b) ; (分数:1.00)A.因输出格式不合法B.48,57C.0,9D.48,9 解析:解析 注意输出控制符%d,%c,分别表示以十进制形式输出
37、字符的 ASCII 码值和字符。31.有以下程序 #includestdio.h main() int i=1; i=ii; printf(“%d/n“, i); 程序运行后的输出结果是_。(分数:2.00)A.7B.-1C.1D.0 解析:解析 是按位异或,11 结果为 0,答案选择 D。32.一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是_。(分数:2.50)A.DBACEFB.CBEFDA C.FDAEBCD.DFABEC解析:解析 由于该二叉树的前序遍历结果是 ABCEDF,显然 A 结点为根结点,所以后序遍历时 A 结点是最后遍历的,其后
38、序遍历的结果为 CBEFDA。33.有如下程序: #include stdio.h main() char name10=“S“,“T“,“R“,“I“,“N“,“G,; name3=“E“;name5 = 0; printf(“%s/n“,name); 程序运行后的输出结果是_。(分数:1.00)A.STRENGB.STRIEGC.STREN D.STRENO解析:解析 printf 函数按照格式符说明输出对应的数据。%s 控制符用于输出字符串,输出时从给定地址开始依次输出字符,直到遇到/0结束。给字符变量赋值 0,相当于赋值/0。初始化时name=“STRING“,改动数组第 4 个和第
39、6 个元素之后字符串变为“STREN“。调用 printf 输出字符串为STREN,故 C 选项正确。34.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:1.00)A.auto 和 staticB.extern 和 registerC.auto 和 register D.static 和 register解析:解析 auto:函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。register:为了提高效率,C 语言允许将局部变量的值放在 CPU 中的寄存器中,这种变量叫“寄存
40、器变量”,只有局部自动变量和形式参数可以作为寄存器变量。extern:外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以选择 C 选项。35.以下程序运行后的输出结果是 #includestdio.h main() FILE *fp; char str10; fp=fopen(“myfile.dat“, “w“); fputs(“abc“, fp); fclose(fp); f
41、p=fopen(“myfile.data“, “a+“); fprintf(fp, “%d“, 28); rewind(fp); fscanf(fp, “%s“, str); puts(str); fclose(fp); (分数:2.00)A.abcB.28cC.abc28 D.因类型不一致而出错解析:解析 本题考查文件操作。第一次以只写方式“w“打开文件,将字符串“abc“写入文件 myfile.dat中,关闭文件;第二次以追加方式“a+“打开文件,将整型数 28 追加到 myfile.dat 文件中,此时,文件中内容为 abc28。再将文件位置指针反绕到文件头,从文件中以字符串形式将 abc28 读入数组 str 中,并在显示屏上输出字符数组 str。