C语言试题及答案
讷讷寡言者未必愚,喋喋利口者未必智。以下是小编为大家搜索整理C语言试题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!
一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 一个完整的计算机系统包括
A.主机、键盘与显示器
B.计算机与外部设备
C.硬件系统与软件系统
D.系统软件与应用软件
(2) 十六进制数1000转换成十进制数是
A.4096
B.1024
C.2048
D.8192
(3) 十进制数269转换成十六进制数是
A.10E
B.10D
C.10C
D.10B
(4) 如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是
A.-127到+127
B.-128到+128
C.-127到+128
D.-128到+127
(5) 下列设备中,既可作为输入设备又可作为输出设备的是
A.鼠标器
B.打印机
C.键盘
D.磁盘驱动器
(6) 下列各叙述中,正确的是
A.正数十进制原码的补码是原码本身
B.所有的十进制小数都能准确地转换为有限位二进制小数
C.汉字的计算机内码就是国标码
D.存储器具有记忆能力,其中的信息任何时候都不会丢失
(7) 在下列操作中,能导致DOS系统重新启动但不进行系统自检的是
A.加电开机
B.按+
C.按++
D.按RESET按钮
(8) 如果给定一个带有通配符的文件名F*.?,则在下列各文件中,它能代表的文件名是
A.FA.EXE
B.F.C
C.EF.C
D.FABC.COM
(9) DOS系统启动后,下列文件中常驻内存的是
A.*.COM
B.FORMAT.COM
C.AUTOEXEC.BAT
D.COMMAND.COM
(10) 设A盘的目录结构为(画方框的为目录)
如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是
A.\D2\D4\QR.C
B.D4\QR.C
C.A:D4\QR.C
D.A:D2\D4\QR.C(11) 为了要将A盘当前目录(不是根目录)中所有扩展名为.C的文件同名复制到A痰哪柯糪USER中,正确的命令是
A.COPY A:*.C USER\*.C
B.COPY A:*.C A:\USER
C.COPY A:*.C A:USER\
D.COPY A:*.C A:USER\*.C
(12) 为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,下列命令中正确的是
A.TYPE *.TXT
B.TYPE *.TXT CON
C.COPY *.TXT>CON
D.COPY *.TXT CON
(13) 设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是
A.COPY C:\XYZ.TXT+AB1.TXT
B.COPY AB1.TXT>>C:\XYZ.TXT
C.TYPE AB1.TXT>C:\XYZ.TXT
D.COPY AB1.TXT+C:\XYZ.TXT>C:\XYZ.TXT
(14) 设A盘为启动盘,其目录结构为(画方框的为目录)
其中文件AUTOEXEC.BAT的内容为
MD \XYZ
CD \DOS\USER
则由A盘启动成功后,A盘的当前目录是
A.\DOS\USER
B.\XYZ
C.\
D.\DOS
(15) 下列DOS命令中为内部命令的是
A.COMP
B.PATH
C.PRINT
D.FORMAT
(16) 设当前盘为C盘,所用的所有软盘已格式化且容量相同,则下列DOS命令中错误的是
A.DISKCOPY A: C:
B.DISKCOPY A: A:
C.COPY A:*.*
D.COPY A:*.* C:
(17) 下列DOS命令中,有错误的是
A.TYPE AAB.FOR>PRN
B.TYPE ?AB.FOR
C.COPY *.C PRN
D.COPY CON PRN
(18) 设当前盘为C盘,在当前目录下有全部的DOS系统文件与批处理命令文件AB.BAT,且该批处理命令文件的内容为
FORMAT A:/4
MD \XYZ
CD \XYZ
RD \XYZ
MD \XYZ
如果在1.2软盘驱动器A中插入一张360K容量的软盘片,执行批自理命令文件AB.BAT后,结果A盘的目录结构是
A.根目录
B.根目录----子目录XYZ----子目录XYZ
C.根目录 ─┬─ 子目录XYZ
└─ 子目录XYZ
D.根目录----子目录XYZ
(19) 下列带有通配符的文件名,能代表文件ABC.FOR的是
A.*BC.?
B.A?.*
C.?BC.*
D.?.?
(20) 设当前盘为C盘,且C盘上含有子目录\DOS,A盘为只有根目录的启动盘(根目录下只有三个DOS系统文件与扩展名为. C的文件)。下列命令组中的两个命令从效果上可以认为等价的是
A.DEL \DOS与RD \DOS
B.FORMAT A:与DEL A:*.*
C.FORMAT A: /S与DEL A:*.?
D.COPY A:F1 F2与REN A:F1 F2
(21) 设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是
A.’a’&&’b’
B.a<=b
C.a||b+c&&b-c
D.!((a (22) 请读程序片段:
int i=65536; printf("%d\n",i);
上面程序片段的输出结果是
A.65536
B.0
C.有语法错误,无输出结果
D.-1
(23) 设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch
上面表达式的值是
A.A
B.a
C.Z
D.z
(24) 若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是
A.200
B.100
C.100 200
D.输出格式符不够,输出不确定的值
(25) 下面各语句行中,能正确进行赋字符串操作的语句行是
A.char st[4][5]={"ABCDE"};
B.char s[5]={’A’,’B’,’C’,’D’,’E’};
C.char *s; s="ABCDE";
D.char *s; scanf("%s",s);
(26) 若k是int型变量,且有下面的程序片段:
k=-3
if(k<=0) printf("####")
else printf("&&&&");
上面程序片段的输出结果是
A.####
B.&&&&
C.####&&&&
D.有语法错误,无输出结果
(27) 若x是int型变量,且有下面的程序片段:
for(x=3; x<6; x++) printf((x%2)?("**%d"):("##%d\n"),x);
上面程序片段的输出结果是
A.**3
B.##3
C.##3
D.**3##4
##4 **4 **4##5 **5
**5 ##5
(28) 请读程序:
#include
f(char *s)
{ char *p=s;
while( *p!=’\0’) p++;
return(p-s);
}
main()
{ printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是
A.3
B.6
C.8
D.0
(29) 请读程序:
#include
main()
{ int a; float b, c;
scanf("-?O",&a,&b,&
C.;
printf("\na=%d, b=%f, c=%f\n", a, b,
C.;
}
若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是
A.a=98, b=765, c=4321
B.a=10, b=432, c=8765
C.a=98, b=765.000000, c=4321.000000
D.a=98, b=765.0, c=4321.0
(30) 请读程序:
#include
main()
{ int n[2], i, j, k;
for(i=0;i<2;i++) n[i]=0;
k=2
for(i=0;i for(j=0;j printf("%d\n",n[k]);
}
上面程序的输出结果是
A.不确定的值
B.3
C.2
D.1
(31) 请读程序片段:
char str[]="ABCD", *p=str;
printf("%d\n",*(p+4));
上面程序的输出结果是
A.68
B.0
C.字符"D"的地址
D.不确定的值
(32) 请读程序片段:
#include
main()
{ int a, b;
for(a=1;b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
printf("%d\n",a);
}
上面程序的输出结果是
A.7
B.8
C.9
D.10
(33) 若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:
int *p;
p=__________ malloc( sizeof(int));
则应填入
A.int
B.inst *
C.(*int)
D.(int *)
(34) 请读程序片段(字符串内没有空格):
printf("%d\n",strlen("ATS\n012\1\\"));
上面程序片段的输出结果是
A.11
B.10
C.9
D.8
(35) 请读程序:
#include
#include
main()
{ char*s1="AbCdEf", *s2="aB";
s1++; s2++;
printf("%d\n",strcmp(s1,s2));
}
上面程序的输出结果是
A.正数
B.负数
C.零
D.不确定的值
(36) 请读程序:
#include
func( int a, int
B.
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, y=7, z=8, r;
r=func( x--,y==,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是
A.11
B.20
C.21
D.31
(37) 请读程序:
#include
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++) a[i]=*p++;
printf("%d\n",a[2]);
}
上面程序的输出结果是
A.6
B.8
C.4
D.2
(38) 请读程序:
#include
char fun(char *
C.
{ if( *c<=’Z’ && *c>=’A’) *c-=’A’-’a’;
return *c;
}
main()
{ char s[81], *p=s;
gets(s);
while(*p)
{*p=fun(p); putchar(*p); p++;}
putchar(’\n’);
}
若运行时从键盘上输入OPEN THE DOOR(表示回车),则上面程序的.输出结果是
A.oPEN tHE door
B.open the door
C.OPEN THE DOOR
D.Open The Door
(39) 请读程序:
#include
void fun( int *s)
{ static int j=0;
do
s[j]+=s[j+1];
while(++j<2);
}