當前位置:歷史故事大全網 - 故事大全 - 2004年9月全国计算机等级考试二级C++试题及答案

2004年9月全国计算机等级考试二级C++试题及答案

为大家收集整理了《2004??年9月全国计算机等级考试二级C++试题及答案》供大家参考,希望对大家有所帮助!!!

一、选题(1 -40每题1分,41-50每题2分,***60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项 是的。

1.1MB 相等:

A) 1000 字节

B) 1024 字节

C) 1000×1000 字节

D) 1024×1024字节

2.与十六休息数200等值的十间歇数为:

A) 256

B) 512

C) 1024

D) 2048

3.称“*机”是指

A) 单片机

B) 单板机

C) 不装备任何软件的计算机

D) 只装备网络的计算机

4 .能够将高级语言编写的源程序转换成目标程序:

A) 链接程序

B) 解释程序

C) 编译程序

p>

D) 我的程序

5.在 64 位计算机中,一个字长所占的字节数为

A) 64

B) 8

C) 4

D) 1

6.在Windows环境下,当一个应用程序窗口被最小化后,该应用 程序

A) 继续在后台运行

B) 继续在前台运行

C) 终止运行

D) 暂停运行< /p>

7.在Windows环境下,能实现窗口移动的操作是:

A) 使用鼠标拖动窗口中的任何部位

B) 使用鼠标拖动 动窗口的标题

C) 使用鼠标拖动窗口的控制按钮

D) 使用鼠标拖动窗口的控制栏

8.在Windows环境下 下,PrintScreen键的作用是:

A) 打印当前窗口的内容

B) 打印屏幕内容

C) 复制屏幕到剪贴板

D) 复制当前窗口到剪贴板

9.Internet的通信协议是:

A) TCP/IP

B) BBS

C) WWW

D) FTP

10. 以下叙述正确的是

A) 计算机病毒只感染可执行文件< /p>

B) 计算机病毒仅感染文本文件

C) 计算机病毒只能通过软件复制的方式进行传播

D) 计算机病毒可以通过网络或读取 写磁盘等方式进行传播

11.一个算法应具有“确定性”等5个特性,对下面另外4个特性的描述中错误的是

A) 有零个或多个输入

B) 有零个或多个输出

C) 有穷性

D) 嗅觉

12.以下叙述中正确的是

A) C 语言的源程序不一定通过编译就可以直接运行

B) C 语言中的每条执行语句 最终都将被转换成二进制机器指令

C) C源程序通过编译形成的二进制代码可以直接运行

D) C语言中的函数不可以单独进行编译

13.以下符合C语言语法的实型常量为:

A) 1.2E0.5

B) 3.14.159E

C) 5E-3

D) E1

5

14.以下4组用户定义标识符中,全部合法的一组是:

A) _main include sin

B) If -max Turbo

C) txt REAL 3COM

D) int k_2 _001

15.若以下选项中的变量已正确定义,则正确的赋值语句为: < /p>

A) x1=26.8%3

B) 1+2=x2

C) x3=0x12

D) x4= 1+2=3;

16. 具有以下定义:

int a=0;

双b=1.25;

char c='A';

#define d 2

则下面语句中错误的是

A) a++;

B) b++;

C) c++;

D) d++;

17.设置定义: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)

18.有以下程序:

main( ){

int x=102,y=012;

printf("-,-\n",x,y);

}

执行后输出结果为

A) 10,01

B) 02,12

C) 102,10

D) 02,10

19.以下4个选项中,不能同时执行一条语句:

A) { ;}

B) a=0,b=0,c=0;

C) if(a>0);

D) if(b==0) m=1;n=2;

20.设置定义:int a,*pa=&a;以下scanf语句中能 正确读取数据的变量是

A) scanf("%d",pA) ;

B) scanf("%d",A) ;

C) scanf("%d",&pA) ;

D) scanf("%d",*pA) ;

21.以下程序段中与语句k=a>b?(b>c?1:0) :0;功能等价为

A) if((a>B) &&(b>C) ) k=1;

B) if((a>B) ||(b>C) ) k=1 else k=0;

