第一章 单元测试
1、单选题:
下列叙述中正确的是()。
选项:
A:C语言编译时不检查语法
B:C语言的函数可以嵌套定义
C:C语言所有函数都是外部函数
D:C语言的子程序有过程和函数两种
答案: 【C语言的子程序有过程和函数两种】
2、单选题:
以下叙述中正确的是()。
选项:
A:C源程序经编译形成的二进制代码可以直接运行
B:C语言的源程序不必通过编译就可以直接运行
C:C语言中的函数不可以单独进行编译
D:C语言中的每条可执行语句最终都将被转换成二进制的机器指令
答案: 【C语言中的每条可执行语句最终都将被转换成二进制的机器指令】
3、单选题:
C语言的注释定界符是()。
选项:
A:/* */
B:[ ]
C:* *
D:{ }
答案: 【/* */】
4、单选题:
C语言源程序的基本单位是()。
选项:
A:函数
B:子程序
C:过程
D:标识符
答案: 【函数】
5、单选题:
一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是( )
选项:
A:有零个或多个输出
B:有零个或多个输入
C:有穷性
D:可行性
答案: 【有零个或多个输出】
6、单选题:
以下叙述中正确的是 ( )。
选项:
A:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
B:C语言出现的最晚,具有其他语言的一切优点
C:C语言可以不用编译就能被计算机识别执行
D:C语言比其他语言高级
答案: 【C语言以接近英语国家的自然语言和数学语言作为语言的表达形式】
7、单选题:
有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是
选项:
A:C001.C
B:C001.OBJ
C:C001.EXE
D:C001.DAT
答案: 【C001.DAT】
8、单选题:
能将高级语言编写的源程序转换为目标程序的是()。
选项:
A:链接程序
B:解释程序
C:编译程序
D:编辑程序
答案: 【编译程序】
9、单选题:
结构化程序由三种基本结构组成, 由这三种基本结构组成的算法( )。
选项:
A:能完成符合结构化的任务
B:可以完成任何复杂的任务
C:只能完成部分复杂的任务
D:只能完成一些简单的任务
答案: 【能完成符合结构化的任务】
10、单选题:
以下叙述中错误的是( )。
选项:
A:C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B:C语言源程序经编译后生成后缀为.obj的目标程序
C:用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D:C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
答案: 【C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令】
11、判断题:
C语言程序将从源程序中第一个函数开始执行
选项:
A:对
B:错
答案: 【错】
12、判断题:
C 语言程序中可以有多个函数 , 但只能有一个主函数。
选项:
A:对
B:错
答案: 【对】
13、判断题:
在C 语言中,程序的模块化是利用函数实现的
选项:
A:错
B:对
答案: 【对】
14、判断题:
结构化程序设计中由三种基本结构构成的程序只能解决小规模的问题
选项:
A:对
B:错
答案: 【错】
15、判断题:
所有C程序都需要编译链接无误后才能进行
选项:
A:对
B:错
答案: 【对】
16、判断题:
C程序在运行过程中所有计算都以十进制方式进行
选项:
A:错
B:对
答案: 【错】
17、判断题:
C 语言具有简洁明了的特点。
选项:
A:对
B:错
答案: 【对】
18、判断题:
C 语言是一种具有某些低级语言特征的高级语言。
选项:
A:错
B:对
答案: 【对】
19、判断题:
C语言的书写格式不会影响程序的可读性。
选项:
A:对
B:错
答案: 【错】
第二章 单元测试
1、单选题:
以下语句中,不能实现回车换行的是()。
选项:
A:fwrite(“n”,1,1,stdout);
B:putchar(“n”);
C:printf(“n”);
D:fprintf(stdout,”n”)
答案: 【putchar(“n”);】
2、单选题:
以下标识符中,不能作为合法的C用户定义标识符的是()。
选项:
A:to
B:answer
C:signed
D:_if
答案: 【signed】
3、单选题:
下面四个选项中,均是不合法的用户标识符的选项是()。
选项:
A:float la0 _A
B:A P_0 do
C:b-a goto int
D:_123 temp int
答案: 【b-a goto int】
4、单选题:
执行以下程序段后,输出结果和a的值是()。
int a=10; printf(“%d”,a++);
选项:
A:11和10
B:11和11
C:10和10
D:10和11
答案: 【10和11】
5、单选题:
下列字符序列中,是C语言保留字的是()。
选项:
A:sizeof
B:scanf
C:sqrt
D:include
答案: 【sizeof】
6、单选题:
以下数据中,不正确的数值或字符常量是()。
选项:
A:0
B:5L
C:o13
D:9861
答案: 【o13】
7、单选题:
若整型变量a与i已正确定义,且i已正确赋值,合法的语句是()。
选项:
A:a++=i;
B:a=a++=5;
C:a==1
D:++i;
答案: 【++i;】
8、单选题:
下列变量说明语句中,正确的是()。
选项:
A:int x,z;
B:char a;b;c;
C:char:a b c;
D:int x;z;
答案: 【int x,z;】
9、单选题:
设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值( )。
选项:
A:1
B:2
C:0
D:3
答案: 【2】
10、判断题:
C 语言标准格式输出函数 printf() 的参数表是由若干个表达式组成。
选项:
A:对
B:错
答案: 【对】
11、判断题:
C 语言规定 : 定义符号常量时必须用大写字母。
选项:
A:错
B:对
答案: 【错】
12、判断题:
double 型变量在内存中占的字节数比 int 型变量在内存中占的字节数多。
选项:
A:错
B:对
答案: 【对】
13、判断题:
C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。
选项:
A:对
B:错
答案: 【错】
14、判断题:
下划线是标识符中的合法字符。
选项:
A:错
B:对
答案: 【对】
15、判断题:
变量的类型通常指存储类型和数据类型两种。
选项:
A:错
B:对
答案: 【对】
16、判断题:
C 语言标准输出操作中 ,putchar() 函数可以输出显示一个字符串。
选项:
A:对
B:错
答案: 【错】
17、判断题:
一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。
选项:
A:对
B:错
答案: 【错】
18、判断题:
任何表达式语句都是表达式加分号组成的。
选项:
A:错
B:对
答案: 【对】
第三章 单元测试
1、单选题:
下列( )表达式的值为真,其中a=5;b=8;c=10;d=0
选项:
A:a-b<c*d
B:(a*2-c)||d
C:a*2>8+2
D:a&&d
答案:
2、单选题:
在C语言中,要求运算数必须是整型或字符型的运算符是()。
选项:
A:&&
B:||
C:&
D:!
答案:
3、单选题:
如果int a=2,b=3,c=0,下列描述正确的是( )
选项:
A:!a!=(b!=c)表达式的值为1
B:a>b!=c和a>(b!=c)的执行顺序是一样的
C:a||(b=c)执行后b的值为0
D:a&&b>c的结果为假
答案:
4、单选题:
void main()
{int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf(“a=%d,b=%d”,a,b);}该程序的输出结果是( )
选项:
A:
2,1
B:
2,2
C:
1,0
D:
1,1
答案:
5、单选题:
以下程序的运行结果是( )。
void main()
{ int a=2, b= -1, c=2 ;
if(a<b)
if(b<0) c=0;
else c+=1;
printf(“%d”, c );
}
选项:
A:
0
B:
3
C:
1
D:
2
答案:
6、单选题:
设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是( )。
选项:
A:if(a>b) {c=a;a=b;b=c;}
B:if(a>b) {c=a,a=b,b=c;}
C:if(a>b) c=a;a=b;b=c;
D:if(a>b) c=a,a=b,b=c;
答案:
7、单选题:
有以下程序 #include<stdio.h> void main() { int c=0,k; for(k=1; k<3; k++) switch(k) { default: c+=k; case 2: c++; break; case 4: c+=2; break; } printf(“%dn”,c); } 程序运行后的输出结果是( )。
选项:
A:
7
B:
5
C:
9
D:
3
答案:
8、单选题:
与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。
选项:
A:if(a>b) k=1;
else if(b>c) k=1;
else k=0;
B:if((a>b)||(b>c) k=1;
else k=0;
C:if(a<=b) k=0;
else if(b<=c) k=1;
D:if((a>b)&&(b>c)) k=1;
else k=0;
答案:
9、单选题:
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
选项:
A:0
B:1
C:2
D:不知道a的值,不能确定
答案:
10、判断题:
一个结构化程序必须同时由顺序、分支、循环三种结构组成
选项:
A:错
B:对
答案:
11、判断题:
逻辑表达式的值只能为1或0。
选项:
A:对
B:错
答案:
12、判断题:
有条件表达式:(EXP)?i++;j–,中(EXP)与EXP==1是等价的
选项:
A:对
B:错
答案:
13、判断题:
正确表达某个人的年龄age在10~20岁之间(不含边界)的C语言表达式是 10<age<20
选项:
A:错
B:对
答案:
14、判断题:
在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
选项:
A:对
B:错
答案:
15、判断题:
在switch语句中,每一个的case常量表达式的值可以相同。
选项:
A:错
B:对
答案:
16、判断题:
case语句后如没有break,顺序向下执行。
选项:
A:错
B:对
答案:
17、判断题:
C语言表达式’0’<=c<=’9’可以判断c中的字符是否为数字字符
选项:
A:对
B:错
答案:
18、判断题:
条件表达式不能取代一般if的语句。
选项:
A:对
B:错
答案:
19、判断题:
if(a=5) 是允许的。
选项:
A:对
B:错
答案:
第四章 单元测试
1、单选题:
C语言中while和do-while循环的主要区别是( )。
选项:
A:do-while的循环体至少无条件执行一次
B:do-while循环体不能是复合语句
C:While的循环控制条件比do-while的循环控制条件严格
D:do-while允许从外部转到循环体内
答案:
2、单选题:
以下不是死循环的语句是( )。
选项:
A:for(i=10; ; i++ ) sum+=i;
B:while(1) {x++;}
C:for(;; x+= i);
D:for(; (c=getchar())!=’n’;) printf(“%c”, c);
答案:
3、单选题:
以下程序段的输出结果是( )。
int i, j, m=0;
for(i=1; i<=15; i+=4)
for(j=3; j<=19; j+= 4)
m++;
printf(“%d”, m);
选项:
A:
25
B:
12
C:
20
D:
15
答案:
4、单选题:
有以下程序:#include<stdio.h>void main(){ int y=9; for( ; y>0; y--) if(y%3==0) printf(“%d”, --y);}程序的运行结果是( )。
选项:
A:
875421
B:
963
C:
852
D:
741
答案:
5、单选题:
有以下程序:#include<stdio.h>void main() { int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j-- ) {if(i*j>3) break; m*=i*j; } } printf(“m=%dn”,m); }程序运行后的输出结果是( )。
选项:
A:
m=2
B:
m=6
C:
m=4
D:
m=5
答案:
6、单选题:
有以下程序 #include<stdio.h>void main() { int y=10; while(y–); printf(“y=%dn”,y); } 程序执行后的输出结果是 ( )。
选项:
A:
y=0
B:
while 构成无限循环
C:
y=1
D:
y=-1
答案:
7、单选题:
有以下程序 #include<stdio.h> void main() {int n=2,k=0; while(k++ && n++>2); printf(“%d %dn”,k,n);} 程序运行后的输出结果是( )。
选项:
A:
1 3
B:
5 7
C:
0 2
D:
1 2
答案:
8、单选题:
以下程序中的变量已正确定义for(i=0;i<4;i++,j++) for(k=1;k<3;k++); printf(”*”);程序段的输出结果是( )。
选项:
A:
********
B:
*
C:
**
D:
****
答案:
9、单选题:
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。
选项:
A:n=0; for(ch=getchar();ch!=’n’;n++);
B:for(n=0; getchar()!=’n’;n++);
C:n=0; while((ch=getchar())!=’n’) n++;
D:n=0; while(getchar()!=’n’) n++;
答案:
10、单选题:
有以下程序#include<stdio.h>void main(){ int i, j; for(i=3; i>=l; i–) { for(j=1; j<=2; j++) printf(“%d”, i+j); printf(“n”); }}程序的运行结果是( )。
选项:
A:
4 3 2
5 4 3
B:
2 3
3 4
4 5
C:
2 3 4
3 4 5
D:
4 5
3 4
2 3
答案:
11、判断题:
for循环的三个表达式可以任意省略,while,do-while也是如此。
选项:
A:对
B:错
答案:
12、判断题:
循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
选项:
A:对
B:错
答案:
13、判断题:
break 则是结束整个循环过程,不再判断执行循环的条件是否成立。
选项:
A:对
B:错
答案:
14、判断题:
do-while循环至少要执行一次循环语句。
选项:
A:对
B:错
答案:
15、判断题:
break用于结束本次循环
选项:
A:对
B:错
答案:
16、判断题:
continue 不是结束本次循环,而是终止整个循环的执行。
选项:
A:错
B:对
答案:
17、判断题:
C语言的三种循环不可以互相嵌套。
选项:
A:错
B:对
答案:
18、判断题:
do-while循环的while后的分号可以省略。
选项:
A:错
B:对
答案:
19、判断题:
结构化程序使用goto 语句会很便捷
选项:
A:错
B:对
答案:
20、判断题:
已定义int i=-3; 则while(i++);是死循环
选项:
A:对
B:错
答案:
第五章 单元测试
1、单选题:
以下数组定义中错误的是( )。
选项:
A:int x[2][3]={{1,2},{3,4},{5,6}};
B:int x[][3]={{1,2,3},{4,5,6}};
C:int x[2][3]={1,2,3,4,5,6};
D:int x[][3]={0};
答案:
2、单选题:
有以下程序:#include<stdio.h>#define N 4void fun(int a[][N],int b[]){ int i; for(i=0;i<N;i++) b[i]=a[i][i]-a[i][N-1-i];}void main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i; fun (x, y); for(i=0; i<N; i++) printf(“%d,”, y[i]); printf(“n”); }程序运行后的输出结果是( )。
选项:
A:
-3,-1,1,3,
B:
-12,-3,0,0,
C:
0,1,2,3,
D:
-3,-3,-3,-3,
答案:
3、单选题:
设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
选项:
A:do{ scanf(“%c”;&s[i]);} while(s[i++]!=’n’); s[i]=”;
B:scanf(“%s”,s);
C:gets(s);
D:while((s[i++]=getchar())!=’n’);s[i]=”;
答案:
4、单选题:
有以下程序:#include<stdio.h>void main(){char s[]=”012xy8s34f4w2″; int i,n=0; for ( i=0;s[i]!=0;i++ ) if(s[i] >= ‘0’ && s[i] <= ‘9’) n++; printf(“%dn”,n);}程序运行后的输出结果是( )。
选项:
A:
8
B:
3
C:
7
D:
0
答案:
5、单选题:
下列定义数组的语句中,正确的是( )。
选项:
A:int x[ ];
B: int N=10;
int x[N];
C:#define N 10
int x[N];
D:int x[0..10];
答案:
6、单选题:
有以下程序:#include<stdio.h>void main(){ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) { case 0: switch(a[i]%2) { case 0:a[i]++;break; case 1:a[i]–; } break; case 1:a[i]=0; } for(i=0;i<4;i++) printf(“%d “,a[i]); printf(“n”);}程序运行后的输出结果是( )。
选项:
A:
0 3 0 4
B:
3 0 4 0
C:
2 0 5 0
D:
3 3 4 4
答案:
7、单选题:
有以下程序:#include<stdio.h>void main(){ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0; i<3; i++) for(j=i;j<=i;j++) t+=b[i][b[j][i]]; printf(“%dn”,t);}程序运行后的输出结果是( )。
选项:
A:
9
B:
3
C:
4
D:
1
答案:
8、单选题:
有以下程序 #include<stdio.h> void main() { char s[]=”012xy8s34f4w2”; int i,n=0; for(i=0; s[i]!=0; i++) if(s[i]>=’0’&&s[i]<=’9′) n++; printf(“%dn”,n); } 程序运行后的输出结果是( )。
选项:
A:
8
B:
3
C:
0
D:
7
答案:
9、单选题:
有以下程序段 char name[20]; int num; scanf(“name=%s num=%d”,name;&num); 当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为( )。
选项:
A:
Lili
B:
name=Lili
C:
name=Lili num=1001
D:
Lili num=
答案:
10、判断题:
在C语言中能逐个地使用下标变量,也能一次引用整个数组。
选项:
A:错
B:对
答案:
11、判断题:
能对二维数组a进行正确初始化的语句是int a[2][ ]={{1,0,1},{5,2,3,}};
选项:
A:错
B:对
答案:
12、判断题:
若有定义语句:int b[3][4]; 按在内存中的存放顺序,b数组的第4个元素是a[1][3].
选项:
A:对
B:错
答案:
13、判断题:
能对二维数组a进行正确初始化的语句是int a[ ][3]={{1,0,1},{},{1,1}};
选项:
A:对
B:错
答案:
14、判断题:
在c语言中,引用数组元素时,其数组下标的数据类型允许是整型表达式
选项:
A:错
B:对
答案:
15、判断题:
一个数组是由连续的一块内存单元组成的,数组名就是这块连续内存单元的首地址
选项:
A:对
B:错
答案:
16、判断题:
C语言允许用字符串的方式对数组作初始化赋值。
选项:
A:错
B:对
答案:
17、判断题:
用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志’’。
选项:
A:对
B:错
答案:
第六章 单元测试
1、判断题:
函数调用可以作为一个独立的语句存在
选项:
A:对
B:错
答案:
2、判断题:
若函数调用时的实参为变量,函数的实参和其对应的形参共占同一存储单元
选项:
A:对
B:错
答案:
3、判断题:
定义时,函数的形参只是形式上的存在,不占用具体存储单元
选项:
A:错
B:对
答案:
4、判断题:
函数可以没有参数,但是不能没有返回值
选项:
A:对
B:错
答案:
5、判断题:
函数定义时必须给出函数体,函数体内至少有一条语句
选项:
A:对
B:错
答案:
6、判断题:
C语言中,函数可以用原型说明,也可用简单说明
选项:
A:对
B:错
答案:
7、判断题:
函数的存储类别有外部的和静态的两种,它们的作用域分别是程序级的和文件级的
选项:
A:错
B:对
答案:
8、判断题:
C程序函数的形参不可以说明为static型变量
选项:
A:对
B:错
答案:
9、判断题:
C程序函数中定义的自动变量,系统不自动赋确定的初值
选项:
A:对
B:错
答案:
10、判断题:
在一个C源程序文件中所定义的全局变量,其作用域为所在程序的全部范围
选项:
A:对
B:错
答案:
11、单选题:
有以下程序: #include<stdio.h> int fun(int a, int b) { if(b==0) return a; else return(fun(–a, –b)); } void main(){ printf(“%dn”, fun(4,2));}程序的运行结果是( )。
选项:
A:
1
B:
4
C:
3
D:
2
答案:
12、单选题:
有以下程序:#include<stdio.h>int f(int x);void main(){ int n=1,m; m=f(f(f(n))); printf(“%dn”,m);}int f(int x) { return x*2; }程序运行后的输出结果是( )。
选项:
A:
2
B:
4
C:
1
D:
8
答案:
13、单选题:
有以下程序:#include <stdio.h>void fun(int a[],int n){ int i,t; for(i=0;i<n/2;i++) { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t; }}void main(){ int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2; i<8; i++) printf(“%d”,k[i]); printf(“n”);}程序的运行结果是( )。
选项:
A:
345678
B:
1098765
C:
321678
D:
876543
答案:
14、单选题:
有以下程序:#include<stdio.h>int fun(int x,int y){ if(x!=y) return((x+y)/2); else return (x);}void main(){ int a=4,b=5,c=6; printf( “%dn” ,fun(2*a,fun(b,c)));}程序运行后的输出结果是( )。
选项:
A:
3
B:
6
C:
8
D:
12
答案:
15、单选题:
有以下程序:#include <stdio.h>int fun(){ static int x=1; x*=2; return x;}void main(){ int i,s=1; for( i=1; i<=3; i++ ) s*=fun(); printf(“%dn”, s);}程序运行后的输出结果是( )。
选项:
A:
10
B:
30
C:
0
D:
64
答案:
16、单选题:
有以下程序 #include<stdio.h> int f(int x); void main( ) { int a, b=0; for(a=0; a<3; a++) { b=b+f(a); purchar(‘A’+b); } } int f(int x) { return x*x+1; }程序运行后的输出结果是( )。
选项:
A:
BCF
B:
ABE
C:
BCD
D:
BD1
答案:
17、单选题:
有以下程序#include<stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j; for(i=0;i<N;i++) { b[i]=a[i][0]; for(j=1;j<N;j++) if(b[i]<a[i][j]) b[i]=a[i][j]; } } void main( ){ int x[N][N]={1,2,3,4,5,6,7,8,9}, y[N],i; fun(x,y); for(i=0;i<N;i++) printf( “%d,”,y[i] ); printf( “n”);} 程序运行后的输出结果是( )。
选项:
A:
2,4,8
B:
3,5,7
C:
1,3,5
D:
3,6,9
答案:
18、单选题:
有以下程序#include<stdio.h>int a=1,b=2;void fun1(int a, int b ){ printf(“%d %d”,a,b); }void fun2(){ a=3; b=4; }void main( ){ fun1 (5,6); fun2(); printf(“%d %dn”,a,b); }程序运行后的输出结果是( )。
选项:
A:
5 6 1 2
B:
3 4 5 6
C:
1 2 5 6
D:
5 6 3 4
答案:
19、单选题:
设有如下函数定义 int fun(int k) { if (k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1;} 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。
选项:
A:
4
B:
5
C:
2
D:
3
答案:
20、单选题:
有以下程序 #include<stdio.h>int fun() { static int x=1; x+=1; return x; }void main() { int i, s=1; for(i=1;i<=5;i++) s+=fun(); printf(“%dn”,s); } 程序运行后的输出结果是 ( )。
选项:
A:
6
B:
21
C:
120
D:
11
答案:
21、单选题:
有以下程序 #include<stdio.h> int f(int t[],int n); void main( ) { int a[4]={1,2,3,4},s; s=f(a,4); printf(“%dn”,s); } int f(int t[],int n) { if(n>0) return t[n-1]+f(t,n-1); else return 0; } 程序运行后的输出结果是( )。
选项:
A:
4
B:
6
C:
10
D:
14
答案:
22、单选题:
有以下程序#include<stdio.h>int f(int x,int y) {return((y-x)*x);}void main( ){int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(“%dn”,d);}程序运行后的输出结果是( )。
选项:
A:
7
B:
8
C:
9
D:
10
答案:
23、单选题:
有以下程序 #include<stdio.h> int f(int x) {int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } void main() {int z; z=f(3); printf(“%dn”,z); } 程序的运行结果是( )。
选项:
A:
0
B:
8
C:
9
D:
6
答案:
24、单选题:
在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。
选项:
A:auto和register
B:extern和register
C:static和register
D:auto和static
答案:
25、单选题:
有以下程序void f(int b[]){int i; for(i=2;i<6;i++) b[i]*=2;}void main(){int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(a); for(i=0;i<10;i++) printf(“%d,”,a[i]);}程序运行后的输出结果是( )。
选项:
A:
1,2,3,4,5,6,7,8,9,10,
B:
1,2,6,8,10,12,7,8,9,10
C:
1,2,3,4,10,12,14,16,9,10,
D:
1,2,6,8,10,12,14,16,9,10,
答案:
26、单选题:
在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( )。
选项:
A:称为函数的直接递归调用
B:C语言中不允许这样的递归调用
C:称为函数的循环调用
D:称为函数的间接递归调用
答案:
27、单选题:
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t);} }void main() { char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”}; int i; f(p,5); printf(“%dn”,strlen(p[0])); } 程序运行后的输出结果是( )。
选项:
A:
4
B:
6
C:
3
D:
5
答案:
28、单选题:
有如下程序 void f(int x,int y) { int t; if(x<y) {t=x, x=y; } } void 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:
4,3,5
B:
5,4,3
C:
5,3,4
D:
3,4,5
答案:
第七章 单元测试
1、单选题:
有以下程序:#include<stdio.h>#define f(x) x*x*xvoid main(){ int a=3,s,t ; s=f(a+1); t=f((a+1)); printf(“%d,%dn”,s,t);}程序运行后的输出结果是( )。
选项:
A:
10,64
B:
64,10
C:
10,10
D:
64,64
答案:
2、单选题:
有以下程序:#include<stdio.h>#define PT 3.5;#define S(x) PT*x*x;void main(){ int a=1, b=2; printf(“%4.1fn” , S(a+b));}程序运行后的输出结果是( )。
选项:
A:
7.5
B:
14.0
C:
程序有错无输出结果
D:
31.5
答案:
3、单选题:
fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是( )。#include <stdio.h>#define N 5viod fun(int x[N]){int m; for(m=N-1;m>=0;m–) scanf(“%d”, );}
选项:
A:
&x[m+1]
B:
&x[++m]
C:
x+(m++)
D:
x+m
答案:
4、单选题:
有以下程序 #include<stdio.h> #define S(x) 4*(x)*x+1 void main() { int k=5,j=2; printf(“%dn”,S(k+j));} 程序运行后的输出结果是( )。
选项:
A:
197
B:
33
C:
143
D:
28
答案:
5、单选题:
有以下程序 #include<stdio.h> #define N 8 void fun(int *x,int i) {*x=*(x+i);} void main() {int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2); for(i=O;i<N/2;i++) {printf(“%d”,a[i]);} printf(“n”); }程序运行后的输出结果是( )。
选项:
A:
3 2 3 4
B:
1 2 3 4
C:
2 2 3 4
D:
1 3 1 3
答案:
6、单选题:
在“文件包含”预处理语句的使用形式中,当#inlcude后面的文件名用“”(双引号)括起时,寻找被包含文件的方式是( )。
选项:
A:
仅仅搜索源程序所在目录
B:
仅仅搜索当前目录
C:
先在源程序所在目录搜索,再按系统设定的标准方式搜索
D:
直接按系统设定的标准方式搜索目录
答案:
7、单选题:
有以下程序#include<stdio.h>#define N 4void fun(int a[][N], int b[]){ int i; for(i=0; i<N; i++) b[i]=a[i][i];}void main(){ int x[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},y[N], i; fun(x,y); for(i=0; i<N; i++) printf(“%d,”, y[i]); printf(“n”);}程序的运行结果是( )。
选项:
A:
3,4,8,10
B:
1,0,7,0
C:
1,4,5,9
D:
1,2,3,4
答案:
8、单选题:
有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B #define PRINT(Y) Printf(“y=%dn”,Y) 有以下程序 #include“init.txt” void main() {int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d); PRINT(k); } 下面针对该程序的叙述正确的是( )。
选项:
A:
运行结果为 y=6
B:
运行出错
C:
运行结果为y=0
D:
编译有错
答案:
9、单选题:
下列说法中正确的是( )。
选项:
A:
在程序的一行上可以出现多个有效的预处理命令行
B:
宏替换不占用运行时间,只占用编译时间
C:
在以下定义中C R是称为”宏名”的标识符 #define C R 045
D:
使用带参的宏时,参数的类型应与宏定义时的一致
答案:
10、判断题:
预处理命令行必须位于C源程序的起始位置
选项:
A:对
B:错
答案:
11、判断题:
C语言的预处理不能实现宏定义和条件编译的功能
选项:
A:错
B:对
答案:
12、判断题:
预处理命令行的最后不能以分号表示结束
选项:
A:对
B:错
答案:
13、判断题:
在程序中凡是以“#”开始的语句行都是预处理命令行
选项:
A:错
B:对
答案:
14、判断题:
若程序中有宏定义行:#define N 100,宏定义行中定义了标识符N的值为整数100
选项:
A:对
B:错
答案:
15、单选题:
有以下程序: #include<stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) void main() { int i1,i2; i1 = f(2) ; i2 = f(1+1) ; printf(“%d %dn”, i1, i2); }程序的运行结果是( )。
选项:
A:12 12
B:11 7
C:11 11
D:12 7
答案:
第八章 单元测试
1、判断题:
指针数组的元素可以是不同类型的指针。
选项:
A:错
B:对
答案:
2、判断题:
若有定义int(*pt)[3];定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
选项:
A:对
B:错
答案:
3、判断题:
若有定义语句:int a[2][3],*p[3];
则p[0]=&a[1][2]; 是正确的
选项:
A:对
B:错
答案:
4、判断题:
指针可以加上或减去一个int型数,也可以加上一个指针。
选项:
A:错
B:对
答案:
5、判断题:
定义语句:int *p[4];与int *(p[4]);是等价的
选项:
A:错
B:对
答案:
6、单选题:
有以下程序: #include<stdio.h> void main() { int a=1,b=3,c=5; int *p1=&a, *p2=&b, *p=&c; *p=*p1*(*p2); printf(“%dn”,c); }执行后的输出结果是( )。
选项:
A:
2
B:
4
C:
1
D:
3
答案:
7、单选题:
有以下程序: #include<stdio.h> void f(int *p,int *q); void main() { int m=1,n=2,*r=&m; f(r, &n); printf(“%d,%d”,m,n); } void f(int *p,int *q) { p=p+1; *q=*q+1;}程序运行后的输出结果是( )。
选项:
A:
2,3
B:
1,2
C:
1,4
D:
1,3
答案:
8、单选题:
有以下程序:#include<stdio.h> void fun(char *a, char *b ) { while(*a==’*’) a++; while(*b=*a) {b++; a++;}} void main() { char *s=”*****a*b****”,t[80]; fun(s,t); puts(t); }程序的运行结果是( )。
选项:
A:
a*b****
B:
a*b
C:
ab
D:
*****a*b
答案:
9、单选题:
设有以下函数: void fun(int n,char *s) { …… }则下面对函数指针的定义和赋值均正确的是( )。
选项:
A:
void *pf(); pf=fun;
B:
void (*pf)(int, char*); pf=fun;
C:
void *pf(); *pf=fun;
D:
void (*pf)(int,char); pf=&fun;
答案:
10、单选题:
有以下程序: #include <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1;j=n2; while( i<j ) {t=s[i]; s[i]=s[j]; s[j]=t; i++; j–;} } void main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++) printf(“%d”,a[k]); printf(“n”); }程序的运行结果是( )。
选项:
A:
5678901234
B:
0987654321
C:
4321098765
D:
0987651234
答案:
11、单选题:
以下选项中正确的语句组是( )。
选项:
A:char *s;s={“BOOK!”};
B:char s[10];s=”BOOK!”;
C:char s[];s=”BOOK!”;
D:char *s;s=”BOOK!”;
答案:
12、单选题:
有以下程序:#include <stdio.h>void fun1(char *p){ char *q; q=p; while(*q!=”) {(*q)++; q++; }}void main(){ char a[]={“Program”},*p; p=&a[3]; fun1(p); printf(“%sn”,a);}程序执行后的输出结果是( )。
选项:
A:
Progsbn
B:
Program
C:
Prphsbn
D:
Prohsbn
答案:
13、单选题:
有以下函数: int aaa(char *s) { char *t=s; while(*t++); t–; return(t-s); }以下关于aaa函数功能叙述正确的是( )。
选项:
A:
将串s复制到串t
B:
比较两个串的大小
C:
求字符串s的长度
D:
求字符串s所占字节数
答案:
14、单选题:
有以下程序:#include<stdio.h>#include<string.h>void main(){ char str[][20]={“One*World”,”One*Dream!”},*p=str[1]; printf(“%d,”,strlen(p)); printf(“%sn”,p);}程序运行后的输出结果是( )。
选项:
A:
10,One*World
B:
10,One*Dream!
C:
9,One*World
D:
9,One*Dream!
答案:
15、单选题:
有以下程序:#include<stdio.h>#include<stdlib.h>int fun(int n){ int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p;}void main(){ int a; a=fun(10); printf(“%dn”,a+fun(10));}程序的运行结果是( )。
选项:
A:
出错
B:
10
C:
20
D:
0
答案:
16、单选题:
有以下程序:#include<stdio.h>int add(int a,int b) { return (a+b); }void main(){ int k,(*f)(int,int) a=5,b=10; f=add; …}则以下函数调用语句错误的是( )。
选项:
A:
k=f(a,b);
B:
k=add(a,b);
C:
k= *f(a,b);
D:
k=(*f)(a,b);
答案:
17、单选题:
以下语句中存在语法错误的是( )。
选项:
A:char ss [20]={ “right?”};
B:char *ss={ “right?”};
C:char *ss[6]; ss[1]= “right?”;
D:char ss[6][20]; ss[1]= “right?”;
答案:
18、单选题:
有以下程序:#include<stdio.h>void swap(char *x,char *y){ char t; t=*x; *x=*y; *y=t;}void main(){ char *s1=”abc”,*s2=”123″; swap(s1,s2); printf(“%s,%sn”,s1,s2);}程序执行后的输出结果是( )。
选项:
A:
1bc,a23
B:
321,cba
C:
abc,123
D:
123,abc
答案:
19、单选题:
有以下函数:int fun(char *x,char *y){ int n=0; while((*x==*y) && *x!=” ) {x++; y++; n++; } return n;}函数的功能是( )。
选项:
A:
将y所指字符串赋给x所指存储空间
B:
统计x和y所指字符串中相同的字符个数
C:
统计x和y所指字符串中最前面连续相同的字符个数
D:
查找x和y所指字符串中是否有”
答案:
20、单选题:
设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于( )。
选项:
A:p=’’;
B:p= “”;
C:p=0;
D:p=’0′;
答案:
第九章 单元测试
1、判断题:
可以用typedef将已存在的类型用一个新的名字来代表
选项:
A:错
B:对
答案:
2、判断题:
用typedef定义新的类型名后,原有类型名仍有效
选项:
A:错
B:对
答案:
3、判断题:
函数可以返回指向结构体变量的指针
选项:
A:对
B:错
答案:
4、判断题:
函数的返回值类型不能是结构体类型,只能是是简单类型
选项:
A:对
B:错
答案:
5、判断题:
设有定义:
struct complex
{ int real,unreal;}data1={1,8},data2;
则data2=(2,6);是正确的。
选项:
A:错
B:对
答案:
6、单选题:
以下结构体类型说明和变量定义中正确的是( )。
选项:
A:struct REC ;
{int n; char c;};
REC t1,t2;
B:typedef struct {int n; char c;}REC;
REC t1,t2;
C:struct {int n; char c; } REC;
REC t1,t2;
D:typedef struct REC;
{int n=0; char c=’A’; }t1,t2;
答案:
7、单选题:
有以下程序:#include<stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);void main(){ struct A a={1001,”ZhangDa”,1098.0}; f(a); printf(“%d,%s,%6.1fn”, a.a, a.b, a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,”ChangRong”); t.c=1202.0;}程序运行后的输出结果是( )。
选项:
A:
1002, ZhangDa,1202.0
B:
1001,ZhangDa,1098.0
C:
1001, ChangRong,1098.0
D:
1002,ChangRong,1202.0
答案:
8、单选题:
有以下程序段: struct st { int x;int *y;}*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c;以下选项中表达式的值为11的是( )。
选项:
A:
++pt->x
B:
(pt++)->x
C:
pt->x
D:
*pt->y
答案:
9、单选题:
有以下程序: #include<stdio.h> struct S{int n;int a[20];}; void f(int *a, int n) { int i; for(i=0;i<n-1;i++) a[i]+=i; } main() { int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(s.a,s.n); for(i=0; i<s.n; i++) printf(“%d,”, s.a[i]); }程序运行后的输出结果是( )。
选项:
A:
2,3,1,6,8,7,5,4,10,9,
B:
3,4,2,7,9,8,6,5,11,10,
C:
1,2,3,6,8,7,5,4,10,9,
D:
2,4,3,9,12,12,11,11,18,9,
答案:
10、单选题:
有以下程序:#include<stdio.h>#include<string.h>typedef struct {char name[9]; char sex; float score[2]; }STU;void f(STU a){ STU b={“Zhao”,’m’,85.0,90.0}; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0; i<2; i++) a.score[i]=b.score[i];}void main(){ STU c={“Qian”,’f’,95.0,92.0}; f(c); printf(“%s,%c,%2.0f,%2.0fn”, c.name, c.sex, c.score[0], c.score[1]);}程序的运行结果是( )。
选项:
A:
Zhao,f,95,92
B:
Qian,f,95,92
C:
Zhao,m,85,90
D:
Qian,m,85,90
答案:
11、单选题:
下面结构体的定义语句中,错误的是( )。
选项:
A:struct ord {int x;int y;int z;} struct ord a;
B:struct ord {int x;int y;int z;} a;
C:struct {int x;int y;int z;} a;
D:struct ord {int x;int y;int z;}; struct ord a;
答案:
12、单选题:
设有以下程序段struct MP3 {char name[20]; char color; float price;}std, *ptr;ptr=&std;若要引用结构体变量std中的color成员,写法错误的是( )。
选项:
A:
(*ptr) .color
B:
std.color
C:
std-> color
D:
ptr-> color
答案:
13、单选题:
有以下函数#include<stdio.h>struct stu{int mun; char name[10]; int age;};viod fun(struct stu *p){ printf(“%sn”,p->name); }void main(){ struct stu x[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}}; fun(x+2);}程序运行输出结果是( )。
选项:
A:
19
B:
zhang
C:
wang
D:
zhao
答案:
14、单选题:
#include <stdio.h> struct ord { int x,y;}dt[2]={1,2,3,4}; main() {struct ord *p=dt; printf(“%d,”,(++ p)->x); printf(“%dn”,++(p->y));} 程序运行后的输出结果是( )。
选项:
A:
1,2
B:
3,4
C:
2,3
D:
3,5
答案:
15、单选题:
有如下程序段:#include <stdio.h> void main( ){ struct a{int x;int y;}num[2]={{20,5},{6,7}};printf( “%dn”, num[0].x/num[0].y*num[1].y );}执行后的输出结果是( )。
选项:
A:
5
B:
0
C:
28
D:
20
答案:
16、单选题:
有以下定义和语句 struct workers { int num; char name[20]; char c; struct {int day; int month; int year;}s; }; struct workers w,*pw; pw=&w; 能给w中year成员赋1980的语句是( )。
选项:
A:
pw->year=1980;
B:
*pw.year=198O;
C:
w.year=1980;
D:
w.s.year=1980;
答案:
17、单选题:
有以下程序#include<stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);void main(){ struct A a={1001,”ZhangDa”,1098.0}; a=f(a); printf(“%d,%s,%6.1fn”,a.a ,a.b, a.c);}struct A f(struct A t){ t.a=1002; strcpy(t.b,”ChangRong”); t.c=1202.0; return t;}程序运行后的输出结果是( )。
选项:
A:
1001,ChangRong,1098.0
B:
1002,ChangRong,1202.0
C:
1002,ZhangDa,1202.0
D:
1001,ZhangDa,1098.0
答案:
18、单选题:
有以下程序#include<stdio.h>struct st{ int x, y;}data[2]={l,10,2,20};void main(){ struct st *p=data; printf(“%d,”, p->y); printf(“%dn”,(++p)->x);}程序的运行结果是( )。
选项:
A:
10,2
B:
20,1
C:
20,2
D:
10,1
答案:
19、单选题:
有以下程序#include<stdio.h>struct tt {int x;struct tt *y;} *p;struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};void main(){ int i; p=a; for(i=1;i<=2;i++) {printf(“%d,”,p->x); p=p->y;}}程序的运行结果是( )。
选项:
A:
20,15
B:
20,30
C:
30,17
D:
15,30
答案:
20、单选题:
设有以下定义
union data
{ int d1; float d2; }demo;
则下面叙述中错误的是
选项:
A:
变量demo与成员d2所占的内存字节数相同
B:
变量demo中各成员的地址相同
C:
若给demo.d1赋99后, demo.d2中的值是99.0
D:
变量demo和各成员的地址相同
答案:
第十章 单元测试
1、判断题:
C语言的文件操作中,既可以顺序读写,又可以随机读写
选项:
A:对
B:错
答案:
2、判断题:
关闭打开的文件时使用函数fclose(),该函数无参数。
选项:
A:错
B:对
答案:
3、判断题:
打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
选项:
A:错
B:对
答案:
4、判断题:
C语言中的文件是流式文件,因此只能顺序存取数据
选项:
A:对
B:错
答案:
5、判断题:
文件由数据序列组成,可以构成二进制文件或文本文件
选项:
A:错
B:对
答案:
6、判断题:
在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
选项:
A:对
B:错
答案:
7、判断题:
在程序结束时,应当用fclose函数关闭已打开的文件
选项:
A:错
B:对
答案:
8、单选题:
设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp) 的返回值为( )。
选项:
A:非0值
B:NULL
C:0
D:‘
答案:
9、单选题:
设文件指针fp已定义,执行语句fp=fopen(“file”,”w”);后,以下针对文本文件file操作叙述的选项中正确的是( )。
选项:
A:可以在原有内容后追加写
B:可以随意读和写
C:只能写不能读
D:写操作结束后可以从头开始读
答案:
10、单选题:
读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。
选项:
A:一个整型变量,代表待读取的数据的字节数
B:一个内存块的首地址,代表读入数据存放的地址
C:一个内存块的字节数
D:一个文件指针,指向待读取的文件
答案:
11、单选题:
有以下程序#include<stdio.h>void main(){FILE *fp; int k,n,i,a[6]={1,2,3,4,5,6}; fp=fopen(“d2.dat”,”w”); for(i=0;i<6;i++) fprintf(fp,”%dn”,a[i]); fclose(fp); fp=fopen(“d2.dat”,”r”); for(i=0;i<3;i++) fscanf(fp,”%d%d”,&k,&n); fclose(fp); printf(“%d,%dn”,k,n);}程序运行后的输出结果是
选项:
A:
5,6
B:
123,456
C:
3,4
D:
1,2
答案:
12、单选题:
有以下程序 #include<stdio.h> void main() { FILE *fp; char str[10]; fp=fopen(“myfile.dat”,”w”); fputs(“abc”,fp); fclose(fp); fp=fopen(“myfile.dat”,”a+”); fprintf(fp,”%d”,28); rewind(fp); fscanf(fp,”%s”,str); puts(str); fclose(fp); } 程序运行后的输出结果是( )。
选项:
A:
28c
B:
abc28
C:
abc
D:
因类型不一致而出错
答案:
13、单选题:
有以下程序#include<stdio.h>void main(){ FILE *f; f=fopen(“filea.txt”,”w”); fprintf(f,”abc”); fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为( )。
选项:
A:
abclo
B:
abc
C:
abchello
D:
helloabc
答案:
14、单选题:
有以下程序#include <stdio.h>main(){ FILE *pf;char *s1=”China”,*s2=”Beijing”;pf=fopen(“abc.dat”,”wb+”);fwrite(s2,7,l,pf);rewind(pf);fwrite(s1,5,1,pf);fclose(pf);}以上程序执行后abc.dat 文件的内容是( )。
选项:
A:
BeijingChina
B:
ChinaBeijing
C:
China
D:
Chinang
答案:
15、单选题:
有以下程序 #include<stdio.h> void main() {FILE *fp; int a[10]={1,2,3},i,n; fp=fopen(“dl.dat”,”w”); for(i=0;i<3;i++) fprintf(fp,”%d”,a[i]); fprintf(fp,”n”); fclose(fp); fp=fopen(“dl.dat”,”r”); fscanf(fp,”%d”,&n); fclose(fp); printf(“%dn”,n); } 程序的运行结果是( )。
选项:
A:
321
B:
1
C:
12300
D:
123
答案:
16、单选题:
有以下程序 #include<stdio.h> void main() { FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(“d2.dat”,”w”); fprintf(fp,”%d%d%dn”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d n”,a[3],a[4],a[5]); fclose(fp); fp=fopen(“d2.dat”,”r”); fscanf(fp, “%d%d”,&k,&n); printf(“%d%dn”,k,n); fclose(fp); } 程序运行后的输出结果是( )。
选项:
A:
1 4
B:
123 4
C:
123 456
D:
1 2
答案:
17、单选题:
有以下程序 #include<stdio.h> void main () { FILE *fp; int i,a[6]={1,2,3,4,5,6}; fp=fopen(“d3.dat”,”wb+”); fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET); /*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++) printf(“%d,”,a[i]); } 程序运行后的输出结果是( )。
选项:
A:
6,5,4,3,2,1
B:
1,2,3,4,5,6,
C:
4,5,6,4,5,6,
D:
4,5,6,1,2,3,
答案:
18、单选题:
有如下程序 void main() {FILE *fp1; fp1=fopen(“f1.txt”,”w”); fprintf(fp1,”abc”); fclose(fp1); } 若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为( )。
选项:
A:
goodabc
B:
abcgood
C:
abcd
D:
abc
答案:
请先
!