![]() ![]() |
|
1996年9月全国计算机等级考试二级C语言笔试试题及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:06:32 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、 选择题((1)-(40)每小题1分, (41)-(50)每小题2分, 共60分) (16) 下列四组DOS命令中,互相等价的一组是 A.COPY A:*.* B:与DISKCOPY A: B: B.COPY ABC.TXT+XYZ.TXT 与 TYPE XYZ.TXT>>ABC.TXT C.COPY ABC.TXT+XYZ.TXT XYZ.TXT 与 COPY XYZ.TXT+ABC.TXT D.TYPE *.FOR>CON 与 COPY *.FOR CON (17) 在计算机内部,一切信息存取、处理和传送的形式是 A.ASCII码 B.BCD码 C.二进制 D.十六进制 (18) 计算机的软件系统一般分为 A.系统软件、应用软件与各种字处理软件 B.操作系统、用户软件与管理软件 C.系统系统与应用软件 D.操作系统、实时系统与分时系统 (19) 与二进制数101.01011等值的十六制数为 A.A.B B.5.51 C.A.51 D.5.58 (20) 如果按字长来划分,微机可以分为8位机、16位机、32位机和64位机。所谓32位机是指该计算机所用的CPU A.同时能处理32位二进制数 B.具有32位的寄存器 C.只能处理32位二进制定点数 D.有32个寄存器 (21) 下列语句中符合C语言语法的赋值语句是 A.a=7+b+c=a+7; B.a=7+b++=a+7; C.a=7+b,b++,a+7 D.a=7+b,c=a+7; (22) 在C语言中,要求运算数必须是整型的运算符是 A.% B./ C.< D.! (23) 已知字母A的ASCII码为十进制的65,下面程序的输出是 A.67,D B.B,C C.C,D D.不确定的值 main() { char ch1,ch2; ch1=’A’+’5’-’3’; ch2=’A’+’6’-’3’; printf("%d,%c\n",ch1,ch2);} (24) 下面程序的输出是 A.0 B.1 C.3 D.不确定的值 main() { int x=10,y=3; printf("%d\n",y=x/y);} (25) 若执行下面的程序时从键盘上输入3和4,则输出是 A.14 B.16 C.18 D.20 main() { int a,b,s; scanf("%d %d",&a,& B.; s=a; if(as=s*s; printf("%d\n",s);} (26) 下面的程序 A.有语法错误不能通过编译 B.输出* * * *。 C.可以通过编译,但是不能通过连接,因而不能运行。 D.输出# # # #。 main() { int x=3,y=0,z=0; if(x=y+z)printf("* * * *"); else printf("# # # #");} (27) 下面的程序 A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环 main() { int x=3; do { printf("%d\n",X-=2); }while(!(--x));} (28) 下面程序的输出是 A.17 B.18 C.23 D.24 main() { int x=023; printf(%d\n",--x);} (29) 若执行下面的程序时从键盘上输入5,则输出是 A.7 B.6 C.5 D.4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);} (30) 下面程序的输出是 A.3 B.4 C.1 D.2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));} (31) 执行下面程序中的输出语句,a的值是 A.65 B.20 C.15 D.10 main() { int a; printf("%d\n",(a=3*5,a*4,a+5));} (32) 下面程序的输出是 A.0 1 2 3 B.0 4 0 10 C.0 4 5 15 D.1 4 5 15 main() { enum team {my,your=4,his,her=his+10}; printf("%d %d %d %d\n",my,your,his,her);} (33) 下面程序的输出是 A.0 0 3 B.0 1 2 C.1 0 3 D.1 1 2 main() { int a=-1, b=4,k; k=(a++<=0)&&(!(b--<=0)); printf("%d %d %d\n",k,a, B.;} (34) 下面的程序片段所表示的数学函数关系是上面程序片段的输出结果是 ┌ -1(x<0) ┌ 1 (x<0) │ │ A.y = ┤ 0 (x=0) B.y = ┤-1 (x=0) │ │ └ 1 (x>0) └ 0 (x>0) ┌ 0 (x<0) ┌ -1(x<0) │ │ C.y = ┤-1 (x=0) D.y = ┤ 1 (x=0) │ │ └ 1 (x>0) └ 0 (x>0) y=-1; if(x!=0) if(x>0) y=1; else y=0 (35) 下面函数的功能是 A.求字符串的长度 B.比较两个字符串的大小 C.将字符串x复制到字符串y D.将字符串x连接到字符串y后面 int funl(char * x) { char * y=x; while(*y++); return(y-x-1);} (36) 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是 A.EOF B.-1 C.非零值 D.NULL (37) 根据下面的定义,能打印出字母M的语句是 A.printf("%c\n",class[3].name); D.printf("%c\n",class[2].name[0]); B.printf("%c\n",class[3].name[1]); C.printf("%c\n",class[2].name[1]); struct person { char name[9]; int age;}; struct person class[10]={"John",17, "Paul",19, "Mary",18, "Adam",16}; (38) 下面程序的输出是 A.-1 B.0 C.1 D.不确定的值 main() { int x=100, a=10, b=20, ok1=5, ok2=0; if(aif(b!=15) if(! ok1) x=1; else if(ok2)x=10; x=-1; printf("%d\n",x);} (39) 下面程序的输出是 A.xyzabcABC B.zabcABC C.yzabcABC D.xyabcABC #include #include main() { char *p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n", str);} (40) 下面程序的输出是 A.741 B.852 C.963 D.875421 main() { int y=9; for( ; y>0; y--) { if(y%3==0) { printf("%d", --y);continue;} }. } (41) 下面程序的输出是 A.100 B.160 C.120 D.64 main() { char x=040; printf("%d\n",x=x<<1);} (42) 下面程序的输出是 A.0 B.1 C.3 D.6 main() { struct cmplx { int x; int y; } cnum[2]={1,3, 2,7}; printf("%d\n",cnum[0].y /cnum[0].x * cnum[1].x);} (43) 下面程序的输出是 A.23 B.26 C.33 D.36 int aa[3][3]={{2},{4},{6}}; main() { int i, * p=&aa[0][0]; for(i=0; i<2;i++) { if(i==0) aa[i][i+1]=*p+1; else ++p; printf("%d",*p);} } (44) 下面程序的输出是 A.23 B.24 C.25 D.26 void prtv(int *x) printf("%d\n", ++*x);} main() { int a=25; prtv(&a);} (45) 下面程序的输出是 A.3 B.4 C.6 D.9 fun3(int x) static int a=3; a+=x; return(a);} main() { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d\n",n);}
(46) 已知字符0的ASCII码为十六进制的30,下面程序的输出是 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分。 (1) 8位无符号二进制数能表示的最大十进制数 【1】 。 (2) 将原码表示的有符号二进制数11001101转换成十进制数是 【2】 。 (3) DOS系统的命令处理程序是 【3】 。 (4) 若当前盘为A盘,要显示C盘的当前目录又不改变当前盘,使用的命令是 【4】 。 (5) 硬盘C的目录结构示意图如下 其中AUTOEXEC.BAT的内容为 PROMPT $p$g CD D1 现用C盘启动后,系统提示符为 【5】 。 (6) 下面程序的输出是 【6】 。 main() { int x=2; while(x--); printf("%d\n", x);} (7) 下面程序的输出是 【7】 。 main() { int a[]={ 2,4,6}, *prt=&a[0], x=8,y,z; for(y=0; y<3; y++) z=(*(prt+y)printf("%d\n", z);} (8) 下面程序的输出是 【8】 。 main() { int arr[10],i,k=0; for( i=0; i<10; i++) arr[i]=i; for( i=1; i<4; i++) k+=arr[i]=i; printf( ’%d\n", k);} (9) 已知函数isalpha(ch)的功能是判断自变量ch是否是字母,若是,函数值为1,否则为0。下面程序的输出是 【9】 。 #include #include void fun4( char str[]) { int i,j; for(i=0, j=0; str[i]; i++) if(isalpha(str[i])) str[j++]=str[i]; str[j]=’\0’;} main() { char ss[80]="It is!"; fun4(ss); printf( ’%s\n", ss);} (10) 下面程序的输出是 【10】 。 #define PR(ar) printf("%d", ar) main() { int j, a[]={ 1,3,5,7,9,11,13,15}, *p=a+5; for(j=3; j; j--) { switch(j) { case 1: case 2: PR(*p++); break; case 3: PR(*(--p));} } } (11) 下面程序的输出是 【11】 。 unsigned fun6( unsigned num) { unsigned k=1; do { k*=num; num/=10; } while(num); return(k);} main() { unsigned n=26; printf("%d\n", fun6(n)); } (12) 下面程序的输出是【12】 。 long fun5(int n) { long s; if((n==1)||(n==2)) s=2; else s=n+fun5(n-1); return(s);} main() { long x; x=fun5(4); printf("%ld\n",x);} (13) 下面invert函数的功能是将一个字符串str的内容颠倒过来。请填空。 #include void invert(char str[]) { int i,j, 【13】 ; for(i=0,j=strlen(str) 【14】 ; i{ k=str[i]; str[i]=str[j]; str[j]=k;} } (14) 下面min3函数的功能是:计算单向循环链表first中每3个相邻结点数据域中值的和,返回其中最小的值。请填空。 struct node {int data; struct node * link;}; int min3(struct node * first) { struct node *p=first; int m,m3=p->data+p->link->data+p->link->link->data; for(p=p->link; p! =first; p= 【15】 ) int m,m3=p->data+p->link->data+p->link->link->data; { m=p->data+p->link->data+p->link->link->data; if( 【16】 ) m3=m;} return(m3);} (15) 下面h函数的功能是计算如下数学函数H的值。请填空。 double fgh(double( *f)(double a)< double( *g)(double b), double x, double y) { return(【17】 );} double h(double a, double b) return(fgh( sin,cos,a,b)*fgh( 【18】] )); } (16) 下面pi函数的功能是根据以下的公式,返回满足精度ε要求的π值。请填空。 double pi(double eps) { double s=0.0, t=1.0; int n; for( 【19】 ; t>eps; n++) { s+=t; t=n*t/(2*n+1);} return(2.0 * 【20】 );}
1996年9月二级C语言笔试试卷参考答案 一 选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分) |
|
![]() ![]() |