一、选择题((1)-(40)每小题1分, (41)-(50)每小题2分, 共60分)
下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)微型计算机的性能主要取决于
A.内存
B.中央处理器
C.硬盘
D.显示卡
(2)有一个数值152,它与十六进制数6A相等,那么该数值是
A.二进制数
B.八进制数
C.十进制数
D.四进制数
(3)使用超大规模集成电路制造的计算机应该归属于
A.第一代
B.第二代
C.第三代
D.第四代
(4)已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是
A.34H
B.54H
C.24H
D.64H
(5)一片存储容量是1.44MB的软磁盘,可以存储大约140万个
A.ASCII字符
B.中文字符
C.磁盘文件
D.子目录
(6)在MS-DOS环境中同时按下[Ctrl]和[Break]两个键,其作用是
A.终止当前操作
B.暂停当前操作
C.关机
D.热启动
(7)将二进制数10000001转换为十进制数应该是
A.127
B.129
C.126
D.128
(8)磁盘处于写保护状态,那么磁盘中的数据
A.不能读出,不能删改,也不能写入新数据
B.可以读出,不能删改,也不能写入新数据
C.可以读出,可以删改,但不能写入新数据
D.可以读出,不能删改,但可以写入新数据
(9)微型机启动后,DOS提示符是C:\>,现提示符变为C:\USER>,则说明刚执行过命令
A.PROMPT
B.PROMPT USER
C.PROMPT SP$G
D.CD USER
(10)MS-DOS文件系统目录的组织形式属于
A.关系型结构
B.网络型结构
C.树型结构
D.直线型结构
(11)应用软件系统TH的总容量大约1MB,其主要程序文件存放在C:\TH目录中,而数据文件存放在C:\TH\DATA目录中,如果将它们完整地复制到A盘, 应该使用的命令是
A.XCOPY C:\TH A:\
B.XCOPY C:\TH A:\ /S
C.XCOPY C:\TH A:\ /M
D.XCOPY C:\TH A:\ /P
(12)执行COPY A.TXT+B.TXT 这个DOS命令后,得到的磁盘文件是
A.A.TXT
B.B.TXT
C.AB.TXT
D.A+B.TXT
(13)在WINDOWS中,将一个应用程序窗口最小化之后,得到的磁盘文件是
A.仍在后台运行
B.暂时停止运行
C.完全停止运行
D.出错
(14)CD-ROM属于
A.感觉媒体
B.表示媒体
C.表现媒体
D.存储媒体
(15)在因特网(Internet)中电子公告板的缩写是
A.FTP
B.WWW
C.BBS
D.E-mail
(16)设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为
A.4
B.16
C.32
D.52
(17)设有如下的变量定义:
int i=8, k, a, b;
unsigned long w=5;
double x=1, 42, y=5.2;
则以下符合C语言语法的表达式是
A.a+=a-=(b=4)*(a=3)
B.x%(-3);
C.a=a*3=2
D.y=float(i)
(18)假定有以下变量定义:
int k=7,x=12;
则能使值为3的表达式是
A.x%=(k%=5)
B.x%=(k-k%5)
C.x%=k-k%5
D.(x%=k)-(k%=5)
(19)以下叙述中正确的是
A.输入项可以是一个实型常量,如:scakf("%f",3.5);
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scakf("%4.2f",&f);
D.当输入数据时,必须指明变量地址,例如:scakf("%f",&f);
(20)设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是
A.把x和y按从大到小排列
B.把x和y按从小到大排列
C.无确定结果
D.交换x和y中的值
(21)以下程序的输出结果是
A.10 10
B.12 12
C.11 10
D.11 13
main()
{ int a=12,b=12;
printf("%d,%d\n",- -a,+ +B);
}
(22)以下程序运行后,输出结果是
A.cde
B.字符c的ASCII码值
C.字符c的地址
D.出错
main()
{ char *s="abcde";
s+=2;
printf("%ld\n",s);
}
(23)以下程序输出结果是
A.7
B.6
C.5
D.4
main()
{ int m=5;
if(m++>5)printf("%d\n",m);
esle printf("%d\n",m- -);
}
(24)当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为
A.1
B.2
C.3
D.6
if(a
if(c else
if(a
if(b else x=3;
else x=6;
else x=7;
(25)在执行以下程序时,如果从键盘上输入,ABCdef,则输出为
A.ABCdef
B.abcDEF
C.abc
D.DEF
#include
main()
{ char ch;
while((ch=getchar())!='\n')
{ if(ch>='A' && ch<='Z')ch=ch+32;
else if(ch>='a' && ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(26)下面能正确进行字符串赋值操作的语句是
A.char s[5]={"ABCDE"};
B.char s[5]={'A','B','C','D','E'};
C.char *s;s="ABCDEF";
D.char *s; scanf("%s",s);
(27)执行以下程序段时
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示有语法错误
X=-1;
do {x=x*x; } while(! x);
(28)执行以下程序后,输出的结果是
A.-1
B.1
C.8
D.0
main ()
{ int y=10;
do { y - -;} while(- - y);
printf("%d\n",y - -);
}
(29)在下列选项中,没有构成死循环的程序段是
A.int i=100
B.for( ; ;);
while(1)
{ i=i0+1;
if(i>100)break;
}
C.int k=1000;
D.int s=36;
do{++k;} while(k>=10000); while(s);--s;
(30)执行语句: for(i=l:i++<4:);后,变量i的值是
A.3
B.4
C.5
D.不定
(31)以下程序运行后,如果从键盘上输入ABCDE,则输出结果为
A.8
B.7
C.6
D.5
#include
#include
func
{ int num=0;
while(*(str+num)!='\0')num++;
return(num);
}
main()
{ char str[10],*p=str;
gets(p); printf("%d\n",func(p));
}
(32)运行以下程序后,如果从键盘上输入 china#,则输出结果为
A.2,0
B.5,0
C.5,5
D.2,5
#include
mair()
{ int v1=0,v2=0;
char ch;
while((ch=getchar())!='#')
switch(ch)
{ case 'a';
case 'h';
default; v1++;
case '0'; v2++;
}
printf("%d,%d\n",v1,v2);
}
(33)若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;
FILEL CHINA BEIJING SHANGHAI
程序的输出结果是
A.CHINA BEIJING SHANGHAI
B.FILEL CHINA BEIJING
C.C B S
D.F C B
main(int argc,char *argv[])
{ while(arge-->0)
{ ++argv;printf("%s ",*argv);}
}
(34)下面程序运行的结果是
A.2ba56
B.6521
C.6
D.62
main()
{ char ch[7]={65ab21"};
int i,s=0
for(i=0;ch[i]>='0' && ch[i]<='9';i+=2)
s=10*s+ch[i]-'0';
printf("%d\n",s);
}
(35)运行下面的程序,如果从键盘上输入:
ab
c
def
则输出结果为
A.a
B.a
C.ab
D.abcdef
b b c
c c d
d d
e
f
#include
#define N 6
main()
{ char c[N];
int i=0;
for( ;i
for( i=0;i }
(36)以下程序运行后,输出结果是
A.8
B.7
C.6
D.5
#include
ss(char *s)
{ char *p=s;
while(*p)p++;
return(p-s);
}
main()
{ char *a="abded";
int i;
i=ss(a);
printf("%d\n",i);
}
(37)以下程序运行后,输出结果是
A.8,15
B.8,16
C.8,17
D.8,8
func(int a, int
B.
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{ int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
(38)以下程序运行后,输出结果是
A.49.5
B.9.5
C.22.0
D.45.0
#include
#define PT 5.5
#define S(x)PT* x * x
main()
{ int a=1,b=2;
printf("%4.1f\n",S(a+
B.);
}
(39)以下程序运行后,输出结果是
A.ABCDEFG
B.CDG
C.abcdefgh
D.abCDefGh
main()
{ static char a[]="ABCDEFGH",b[]="abCDefGh";
char *p1,*p2;
int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
printf("\n");
)
(40)以下程序运行后,a的值是
A.4
B.1
C.0
D.运行时出错,a无定值
main()
{ int a,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
printf("%d\n",a);
}
(41)以下程序运行后,输出结果是
A.84
B.99
C.95
D.44
int d=1;
fun(int p)
{ int d=5;
d+=p++;
printf("%d,
D.;
}
main()
{ int a=3;
fun(a);
d+=a++;
printf("%d\n,
D.;
}
(42)以下程序运行后,输出结果是
A.6385
B.22
C.33
D.693825
main()
{ char ch[2][5]={'693","825"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]='0' && p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
(43)以下程序运行后,输出结果是
A.1
B.7
C.9
D.11
fut(int **s, int p[2][3])
{ **s=p[1][1];}
main()
{ int a[2][3]={1,3,5,7,9,11}, *p;
p=(int *)malloc(sizeof(int));
fut(&p,a);
printf("%d\n",*P);
}
(44)设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2:
则执行表达式:(m=a>
B.&&(n=c>
D.后,n的值为
A.1
B.2
C.3
D.0
(45)在执行以下程序时,为了使输出结果为:t=4,则给a和b输入的值应满足的条件是
A.a>b
B.a<0 0 0 D.>a>b
main()
{ int s,t,a,b;
scanf("%d,%d",&a,&
B.;
s=1; t=1;
if(a>0)s=s+1;
if(a>
B.t=s+t;
else if(a==
B.t=5;
else t=2*s;
printf("t=%d\n",t);
}
(46)以下程序的输出结果是
A.x=4
B.x=8
C.x=6
D.x=12
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
(47)以下程序运行后,输出结果是
A.1234567
B.7654321
C.1711717
D.7177171
#inchude
#inchude
fun(char *w, int n)
{ char t, *s1,*s2;
s1=w: s2=w+n-1;
while(s1
{ t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{ char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
(48)运行以下程序后,如果从键盘上输入65 14,则输出结果为:
A.m=3
B.m=2
C.m=1
D.m=1
main()
{ int m, n;
printf("Enter m,n;"); scanf("%d%d", &m,&n):
while (m!=n)
{ while (m>n)m-=n;
while (n>m)n-=m;
}
printf("m=%d\n",m);
}
(49)以下程序运行后,如果从键盘上输入:
book
book
则输出的结果是
A.*8
B.#9
C.#6
D.*9
#include
main()
{ char a1[80],a2[80],*s1=a1, *s2=a2;
gets(s1); gets(s2);
if(! strcmp(s1,s2))printf("*");
esle printf("#");
printf("%d/n",strlen(strcat(s1,s2)));
}
(50)以下程序运行后,输出结果是
A.10000
B.10010
C.00110
D.10100
main()
{ int y=18,i=0,j,a[8];
do
{ a[i]=y%2; i++
y=y/2;
} while(y>=1)
for(j=i-1;j>=0;j--)printf("%d",a[j];
printf("\n");
}
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡上【1】-【20】序号上,答在试卷上不得分。
(1) DOS中的自动批处理文件的全名是 【1】 。
(2) 在DOS启动盘中,除COMMAND.COM外,还有两个必备的系统文件,它们是MSDOS.SYS(或IBMDOS.COM)与【2】 。
(3) 在DOS下,要将当前目录中AB.TXT文件设置为只读属性,应该使用的完整命令行是【3】 。
(4) 在DOS下,要查看当前目录中所有批处理文件的总字节数,应该使用的完整命令行是 【4】 。
(5) 计算机病毒除有破坏性、潜伏性和激发性外, 还有一个最明显的特性是 【5】 。
(6) 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【6】
:
.
char a[10],b;
scanf("a=%s b=%c",a,&b);
:
.
(7) 下面程序的输出结果是 【7】
char b[]="ABCD";
main()
{ char *chp;
for(chp=b; *chp: chp+=2) printf("%s",chp);
printf("\n");
(8) 下面程序输出的结果是 【8】
#define MAX 3
int a [MAX];
main()
{ fun1( ); fun2( a ); printf("\n");}
fun1( )
{ int k, t=0;
for (k=0; k
}
fun2(int b[])
{ int k;
for(k=0; k
}
(9) 以下程序输出的是 【9】
main( )
{ int a[10]={19,23,44,17,37,28,49,36}, *p;
p=a;
printf("%d\n",(p+=3)[3]);
}
(10) 以下程序输出的是 【10】
main( )
{ int i=3, j=2;
char *a="DCBA";
printf("%c%c\n",a[i],a[j]);
}
(11) 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。
exchange(int *x, int *y)
{ int t;
t=*y; *y= 【11】 ; *x= 【12】 ;
}
(12) 若以下定义和语句,则sizeof(a)的值是 【13】 ,而sizeof(b)的值是 【14】
struct { int day; char mouth; int year;} a, *b;
b=&a;
(13) 以下fun函数的功能是:累加数组元数中的值.n为数组中元素的个数, 累加的和值放入x所指的存储单元中,请填空.
fun(int b[ ],int n, int *x)
{ int k, r=0;
for(k=0;k 【16】 =r;
}
(14) 变量root有如图所示有存储结构,其中sp是指向字符串的指针域,next 是指向该结构的指针域,data用以存放整型数. 请填空 , 完成此结构的类型说明和变量root的定义
struct list
{ char *sp;
【17】 ;
【18】 ;
}root;
(15) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.
#include FILE *fp;
main()
{ int i,j;
if((fp=fopen( 【19】, "wb"))==NULL) exit(0);
for(i=0; i<10; i++)
{ scanf("%d",&j);
fwrite(&j,sizeof(int),1, 【20】 );
}
fclose(fp);
}
1999年4月基础知识知识和C语言程序设计答案及评分标准
一.选择((1)~(40)题每题1分,(41)~(50)题 每题 2分,共60分)
(1)B (2)B (3)D (4)D (5)A (6)A (7)B (8)B (9)D (10)C
(11)B (12)A (13)A (14)D (15)C (16)C (17)A (18)D (19)D (20)D
(21)D (22)C (23)B (24)B (25)B (26)C (27)A (28)D (29)C (30)C
(31)D (32)C (33)A (34)C (35)C (36)D (37)C (38)B (39)B (40)C
(41)A (42)A (43)C (44)B (45)C (46)B (47)C (48)C (49)B (50)B
二.填空题(每空2 分,共40分)
(1) 【1】 AUTOEXEC.BAT
(2) 【2】 IO.SYS 或IBMBIO.COM
(3) 【3】 ATTRIB AB.TXT+R AB .TXT
(4) 【4】 DIR *.BAT或DIR *.BAT\P或DIR *.BAT/W 或DIR*.BAT/W/P或*.BAT/P/W
(5) 【5】 传染性或传播性
(6) 【6】 a=1234 b=5 A或a=1234b=5
(7) 【7】 ABCDCD
(8) 【8】 024
(9) 【9】 49
(10) 【10】AB
(11) 【11】*X (11) 12 T
(12) 【13】5 (12) 14 2
(13) 【15】r+b[k]或b[k]或*(b+k)+r (13) 【16】*x
(14) 【17】struct list *next (14) 【18】 int data
说明:以上两个答案(17和18)次序可以颠倒.
(15) 【19】"bi.dat" (15) 【20】 fp