全国计算机二级C语言考试真题及答案文档格式.docx

上传人:b****4 文档编号:17072964 上传时间:2022-11-28 格式:DOCX 页数:14 大小:21.28KB
下载 相关 举报
全国计算机二级C语言考试真题及答案文档格式.docx_第1页
第1页 / 共14页
全国计算机二级C语言考试真题及答案文档格式.docx_第2页
第2页 / 共14页
全国计算机二级C语言考试真题及答案文档格式.docx_第3页
第3页 / 共14页
全国计算机二级C语言考试真题及答案文档格式.docx_第4页
第4页 / 共14页
全国计算机二级C语言考试真题及答案文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言考试真题及答案文档格式.docx

《全国计算机二级C语言考试真题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言考试真题及答案文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言考试真题及答案文档格式.docx

(12)以下选项中合法的实型常数是

A.5E2.0

B.E-3

C..2E0

D.1.3E

(13)以下选项中合法的用户标识符是

A.long

B._2Test

C.3Dmax

D.A.dat

(14)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是

A.字符AB)字符aC)字符eD)非法的常量

(15)以下非法的赋值语句是

A.n=(i=2,++i);

B)j++;

C.++(i+1);

D)x=j>

0;

(16)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

A)6.500000B)6

C.5.500000

D.6.000000

(17)已知i、j、k为int型变量,若从键盘输入:

1,2,3<

回车>

,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

A.scanf(“---”,&

i,&

j,&

k);

B.scanf(“%d%d%d”,&

C.scanf(“%d,%d,%d”,&

D.scanf(“i=%d,j=%d,k=%d”,&

(18)与数学式子对应的C语言表达式是

A.3*x^n(2*x-1)

B.3*x**n(2*x-1)

C.3*pow(x,n)*(1/(2*x-1))

D.3*pow(n,x)/(2*x-1)

(19)设有定义:

longx=-123456L;

,则以下能够正确输出变量x值的语句是

A)printf(“x=%d\n”,x);

B.printf(“x=\n”,x);

C)printf(“x=?

L\n”,x);

D)printf(“x=%LD\n”,x);

(20)若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);

printf(“%d,%d\n”,m,i);

}

执行后的输出结果是

A.8,6

B.8,3

C.6,4

D.7,4

(21)已有定义:

intx=3,y=4,z=5;

,则表达式!

(x+y)+z-1&

&

y+z/2的值是

A.6

B.0

C.2

D.1

(22)有一函数,,以下程序段中不能根据x值正确计算出y值的是

A.if(x>

0)y=1;

B.y=0;

elseif(x==0)y=0;

if(x>

elsey=-1;

elseif(x<

0)y=-1;

C)y=0;

D)if(x>

=0)

if(x>

=0);

0)y=1;

elsey=0;

elsey=-1;

(23)以下选项中,与k=n++完全等价的表达式是

A.k=n,n=n+1

B.n=n+1,k=n

C.k=++n

D.k+=n+1

(24)以下程序的功能是:

按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

