C语言题库及答案(选择题) 下载本文

内容发布更新时间 : 2024/5/19 2:08:49星期一 下面是文章的全部内容请认真阅读。

A.10101001 B.10101000 C.11111101 D.01010101 322.若要说明一个类型名STP,使得定义语句STP s等价于char *s,以下选项中正确的是()。

A.typedef STP char *s; B.typedef *char STP; C.typedef stp *char; D.typedef char* STP; 323.以下叙述中正确的是()。

A.在程序的一行上可以出现多个有效的预处理命令行 B.使用带参的宏时,参数的类型应与宏定义时的一致 C.宏替换不占用运行时间,只占编译时间

D.在以下定义中 C R 是称为\宏名\的标识符 #define C R 045 324.以下各选项企图说明一种新的类型名,其中正确的是()。

A.typedef v1 int; B.typedef v2=int; C.typedef int v3; D.typedef v4: int; 325.以下叙述正确的是()。

A.可以把define和if定义为用户标识符

B.可以把define定义为用户标识符,但不能把if定义为用户标识符 C.可以把if定义为用户标识符,但不能把define定义为用户标识符 D.define和if都不能定义为用户标识符 326.以下叙述中不正确的是()。 A.表达式a&=b等价于a=a&b B.表达式a|=b等价于a=a|b C.表达式a!=b等价于a=a!b D.表达式a^=b等价于a=a^b

327.设 int b=2;表达式(b>>2)/(b>>1)的值是()。

A.0 B.2 C.4 D.8 328.若x=2,y=3则x&y的结果是()。

A.0 B.2 C.3 D.5 329.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A.x || y B.x | y C.x & y D.x ^ y 330.下面说明不正确的是()。 A.char a[10]=\

B.char a[10],*p=a;p=\C.char *a;a=\

D.char a[10],*p;p=a=\

331.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()。 A.c=*p1+*p2; B.p2=c; C.p1=p2;

D.c=*p1*(*p2);

332.设 char *s=\则指针变量s指向的字符串所占的字节数是()。 A.9 B.5 C.6 D.7

333.对于基本类型相同的两个指针变量之间,不能进行的运算是()。 A.< B.= C.+ D.-

334.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是()。

- 31 -

A.&t[3][2] B.t[3] C.&t[1] D.t[2] 335.变量的指针,其含义是指该变量的()。

A.值 B.地址 C.名 D.一个标志

