四川省计算机二级C语言第32次笔试真题及答案Word下载.docx

上传人:b****1 文档编号:397444 上传时间:2023-04-28 格式:DOCX 页数:17 大小:28.98KB
下载 相关 举报
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第1页
第1页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第2页
第2页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第3页
第3页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第4页
第4页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第5页
第5页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第6页
第6页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第7页
第7页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第8页
第8页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第9页
第9页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第10页
第10页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第11页
第11页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第12页
第12页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第13页
第13页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第14页
第14页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第15页
第15页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第16页
第16页 / 共17页
四川省计算机二级C语言第32次笔试真题及答案Word下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

四川省计算机二级C语言第32次笔试真题及答案Word下载.docx

《四川省计算机二级C语言第32次笔试真题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《四川省计算机二级C语言第32次笔试真题及答案Word下载.docx(17页珍藏版)》请在冰点文库上搜索。

四川省计算机二级C语言第32次笔试真题及答案Word下载.docx

15(A)一定存在互斥关系(B)一定存在同步关系

(C)一定彼此独立无关(D)可能存在同步或互斥关系

第二部分

C与C++语言程序设计

(共85分)

一、单项选择题(每小题1分,共10分)

1.若x和y为double类型,则表达式x=1,y=x+3/2的值为(16)。

(考点:

数据类型、运算符)

16(A)1(B)2(C)2.0(D)2.5

2.如果a,b,c,x,y均为int型变量,x=5,y=10,则执行下面语句后,a,b,c的值分别为(17)。

a=(--y==x++)?

--y:

++x;

(考点:

b=y++;

c=x;

17(A)a=7,b=9,c=7(B)a=7,b=9,c=6

(C)z=6,b=9,c=7(D)z=6,b=9,c=6

3.执行下面语句段的输出结果是(18)。

逻辑运算符)

inti=1,j=1,k=2;

if((j++||k++)&

&

i++)

printf("

%d,%d,%d\n"

i,j,k);

18(A)1,1,2(B)2,2,1(C)2,2,2(D)2,2,3

4.若要求表示“a不等于0”的关系,则不能正确表示这一关系的表达式为(19)。

关系运算)

19(A)a<

>

0(B)a(C)a>

0||a<

0(D)a!

=0

5.若有说明inta,*p=&

a;

则scanf("

%d"

*p);

语句不能正确为变量赋值的原因是(20)。

指针)

20(A)*p表示的是指针变量p的地址

(B)*p表示的是变量a的值,而不是变量a的地址

(C)*p表示的是指针变量p的值

(D)*p只是用来说明p是一个指针变量

6.若有如下说明,则能使指针变量p的值增加的表达式是(21)。

结构体指针)

structws

{inta;

int*b;

}*p;

21(A)++p->

a(B)p->

b++(C)p->

a++(D)(p++)->

a

7.以下能对二维数组a进行正确初始化的是(22)。

二维数组)

22(A)inta[2][]={{1,0,1},{5,2,3}};

(B)inta[][3]={{1,2,3},{4,5,6}};

(C)inta[2][4]={{1,2,3},{4,5},{6}};

(D)inta[][3]={{1,0,1},{},{1,1}};

8.有以下结构体说明和变量定义:

链表操作)

structnode

{intdata;

Structnode*next;

}*p,*q,*r;

建立如图所示的链表结构,指针变量p、q分别指向如图所示的结点,指针变量r指向一新结点,则可以实现将r指向的结点插入到p、q所指结点之间的语句组是(23)。

 

23(A)q=r;

p->

next=q->

next;

(B)p->

next=r;

r->

next=p->

(C)r->

next=q;

(D)p=r;

9.以下程序的运行结果为(24)。

宏定义)

#define<

stdio.h>

#definePT3.5

#defineS(x)PT*x*x

voidmain()

{inta=1,b=2;

%4.1f\n"

S(a+b));

}

24(A)14.0(B)31.5(C)7.5(D)10.5

10.下面程序段的运行结果为(25)。

位运算)

inta=9,b=020;

printf("

%o\n"

~a&

b<

<

1);

25(A)40(B)41(C)42(D)43

二、读程序回答问题(每个选择3分,共45分)

1.有如下程序:

字符数组、函数(地址参数))

intcount(char*str,charsubstr[20])

