C语言20次Word格式文档下载.docx

上传人:b****4 文档编号:16497526 上传时间:2022-11-24 格式:DOCX 页数:14 大小:21.81KB
下载 相关 举报
C语言20次Word格式文档下载.docx_第1页
第1页 / 共14页
C语言20次Word格式文档下载.docx_第2页
第2页 / 共14页
C语言20次Word格式文档下载.docx_第3页
第3页 / 共14页
C语言20次Word格式文档下载.docx_第4页
第4页 / 共14页
C语言20次Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言20次Word格式文档下载.docx

《C语言20次Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言20次Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

C语言20次Word格式文档下载.docx

65971376294958请问使用的是何种排序方法(15)。

15(A)简单插入排序(B)冒泡排序

(C)2路归并排序(D)快速排序

第二部分

C与C++语言程序设计

(共85分)

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

1.定义如下枚举类型:

enumDay{Monday,Tuesday,Wednesday,Thursday,Friday=2};

则下列语句正确的是(16)。

16(A)表达式Wednesday==Friday的值是true

(B)enumDayday;

day=3;

(C)enumDayday;

day=Tuesday-3;

(D)enumDayday;

day=Monday+10;

2.下列程序片段的输出结果是(17)。

intm=4;

do

{printf("

%d,"

m-=3);

}

while(!

(--m));

17(A)1(B)1,-3,(C)3,0(D)死循环

3.执行下列程序片段时的输出结果是(18)。

intx,y;

x=3;

y=5;

printf("

%d"

x%=(y/=2));

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

4.对于下述程序,判断正确的是(19)。

#include<

stdio.h>

voidf(int*p)

{*p=10;

int*p;

voidmain()

{f(p);

printf("

(*p)++);

}

19(A)输出的值是随机值(B)运行时出错

(C)输出值为10(D)输出值为11

5.下列程序运行的结果是(20)。

#defineFU(y)2.8+y

#definePR(a)printf("

(int)(a))

#definePRINT(a)PR(a);

{intx=2;

PRINT(FU(5)*x);

20(A)12(B)14(C)13(D)15

6.下列程序运行的结果是(21)。

{inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+4;

*++p);

++*p);

21(A)4,3(B)4,6(C)5,5(D)4,5

7.关于对类要领的描述中,错误的是(22)。

22(A)类就是C语言中的结构类型

(B)类是创建对象的样板

(C)类是具有共同行为的若干对象的统一描述体

(D)类是抽象数据类型的实现

8.已知inta=9,b=4;

将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是(23)。

23(A)cout<

<

a<

'

-'

b<

endl(B)cout<

"

a-b"

endl

(C)cout<

a-b<

endl(D)cout<

%d\n"

a-b

9.下列循环语句会进入死循环的是(24)。

24(A)i=0;

do{i++;

}while(i==100);

(B)for(i=0;

i<

100;

i+=3.14);

(C)for(i=0;

;

i+=2);

(D)k=1;

do{k--;

}while(k);

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

intfun(char*str)

