四川计算机二级第34次C语言笔试真题答案文档格式.docx

上传人:b****6 文档编号:19544322 上传时间:2023-01-07 格式:DOCX 页数:17 大小:21.47KB
下载 相关 举报
四川计算机二级第34次C语言笔试真题答案文档格式.docx_第1页
第1页 / 共17页
四川计算机二级第34次C语言笔试真题答案文档格式.docx_第2页
第2页 / 共17页
四川计算机二级第34次C语言笔试真题答案文档格式.docx_第3页
第3页 / 共17页
四川计算机二级第34次C语言笔试真题答案文档格式.docx_第4页
第4页 / 共17页
四川计算机二级第34次C语言笔试真题答案文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

四川计算机二级第34次C语言笔试真题答案文档格式.docx

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

四川计算机二级第34次C语言笔试真题答案文档格式.docx

第二部分

C与C++语言程序设计

(共85分)

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

1.以下合法的字符常量是(C)。

16(A)“a”(B)‘\72’(C)‘\0x12’(D)‘ab’

2.以下程序的结果是(B)。

#include"

stdio.h"

voidmain()

{

unsignedinta=3,b=10;

printf("

%d\n"

a<

<

2|b>

>

1);

}

17(A)1(B)13(C)12(D)5

3.以下程序的输出结果是(D)。

inta=-1,b=4,k;

k=(++a)&

&

!

(b--<

=0);

%d%d%d\n"

k,a,b);

18(A)104(B)103(C)003(D)004

4.以下程序的输出结果是(C)。

#include<

string.h>

charp[20]={'

a'

'

b'

c'

d'

},q[]="

abc"

r[]="

abcde"

;

strcpy(p+strlen(q),r);

strcat(p,q);

%d%d\n"

sizeof(p),strlen(p));

19(A)209(B)99(C)2011(D)1111

5.下列对C语言字符数组的描述中错误的是(C)。

20(A)字符数组可以存放字符串

(B)字符数组的字符串可以整体输入、输出

(C)可以在程序中用赋值运算符“=”对字符数组进行整体赋值

(D)不可以用关系运算符对字符数组中的字符串进行比较

6.下述程序的输出结果是(D)。

inta[]={7,4,6,3,10};

intm=10,k,*ptr=&

a[0];

for(k=0;

k<

5;

k++)

m=*(ptr+k)<

m?

*(ptr+k):

m;

m);

21(A)10(B)4(C)6(D)3

7.有如下程序

inta=2,b=-1,c=2;

if(a<

b)

if(b<

0)c=0;

else

c++;

printf("

c);

该程序的输出结果是(C)。

22(A)0(B)1(C)2(D)3

8.根据下面的结构体类型及其结构数组的定义,值等于‘A’的表达式是(D)。

structseason

{

charname[10];

intday;

};

structseasons[4]={“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92};

23(A)s[3].name[0](B)s[3].name

(C)s[2].name(D)s[2].name[0]

9.运行以下程序的输出结果为(B)。

#include"

#defineR1+2

#defineS(r)r*r

#defineV(r)S(r)*R

intr1=1+2;

%d"

V(r1));

24(A)27(B)11(C)9(D)7

10.以下不能对二维数组a进行正确初始化的语句是(A)。

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

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

(C)inta[2][3]={0};

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

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

1.读下面程序并回答问题:

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

case0:

a++;

break;

case1:

b++;

}

case2:

a++;

}

%d,%d\n"

a,b);

(1)程序的运行结果为(A)。

26(A)2,1(B)1,2(C)1,1(D)0,0

(2)将程序中的switch(x)更改为switch(x!

=1),其程序运行结果是(D)。

27(A)2,1(B)1,2(C)1,1(D)0,0

2.读下面程序并回答问题:

string.h"

voidabc(char*name[],intlen)

char*temp;

inti,j,k;

for(i=0;

i<

len-1;

i++)

k=i;

for(j=i+1;

j<

len;

j++)

if(strcmp(name[k],name[j])>

0)k=j;

if(i!

=k)

{temp=name[i];

name[i]=name[k];

name[k]=temp;

staticchar*name[]={"

turboc"

"

fortan"

basic"

forbase"

java"

};

inti,n=5;

abc(name,n);

%c"

*name[i]);

\n"

);

}

函数abc的功能是(B)。

28(A)按字符排序(B)按字符串排序

(C)交换字符串(D)字符串倒序

程序的运行结果是(C)。

29(A)tfbfj(B)turbo(C)bffjt(D)java

3.读下面程序并回答问题:

intfunc(intx)

inty=0;

staticintz=3;

x=z++,y++;

returnx;

inta=2,i,b;

2;

b=func(a++);

b);

该程序运行的结果是(C)。

30(A)2(B)3(C)4(D)5

4.有下列程序(考点:

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

inttemp;

intfun(intn);

intnum,sum;

num=5684;

temp=num;

sum=fun(num);

=%d\n"

sum);

intfun(intn)

intremind;

staticintsum=0;

if(n>

=10)

fun(n/10);

remind=n%10;

sum+=remind;

if(temp>

n)

%d+"

remind);

else

returnsum;

(1)程序中的fun函数被调用次数为(C)。

31(A)2(B)3(C)4(D)5

(2)程序的输出结果为(A)。

32(A)5+6+8+4=23(B)5+6+8+4+=23(C)4+8+6+5+=23(D)4+8+6+5=23

5.读下面程序并回答问题。