C) if(a<=B) k=0;

D) if(a>B) k=1; 否则如果(bC) k=1; 否则k=0;

22.有以下程序:

main(){

char k; 整数我;

for(i=1;i<3;i++){

scanf("%c",&k);

开关(k){

情况

'0': printf("另一个\n");

case '1': printf("number\n");

}

}

}

程序运行时,从键盘输入:01回车>,程序执行后的输出结果 是

A) 另一个数字

B) 另一个数字

C) 另一个数字另一个

D) 数字数字

23.有以下程序:

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

24.有以下程序:

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中的偶数之和

25.有 程序如下:

main(){

int i,n=0;

for(i=2;i<5;i++){

do{

if(i%3) 继续;

n++;

}while(!i);

n++;

}

printf("n=%d\n",n);

}

程序执行后的输出结果为

A)n=5

B)n=2

C)n=3

D)n=4

26.若程序中定义了以下函数

double myadd(double a,double B) { return (a+B) ;}

将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是

< p> 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);

27.有以下程序:

char fun(char x , char y){

p>

if(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

28.设置:int n=0, *p=&n,**q=&p;则以下选项中,正确的赋值语句为:

A)p=1;

B)*q=2; p>

C)q=p;

D)*p=5;

29.有以下程序

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); if(y>z) f(y,z);

else if(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

30.有以下程序段:

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

31.有以下程序:

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

D)10 10

p>

32.有以下程序:

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};

交换1(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

< p> C)3 5 3 5

D)3 5 5 3

33.有以下程序:

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

34.有以下程序:

int f(int b[][4]){

int i,j,s=0;

for(j=0;j<4;j++){

i=j;

如果(i>2) i=3-j;

s+=b[i][j];

}

返回 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

35.有以下定义:

#include

char a[10],*b=a;

不能给数据库a输入字符串的语句是

A)gets(A)

B)gets(a[0])

C)gets(&a[0]);

D)gets(B) ;

36.有以下程序:

main(){

char *p[10] ={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

执行后输出结果为

A)2

B)3

C)4

D)5

37.有以下程序:

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

38.有以下程序:

#define f(x) x*x

main(){ < /p>

int i;

i=f(4+4)/f(2+2);

printf("%d\n",i);

}

执行后输出结果为

A)28

B)22

C)16

D

)4

39. 包含以下语句:

typedef struct S{ int g; 字符 h;} T;

则下面叙述中正确

A) 可用S定义结构体变量

B) 可以用T定义结构体变量

< p> C)S为struct类型的变量

D)T为struct S类型的变量

40.有以下程序:

struc STU{

字符名称[10];

int 数字;

};

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

41.有以下程序:

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

42.下面程序的功能是输出以下形式的金字塔图案是:

*

***

*****

*******

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

43.有以下程序:

void sort(int a[],int n){

int i,j,t;

for(i=0;iFor(j=i+2;jif(a[i]}

main(){

int aa [10]={1,2,3,4,5,6,7,8,9,10},i;

排序(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,

44.以下程序段中,不能 正确的赋码字符串(编译时系统会提示错误)是:

A) char s[10]="abcdefg";

B) char t[]="abcdefg",*s=t;

C) char s[10];s="abcdefg";

D) char s[10];strcpy(s,"abcdefg");

45.有以下程序:

#include

< p> main(int argc ,char *argv[]){

int i,len=0;

for(i=1;i打印f("5d\n",len);

}

通过编译链接后生成的可执行文件是 ex.exe,若运行时输入以下带参数的命令行

ex abcd efg h3 k44

执行后输出结果为

A) 14

B) 12

C) 8

D) 6

46.有以下程序:

void f( int a[],int i,int j){

int t;

if(i 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, < /p>

D) 1,2,3,4,5,

47.有以下程序:

struct STU{

char name[ 10];

int 数字;

int 分数;

};

main(){

struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"wangYin" ,20043,680},{"孙丹",20044,550},

{"鹏华",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]- >分数>p[j]->分数){t=p[i];p[i]=p[j];p[j]=t;}

