计算机类 二级 C
2002年4月全国计算机等级考试二级笔试试卷(基础部分和C语言程序设计) 68 题 含答案 C
1 单选题 1 / 68
在计算机中,一个字长的二进制位数是
A 8 B 16 C 32 D 随CPU的型号而定
查看答案 D. 随CPU的型号而定
2 单选题 2 / 68
计算机网络的突出优点是
A 速度快 B 资源共享 C 精度高 D 容量大
查看答案 B. 资源共享
3 单选题 3 / 68
计算机网络能传送的信息是:
A 所有的多媒体信息 B 只有文本信息 C 除声音外的所有信息 D 文本和图像信息
查看答案 A. 所有的多媒体信息
4 单选题 4 / 68
切断计算机电源后,下列存储器中的信息会丢失的是:
A RAM B ROM C 软盘 D 硬盘
查看答案 A. RAM
5 单选题 5 / 68
十进制数127转换成二进制数是
A 11111111 B 01111111 C 10000000 D 11111110
查看答案 B. 01111111
6 单选题 6 / 68
要想打印存放在当前盘当前目录上所有扩展名为.TXT 的文件内容, 应该使用的DOS命令为
A DIR *.TXT>PRN B TYPE *.TXT>PRN C COPY *.TXT PRN D COPY *.TXT>PRN
查看答案 C. COPY *.TXT PRN
7 单选题 7 / 68
将当前盘当前目录及其子目录中的全部文件 (总量不足1.2MB) 复制到一张空的A盘的根目录下,应该使用的DOS命令为
A XCOPY *.*A:\ /M B XCOPY *.*A:\ /S C XCOPY *.*A:\ /P D XCOPY *.*A:\ /A
查看答案 B. XCOPY *.*A:\ /S
8 单选题 8 / 68
在C盘根目录下执行PROMPT $p$g命令之后,DOS的提示符变为
A C:> B C:\> C C> D C:\
查看答案 B. C:\>
9 单选题 9 / 68
DOS命令 "COPY CON DISP"中的CON代表
A 子目录 B 磁盘文件 C 键盘 D 显示器
查看答案 C. 键盘
10 单选题 10 / 68
结构化程序设计所规定的三种基本控制结构是
A 输入、处理、输出 B 树形、网形、环形 C 顺序、选择、循环 D 主程序、子程序、函数
查看答案 C. 顺序、选择、循环
11 单选题 11 / 68
要把高级语言编写的源程序转换为目标程序,需要使用
A 编辑程序 B 驱动程序 C 诊断程序 D 编译程序
查看答案 D. 编译程序
12 单选题 12 / 68
英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为
A 50 B 66 C 52 D 68
查看答案 D. 68
13 单选题 13 / 68
Windows环境下,PrintScreen键的作用是
A 复制当前窗口到剪贴板 B 打印当前窗口的内容 C 复制屏幕到剪贴板 D 打印屏幕内容
查看答案 C. 复制屏幕到剪贴板
14 单选题 14 / 68
在Windows环境下,为了终止应用程序的运行,应
A 关闭该应用程序窗口 B 最小化该应用程序窗口 C 双击该应用程序窗口的标题栏 D 将该应用程序窗口移出屏幕
查看答案 A. 关闭该应用程序窗口
15 单选题 15 / 68
下列各带有通配符的文件名中,能代表文件XYZ.TXT的是
A *Z.? B X*.* C ?Z,TXT D ?.?
查看答案 B. X*.*
16 单选题 16 / 68
若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
A 1.4 B 1 C 2.0 D 2
查看答案 B. 1
17 单选题 17 / 68
若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是
A a的值是字符C B a的值是浮点型 C 不允许字符型和浮点型相加 D a的值是字符‘A’的ASCII值加上1。
查看答案 D. a的值是字符‘A’的ASCII值加上1。
18 单选题 18 / 68
以下程序段的输出结果是 int a=1234; printf("%2d\n",a);
A 12 B 34 C 1234 D 提示出错、无结果
查看答案 C. 1234
19 单选题 19 / 68
以下选项中不属于C语言的类型的是
A signed short imt B unsigned long int C unsigned int D long short
查看答案 D. long short
20 单选题 20 / 68
若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
A scanf("%d%d%d",&a,&b,d); B scanf("%d%d%d",&a,&b,&d); C scanf("%d%d%d",a,b,d); D scanf("%d%d%d",a,b,*d);
查看答案 A. scanf("%d%d%d",&a,&b,d);
21 单选题 21 / 68
在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是
A a=20000+20000; B a=4000*10; C a=30000+10000; D a=4000L*10L;
查看答案 D. a=4000L*10L;
22 单选题 22 / 68
以下叙述正确的是
A 可以把define和if定义为用户标识符 B 可以把define定义为用户标识符,但不能把if定义为用户标识符 C 可以把if定义为用户标识符,但不能把define定义为用户标识符 D define和if都不能定义为用户标识符
查看答案 B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
23 单选题 23 / 68
若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为
A 无确定值 B a的地址 C 512 D 511
查看答案 D. 511
24 单选题 24 / 68
以下程序的输出结果是 main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); }
A 5 B 4 C 6 D 不确定
查看答案 C. 6
25 单选题 25 / 68
以下程序中,while循环的循环次数是 main() { int i=0; while(i<10) { if(i<1) continue; if(I==5) break; i++; } ...... }
A 1 B 10 C 6 D 死循环,不能确定次数
查看答案 D. 死循环,不能确定次数
26 单选题 26 / 68
以下程序的输出结果是 main() { int a=0,i; for(i=;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); }
A 31 B 13 C 10 D 20
查看答案 A. 31
27 单选题 27 / 68
以下程序的输出结果是 main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); }
A 1 B 0 C 非0的数 D -1
查看答案 A. 1
28 单选题 28 / 68
以下程序的输出结果是 #include <stdio.h> main() { int i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printh("%d\n",a); }
A 21 B 32 C 33 D 11
查看答案 B. 32
29 单选题 29 / 68
以下程序的输出结果是 char cchar(char ch) { if(ch>=‘A’&&ch<=‘Z') ch=ch-‘A'+‘a'; return ch; } main() { char s[]="ABC+abc=defDEF",*p=s; while(*p) { *p=cchar(*p); p++; } printf("%s\n",s); }
A abc+ABC=DEFdef B abc+abc=defdef C abcaABCDEFdef D abcabcdefdef
查看答案 B. abc+abc=defdef
30 单选题 30 / 68
以下程序的输出结果是 int f() { static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0; for(i=0;i<5;i++) a+=f(); printf("%d\n",a); }
A 20 B 24 C 25 D 15
查看答案 D. 15
31 单选题 31 / 68
以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s));
A 9 B 12 C 13 D 14
查看答案 A. 9
32 单选题 32 / 68
若有以下程序 #include <stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是
A 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f C 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明 D 函数f无返回值,所以可用void将其类型定义为无值型
查看答案 C. 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
33 单选题 33 / 68
以下程序调用findmax函数返回数组中的最大值 findmax(int *a,int n) { int *p,*s; for(p=a,s=a; p-a<n; p++) if ( ) s=p; return(*s); } main() { int x[5]={12,21,13,6,18}; printf("%d\n",findmax(x,5)); } 在下划线处应填入的是
A p>s B *p>*s C a[p]>a[s] D p-a>p-s
查看答案 B. *p>*s
34 单选题 34 / 68
以下程序的输出结果是 main() { char cf[3][5]={"AAAA","BBB","CC"}; printf("\"%s\"\n",ch[1]); }
A "AAAA" B "BBB" C "BBBCC" D "CC"
查看答案 B. "BBB"
35 单选题 35 / 68
在C语言中,形参的缺省存储类是
A auto B register C static D extern
查看答案 A. auto
36 单选题 36 / 68
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A p=2*(int*)malloc(sizeof(int)); B p=(int*)malloc(2*sizeof(int)); C p=(int*)malloc(2*2); D p=(int*)calloc(2,sizeof(int));
查看答案 A. p=2*(int*)malloc(sizeof(int));
37 单选题 37 / 68
以下程序的输出结果是 main() { char x=040; printf("%0\n",x<<1); }
A 100 B 80 C 64 D 32
查看答案 A. 100
38 单选题 38 / 68
若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A fopen("A:\user\abc.txt","r") B fopen("A:\\user\\abc.txt","r+") C fopen("A:\user\abc.txt","rb") D fopen("A:\\user\\abc.txt","w")
查看答案 B. fopen("A:\\user\\abc.txt","r+")
39 单选题 39 / 68
以下不能正确进行字符串赋初值的语句是
A char str[5]="good!"; B char str[]="good!"; C char *str="good!"; D char str[5]={‘g',‘o',‘o',‘d'};
查看答案 A. char str[5]="good!";
40 单选题 40 / 68
若有下面的说明和定义: struct test { int ml; char m2; float m3; union uu {char ul[5]; int u2[2];} ua; } myaa; 则sizeof(struct test )的值是
A 12 B 16 C 14 D 9
查看答案 A. 12
41 单选题 41 / 68
若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是
A &aa[0]+1 B &aa[1] C &aa[0]++ D aa+1
查看答案 C. &aa[0]++
42 单选题 42 / 68
以下程序的输出结果是 f(int b[],int m,int n) { int i,s=0; for(i=m;i<n;i=i+2) s=s+b[i]; return s; } main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); }
A 10 B 18 C 8 D 15
查看答案 A. 10
43 单选题 43 / 68
若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是
A ps+1 B *(ps+3) C ps[0][2] D *(ps+1)+3
查看答案 C. ps[0][2]
44 单选题 44 / 68
以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); }
A 3 B 4 C 1 D 9
查看答案 B. 4
45 单选题 45 / 68
以下程序的输出结果是 #include <stdio.h> #include <string.h> main() { char b1[8]="abcdefg",b2[8],*pb=b1+3; while (--pb>=b1) strcpy(b2,pb); printf("%d\n",strlen(b2)); }
A 8 B 3 C 1 D 7
查看答案 D. 7
46 单选题 46 / 68
在说明语句:int *f( );中,标识符f代表的是
A 一个用于指向整型数据的指针变量 B 一个用于指向一维数组的行指针 C 一个用于指向函数的指针变量 D 一个返回值为指针型的函数名
查看答案 D. 一个返回值为指针型的函数名
47 单选题 47 / 68
不合法的main函数命令行参数表示形式是
A main(int a,char *c[]) B main(int arc,char **arv) C main(int argc,char *argv) D main(int argv,char *argc[])
查看答案 C. main(int argc,char *argv)
48 单选题 48 / 68
以下程序的输出的结果是 int x=3; main() { int i; for (i=1;i<x;i++) incre(); } ncre() { staic int x=1; x*=x+1; printf(" %d",x); }
A 3 3 B 2 2 C 2 6 D 2 5
查看答案 C. 2 6
49 单选题 49 / 68
若以下定义: struct link { int data; struck link *next; }a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构: a b data next data next ┌──┬──┐ ┌──┬──┐ │ 5 │ ┼──→│ 9 │ \0 │ └──┴──┘ └──┴──┘ ↑p c data next ┌──┬──┐ │ 7 │ │ └──┴──┘ ↑q 指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:
A a.next=c; c.next=b; B p.next=q; q.next=p.next; C p->next=&c; q->next=p->next; D (*p).next=q; (*q).next=&b;
查看答案 C. p->next=&c; q->next=p->next;
50 单选题 50 / 68
设有以下说明语句 typedef struct { int n; char ch[8]; }PER; 则下面叙述中正确的是
A PER 是结构体变量名 B PER是结构体类型名 C typedef struct 是结构体类型 D struct 是结构体类型名
查看答案 B. PER是结构体类型名
51 填空题 51 / 68
为了要将当前盘目录中的可执行程序ABC.EXE的输出结果存放到当前盘当前目录中的文件OUT.TXT中,则应使用的DOS命令为【1 __ 】 。
查看答案 ABC>OUT.TXT或者ABC.EXT>OUT.TXT
52 填空题 52 / 68
计算机网络分为广域网和局域网,因特网属于【2__ 】 。
查看答案 广域网
53 填空题 53 / 68
要想在当前目录下方便地执行C盘\UCDOS目录中的程序,就应该先执行预设搜索路径的命令,该DOS命令为【3__ 】 。
查看答案 PATH C:\UCDOS或其它等效命令
54 填空题 54 / 68
要查看当前目录中扩展名为.DAT的所有文件目录,应该使用的DOS 命令为【4__ 】 。
查看答案 DIR *.DAT 或DIR *.DAT/P 或DIR *.DAT/W 或带其它参数也可
55 填空题 55 / 68
在Windows环境下,当进行复制操作时,其复制的内容将存放在【5__ 】中
查看答案 剪贴板
56 填空题 56 / 68
若从键盘输入58,则以下程序输出的结果是 【6__ 】 。 main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); }
查看答案 585858
57 填空题 57 / 68
以下程序的输出结果是【7__ 】 。 main() { int a=177; printf("%o\n",a); }
查看答案 261
58 填空题 58 / 68
以下程序的输出结果是【8__ 】 。 main() { int a=0 a+=(a=8); printf("%d\n",a); }
查看答案 16
59 填空题 59 / 68
以下程序输出的结果是【9__ 】 。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); }
查看答案 0
60 填空题 60 / 68
以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。 struct node {int info; 【10__ 】 link; }
查看答案 struct node *
61 填空题 61 / 68
以下程序的输出结果是【11__ 】 。 main() {int s,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); }
查看答案 5
62 填空题 62 / 68
以下程序的输出结果是【12__ 】 。 main() { char *p="abcdefgh",*r; long *q; q=(long*)p; q++; r=(char*)q; printf("%s\n",r); }
查看答案 efgh
63 填空题 63 / 68
以下程序的输出结果是【13__ 】 。 main() { char s[]="abcdef"; s[3]=‘\0'; printf("%s\n",s); }
查看答案 abc
64 填空题 64 / 68
以下程序的输出结果是【14__ 】 。 main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; }
查看答案 7
65 填空题 65 / 68
设有如下宏定义 #define MYSWAP(z,x,y) {z=x; x=y; y=z;} 以下程序段通过宏调用实现变量a、b内容交换,请填空。 float a=5,b=16,c; MYSWAP( 【15__ 】 ,a,b);
查看答案 c
66 填空题 66 / 68
以下程序用来统计文件中字符个数。请填空。 #include "stdio.h" main() { FILE *fp; long num=0L; if((fp=fopen("fname.dat","r"))==NULL) { pirntf("Open error\n"); exit(0);} while( 【16__ 】 ) { fgetc(fp); num++;} printf("num=%1d\n",num-1); fclose(fp); }
查看答案 !feof(fp)
67 填空题 67 / 68
以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。 #define N 3 #define M 3 select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][colum]){row=i;colum=j;} *n= 【17__ 】; return 【18__ 】; } main() {int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n); printf("max=%d,line=%d\n",max,n); }
查看答案 68 填空题 68 / 68
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str) { int i; for(i=0; 【19__ 】!=‘\0';i++); return(【20__ 】); }
查看答案