charx[4][8]={"

First"

Second"

Third"

Four"

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

inti;

chary[4][8];

FILE*fp;

fp=fopen("

TEST.txt"

w"

4;

fputs(x[i],fp);

fclose(fp);

r"

fgets(y[i],a[i],fp);

%s\n"

*(y+i));

(1)程序运行的结果是(A)

33(A)First(B)First(C)“First”(D)Four

SecondFirst“Second”Third

ThirdFirst“Third”Second

FourFirst“Four”First

(2)以下哪种说法是正确的(C)。

34(A)TEST.txt仅在程序运行期间存在,程序结束后就没有了

(B)TEST.txt文件必须在程序运行之前建立好

(C)如果TEST.txt文件不存在,程序运行中会自动建立TEST.txt文件

(D)TEST.txt始终是无内容的空文件

6.读下面程序并回答问题。

chars[50]="

de123116abc5656"

inti,b[10]={0},cnt=0;

s[i]!

='

\0'

if(s[i]>

0'

s[i]<

9'

b[s[i]-'

]++;

elsecnt++;

cnt);

10;

b[i]);

(1)main函数中第一个printf输出cnt的值为(B)

36(A)15(B)5(C)9(D)16

(2)该程序的功能是(C)

37(A)取出字符串中的数字子串连接起来

(B)统计数字子串在字符串中出现的次数

(C)将数字子串转换为整数并累加

(D)将字符串中的数字字符转换为数字,结果加起来乘以10

7.读下面程序,回答问题。

intfun(int*a,intn)

1)return*a+fun(a+1,n-1);

return*a;

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

s=fun(a+3,3);

s);

(1)函数fun与下面非递归程序等价的是(A)。

37(A)intfun(int*a,intn)(B)intfun(int*a,intn)

{{

inti,s=0;

inti,s=0;

for(i=0;

n;

i++)for(i=0;

s=s+a[i];

s=s+*a;

returns;

returns;

}}

(C)intfun(int*a,intn)(D)intfun(int*a,intn)

{{

inti,s=0;

for(i=0;

s=a[i];

s=s+a[n-i];

reutrns;

}}

(2)程序的输出结果为(C)。

38(A)55(B)12(C)15(D)18

8.读下面程序,回答问题。

voidsort(inta[],intn)

inti,j,t;

n-1;

for(j=0;

i;

if(a[j]>

a[i])

{t=a[j];

a[j]=a[i];

a[i]=t;

intx[10]={1,0,-76,4,8,12,65,100,-45,123};

sort(x+5,5);

x[5]);

(1)程序中sort函数的功能是(C)

39(A)用起泡法对含有n个元素的数组a从小到大的排序

(B)用选择法对含有n个元素的数组a从小到大的排序

(C)用二分法对含有n个元素的数组a从小到大的排序

(D)用起泡法对含有n个元素的数组a从大到小的排序

(2)该程序的运行输出结果为(B)

40(A)-76(B)-45(C)8(D)123

注意:

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

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

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

1.程序中函数fun()的功能是:

查找字符串str中指定字符ch出现的次数并返回,并将该字符出现时的下标位置记录于数据组bb中。

例如在字符串"

1233211234567"

中查找字符'

1'

,其结果为3次,下标分别为0,5,6。

请填空。

#defineN20

intfun(char*str,charch,int*bb)

inti=0,n=0;

while(*str)

if(str[i]==ch)

bb[n++]=i;

str++;

i++;

returnn;

charstr[N],ch;

intbb[N]={0},i,n;

\nInputtheoriginalstring:

"

gets(str);

\nInputcharacter:

scanf("

&

ch);

n=fun(str,ch,bb);

\nThenumberofcharacteris:

n);

\nThesuffixofcharacter:

bb[i]);

2.已知head指向单链表的第一个结点,以下程序调用函数print输出这一单链表。

malloc.h>

#defineLensizeof(structstudent)

structstudent

intdata;

structstudent*next;

structstudent*creat()

......

return(head);

print(structstudent*head)

structstudent*p;

\nThelinklistis:

p=head;

if(head=!

NULL)

while(p->

next!

=NULL)

p->

data);

p=p->

next;

p->

data);

structstudent*head;

head=creat();

print(head);

3.下列程序的功能是:

假设a数组中的数,按由小到大的顺序存放。

将数组a中相邻相同的数删得只剩一下,然后以每行5个数的形式输出a数组中的数。

#defineMAX20

inta[MAX],i,j,n;

MAX;

scanf("

a+i);

n=i=MAX-1;

while(i)

if(a[i]==a[i-1])

for(j=i;

=n;

a[j-1]=a[j];

n=n-1;

i=i-1;

if(i%5==0)

printf(“\n”);

%3d"

a[i]);

4.函数fun的功能是:

求S=1×

2+2×

3+3×

4+…+n×

(n+1)的和,S的值作为函数值返回。

在main函数中输入n的值,调用fun函数,并输出最后的结果。

longfun(intn)

longs=0;

for(i=1;

s=s+i*(i+1);

returns;

intn;

longs;

Inputn:

n);

s=fun(n);

s=%ld\n"

5.函数fun的功能是:

将10到99之间的每位数字的乘积大于每位数字的和的整数放入形参数组a中,数组a的个数作为函数值返回。

例如:

整数23:

2*3>

2+3,所以23满足条件,应存入数组a中。

在main函数中,调用fun函数,并按一行5个整数进行输出。

intfun(int*a)

inti=0,n,k,s,m;

for(n=10;

n<

100;

n++)

k=1;

s=0;

m=n;

k=%d\n"

k);

while(m!

=0)

k=k*(m%10);

s=s+m%10;

m=m/10;

n=%d,k=%d,s=%d\n"

n,k,s);

if(k>

s)

a[i]=n;

i++;

returni;

inta[100],n,i;

n=fun(a);

%4d"

if((i+1)%5==0)printf("

 

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

当前位置:首页 > 外语学习 > 英语考试

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

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