printf("5d %d \n",s[1].分数,p[1]->分数);

}

执行后输出结果为

A) 550 550

B) 680 680

C ) 580 550

D) 580 680

48.有以下程序:

#include

struct NODE{

< p>int 数字;

结构节点*下一个;

};

main(){

结构节点 *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->下一个=q;q->下一个=r;r->下一个=NULL;

sum+=q->next->num;sum+=p->num;

printf("%d\n",sum);

}

执行后的输出结果为

A) 3

B) 4

C) 5

D) 6

49.有以下程序:

#include

main(){

文件*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

50.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是 使位置指针从文件尾向前移动2*sizeof(int)字节)

#include

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

二、填空题(每空2分,***40分)

表示每一个空的正确答案写在

1.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为。

2.计算机网络划分广域网和东南,东南

3.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为。

4.在Windows环境下,只需在“开始”菜单中 点击选项,就可以查阅最近打开的文档清单。

5.计算机的攻击速度可以用MIPS来描述,1MIPS是指每秒执行条指令。

6 .已知字符A的ACSII码值为65,以下语句的输出结果为

char ch='B';

printf("%c %d\n",ch,ch);

7.有以下语句段

int n1=10,n2=20;

printf("",n1.n2);

要求按以下格式输出n1和n2的值,输出每行从第一列开始,请填空。

n1=10

n2= 20

8.有以下程序

main(){

int t=1,i=5;

for(;i>=0;i--) t*=i;

printf("%d\n",t);

}

执行后输出结果是。

9.有以下程序

main(){

int n=0,m=1,x=2;

if(!n) x-=1;

如果(m)x-=2;

如果(x)x-=3;

printf("%d\n",x);

}

执行后输出结果是。

10.有以下程序

#include

main (){

char ch1,ch2; 整数 n1,n2;

ch1=getchar(); ch2=getchar();

n1=ch1-’0’; n2=n1*1(ch2-’0’);

printf("%d\n",n2);

}

程序运行时输入:12回车>,执行后输出结果为。

11.有以下程序

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);

}

执行后输出的结果是。

12.函数fun的函数是计算xn

double fun(double x ,int n){

int i; 双 y=1;

for(i=1;i<=n;i++) y=y*x;

返回y;

}

主函数中已经正确定义了m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 3。 这个计算的函数调用语句为 。

13.下面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

voidrotate(int a[][N]){

int i,j,t;

for(i=0;i???for(j=0;;j++){

?t=a[i][j];

?; < /p>

a[j][i]=t;

}

}

14.以下sstrcpy( )函数实现字符串复制 ,即将t所指的字符串复制到s所指向的内存空间中,形成一个新的字符串。请填空。

void sstrcpy(char *s,char *t){ while(*s++ =);}

main(){

char str1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

printf("%s\n",str1);

}

15. 下列程序的运行结果为:

#include

char *ss(char *s){ return s+strlen(s)/2;}

main(){

char *p ,*str="abcdefgh";

p=ss(str); printf("%s\n",p);

}

16 .下面程序的运行结果是:

int f( int a[], int n){

if(n>1) return a[0]+f(&a[ 1],n-1);

否则返回a[0];

}

main(){

int aa [3]={1,2,3},s;

s=f(&aa[0],3);

< p> }

17.以下程序中给指针p分配三个双型动态内存单元,请填空。

#include

main (){

double *p;

p=(double *) malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

18.以下程序的运行结果是

# include

typedef struct Student{

字符名称[10];

长鼻涕;

浮动分数;

}STU;

main(){

STU a={"zhangsan",2001,95},b={"尚贤",2002,90},c={"安化", 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);

}

19.以下sum函数的功能是计算下列级数之和。

S=1+x+x2/2!+x3/ 3!+........+xn/n!

请给函数中的各变量正确赋初值。

double sum( double x, int n ){

int i; 双 a、b、s;

;

for(i=1;i<=n;i++){a=a*x; b=b*i; s=s+a/b; }

返回;

}

  • 上一篇:西昌俊波工作累嗎
  • 下一篇:用天線網分測試方法
  • copyright 2024歷史故事大全網