![]() ![]() |
|
2002年9月全国计算机等级考试二级C语言笔试试题及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:06:38 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、选择题((1)—(40)每题1分,(41)—(50)每题2分,共60分)
(23) 以下选项中,与k=n++完全等价的表达式是
(33) 有以下程序 (41) 有以下程序 int fa(int x) { return x*x; } int fb(int x) { return x*x*x; } int f(int (*f1)(),int (*f2)(),int x) { return f2(x)-f1(x); } main() { int i; i=f(fa,fb,2); printf(“%d\n”,i); } 程序运行后的输出结果是 A.-4 B.1 C.4 D.8 (42) 有以下程序 int a=3; main() { int s=0; { int a=5; s+=a++; } s+=a++;printf(“%d\n”,s); } 程序运行后的输出结果是 A.8 B.10 C.7 D.11 (43) 有以下程序 void ss(char *s,char t) { while(*s) { if(*s==t) *s=t-‘a’+’A’; s++; } } main() { char str1[100]=“abcddfefdbd”,c=’d’; ss(str1,c); printf(“%s\n”,str1); } 程序运行后的输出结果是 A.ABCDDEFEDBD B.abcDDfefDbD C.abcAAfefAbA D.Abcddfefdbd (44) 有以下程序 struct STU { char num[10]; float score[3]; }; main() { struct stu s[3]={{“20021”,90,95,85}, {“20022”,95,80,75}, {“20023”,100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3,i++) sum=sum+p->score[i]; printf(“%6.2f\n”,sum); } 程序运行后的输出结果是 A.260.00 B.270.00 C.280.00 D.285.00 (45) 设有如下定义: struck sk { int a; float b; }data; int *p; 若要使P指向data中的a域,正确的赋值语句是 A.p=&a; B.p=data.a; C. p=&data.a; D.*p=data.a; (46) 有以下程序 #include struct NODE { int num; struct NODE *next; }; main() { struct NODE *p,*Q,*R; p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30; p->next=q;q->next=r; printf(“%d\n”,p->num+q->next->num); } 程序运行后的输出结果是 A.10 B.20 C.30 D.40 (47) 若有以下说明和定义 typedef int *INTEGER; INTEGER p,*q; 以下叙述正确的是 A.P是int型变量 B.p是基类型为int的指针变量 C.q是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名 (48) 有以下程序 main() { unsigned char a,b,c; a=0x3; b=a|0x8; c=b<<1; printf(“%d%d\n”,b,c); } 程序运行后的输出结果是 A.–11 12 B.–6 –13 C.12 24 D.11 22 (49) 有以下程序 #include main() { char *p,*q; p=(char*)malloc(sizeof(char)*20); q=p; scanf(“%s%s”,p,q); printf(“%s%s\n”,p,q); } 若从键盘输入:abc def<回车>,则输出结果是: A.def def B.abc def C.abc d D.d d (50) 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};int i; f(p,5); printf(“%d\n”,strlen(p[0])); } 程序运行后的输出结果是 A.6 B.4 C.5 D.3 二、填空题(每空2分,共40分) 请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。 1、计算机软件分为系统软件和应用软件,操作系统属于 [1] 。 2、在DOS环境下,代表键盘和显示器的设备文件名为 [2] 。 3、支持Internet基本服务的协议是 [3] 。 4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 [4] 。 5、某微型机的运算速度为2MIPS,则该微型机每秒执行 [5] 条指令。 6、设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf(“%d, ” [6] ); printf(“%d\n”, [7] 。); 7、以下程序运行后的输出结果是 [8] 。 main() { int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf(“%d,%d \n”,x,y); } 8、以下程序运行后的输出结果是 [9] 。 main() { int x=15; while(x>10 && x<50) { x++; if(x/3){x++;break;} else continue; } printf(“%d\n”,x); } 9、有以下程序: #include main() { char c; while((c=getchar( ))!=’?’) putchar(--c); } 程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为 [10] 。 10、以下程序运行后的输出结果是 [11] 。 void fun(int x,int y) { x=x+y;y=x-y;x=x-y; printf(“%d,%d,”,x,y); } main() { int x=2,y=3; fun(x,y); printf(“%d,%d\n”,x,y); } 11、以下函数的功能是计算s=1+ + +……+ ,请填空。 double fun(int n) { double s=0.0,fac=1.0; int i; for(i=1,i<=n;i++) { fac=fac [12] ; s=s+fac; } return s; } 12 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。 #include #define N 100 int fun(int(*a)[N]) { int row,col,max,min; for(row=0;row if( row==0)min=max; else if( [14] )min=max; } return min; } 13、函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。 #include int sstrcmp(char *s,char *t) { while(*s&&*t&& *s== [15] ) { s++;t++;} return [16] ; } 14、下面程序的运行结果是 [17] 。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() { int i1,i2; i1=1000/s(N); i2=1000/f(N); printf(“%d %d\n”,i1,i2); } 15、下面程序的运行结果是: [18] 。 void swap(int *a,int *b) { int *t; t=a; a=b; b=t; } main() { int x=3,y=5,*p=&x,*q=&y; swap(p,q); printf(“%d%d\n”,*p,*q); } 16、下面程序的运行结果是: [19] 。 typedef union student { char name[10]; long sno; char sex; float score[4]; }STU; main() { STU a[5]; printf(“%d\n”,sizeof(a)); } 17、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen( [20] );。 2002年9月全国计算机等级考试二级C语言试卷答案 一、选择题(⑴-(40)题每题1分,(41)-(50)题每题2分,其60分) (1) C (2)A (3)B (4)B (5) C (6) A (7) D (8) D (9) D (10) D (11) A (12) D (13) B (14) A (15) C (16) D (17) C (18) C (19) B (20) C (21) D (22) C (23) A (24) A (25) D (26) A (27) B (28) D (29) B (30) D (31) C (32) B (33) D (34) A (35) B (36) D (37) C (38) A (39) D (40) D (41) C (42) A (43) B (44) B (45) C (46) D (47) B (48) D (49) A (50) C 二、填空题答案(每空2分,共40分) (1) 【1】 系统软件 (2) 【2】 CON 或 CON: (3) 【3】 TCP/IP 或者 传输控制协议/网际协议 (4) 【4】 EXIT 或者 exit (5) 【5】 二百万 或者 两百万 或者 2百万 或者 200万 或者 2000000 或者 2,000,000 (6) 【6】 20,0 (7) 【7】 17 (8) 【8】 X (9) 【9】 3,2,2,3 (10) 【10】 /i 或者 *1.0/i 或者 *1/i 或者 *(1.0/i) 或者 /(double)i (11) 【11】 1000 10 (12) 【12】 3 5 (13) 【13】 80 (14) 【14】 "d1.dat","rb"#"d1.dat","r+b"#"d1.dat","rb+" (15) 【15】 k (16) 【16】 *k (17) 【17】 maxmax 或者 a[row][col]>=max (18) 【18】 max (19) 【19】 *t 或者 t[0] (20) 【20】 *s-*t 或者 *s-t[0] 或者 s[0]-*t 或者 s[0]-t[0] |
|
![]() ![]() |