C. 64 D. 32
【答案】A
【考点解析】x的二进制形式为00 100 000左移一位后变为01 000 000化为八进制形式为100。
【例5】(2002年9月)有以下程序
main()
{ unsigned char a,b;
a=4|3;
b=4&3;
printf("%d %d\n",a,b);
}
执行后输出结果是( )。
A. 7 0 B. 0 7
C. 1 1 D. 43 0
【答案】A
【考点解析】a=3|4=0000 0011|0000 0100=0000 0111,b=0000 0100&0000 0011=0000 0000,a的十进制值是7,b的十进制值是0,所以选择A。
【例6】(2003年4月)char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是( )。
A. 10101001 B. 10101000
C. 11111101 D. 01010101
【答案】D
【考点解析】(2+x)^(~3)=(0000 0010+1010 0111)^(~0000 0011)=1010 1001^1111 1100=0101 0101,所以选D。
7.4文件操作
一、选择题
【例1】(2000年4月)在C程序中,可把整型数以二进制形式存放到文件中的函数是( )。
A. fprintf函数 B. fread函数
C. fwrite函数 D. fputc函数
【答案】C
【考点解析】fwrite函数能够通过设置参数实现向文件写入数据以二进制形式存放到文件。
【例5】(2002年9月)以下叙述中错误的是( )。
A. 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B. 在程序结束时,应当用fclose函数关闭已打开的文件
C. 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D. 不可以用FILE定义指向二进制文件的文件指针
【答案】D
【考点解析】FILE的指针既可以指向二进制文件又可以指向文本文件。
【例7】(2003年9月)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )。
A. 0 B. 1
C. -1 D. 一个非0值
【答案】A
【考点解析】当遇到文件尾函数feof返回一个非0值,若没有遇到文件尾函数feof返回0。
【例8】(2003年9月)下列关于C语言数据文件的叙述中正确的是( )。
A. 文件由ASCII码字符序列组成,C语言只能读写文本文件
B. 文件由二进制数据序列组成,C语言只能读写二进制文件
C. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
【答案】D
【考点解析】C语言既能读写文本文件,又能读写二进制文件,所以选项A和B错误;C语言文件由数据流的形式组成,故C错误。
【例10】(2004年4月)有以下程序(提示:程序中fseek(fp,-2L*sizeof(int), SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include
main( )
{ FILE *fp;int i,a[4]={1,2,3,4},b;