{

intn=0;

while(*str>

='

0'

&

&

*str<

9'

{n=n*10+*str-'

1'

str++;

returnn;

{printf("

fun("

567.89"

));

25(A)89(B)567.89(C)567(D)456

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

1.有下列程序:

iostream.h>

{inta,b,c,x;

a=b=c=0;

for(inti=0;

10;

i++)

{cin>

>

x;

switch(x%3)

{case0:

a+=x;

break;

case1:

b+=x;

case2:

c+=x;

cout<

'

c<

endl;

程序运行时依次输入x的值为:

12345678910

①程序运行的结果是(26)。

26(A)3,12,21(B)18,22,15

(C)3,4,3(D)9,10,8

②switch(x%3)与(27)相同。

27(A)switch(!

(x%3)!

=0)(B)switch(x%3==0)

(C)switch(x%3!

=0)(D)他们都不相同

2.有下列程序:

char*str[]={"

One"

"

Two"

Three"

Four"

};

char=str;

inti;

for(i=0;

3;

%s"

(ptr+1)[i]);

①为程序中空白处选择填空(28)。

28(A)**ptr(B)*ptr(C)ptr[](D)&

ptr

②运行结果是(29)。

29(A)newohree(B)Two(C)TwoThreeFour(D)指针运行非法,无输出

3.读下列程序,回答问题。

voidmain(void)

intm,n;

doublex,y;

intdivide(intm,intn);

doubledivide(intm,doubley);

doubledivide(doublex,doubley);

Entertwointegerandtworealnumber:

cin>

m>

n>

x>

y;

L1:

cout<

divide(m,n)<

L2:

divide(n,x)<

L3:

divede(x,y)<

intdivide(intm,intn)

{returnm/n;

doubledivide(intm,doubley)

{returnm/(int)y;

doubledivide(doublex,doubley)

{returnx/y;

①输入数据727.02.0,语句L1输出结果是(30)。

30(A)0(B)1(C)3(D)3.5

②输入数据727.02.0,语句L2输出结果是(31)。

31(A)0(B)1(C)3(D)3.5

③输入数据727.02.0,语句L3输出结果是(32)。

32(A)0(B)1(C)3(D)3.5

4.#include<

unsignedinta=0112,x,y,z;

x=a>

y=~(~0<

4);

z=x&

%o%o%o\n"

x,y,z);

%x\n"

!

(x&

y&

z));

该程序中执行第一个printf函数后,输出为(33)。

33(A)111711(B)171117(C)111717(D)171711

该程序中执行第二个printf函数后,输出为(34)。

34(A)171(B)0112(C)1(D)0

5.以下程序运行的结果为(35)。

voidswap1(inta,intb)

{inttemp;

temp=a;

a=b;

b=temp;

voidswap2(int&

a,int&

b)

{inti=3,j=5;

swap1(i,j);

%d%d\n"

i,j);

swap2(i,j);

35(A)35(B)53(C)53(D)35

35533553

6.读下列递归程序,回答问题。

voidfun(char*strp)

{char*t;

if(*strp){t=strp;

t++;

fun(t);

putchar(*strp);

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

charstr[11];

str[i]=a[i]+'

str[i]='

\0'

fun(str);

程序中的fun函数被调用(36)次。

36(A)9(B)10(C)11(D)12

程序的输出结果为(37)。

37(A)0123456789(B)9876543210(C)01234(D)98765

5678943210

7.读下列C程序,若输入字符串Examination,请选择正确的输出结果。

{charstr[20];

inti=0;

staticintcount[2]={0};

gets(str);

do

{

switch(str[i++])

{

case'

a'

:

A'

e'

E'

i'

I'

o'

O'

u'

U'

count[0]++;

/*break;

*/

default:

count[1]++;

}

}while(str[i]!

);

count[0]=%d,count[1]=%d\n"

count[0],count[1]);

程序的输出结果为(38)。

38(A)count[0]=6,count[1]=11(B)count[0]=6,count[1]=12

(C)count[0]=5,count[1]=11(D)count[0]=5,count[1]=12

若将程序中注释语句的注释标记去掉,则程序的输出结果为(39)。

39(A)count[0]=6,count[1]=11(B)count[0]=6,count[1]=5

(C)count[0]=5,count[1]=11(D)count[0]=6,count[1]=6

8.下面程序输出的结果为(40)。

inta=5;

{inta=3;

a++;

a;

40(A)54(B)45(C)53(D)44

注意:

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

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

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

1.下列程序实现将一个整数字符串转换为一个整数。

string.h>

intFun(char*str)

{intnum,digital,len;

①;

len=strlen(str);

while(*str!

=NULL)

digital=*str-'

②;

digital*=10;

len--;

③;

num+=digital;

returnnum;

{charn[80];

intnumber;

gets(n);

number=Fun(n);

number);

2.寻找并输出11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。

{intsymm(longn);

longm;

for(m=11;

m<

1000;

m++)

if(①)

m="

m*m="

m*m<

m*m*m="

m*m*m<

intsymm(longn)

{longi,m;

i=n;

m=0;

while(②)

{③;

i=i/10;

return(m==n);

3.已知head指向一个单向链表,如下图:

主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。

structlink

{intdata;

structlink*next;

intadd(structlink*heak)

{structlink*p;

ints=0;

p=①;

while(p)

{s+=②;

p=③;

return(s);

{structlink*head;

……/*表示省掉的程序段,创建链表*/

sum=add(head);

sum);

4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count中,(字母'

的个数存入count[0]中,字母'

B'

的个数存入count[1]……依此类推),输出统计结果,一行输出5个。

请填空。

stdlib.h>

{FILE*fp;

staticintcount[26]={0};

charch;

Cannotopenthefile!

\n"

exit(0);

while(!

feof(fp))

{②;

if(ch>

ch<

Z'

)count[③]++;

26;

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

count[%d]=%-5d"

count[i]);

fclose(fp);

5.下面程序的功能是输入两个字符串a和b和一个标志flag,当flag=0时,将b连在a后;

当flag=1时,将a连在b后;

否则返回空指针。

char*stradd(char*s,char*t,intf)

{char*p;

if(f==0)

{p=s;

s+=strlen(s);

①;

elseif(f==1)

{p=t;

while(*t++);

t--;

while(*s)

*t++=*s++;

②;

returnp;

{chara[100],b[100],*str;

intn;

Inputstringaandb:

gets(a);

gets(b);

Inputflag:

scanf("

flag);

str=stradd(a,b,n);

Output:

%s\n"

str);

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

当前位置:首页 > 求职职场 > 简历

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

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