首页 > 全部 > 二级C语言 > 国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷12

国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷12

本单篇文档共7666字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 2753人下载
价格: 免费 原价:¥9.00
收藏

国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷12

选择题

1.有以下程序

#include <stdio.h>

main()

{ char a=4;

printf(\\(A)

A. 8

B. 16

C. 40

D. 4

解析:本题主要考查按位右移运算。a=4的二进制为00000100,a<<1后为00001000,其值为十进制数值8。

2.有以下程序

#include <stdio.h>

main()

{ int a=5,b=1,t;

t=(a<<2)|b;printf(\\(C)

A. 11

B. 6

C. 21

D. 1

解析:本题考查位操作运算符。

‘<<’是左移运算符,左移一位相当于乘2,‘|’是按位或运算符。5左移两位相当于乘4,得到20,20的二进制数是00010100,和00000001进行按位或操作得到00010101,即十进制的21。

3.若变量已正确定义,则以下语句的输出结果是

s=32;

s^=32;

printf(\\(D)

A. -1

B. 1

C. 32

D. 0

解析:“按位异或”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为0;若数不同,则该位的结果为1。因为语句s=32;s^=32;相当于s与自身做按位异或运算,所以其结果等于0。

4.若有以下程序

main() {

int c;

c= 10^5;

printf(\\(A)

A. 15

B. 10000

C. 5

D. 105

解析:按位异或(^)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,该位的结果为1。整数10和5的二进制编码分别为1010和0101,异或结果为1111,其十进制数据位15。

5.若有以下程序

main() {

int c;

c = 13|5;

printf(\\(C)

A. 15

B. 18

C. 13

D. 5

解析:按位或(|)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为1,则该位的运算结果即为1;只有当两个相应位的数都为0时,该位的运算结果才为0。13的二进制位1101,5的二进制位0101,或运算的结果为1101,因此值为13。

6.有以下程序

main() {

int i=0;

i = ~ i;

printf(\\(D)

A. 0

B. 1

C. 8

D. -1

解析:运算符(~)是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反(使每一位上的0变1,1变0)。i的初值为0,二进制位00000000,因此取反后结果为11111111,最高位为符号位,为-1的补码形式,因此输出结果为-1.

7.有以下程序

main() {

int i=1;

i = i^i;

printf(\\(B)

A. -1

B. 0

C. 1

D. 7

解析:按位异或(^)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,该位的结果为1。本题中表达式i^i的值必为0,因为i的各个位置的二进制值相同。

8.下面关于位运算符的叙述,正确的是(D)

A. #表示“按位异或”的运算

B. ||表示“按位或”的运算

C. ~表示“按位异或”的运算

D. &表示“按位与”的运算

解析:C语言提供了6种位运算符,各种位运算符的含义见下表:

各种位运算符及其含义

9.以下叙述中正确的是(D)

A. 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

B. 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

C. C语言中的文件是流式文件,因此只能顺序存取数据

D. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

解析:在C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以“a”的方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。

10.下列关于C语言文件的叙述中正确的是(C)

A. 文件由结构序列组成,可以构成二进制文件或文本文件

B. 文件由一系列数据依次排列组成,只能构成二进制文件

C. 文件由数据序列组成,可以构成二进制文件或文本文件

D. 文件由字符序列组成,其类型只能是文本文件

解析:在C语言中,对输入、输出的数据都按“数据流”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文件和二进制文件。

11.下面选项中关于“文件指针”概念的叙述正确的是(C)

A. 文件指针就是文件位置指针,表示当前读写数据的位置

B. 文件指针指向文件在计算机中的存储位置

C. 文件指针是程序中用FILE定义的指针变量

D. 把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符

解析:文件指针实际上是指向一个结构体类型的指针,这个结构体中包含如缓冲区的地址、在缓冲区中当前存取的字符的位置、对文件是“读”或“写”、是否出错、是否已经遇到文件结束标志等信息。

一般称文件指针结构体类型名为FILE,可以用此类型名来定义文件指针。

【格式】FILE *指针变量名

【说明】FILE是一个存储文件信息的结构体类型的变量。

注意不要和文件位置指针混淆,在文件内部有一个位置指针,用以指示文件内部的当前读写位置。使用fgetc函数,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置

12.设文件指针fp已定义,执行语句fp=fopen(\\(C)

A. 写操作结束后可以从头开始读

B. 可以在原有内容后追加写

C. 可以随意读和写

D. 只能写不能读

解析:在题目中函数fopen以“只写”方式打开文件file。

13.有以下程序

#include <stdio.h>

main() {

FILE *f;

f=fopen(\\(B)

A. abclo

B. abc

C. helloabc

D. abchello

解析:本题考查文件打开方式。

格式:文

本文档预览:3600字符,共7666字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷12

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号