一、选择题((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<MAX; K++,t++) a[k]=t+t; } fun2(int b[]) { int k; for(k=0; k<NAX; k++) printf("%d", *(b+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
|