336.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。 A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point 337.若有说明:int *p,m=5,n;以下正确的程序段是()。 A.p=&n;scanf(\B.p=&n;scanf(\C.scanf(\D.p=&n;*p=m;

338.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。 A.p1=&m;p2=&p1

B.p1=&m;p2=&n;*p1=*p2; C.p1=&m;p2=p1; D.p1=&m;*p2=*p1;

339.下面判断正确的是()。

A.char *a=\等价于 char *a;*a=\

B.char str[10]={\等价于char str[10];str[]={\C.char *s=\等价于 char *s;s=\

D.char c[4]=\等价于 char c[4]=d[4]=\

340.若定义:int a=511,*b=&a;, 则printf(\的输出结果为()。 A.无确定值 B.a的地址 C.512 D.511 341.若有定义:int *p[3];,则以下叙述中正确的是()。

A.定义了一个基类型为int的指针变量p,该变量具有三个指针

B.定义了一个指针数组p,该数组含有三个元素,各元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型 元素

342.下列选项中正确的语句组是()。 A.char s[8]; s={\B.char *s; s={\C.char s[8]; s=\D.char *s; s=\

343.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。 A.p=q; B.*p=*q; C.n=*q; D.p=n; 344.在说明语句:int *f();中,标识符f代表的是()。 A.一个用于指向整型数据的指针变量 B.一个用于指向一维数组的行指针 C.一个用于指向函数的指针变量 D.一个返回值为指针型的函数名

345.若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是()。 A.&aa[0]+1 B.&aa[1] C.&aa[0]++ D.aa+1 346.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()。

A.i=*p; B.*p=*&j; C.i=&j; D.i=**p;

- 32 -

347.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。 A.p=1; B.*q=2; C.q=p; D.*p=5; 348.fscanf函数的正确调用形式是()。 A.fscanf(fp,格式字符串,输出表列); B.fscanf(格式字符串,输出表列,fp);

C.fscanf(格式字符串,文件指针,输出表列); D.fscanf(文件指针,格式字符串,输入表列); 349.系统的标准输入文件是指()。

A.键盘 B.显示器 C.软盘 D.硬盘 350.函数 ftell(fp) 的作用是()。 A.得到流式文件中的当前位置 B.移到流式文件的位置指针 C.初始化流式文件的位置指针 D.以上答案均正确

351.函数 rewind 的作用是()。 A.使位置指针重新返回文件的开头

B.将位置指针指向文件中所要求的特定位置 C.使位置指针指向文件的末尾

D.使位置指针自动移至下一个字符位置 352.fseek函数的正确调用形式是()。 A.fseek(文件类型指针,起始点,位移量) B.fseek(fp,位移量,起始点) C.fseek(位移量,起始点,fp)

D.fseek(起始点,位移量,文件类型指针)

353.利用 fseek 函数可以实现的操作是()。 A.改变文件的位置指针 B.文件的顺序读写 C.文件的随机读写 D.以上答案均正确

354.函数调用语句:fseek(fp,-20L,2);的含义是()。 A.将文件位置指针移到距离文件头20个字节处 B.将文件位置指针从当前位置向后移动20个字节 C.将文件位置指针从文件末尾处退后20个字节 D.将文件位置指针移到离当前位置20个字节处

355.若调用fputc函数输出字符成功,则其返回值是()。

A.EOF B.1 C.0 D.输出的字符 356.在执行 fopen 函数时,ferror 函数的初值是()。 A.TRUE B.-1 C.1 D.0 357.fwrite函数的一般调用形式是()。 A.fwrite(buffer,count,size,fp); B.fwrite(fp,size,count,buffer); C.fwrite(fp,count,size,buffer); D.fwrite(buffer,size,count,fp);

358.以下fread函数的调用形式中,参数类型正确的是()。

- 33 -

A.fread(int fd,char *buf,int count) B.fread(int *buf,int fd,int count) C.fread(int fd,int count,char *buf) D.fread(int count,char *buf,int fd)

359.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。 A.一个整数,代表要读入的数据项总数 B.一个文件指针,指向要读的文件

C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项

360.当顺利执行了文件关闭操作时,fclose函数的返回值是()。 A.-1 B.TRUE C.0 D.1

361.若以\方式打开一个已存在的文件,则以下叙述正确的是()。

A.文件打开时,原文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B.文件打开时,原文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C.文件打开时,原有文件内容被删除,只可作写操作 D.以上各种说法皆不正确

362.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()。

A.\ B.\ C.\ D.\363.若执行fopen函数时发生错误,则函数的返回值是()。 A.地址值 B.0 C.1 D.EOF 364.以下叙述中不正确的是()。

A.C语言中的文本文件以ASCⅡ码形式存储数据 B.C语言中对二进制文件的访问速度比文本文件快 C.C语言中,随机读写方式不适用于文本文件 D.C语言中,顺序读写方式不适用于二进制文件

365.以下可作为函数fopen中第一个参数的正确格式是()。 A.c:user\\text.txt B.c:\%user\\text.txt C.\D.\

366.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。 A.只写 B.追加 C.读或读写 D.答案B和C都正确 367.以下叙述中错误的是()。

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针 368.下列关于C语言数据文件的叙述中正确的是()。 A.文件由ASCII码字符序列组成,C语言只能读写文本文件 B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

- 34 -

369.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()。

A.0 B.1 C.-1 D.一个非0值

370.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。 A.fopen(\B.fopen(\C.fopen(\D.fopen(\

371.在C程序中,可把整型数以二进制形式存放到文件中的函数是()。

A.fprintf函数 B.fread函数 C.fwrite函数 D.fputc函数 372.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。

A.EOF B.0 C.非零值 D.NULL 373.C语言结构体类型变量在程序执行期间()。 A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中

374.当说明一个结构体变量时系统分配给它的内存是()。 A.各成员所需内存量的总和 B.结构中第一个成员所需内存量

C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 375.下列变量中合法的是

A. B.C.Tom B.3a6b C._6a7b D.$ABC 376.整型变量x=1,y=3,经下列计算后,x的值不等于6的是 A.x=(x=1+2,x*2) B.x=y>2?6:5 C.x=9-(--y)-(y--) D.x=y*4/2

377.能正确表示逻辑关系:\≥10或a≤0 \的C语言表达式是 A.a>=10 or a<=0 B.a>=0 | a<=10 C.a>=10 && a<=0 D.a>=10 || a<=0

378.C程序的基本结构单位是

A.文件 B.语句 C.函数 D.表达式

379.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为 A.float B.int C.char D.double 380.已定义两个字符数组a,b,则以下正确的输入格式是 A.scanf(\B.get(a, b);

C.scanf(\

- 35 -