{inti,j,k,num=0;

for(i=0;

*(str+i)!

='

\0'

;

i++)

{j=i;

k=0;

while(substr[k]==str[j])

{k++;

j++;

}

if(substr[k]=='

num++;

returnnum;

{

charstr[80],substr[20];

gets(str);

gets(substr);

%d\n"

count(str,substr));

(1)若运行程序时输入abcdabad和ab两个字符串,则输出结果为(26)。

26(A)3(B)4(C)2(D)11

(2)该程序的功能是(27)。

27(A)比较两个字符串str和substr的大小

(B)统计子串substr在母串str中出现的次数

(C)将子串substr复制到母串str中

(D)统计两个字符串中字符的总个数

2.有下列程序(考点:

函数)

#include<

intfun(inta,intb)

{staticc=0;

if(a>

b)c=c+a;

elsec=c+b;

returnc;

inta=2,b=5,c=6,d;

d=fun(2*a,fun(b,c));

d);

(1)fun(2*a,fun(b,c))的函数调用中,实参的个数为(28)。

28(A)1(B)2(C)3(D)4

(2)程序的运行结果是(29)。

29(A)6(B)10(C)12(D)15

3.有下列程序(考点:

带参数的宏定义)

#defineM(x,y)((x%y==1)?

1:

0)

intfun(int*a,intn)

inti,s=0;

i<

n;

if(M(a[i],2)&

M(a[i],3))s=s+a[i];

returns;

inta[]={1,2,3,4,5,6,7};

fun(a,7));

(1)宏调用M(a[i],2)&

M(a[i],3)为真时所要表达的是(30)。

30(A)判断a[i]是否能被2或3整除

(B)判断a[i]是否能被2和3整除

(C)判断a[i]被2或3整除时,是否至少有一种情况余1

(D)判断a[i]被2和3整除时,是否都余1

(2)程序的运行结果是(31)。

31(A)15(B)6(C)16(D)8

4.有下列程序(考点:

函数(地址参数)、指针运算)

#include"

stdio.h"

voidprt(int*x,int*y,int*z)

++*x,++*y,*(z++));

inta=10,b=40,c=20;

prt(&

a,&

b,&

c);

(1)第一次调用函数prt的运行结果是(32)。

32(A)11,42,31(B)11,41,20(C)11,21,40(D)11,41,21

(2)第二次调用函数prt的运行结果是(33)。

33(A)12,42,20(B)12,22,41(C)11,21,41(D)12,42,22

5.有如下程序(考点:

全局变量和局部变量、函数(地址参数)、)

intb=1;

intfun(int*a)

intb=0;

b=b+a[0];

returnb;

inta[]={1,2,3,4,5,6},i;

2;

{

b=b+fun(a+i);

%d"

b);

(1)程序的运行结果是(34)。

34(A)24(B)412(C)23(D)410

(2)若将函数fun中的定义“intb=0;

”去掉,则程序的运行结果为(35)。

35(A)24(B)412(C)23(D)410

6.有如下程序(考点:

字符数组、函数(地址参数)、逻辑表达式)

#include<

voidfun(char*s,char*t1,char*t2)

inti,j=0;

s[i]!

if(i%2&

(s[i]>

a'

s[i]<

z'

))

t1[i]=s[i]-'

+'

A'

else

t1[i]=s[i];

if(s[i]>

0'

9'

t2[j]=s[i];

j++;

t1[i]=t2[j]='

chars[20]="

2abcde3fg45"

t1[20],t2[20];

fun(s,t1,t2);

puts(t1);

puts(t2);

(1)程序中第一个puts的输出结果为(36)

36(A)abcdefg(B)2345(C)2AbCdE3Fg45(D)2aBcDe3fG45

(2)程序中第二个puts的输出结果为(37)

37(A)abcdefg(B)2345(C)2AbCdE3Fg45(D)2aBcDe3fG45

7.有如下程序:

命令行参数、宏定义、条件运算符)

#defineIsAlpha(c)c>

c<

?

voidmain(intargc,int**argv)

char*str,cx;

intcn=0;

if(argc<

2)

return;

str=(*++argv);

while(*str)

cx=(*str++);

if(IsAlpha(cx))

cn++;

cn);

若上述程序经编译连接后形成的可执行文件名为:

2-8.exe

