文档库 最新最全的文档下载
当前位置:文档库 › C语言笔试试题及答案

C语言笔试试题及答案

C语言笔试试题及答案
C语言笔试试题及答案

C语言笔试试题及答案

引导语:C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,以下是小编整理的C语言笔试试题及答案,欢迎参考阅读!

选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)

下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。

(1) 所谓裸机是指

A) 单片机B) 单板机

C) 不装备任何软件的计算机D) 只装备操作系统的计算机

(2) 下列存储器中,存取速度最快的是

A) 软盘B) 硬盘C) 光盘D) 内存

(3) 系统软件中最重要的是

A) 操作系统B) 语言处理程序C) 工具软件D) 数据库管理系统

(4) CPU处理的数据基本单位为字,一个字的字长

A) 为8个二进制位B) 为16个二进制位

C) 为32个二进制位D) 与CPU芯片的型号有关

(5) 打印当前屏幕内容应使用的控制键是

A) Scroll-Lock B) Num-Lock C) PgDn D) PrtSc(Print Screen)

(6) 能将高级语言源程序转换成目标程序的是

A) 调试程序B) 解释程序C) 编译程序D) 编辑程序

(7) 二进制数1110111.11转换成十进制数是

A) 119.375 B) 119.75 C) 119.125 D) 119.3

(8) 十六进制数FF.1转换成十处理程序,DOS系统启动后,它

A) 驻留在外存,需要时再装入内存B) 常驻内存,包含所有内部命令

C) 不能处理外部命令D) 不能处理后缀为.EXE的可执行文件

(12) 为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令

A) REN *.PAS *.?AS B) REN PAS P

C) REN *.PAS *.P D) REN *.PAS *.P??

(13) 设当前盘中文件XY.C的路径为ABXU,当前目录为AB。为了查看文件XY.C的内容,应使用命令

A) TYPE XUXY.C B) TYPE XUXY.C

C) DIR XUXY.C D) DIR ABXUXY.C

(14) 要将提示符改成当前盘当前目录后加一个大于号,应使用命令

A) PROMPT B) PROMPT $p$g C) PROMPT $$ D) PROMPT

C

(15) 设C盘根目录中有一个批处理文件A.BAT,当前盘为A盘。为了执行该批处理文件,下列命令中一定正确的是

A) C:A B) C:A.BAT C) A.BAT D) A.BAT

(16) 设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令

A) TYPE A:AB B) DIR AB C) DIR A:AB D) DIR AB

(17) 可执行文件ABC.EXE所需要的输入数据已经按格式存放在文件XYZ中,要求将执行结果在打印机上打印输出。下列命令中正确的是

A) ABCXYZPRN D) ABCPRN

(18) 在当前盘当前目录下有一个文件A.BAT,其内容为

CD

MD XYZABBC

CD XYZABB

在正确执行上述文件后,接着执行下列命令时,不会发生错误的是

A) MD C B) RD XYZ C) RD C D) RD B

(19) 下列命令组中两个命令互相等价的是

A) TYPE AB.TXT 与DIR AB.TXT

B) DISKCOMP A: B: 与COMP A:*.* B:*.*

C) TYPE AB.TXTXY.TXT 与COPY AB.TXT XY.TXT

D) TYPE AB.TXTXY.TXT 与COPY AB.TXT XY.TXT

(20) 设A盘为启动盘,其目录结构为

其中文件AUTOEXEC.BAT的内容如下:

MD XYZ

CD DOSUSER

则由A盘启动成功后,A盘的当前目录是

A) DOSUSER B) XYZ C) 根目录D) DOS

(21) 在C语言提供的合法的关键字是

A) swicth B) cher C) Case D) default

(22) 在C语言中,合法的字符常量是

A) 84 B) x43 C) ab D)

(23) 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是

A)1 B)2 C)2.0 D)2.5

(24) 合法的数组定义是

A)int a[]=string; B)int a[5]={0,1,2,3,4,5};

C)vhst s=string; D)char a[]={0,1,2,3,4,5};

(25) 设a为整型变量,不能正确表达数学关系:1010a15

D)!(a=10)!(a=15)

(26) 若t为double类型,表达式t=1,t5,t++的值是

A) 1 B) 6.0 C)2.0 D)1.0

(27) 若有定义和语句:

char s[10]:s=abcd;printf(%s ,s);

则结果是(以下u代表空格)

A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过

(28) 若有定义和语句:

int **pp,*p,a=10,b=20;

pp=p;p=a;p=b;printf(%d ,*p,**pp);

则输出结果是:

A)10,20 B)10,10 C)20,10 D)20,20

(29) 若有以下定义和语句:

int u=010,v=0x10,w=10;

printf(%d,%d,%d ,u,v,w);

则输出结果是:

A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10

(30) 若有以下定义和语句

char c1=b,c2=e;

printf(%d,%c ,c2-c1,c2-a+A);

则输出结果是:

A)2,M B)3,E

