![]() ![]() |
|
1995年9月全国计算机等级考试二级C语言笔试试题及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:06:31 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) (13) 设当前盘为C盘。删除硬盘C上的两个扩展名为.EXE文件的命令是 A.DEL\F4\*.EXE B.DEL\XD?.EXE C.DEL\F4\*.* D.DEL \*.EXE (14) 设当前盘为C盘。C盘当前目录为\DOS。在硬盘C的根目录下建立新子目录USER的命令为 A.MD C:USER B.MD\USER\ C.MD\USER D.MD USER (15) 设当前盘为C盘,C盘当前目录为根目录。在硬盘C上删除子目录F4的命令或命令组为 A.RD F4 B.RD\F4 C.DEL\F4\*.* D.DEL\*.* RD F4 RD F4 (16) 设当前盘为C盘,C盘当前目录为根目录。把JD1.FOR改名为JX1.FOR的命令为 A.REN JD1.FOR JX1.FOR B.REN JX1.FOR JD1.FOR C.REN F4\JD1.FOR JX1.FOR D.REN \F4\JX1.FOR JD1.FOR (17) 显示C盘根目录下所有.TXT文件内容的命令为 A.TYPE C:\*.TXT B.TYPE C:\*.TXT>CON C.COPY C:\*.TXT>CON D.COPY C:\*.TXT CON (18) 按照数据模型分类,FoxBASE和dBASE是属于 A.层次型 B.网状型 C.关系型 D.混合型 (19) FoxBASE和dBASE命令文件的扩展名为 A..PRG B..DBF C..MEM D..TXT (20) “计算机等级考试”这七个汉字作为字符串常量,在FoxBASE和dBASE中,可以表示为 A.{计算机等级考试} B.(计算机等级考试) C.计算机等级考试 D.“计算机等级考试” (21) 请选出可用作C语言用户标识符的一组标识符 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof (22) 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 A.552 B.264 C.144 D.-264 (23) C语言程序的基本单位是 A.程序行 B.语句 C.函数 D.字符 (24) 请选出合法的C语言赋值语句 A.a=b=58 B.i++; C.a=58,b=58 D.k=int(a+ B.; (25) 执行下面程序片段的结果是 int x=23; do { printf("-",x--);} while(!x); A.打印出321 B.打印出23 C.不打印任何内容 D.陷入死循环 (26) 请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n")); A.5 B.14 C.8 D.输出项不合法,无正常输出 (27) 设有如下的函数 ggg(x) float x; { printf("\n%d",x*x);} 则函数的类型 A.与参数x的类型相同 B.是void C.是int D.无法确定 (28) 设有如下枚举类型定义: enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为 A.4 B.7 C.102 D.103 (29) 若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A.cp+1 B.*(cp+3) C.*(cp+1)+3 D.*(*cp+2) (30) 标准函数 fgets(s, n, f) 的功能是 A.从文件f中读取长度为n的字符串存入指针s所指的内存 B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C.从文件f中读取n个字符串存入指针s所指的内存 D.从文件f中读取长度为n-1的字符串存入指针s所指的内存 (31) 设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A.120 B.110 C.100 D.90 (32) 以下程序段给数组所有的元素输入数据,请选择正确答案填入。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇ } A.a+(i++) B.&a[i+1] C.a+i D.&a[++i] (33) 设有如下的程序段: char str[ ]="Hello"; char *ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为 A.’o’ B.’\0’ C.不确定的值 D.’o’的地址 (34) 在宏定义 #define PI 3.14159中,用宏名PI代替一个 A.单精度数 B.双精度数 C.常量 D.字符串 (35) 字符(char)型数据在微机内存中的存储形式是 A.反码 B.补码 C.EBCDIC码 D.ASCII码 (36) 执行下面的程序段 int x=35; char z=’A’; int b; B=((x&15)&&(z<’a’)); 后,B的值为 A.0 B.1 C.2 D.3 (37) C语言规定,程序中各函数之间 A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用 C.允许直接递归调用不允许间接递归调用 D.不允许直接递归调用允许间接递归调用 (38) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 的表达式是 A.1/a*b*c B.1/(a*b* C. C.1/a/b/(float)c D.1.0/a/b/c (39) 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是 A.pb=&x B.pb=x; C.*pb=&x; D.*pb=*x (40) 设有 static char str[ ]="Beijing"; 则执行 printf("%d\n", strlen(strcpy(str,"China"))); 后的输出结果为 A.5 B.7 C.12 D.14 (41) 设有如下程序: #include main() { int **k, *j, i=100; j=&i; k=&j; printf("%d\n", **k); } 上面程序的输出结果是 A.运行错误 B.100 C.i的地址 D.j的地址 (42) 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行 (m=a>B)&&(n=c>D)后n的值为 A.1 B.2 C.3 D.4 (43) 下面函数的功能是 sss(s, t) char *s, *t; { while((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); } A.求字符串的长度 B.比较两个字符串的大小 C.将字符串s复制到字符串t中 D.将字符串s接续到字符串t中 (44) 请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; { *z=y-x; } main() { int a, b, c; sub(10,5,&a); sub(7,a,& B.; sub(a,b,& C.; printf("%d,%d,%d\n", a,b, C.; } A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7 (45) 下面程序的输出结果是 #include main() { int i=2,p; p=f(i,i+1); printf("%d",p); } int f(a, B. int a,b; { int c; if(a> B.c=1; else if(a== B.c=0; else c=-1; return( C.; } A.-1 B.0 C.1 D.2 (46) 请选出以下程序段的输出结果 #include #define MIN(x,y) (x)<(y)? (x):(y) main() { int i,j,k; i=10; j=15; k=10*MIN(i,j); printf("%d\n",k); } A.15 B.100 C.10 D.150 (47) 请选出以下程序段的输出结果 #include main() { char sl[10], s2[10], s3[10], s4[10]; scanf("%s%s",s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); } 输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd A.aaaa B.aaaa C.aaaa D.aaaa bbbb bbbb bbbb bbbb cccc cccc cccc dddd dddd cccc dddd dddd eeee (48) 请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; { int i, j, t; i=n1; j=n2; while(i{ t= *(s+i); *(s+i)= *(s+j); *(s+j)=t; i++; j--; } } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i, *p=a; fun(p,0,3); fun(p,4,9); fun(p,0,9); for(i=0; i<10; i++) printf("%d", *(a+i)); printf("\n"); } A.0 9 8 7 6 5 4 3 2 1 B.4 3 2 1 0 9 8 7 6 5 C.5 6 7 8 9 0 1 2 3 4 D.0 9 8 7 6 5 1 2 3 4 (49) 请选出以下程序的输出结果 #include main() { int a[ ]={ 1,2,3,4 },i; int x=0; for(i=0; i<4; i++) { sub(a,x); printf("%d",x);} printf("\n"); } sub(s,y) int *s, y; { static int t=3; y=s[t]; t--; } A.1 2 3 4 B.4 3 2 1 C.0 0 0 0 D.4 4 4 4 (50) 下面程序的输出结果为 struct st { int x; int *y; } *p; int dt[4]={10,20,30,40}; struct st aa[4]={ 50,&dt[0],60,&dt[1], 70,&dt[2],80,&dt[3] }; main() { p=aa; printf("%d\n", ++p->x ); printf("%d\n", (++p)->x); printf("%d\n", ++( *p->y)); } A.10 B.50 C.51 D.60 20 60 60 70 20 21 21 31 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。 (1) 十进制数123用八位二进制表示为 【1】 。 (2) 70年代末开始出现16位微处理器,标志着微型计算机进入了第三代;80年代起使用 【2】 位微处理器,标志微型计算机进入了第四代。 (3) 通用计算机操作系统的功能和任务是:作业管理、文件管理、外设管理、CPU管理和 【3】 管理。 (4) PC-DOS的两个隐含文件是:IBMBIO.COM(输入输出程序)与 【4】 (磁盘操作管理程序)。 (5) FoxBASE和dBASE有两种变量:即内存变量和 【5】 变量 。 (6) 设有如下程序段: int i=0, sum=1; do { sum+=i++;} while(i<6); printf("%d\n", sum); 上述程序段的输出结果是 【6】 。 (7) 阅读下列程序: #include main() { int i, j, row, column,m; static int array[3][3]={{100,200,300}, {28,72,-30}, {-850,2,6} }; m=array[0][0]; for (i=0; i<3; i++) for (j=0; j<3; i++) if (array[i][j]{ m=array[i][j]; row=i; column=j;} printf("%d,%d,%d\n",m,row,column); } 上述程序的输出结果是 【7】 。 (8) 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是 【8】 。 (9) 下面程序的输出结果是 【9】 。 #include main() { int a=3, b=2, c=1; c-=++b; b*=a+c; { int b=5, c=12; c/=b*2; a-=c; printf( ’%d,%d,%d,",a,b,c); a+=--c; } printf( ’%d,%d,%d,",a,b,c); } (10) 设有如下程序: #include main(argc,argv) int argc; char *argv[ ]; { while( --argc>0) printf("%s",argv[argc]); printf("\n"); } 假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROG ABCD EFGH IJKL ,则输出结果为 【10】 。 (11) 阅读下列程序: #include #define MAX_COUNT 4 void fun(); main() { int count; for (count=1; count<=MAX_COUNT; count++) fun(); } void fun() { static int i; i+=2; printf("%d",i); } 上述程序的输出结果是 【11】 。 (12) 设有下列程序: #include #include main() { int i; char str[10], temp[10]; gets(temp); for (i=0; i<4; i++) { gets(str); if (strcmp(temp,str)<0) strcpy(temp,str); } printf("%s\n",temp); } 上述程序运行后,如果从键盘上输入(在此代表回车符): C++ BASIC QuickC Ada Pascal 则程序的输出结果是 【12】 。 (13) 设有如下程序: #include main(argc,argv) int argc; char *argv[ ]; { FILE *fp; void fc(); int i=1; while( --argc>0) if((fp=fopen(argv[i++],"r"))==NULL) { printf("Cannot open file! \n"); exit(1); } else { fc(fp); fclose(fp); } } void fc(ifp) FILE *ifp; { char c; while((c=getc(ifp))!=’#’) putchar(c-32); } 上述程序经编译、连接后生成可执行文件名为cpy.exe。假定磁盘上有三个 文本文件,其文件名和内容分别为: 文件名 内容 a aaaa# b bbbb# c cccc# 如果在DOS下键入 cpy a b c 则程序输出 【13】 。 (14) 若输入3个整数3,2,1,则下面程序的输出结果是【14】 。 #include void sub( n,uu) int n, uu[ ]; { int t; t=uu[n--]; t+=3*uu[n]; n=n++; if(t>=10) { uu[n++]=t/10; uu[n]=t;} else uu[n]=t; } main( ) { int i, n, aa[10]={0,0,0,0,0,0} scanf( "%d%d%d",&n,&aa[0],&aa[1]); for(i=1; i for(i=0; i<=n; i++) printf("%d",aa[i]); printf("\n"); } (15) 若有以下定义: double w[10]; 则w数组元素下标的上限为 【15】 ,下限为 【16】 。 (16) 以下程序统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。 #include #include main( ) { int num[26],i; char c; for(i=0; i<26; i++) num[i]=0; while( 【17】 !=’#’) /*统计从终端输入的大写字母个数*/ if( isupper(c)) num[c-65]+=1; for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf("%c:%d\n,i 【18】 , num[i]); } (17) 下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。请填空。 #include getone(s) int **s; { *s=(int *)malloc(sizeof(int));} assone(a) int *a; { scanf("%d", 【19】 );} outone(b) int *b; printf("%d\n", 【20】 );} main( ) { int *p; getone(&p); assone(p); outone(p); } 『完』
1995年二级C笔试试卷参考答案 一`选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分) |
|
![]() ![]() |