计算机类 二级 C
2004年4月全国计算机等级考试二级C笔试试卷 69 题 含答案 C
1 单选题 1 / 69
1MB等于( )
A 1000字节 B 1024字节 C 1000×1000字节 D 1024×1024字节
查看答案 D. 1024×1024字节
2 单选题 2 / 69
与十六进制数200等值得十进制数为( )
A 256 B 512 C 1024 D 2048
查看答案 B. 512
3 单选题 3 / 69
所谓“裸机“是指( )
A 单片机 B 单板机 C 不装备任何软件的计算机 D 只装备操作系统的计算机
查看答案 C. 不装备任何软件的计算机
4 单选题 4 / 69
能将高级语言编写的源程序转换为目标程序的是( )
A 链接程序 B 解释程序 C 编译程序 D 编辑程序
查看答案 C. 编译程序
5 单选题 5 / 69
在64位计算机中,一个字长所占字节数为( )
A 64 B 8 C 4 D 1
查看答案 B. 8
6 单选题 6 / 69
在Windows环境下,当一个应用程序窗口被最小化后,该应用程序( )
A 继续在后台运行 B 继续在前台运行 C 终止运行 D 暂停运行
查看答案 A. 继续在后台运行
7 单选题 7 / 69
在Windows环境下,能实现窗口移动的操作是( )
A 用鼠标拖动窗口中的任何部位 B 用鼠标拖动窗口的边框 C 用鼠标拖动窗口的控制按钮 D 用鼠标拖动窗口的标题栏。
查看答案 D. 用鼠标拖动窗口的标题栏。
8 单选题 8 / 69
在Windows环境下,PrintScreen键的作用是( )
A 打印当前窗口的内容 B 打印屏幕内容 C 复制屏幕到剪贴板 D 复制当前窗口到剪贴板
查看答案 C. 复制屏幕到剪贴板
9 单选题 9 / 69
Internet的通信协议是( )
A TCP/IP B BBS C WWW D FTP
查看答案 A. TCP/IP
10 单选题 10 / 69
下列叙述中正确的是( )
A 计算机病毒只感染可执行文件 B 计算机病毒只感染文本文件 C 计算机病毒只能通过软件复制的方式进行传播 D 计算机病毒可以通过网络或读写磁盘方式进行传播
查看答案 D. 计算机病毒可以通过网络或读写磁盘方式进行传播
11 单选题 11 / 69
一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
A 有零个或多个输入 B 有零个或多个输出 C 有穷性 D 可行性
查看答案 B. 有零个或多个输出
12 单选题 12 / 69
以下叙述中正确的是( )
A C语言的源程序不必通过编译就可以直接运行 B C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C C源程序经编译形成的二进制代码可以直接运行 D C语言中的函数不可以单独进行编译
查看答案 B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令
13 单选题 13 / 69
以下符合C语言语法的实型常量是( )
A 1.2E0.5 B 3.14.159E C .5E-3 D E15
查看答案 C. .5E-3
14 单选题 14 / 69
以下4组用户定义标识符中,全部合法的一组是( )
A _main enclude sin B If -max turbo C txt REAL 3COM D int k_2 _001
查看答案 A. _main enclude sin
15 单选题 15 / 69
若以下选项中的变量已正确定义,则正确的赋值语句是( )
A x1=26.8%3; B 1+2=x2; C x3=0x12; D x4=1+2=3;
查看答案 C. x3=0x12;
16 单选题 16 / 69
设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是()
A a++; B b++; C c++; D d++;
查看答案 D. d++;
17 单选题 17 / 69
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是( )
A (a+b)*h/2 B (1/2)*(a+b)*h C (a+b)*h*1/2 D h/2*(a+b)
查看答案 B. (1/2)*(a+b)*h
18 单选题 18 / 69
有以下程序 main( ) { int x=102,y=012; printf(“%2d,%2d\n”,x,y); } 执行后输出结果是()
A 10,01 B 102,12 C 102,10 D 02,10
查看答案 C. 102,10
19 单选题 19 / 69
以下4个选项中,不能看作一条语句的是( )
A {;} B a=0,b=0,c=0; C if(a>0); D if(b==0) m=1;n=2;
查看答案 D. if(b==0) m=1;n=2;
20 单选题 20 / 69
设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是( )
A scanf(“%d”,pa); B scanf(“%d”,a); C scanf(“%d”,&pa); D scanf(“%d”,*pa);
查看答案 A. scanf(“%d”,pa);
21 单选题 21 / 69
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是( )
A if((a>b)&&(b>c)) k=1; else k=0; B if((a>b)||(b>c))k=1; else k=0; C if(a<=b) k=0; else if(b<=c) k=1; D if(a>b) k=1; else if(b>c) k=1; else k=0;
查看答案 A. if((a>b)&&(b>c)) k=1; else k=0;
22 单选题 22 / 69
有以下程序 main( ) { char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )
A another number B another number another C another number number D number number
查看答案 C. another number number
23 单选题 23 / 69
有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z); } 程序执行后的输出结果是( )
A 3,2,0 B 3,2,-1 C 4,3,-1 D 5,-2,-5
查看答案 B. 3,2,-1
24 单选题 24 / 69
有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是( )
A 自然数1~9的累加和 B 自然数1~10的累加和 C 自然数1~9中的奇数之和 D 自然数1~10中的偶数之和
查看答案 D. 自然数1~10中的偶数之和
25 单选题 25 / 69
有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是( )
A n=5 B n=2 C n=3 D n=4
查看答案 D. n=4
26 单选题 26 / 69
若程序中定义了以下函数 double myadd(double a,double b) { return (a+b);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
A double myadd(double a,b); B double myadd(double,double); C double myadd(double b,double a); D double myadd(double x,double y);
查看答案 A. double myadd(double a,b);
27 单选题 27 / 69
有以下程序 char fun(char x , char y) { if(x<y) return x; return y; } main( ) { int a=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b),fun(b,c))); } 程序的执行结果是( )
A 函数调用出错 B 8 C 9 D 7
查看答案 D. 7
28 单选题 28 / 69
设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )
A p=1; B *q=2; C q=p; D *p=5;
查看答案 D. *p=5;
29 单选题 29 / 69
有以下程序 void f(int v , int w) { int t; t=v;v=w;w=t; } main( ) { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是( )
A 1,2,3 B 3,1,2 C 1,3,2 D 2,3,1
查看答案 C. 1,3,2
30 单选题 30 / 69
有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是()
A 5 B 6 C 8 D 9
查看答案 D. 9
31 单选题 31 / 69
有以下程序 main( ) { char a[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d %d\n”,sizeof(a),sizeof(b)); } 执行后输出结果是( )
A 7 7 B 8 8 C 8 10 D 10 10
查看答案 C. 8 10
32 单选题 32 / 69
有以下程序 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t; } main( ) { int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是( )
A 5 3 5 3 B 5 3 3 5 C 3 5 3 5 D 3 5 5 3
查看答案 B. 5 3 3 5
33 单选题 33 / 69
有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf(“%d\n”,aa[0]); } 执行后的输出结果是( )
A 4 B 3 C 2 D 1
查看答案 A. 4
34 单选题 34 / 69
有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a)); } 执行后的输出结果是( )
A 12 B 11 C 18 D 16
查看答案 D. 16
35 单选题 35 / 69
有以下定义 #include <stdio.h> char a[10],*b=a; 不能给数组a输入字符串的语句是( )
A gets(a); B gets(a[0]); C gets(&a[0]); D gets(b);
查看答案 B. gets(a[0]);
36 单选题 36 / 69
有以下程序 main( ) { char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4])); } 执行后输出结果是( )
A 2 B 3 C 4 D 5
查看答案 A. 2
37 单选题 37 / 69
有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf(“%d\n”,s); } 执行后输出结果是( )
A 10 B 9 C 7 D 8
查看答案 C. 7
38 单选题 38 / 69
有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是( )
A 28 B 22 C 16 D 4
查看答案 A. 28
39 单选题 39 / 69
设有以下语句 typedef struct S { int g; char h;}T; 则下面叙述中正确的是( )
A 可用S定义结构体变量 B 可以用T定义结构体变量 C S是struct类型的变量 D T是struct S类型的变量
查看答案 B. 可以用T定义结构体变量
40 单选题 40 / 69
有以下程序 struc STU{ char name[10]; int num; }; void f1(struct STU c) { struct STU b={“LiSiGuo”,2042}; c=b; } void f2(struct STU *c) { struct STU b={“SunDan”,2044}; *c=b; } main( ) { struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(a);f2(&b); printf(“%d %d\n”,a.num,b.num); } 执行后的输出结果是( )
A 2041 2044 B 2041 2043 C 2042 2044 D 2042 2043
查看答案 A. 2041 2044
41 单选题 41 / 69
有以下程序 main( ) { unsigned char a,b; a=4|3; b=4&3; printf(“%d %d\n”,a,b); } 执行后输出结果是( )
A 7 0 B 0 7 C 1 1 D 43 0
查看答案 A. 7 0
42 单选题 42 / 69
下面程序的功能是输出以下形式的金字塔图案是: * *** ***** ******* main( ) { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(“ “); for(j=1;j<=_____;j++) printf(“*”); printf(“\n”); } } 在下划线处应填入的是( )
A i B 2*i-1 C 2*i+1 D i+2
查看答案 B. 2*i-1
43 单选题 43 / 69
有以下程序 void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(“%d”,aa[i]); printf(“\n”); } 其输出结果是( )
A 1,2,3,4,5,6,7,8,9,10, B 10,9,8,7,6,5,4,3,2,1, C 9,2,7,4,5,6,3,8,1,10, D 1,10,3,8,5,6,7,4,9,2,
查看答案 C. 9,2,7,4,5,6,3,8,1,10,
44 单选题 44 / 69
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( )
A char s[10]=”abcdefg”; B char t[]=”abcdefg”,*s=t; C char s[10];s=”abcdefg”; D char s[10];strcpy(s,”abcdefg”);
查看答案 C. char s[10];s=”abcdefg”;
45 单选题 45 / 69
有以下程序 #include <string.h> main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf(“5d\n”,len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是()
A 14 B 12 C 8 D 6
查看答案 D. 6
46 单选题 46 / 69
有以下程序 void f(int a[],int i,int j) { int t; if(i<j) { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main( ) { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\n”); } 执行后输出结果是( )
A 5,4,3,2,1, B 5,2,3,4,1, C 1,2,3,4,5, D 1,2,3,4,5,
查看答案 A. 5,4,3,2,1,
47 单选题 47 / 69
有以下程序 struct STU { char name[10]; int num; int Score; }; main( ) { struct STU s[5]={{“YangSan”,20041,703}, {“LiSiGuo”,20042,580}, {“wangYin”,20043,680}, {“SunDan”,20044,550}, {“Penghua”,20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf(“5d %d\n”,s[1].Score,p[1]->Score); } 执行后输出结果是( )
A 550 550 B 680 680 C 580 550 D 580 680
查看答案 C. 580 550
48 单选题 48 / 69
有以下程序 #include <stdlib.h> struct NODE{ int num; struct NODE *next; }; main( ) { struct NODE *p,*q,*r; int sum=0; p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=1;q->num=2;r->num=3; p->next=q;q->next=r;r->next=NULL; sum+=q->next->num;sum+=p->num; printf(“%d\n”,sum); } 执行后的输出结果是
A 3 B 4 C 5 D 6
查看答案 B. 4
49 单选题 49 / 69
有以下程序 #include <stdio.h> main( ) { FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,”w”); for(i=1;i<4;i++) fprintf(fp,”%d”,i); fclose(fp); fp=fopen(“d1.dat”,”r”); fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n); fclose(fp); } 执行后输出结果是( )
A 1 2 B 123 0 C 1 23 D 0 0
查看答案 B. 123 0
50 单选题 50 / 69
有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END); 句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include <stdio.h> main( ) { FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int).SEEK_END); fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); printf("%d\n",b); } 执行后输出结果是( )
A 2 B 1 C 4 D 3
查看答案 D. 3
51 填空题 51 / 69
E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1__ 】。
查看答案 @
52 填空题 52 / 69
计算机网络分为广域网和局域网,因特网属于【2__ 】。
查看答案 广域网
53 填空题 53 / 69
从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令【3__ 】。
查看答案 EXIT或exit
54 填空题 54 / 69
在Windows环境下,只要在“开始”菜单中单击【4__ 】选项,就可以查最近打开过的文档清单。
查看答案 文档
55 填空题 55 / 69
计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5__ 】条指令。
查看答案 百万条或一百万条或1000000条
56 填空题 56 / 69
已知字符A的ACSII码值为65,以下语句的输出结果是【6__ 】 char ch=’B’; printf(“%c %d\n”,ch,ch);
查看答案 B 66
57 填空题 57 / 69
有以下语句段 int n1=10,n2=20; printf(“【7__ 】”,n1.n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20
查看答案 n1=%d\nn2=%d
58 填空题 58 / 69
有以下程序 main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t); } 执行后输出结果是【8__ 】。
查看答案 0
59 填空题 59 / 69
有以下程序 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d\n”,x); } 执行后输出结果是【9__ 】。
查看答案 –4
60 填空题 60 / 69
有以下程序 #include <stdio.h> main( ) { char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-‘0’; n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2); } 程序运行时输入:12<回车>,执行后输出结果是【10__ 】。
查看答案 12
61 填空题 61 / 69
有以下程序 void f( int y,int *x) {y=y+*x; *x=*x+y;} main( ) { int x=2,y=4; f(y,&x); printf(“%d %d\n”,x,y); } 执行后输出的结果是【11__ 】。
查看答案 8 4
62 填空题 62 / 69
函数fun的功能是计算xn double fun(double x,int n) { int i; double y=1; for(i=1;i<=n;i++) y=y*x; return y; } 主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算: m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【12__ 】。
查看答案 fun(a,4)+fun(b,4)-fun(a+b,3);
63 填空题 63 / 69
下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A= 9 10 11 12 则 A’= 3 7 11 15 13 14 15 16 4 8 12 16 请填空 #define N 4 void rotate(int a[][N]) { int i,j,t; for(i=0;i<N;i++) for(j=0;【13__ 】;j++) { t=a[i][j]; 【14__ 】; a[j][i]=t; } }
查看答案 64 填空题 64 / 69
以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。 void sstrcpy(char *s,char *t) { while(*s++=【15__ 】);} main( ) { char str1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1); }
查看答案 *t++
65 填空题 65 / 69
下列程序的运行结果是:【16__ 】 #include <string.h> char *ss(char *s) { return s+strlen(s)/2;} main( ) { char *p,*str=”abcdefgh”; p=ss(str); printf(“%s\n”,p); }
查看答案 efgh
66 填空题 66 / 69
下面程序的运行结果是:【17__ 】 int f( int a[], int n) { if(n>1) return a[0]+f(&a[1],n-1); else return a[0]; } main ( ) { int aa[3]={1,2,3},s; s=f(&aa[0],3); printf(“%d\n”,s); }
查看答案 6
67 填空题 67 / 69
以下程序中给指针p分配三个double型动态内存单元,请填空。 # include <stdlib.h> main ( ) { double *p; p=(double *) malloc(【18__ 】); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf(“%f%f%f\n”,p[0],p[1],p[2]); }
查看答案 3*sizeof(double)
68 填空题 68 / 69
以下程序的运行结果是【19__ 】 # include <string.h> typedef struct student{ char name[10]; long sno; float score; }STU; main( ) { STU a={“zhangsan”,2001,95},b={“Shangxian”,2002,90}, c={ "Anhua”,2003,95},d,*p=&d; d=a; if(strcmp(a.name,b.name)>0) d=b; if(strcmp(c.name,d.name)>0) d=c; printf(“%ld%s\n”,d.sno,p->name); }
查看答案 2002Shangxian
69 填空题 69 / 69
以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2!+x3/3!+........+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n ) { int i; double a,b,s; 【20__ 】 for( i=1;i<=n;i++) { a=a*x; b=b*i; s=s+a/b; } return s; }
查看答案 a=1.0;b=1.0;s=1.0;