C)2,E D)输出项与对应的格式控制不一致,输出结果不确定

(31) 若有以下定义:

char s[20]=programming,*ps=s;

则不能代表字符o的表达式是

A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps

(32) 若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是

for (i=5;i;i--)

for(j=0;j4;j++){...}

A)20 B)25 C)24 D)30

(33) 若有以下定义和语句:

char *s1=12345,*s2=1234;

printf(%d ,strlen(strcpy(s1,s2)));

则输出结果是

A) 4 B)5 C)9 D)10

(34) 若有以下定义和语句:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则不能表示a数组元素的表达式是

A) *p B) a[10] C) *a D) a[p-a]

(35) 下面程序的输出是

main()

{ char *s=121;

int k=0, a=0, b=0;

do {k++;

if(k%2==0) {a=a+s[k]-0;

continue;}

b=b+s[k]-0;

a=a+s[k]-0;

}

while (s[k+1]);

printf(k=%d a=%d b=%d ,k,a,b);

A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3

(36) 下面程序的输出是

main()

{ unsigned a=32768;

printf(a=%d ,a);

}

A)a=32768 B)a=32767 C)a=-32767 D)a=-1

(37) 若有以下定义:

float x;int a,b;

则正确的switch 语句是

A)switch(x) B)switch(x)

{ case1.0:printf(* ); { case1,2:printf(* );

case2.0:printf(** ); case3:printf(** );

} }

C)switch (a+b) D)switch (a+b);

{ case 1:printf( ); { case 1:printf(.* );

case 1+2:printf(** ); case 2:printf(** );

(38) 若有定义:int x,y;char a,b,c;并有以下输入数据(此处CR 代表换行符,/u代表空格):

1u2

AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是

A) scanf(x=%d y+%d,x,y);a=get);b=get);c=get);

B) scanf(%d %d,x,y);a=get);b=get);c=get);

C) scanf(%d%d%c%c%c,x,y,a,b,c);

D) scanf(%d%d%c%c%c%c%c%c:x,y,a,a,b,b,c,c);

(39) 以下程序输出的结果是

#include

#include

main()

{ char w[][10]={ABCD,EFGH,IJKL,MNOP},K;

for (k=1;k3;k++)

printf(%s ,w[k][k]);

}

A)ABCD B)ABCD

FGH EFG

KL IJ

C)EFG D)FGH

JK KL

O

(40) 若有以下的定义:

int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;

则值为3的表式是

A) p+=2, *(p++) B) p+=2,*++p C) p+=3, *kp++ D) p+=2,++l pw=w;

则对w数组元素非法引用是

A)*(w[0]+2) B)*(pw+1)[2] C)pw[0][0] D)*(pw[1]+2)

(44) 若有以下程序片段:

char str[]=ab 12;

printf(%dd,strlen(str));

上面程序片段的输出结果是

A)3 B)4 C)6 D)12

(45) 函数调用:strcat(strcpy(str1,str2),str3)的功能是

A) 将串str1复制到串str2中后再连接到串str3之后

B) 将串str1连接到串str2之后再复制到串str3之后

C) 将串str2复制到串str1中后再将串str3连接到串str1之后

D) 将串str2连接到串str1之后再将串str1复制到串str3中

(46) 以下对C语言函数的有关描述中,正确的是

A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B) C函数既可以嵌套定义又可以递归调用

C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个源程序文件中

(47) 以下叙述中不正确的是

A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B) 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

C) 在C中,外部变量的隐含类别是自动存储类别。

D) 在C中,函数形参可以说明为register变量。

(48) 以下程序的输出结果是

#include

subl(char a,char b) {char c; c=a;a=b;b=c;}

sub2(char* a,char b) {char c; c=*a;*a=b;b=c;}

sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} { char a,b;

a=A;b=B;sub3(a,b);puta);putb);

a=A;b=B;sub2(a,b);puta);prtb);

a=A;b=B;sub1(a,b);puta);putb);

}

A) BABBAB B) ABBBBA C) BABABA D) BAABBA

(49) 设有如下定义:

struct sk

{int a;float b;}data,*p;

若有p=data;,则对data中的a域的正确引用是

A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a

(50) 以下对枚举类型名的定义中正确的是

A)enum a={one,two,three}; B)enum a {one=9,two=-1,three};

C)enum a={one,two,three}; D)enum a {one,two,three};

答案

一、选择题((1)--(40)题每题1分,(41)--(50)题每题2分,共60分。

(1)C (2)D (3)A (4)D (5)D (6)C 7)B (8)A (9)C (10)A

(11)B (12)C (13)A (14)B (15)A (16)C (17)D (18)C (19)D (20)C

(21)D (22)B (23)C (24)D (25)A (26)D (27)D (28)D (29)A

(30)B

(31)A (32)A (33)A (34)B (35)C (36)C (37)C (38)D (39)D

(40)A

(41)B (42)C (43)B (44)C (45)C (46)A (47)C (48)A (49)B (50)B

相关文档