{intn,k;

floatscore,sum,ave;

sum=0.0;

for(n=1;

n<

=10;

n++)

{for(k=1;

k<

=4;

k++)

{scanf(“%f”,&

score);

sum+=score;

ave=sum/4.0;

printf(“NO%d:

%f\n”,n,ave);

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。

这条语句是

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf(“NO%d:

(25)有以下程序段

intn=0,p;

do{scanf(“%d”,&

p);

n++;

}while(p!

=12345&

3);

此处do—while循环的结束条件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

(26)有以下程序

{inta=15,b=21,m=0;

switch(a%3)

{case0:

m++;

break;

case1:

switch(b%2)

{default:

case0:

printf(“%d\n”,m);

程序运行后的输出结果是

(27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是

A.void

B.int

C.float

D.double

(28)若有说明:

intn=2,*p=&

n,*q=p;

,则以下非法的赋值语句是

A.p=q;

B.*p=*q;

C.n=*q;

D.p=n;

(29)有以下程序

floatfun(intx,inty)

{return(x+y);

}

{inta=2,b=5,c=8;

printf(“%3.0f\n”,fun(int)fun(a+c,

B.,a-

C.);

A.编译出错

B.9

C.21

D.9.0

(30)有以下程序

voidfun(char*c,int

{*c=*c+1;

d=d+1;

printf(“%c,%c,”,*c,

D.;

{chara=’A’,b=’a’;

fun(&

b,a);

printf(“%c,%c\n”,a,

B.;

A)B,a,B,a

B.a,B,a,B

C.A,b,A,b

D.b,B,A,b

(31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;

i

for(j=i+1,j

if(a[i]}

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

sort(&

aa[3],5);

for(i=o;

i<

10;

i++)print(“%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.1,2,3,8,7.6.5.4.9,10

D.1,2,10,9,8,7,6,5,4,3

(32)有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

{inti,j=0;

for(i=i;

3;

i++)j+=f(i);

printf(“%d\n”,j);

A.4

B.3

C.2

D.1

(33)有以下程序

{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};

inti,j;

i=sizeof(a);

j=strlen(a);

printf(“%d,%d\b”i,j);

A)9,9B)8,9C)1,8D)9,8

(34)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。

voidreverse(inta[],intn)

{inti,t;

{t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;

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

inti,s=0;

reverse(b,8);

for(i=6;

i++)s+=b[i];

printf(“%d\n”,s);

A.22

B.10

C.34

D.30

(35)有以下程序

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

inti,s=0

4;

i++)s+=aa[i][1];

A.11

B.19

C.13

D.20

(36)有以下程序

#include

{char*p=“abcde\Ofghjik\0”;

printf(“%d\n”,strlen(p));

A.12

B.15

C.6

D.5

(37)程序中头文件typel.h的内容是:

#defineN5

#defineM1N*3

程序如下:

#define“type1.h”

#defineM2N*2

{inti;

i=M1+M2;

printf(“%d\n”,i);

程序编译后运行的输出结果是:

A.10

B.20

C.25

(38)有以下程序

{FILE*fp;

inti=20,j=30,k,n;

fp=fopen(“d1.dat”“w”);

fprintf(fp,“%d\n”,i);

fprintf(fp,“%d\n”j);

fclose(fp);

fp=fopen(“d1.dat”,“r”);

fp=fscanf(fp,“%d%d”,&

k,&

n);

printf(“%d%d\n”,k,n);

A.2030

B.2050

C.3050

D.3020

(39)以下叙述中错误的是

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

(40)有以下程序

main(intargc,char*argv[])

{inti,len=0;

for(i=1;

iprintf(“%d\n”,len);

程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:

ex1abcdefg10<

则运行的结果是:

B.17

C.12

D.9

(41)有以下程序

intfa(intx)

{returnx*x;

intfb(intx)

{returnx*x*x;

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);

i=f(fa,fb,2);

A.-4

B.1

(42)有以下程序

inta=3;

{ints=0;

{inta=5;

s+=a++;

s+=a++;

A.8

C.7

D.11

(43)有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-‘a’+’A’;

s++;

{charstr1[100]=“abcddfefdbd”,c=’d’;

ss(str1,c);

printf(“%s\n”,str1);

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

(44)有以下程序

structSTU

{charnum[10];

floatscore[3];

};

{structstus[3]={{“20021”,90,95,85},

{“20022”,95,80,75},

{“20023”,100,95,90}},*p=s;

inti;

floatsum=0;

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)设有如下定义:

strucksk

{inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正确的赋值语句是

A.p=&

a;

B.p=data.a;

C.p=&

data.a;

D.*p=data.a;

(46)有以下程序

structNODE

{intnum;

structNODE*next;

{structNODE*p,*Q,*R;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->

num=10;

q->

num=20;

r->

num=30;

next=q;

q->

next=r;

printf(“%d\n”,p->

num+q->

next->

num);

C.30

D.40

(47)若有以下说明和定义

typedefint*INTEGER;

INTEGERp,*q;

以下叙述正确的是

A.P是int型变量

B.p是基类型为int的指针变量

C.q是基类型为int的指针变量

D.程序中可用INTEGER代替int类型名

(48)有以下程序

{unsignedchara,b,c;

a=0x3;

b=a|0x8;

c=b<

<

1;

printf(“%d%d\n”,b,c);

A.–1112

B.–6–13

C.1224

D.1122

(49)有以下程序

{char*p,*q;

p=(char*)malloc(sizeof(char)*20);

q=p;

scanf(“%s%s”,p,q);

printf(“%s%s\n”,p,q);

若从键盘输入:

abcdef<

,则输出结果是:

A.defdef

B.abcdef

C.abcd

D.dd

(50)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。

voidf(charp[][10],intn)

{chart[20];

n-1;

i++)

for(j=i+1;

j<

n;

j++

if(strcmp(p[i],p[j])<

0)

{strcpy(t,p[i]);

strcpy(p[i],p[j]);

strcpy(p[j],t);

{charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};

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、设有定义:

intn,*k=&

以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf(“%d,”[6]);

printf(“%d\n”,[7]。

);

7、以下程序运行后的输出结果是[8]。

{intx=10,y=20,t=0;

if(x==y)t=x;

x=y;

y=t;

printf(“%d,%d\n”,x,y);

8、以下程序运行后的输出结果是[9]。

{intx=15;

while(x>

10&

x<

50)

{x++;

if(x/3){x++;

elsecontinue;

printf(“%d\n”,x);

9、有以下程序:

{charc;

while((c=getchar())!

=’?

’)putchar(--c);

程序运行时,如果从键盘输入:

Y?

N?

,则输出结果为[10]。

10、以下程序运行后的输出结果是[11]。

voidfun(intx,inty)

{x=x+y;

y=x-y;

x=x-y;

printf(“%d,%d,”,x,y);

{intx=2,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

11、以下函数的功能是计算s=1+++……+,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti;

for(i=1,i<

=n;

{fac=fac[12];

s=s+fac;

returns;

12fun函数的功能是:

首先对a所指的N行N列的矩阵,找出各行中的的数,再求这N个值中的小的那个数作为函数值返回。

请填空。

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

for(row=0;

row<

row++)

{for(max=a[row][0],col=1;

col<

col++)

if([13])max=a[row][col];

if(row==0)min=max;

elseif([14])min=max;

returnmin;

}<

/n;

/n-1;

13、函数sstrcmp()的功能是对两个字符串进行比较。

当s所指字符串和t所指字符串相等时,返回值为0;

当s所指字符串大于t所指字符串时,返回值大于0;

当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。

intsstrcmp(char*s,char*t)

{while(*s&

*t&

*s==[15])

{s++;

t++;

return[16];

14、下面程序的运行结果是[17]。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

{inti1,i2;

i1=1000/s(N);

i2=1000/f(N);

printf(“%d%d\n”,i1,i2);

15、下面程序的运行结果是:

[18]。

voidswap(int*a,int*b)

{int*t;

t=a;

a=b;

b=t;

{intx=3,y=5,*p=&

x,*q=&

y;

swap(p,q);

printf(“%d%d\n”,*p,*q);

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

[19]。

typedefunionstudent

{charname[10];

longsno;

charsex;

floatscore[4];

}STU;

{STUa[5];

printf(“%d\n”,sizeof(a));

17、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:

fp=fopen([20]);

参考答案

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

(1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1