(1)当输入命令行:

2-8.exe2abHcabA2时,输出为(38)。

38(A)5(B)3(C)1(D)2

(2)上述程序的功能是(39)。

39(A)命令行第一参数2abHc中出现的小写字母个数

(B)命令行第一参数2abHc中出现的大写字母个数

(C)命令行第二参数abA2中出现的小写字母个数

(D)命令行第二参数abA2中出现的大写字母个数

8.有如下程序:

文件、大小写字母转换方法)

charch;

FILE*fp;

if((fp=fopen("

test.dat"

"

r+"

))==NULL)

Cannotopenfile.\n"

);

exit(0);

ch=fgetc(fp);

while(ch!

=EOF)

if(ch>

ch<

ch-=32;

elseif(ch>

Z'

ch+=32;

putchar(ch);

fclose(fp);

若磁盘文件test.dat中的内容为ab12HD,则程序运行结果为(40)。

40(A)ab12HD(B)Ab12hD(C)aB12Hd(D)AB12hd

注意:

①请把下面“程序填空”中各小题答案写在主观题答题纸上

②每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空(每空2分,共30分)

1.以下程序能计算数列1/2,3/4,1/6,3/8,1/10,3/12…的前15项之和。

请填空。

序列处理算法)

#defineN15

inti;

doublesum=0.0,a,b=0.0;

N;

if(①)

a=②;

a=1.0;

b+=2.0;

sum+=③;

1/2+3/4+1/6...+1/30=%f\n"

sum);

2.一结构体数组中放置了10名学生的学号和成绩(成绩互不相同),程序功能是求出学生的最高分,输出他的学号和成绩。

结构体数组、求最值算法)

typedefstructsutdent

charno[10];

intscore;

}ST;

STs[10]={{"

A01"

65},{"

A02"

70},{"

A03"

60},{"

A04"

84},{"

A05"

82},

{"

A06"

90},{"

A07"

75},{"

A08"

72},{"

A09"

95},{"

A10"

93}};

intmax,i,maxi;

max=s[0].score;

maxi=0;

for(i=1;

10;

if(s[i].score①max)

max=②;

maxi=③;

}

Max:

No%s;

Score%d\n"

s[maxi].no,s[maxi].score);

3.insert()函数在一维数组y中把x插到下标为i的元素之前,i≥0。

如果i大于等于元素个数则插在末尾。

原有的元素个数存放在指针变量n所指的变量中。

数组、插入元素算法)

#defineN11

voidinsert(inty[],int*n,intx,inti)

intj;

if(i<

*n)

for(j=*n-1;

①;

j--)

②=y[j];

i=*n;

y[i]=③;

(*n)++;

inty[N]={0,1,2,3,4,5,6,7,8,9},x,i,*n,j;

j=N-1;

\nPleaseinputx:

"

scanf("

&

x);

\nPleaseinputi:

i);

insert(y,&

j,x,i);

for(j=0;

j<

j++)

y[j]);

4.下面程序能将Hello!

反向打印出来。

函数(地址参数)、字符数组、递归算法)

intprint_hello(char*);

print_hello("

\nHello!

\n"

intprint_hello(char*string)

char*str=string;

if(*str==①)return;

②;

--str;

%c"

*str);

③;

print_hello(string);

5.函数fun的功能是:

根据以下公式计算s,计算结果通过形参指针sn传回;

n通过形参传入,n的值大于等于0。

(考点:

循环、序列处理算法)

voidfun(float*,int);

floata;

intk=2;

fun(&

a,k);

%f\n"

a);

voidfun(float*sn,intn)

floats=0.0,w,f=-1.0;

inti=0;

=n;

f=①*f;

w=f/②;

s+=w;

③=s;

第三十二级考试

第二部分C与C++语言程序设计

一、单项选择题(每小题1分,共10分)

1、C2、A3、C4、A5、B6、D7、B8、C9、C10、A

二、读程序题(每个选择3分,共45分)

1、CB2、BC3、DD4、BA5、AB

6、CB7、BA8、D

三、程序填空题(每空2分,共30分)

1、①i%2==1②3③a/b

2、①>

②s[i].score③i

3、①j>

=i②y[j+1]③x

4、①‘\0’②str++③*str=’\0’

5、①-1②(2*i+1)③*sn

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2