C++期末习题 南财.docx

上传人:b****5 文档编号:29476641 上传时间:2023-07-23 格式:DOCX 页数:15 大小:20.80KB
下载 相关 举报
C++期末习题 南财.docx_第1页
第1页 / 共15页
C++期末习题 南财.docx_第2页
第2页 / 共15页
C++期末习题 南财.docx_第3页
第3页 / 共15页
C++期末习题 南财.docx_第4页
第4页 / 共15页
C++期末习题 南财.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++期末习题 南财.docx

《C++期末习题 南财.docx》由会员分享,可在线阅读,更多相关《C++期末习题 南财.docx(15页珍藏版)》请在冰豆网上搜索。

C++期末习题 南财.docx

C++期末习题南财

1.若有声明"inta=5,b=2;",则表达式"b+=(float)(a+b)/2"运算后b的值为。

2.若有声明"chars[10]="remind";",执行"puts(s+2);"后的输出结果是。

3.若定义:

inta=0,b=1,c=2;则语句printf(“%d\n”,a+b>c&&b!

=c);的输出结果是

4.声明局部变量时若缺省存储类别,该变量的存储类别是。

5.设intm=5;语句while(m==0)printf(“%d”,m-=2);的循环执行的次数是

6.若有程序段“inta[10],*p=a,*q;q=&a[5];”,则表达式q-p的值是。

7.有定义inta,b,c;则“a是偶数”的表达式是。

8.有定义inta,b,c;已经知道a、b、c为正数,则a、b、c构成一个三角形的条件是。

9.设typedefcharCHA;CHAax;则变量ax占用的内存字节数是

10.设有以下宏定义,则执行语句“z=Y(1+2)+1;”后,z的值为

#defineY(n)(n+1)*n

11.若实参是一个数组名,在调用函数时,实参向形参传递的是

12.设inta=10,*p=&a;则执行printf(“%d\n”,*p+a);的结果是

13.设chara[20]={‘‘NANJING”},*p=a+2;,则*(p+2)的值是___________。

14.下面函数要求计算两个整数x,y之和,并通过形参z传回结果值,请填空,

voidadd(intx,inty,)

{*z=x+y;}

15.下面程序的输出结果为。

intk;

char*str[6]={“abcd”,“efgh”,“ijkl”,“mnop”,“qrst”,“uvwx”},**p=str;

printf(“%s\n”,*(p+3));

16.设有定义语句“struct{intx;inty;}d[2]={{1,3},{2,7}};”,则

printf(“%d\n”,d[1].x);的输出是

17.以下程序的输出结果是

chars1[20]=”abcw12d”,s2[]=”123”;

main()

{strcpy(s1,s2);

printf(“%s\n”,s1);}

18.设有char*s[5]={“forturn”,”C++”,”basic”},执行prinf(“%s”,*(s+2));将输出_____________。

1.下列程序片段中,不正确的字符串赋值或初始化方式是()

Achars[]={'a','b','c','d','\0'}

Bchars[10]="abcd";

Cchar*sp;sp="abcd"

Dchars[10];s="abcd";

2.执行下面程序片段的结果是()

inta=100;

do{printf(“%3d”,a--);}while(!

a);

A陷入死循环B不输出任何内容

C99D100

3.下列声明,正确的是()

Achar*a[]={“abc”,“1”}Bchara[][3]={'abc','1'}

Cchara[3][]={'a','1'}Dchara[0][3]={“a”,“1”}

4.下述语句中,可以在字符串s1小于字符串s2时显示"YES"的是()

Aif(s1

puts("YES")puts("YES")

Cif(strcmp(s1,s2)<0)Dif(strcmp(s1,s2)>0)

puts("YES")puts("YES")

5.下面程序的输出结果是()

#include

main()

{inta[]={1,2,3,4,5},y,*p=&a[2];

y=*p--;

printf("%d,%d",*p,y);}

A2,2B3,3

C2,3D3,2

6.以下数据类型名的定义中正确的是()

Aenuma={one,two,three};

Benuma{a1,a2,a3};

Cenuma{1,2,3};

Denuma{“one”,“two”,“three”};

7.若有以下定义:

则正确的引用或定义是()

structexample{intx;floaty;}v1;

Aexample.x=10Bexamplev2;v2.x=10;

Cstructv2;v2.x=10;Dstructexamplev2={10};

8.定义如下变量和数组:

intm;inta[2][2]={1,2,3,4};

则下面的输出结果是()

for(m=0;m<2;m++)

printf("%d",a[m][1-m]);

A1,2B2,3

C3,4D7和6

9.以下程序的输出结果是()

main()

{intn=4;

while(n--)printf("%d",--n);

}

A20B31C321D210

10.设x和y均为int型变量,则执行下的循环后,y值为()

for(y=1,x=1;y<=50;y++)

{

if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

A2B4C6D8

11.给出以下定义:

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为()

A数组x和数组y等价B数组x和数组y的长度相同

C数组x的长度大于数组y的长度D数组x的长度小于数组y的长度

12.若有下面程序段,则正确的输出是()

char*p="break",a[10]={'1','2','3','4'};

printf("%c,%c",p[2],*(a+1));

Ae,2Br,1

Ce,1Dr,2

13.设struct

{charname[10];

intage;

}stu[2]={{“Tom”,25},{“Mary”,26}},*p=stu;

则执行语句printf(“%s%d\n”,p->name,stu[1].age),后输出的结果是()

ATom25BTom26

CMary25DMary26

14.设以下宏定义,则执行语句“z=Y(1+1);”后,z的值为()

#defineY(n)(n+1)*n

A4B6

C8D10

15.设有定义:

doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是()

A.scanf("%f",&x[6]);B.scanf("%lf",x[6]);

C.scanf("%lf",p+6);D.scanf("%lf",p[6]);

16.若有以下定义,则值为4的表达式是(  )。

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

A.p[1][1]B.p++,*(p+1)

C.a[2][2]D.*(p+1*4+1)

17.若有如下结构定义:

structstu

{intn,charm[20];}x1;

则下面正确的语句是()

A.scanf(“%d,%c”,x1);B.scanf(“%d,%c”,&x1);

C.scanf(“%d”,x1.n);D.scanf(“%s”,x1.m);

18.下面程序的输出结果是()

#include

main()

{inta[]={1,2,3,4,5},y,*p=&a[2];

y=*p--;

printf("%d,%d",*p,y);}

A.2,2B.3,3C.2,3D.3,2

19.下列语句组中,正确的是()

A.char*s;s="Olympic";B.chars[7];s="Olympic";

C.char*s;s={"Olympic"};D.chars[7];s={"Olympic"};

20.有说明struct{charname[15],sex;intage;floatscore;}stu,*p=&stu;

以下语句中正确的是()。

A.scanf(“%c”,p->sex);B.scanf(“%s”,stu.name);

C.scanf(“%d”,stu.age);D.scanf(“%f”,p->score);

1.程序的运行结果。

voidmain()

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

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf(“\na=%d,b=%d”,a,b);

}

2.下面程序的运行结果第一行:

,第二行:

#include

intfun(char*a,char*b)

{intm=0,n=0;

while(*(a+m)!

='\0')m++;

while(b[n])

{*(a+m)=b[n];m++;n++;}

*(a+m)='\0';returnm;

}

voidmain()

{chars1[20]="yes",s2[5]="no";

printf("%d\n",fun(s1,s2));

puts(s1);}

3.程序的运行结果。

intfun(int*s,intt,int*k)

{inti;

*k=0;

for(i=0;i

if(s[*k]

returns[*k];}

main()

{inta[10]={6,7,9,-10,30,-4,98,31,-1,7},k,y;

y=fun(a,10,&k);

printf("%d,%d\n",k,y);

}

4.程序的运行结果。

#include

voidfun(intx[],intn,inty[],intm)

{inti=0,j,t;

for(i=0;i

{

for(j=0;j

if(x[j]>y[i])break;

for(t=n+i;t>j;t--)x[t]=x[t-1];

x[j]=y[i];

}

}

main()

{inta[10]={10,20,30,40,50};

intb[5]={6,27,48,59,80},k;

fun(a,5,b,5);

for(k=0;k<4;k++)

printf("%d",a[k]);

printf("\n");

}

5.程序的运行结果。

#include

intfun(char*s,char*t)

{

while(*s&&*s==*t)s++,t++;

return*s-*t;

}

main()

{charstr1[80],str2[80],k;

gets(str1);

gets(str2);

k=fun(str1,str2);

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

}

输入:

ab+12

AB+12

6.以下程序运行时输出结果是。

#include

main()

{inti;

for(i=0;i<5;i++)

switch(i++)

{defult:

printf(“A”);break;

case1:

case2:

printf(“%d”,i++);

case3:

printf(“X”);

break;

}

}

7.程序的运行结果为

voidc_d(inta[],intn,int*c,int*d);

main()

{inti,a[]={2,4,1,6,7,32,45,75,45,90},c,d;

c_d(a,10,&c,&d);

printf("c=%dd=%d",c,d);

}

voidc_d(inta[],intn,int*c,int*d)

{inti;

*c=*d=a[0];

for(i=0;i

{if(*c

if(*d>a[i])*d=a[i];}

}

 

8.程序输出结果为。

voidfun(char*s1,char*s2)

{intj;char*p=s1,*q;

while(*p)

{if(*p>='0'&&*p<='9')

{*s2=*p;s2++;

q=p;

while(*q){*q=*(q+1);q++;}

}

elsep++;

}

*s2='\0';

}

main()

{charstr1[20]="A12D34ef5",str2[20];

fun(str1,str2);

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

}

 

1.编程计算下面的公式的值,其中n的值由键盘输入

s=1!

+2!

+3!

+…+n!

#include

intmain()

{floats,t;

inti=1,n;

scanf(“%d”,&n);

;

t=1;

while(i<=n)

{t=;

s=s+t;

i=i+1;

}

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

}

2.编写程序,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。

#include

main()

{

intn,s,sum=0;

scanf("%d",&n);

for(inti=1;i<=n;i++)

{

____________;

for(intj=1;j<=i;j++)

_____________;

sum+=s;

}

printf("%d",sum);

}

3.以下程序调用invert函数按逆序重新放置a数组中元素的值。

a数组中的值在main函数中读入。

#include

#defineN10

intinvert(int*s,inti,intj)

{intt;

if(i

{t=*(s+i);*(s+j)=(s+j);*(s+j)=t;

invert(s,________,j-1);}

}

main()

{inta[N],i;

for(i=0;i

invert();

for(i=0;i

printf("\n");}

4.以下程序的功能是:

统计一个字符串中数字字符"0"到"9"各自出现的次数,统计结果保存在数组count中。

例如,如果字符串为"lenterschar4543123564879ffgh",则统计结果为:

1:

22:

13:

24:

35:

26:

17:

18:

19:

1。

试完善程序以达到要求的功能。

#include

voidfun(char*t,intcount[])

{char*p=t;

while()

{if(*p>='0'&&*p<='9')

count[]++;

p++;

}

}

voidmain()

{chars[80]="1enterschar4543123564879ffgh";intcount[10]={0},i;

fun(s,);

for(i=0;i<10;i++)

if(count[i])printf("%d:

%d",i,count[i]);

}

5.下面的程序将名为f1.dat的文件拷贝到f2.dat中。

#include

main()

{FILE*fp1,*fp2;

charc;

fp1=fopen(“fp1.dat”,”rb”);

fp2=fopen();

c=fgetc(fp1);

while(c!

=EOF)

{fputc(,fp2);

;

}

fclose(fp1);fclose(fp2);

}

6.以下程序的功能是实现:

从键盘上输入一个字符串,把该字符串中的字母变成小写字母,其它字符不变,并写到文件test.dat中。

如输入为abc23XYZ45Az?

,写入文件的内容为:

abc23xyz45az?

请填空。

#include

main()

{FILE*fp;

charstr[80];inti=0;

if((fp=fopen("test.dat",))==NULL)

{printf("can'topenthisfile.\n");exit(0);}

printf("inputastring:

\n");

gets(str);

while(str[i])

{if()

str[i]+=32;

fputc();

i++;

}

fclose(fp);

}

1编写程序找出1000以内的完数,所谓完数是指一个数等于其各因子之和。

例如6是一个完数,因为6=1+2+3。

2用循环控制从键盘输入12个整数并存放在一个4×3的数组中,求各列元素的平均值保存在一个一维数组中,并输出结果。

3.写一个函数实现字符串的逆置。

例:

若参数str原串为:

12AB34xyzCD,则结果为:

DCzyx43BA21,返回值为串长。

(不得用库函数)

函数头如下:

intreverse(char*str)

4.写一个函数从一个字符串中取出其中的数字字符作为结果串。

若参数str为:

C65Aabc?

?

+TdV34+,则取出的结果串参数des为:

6534。

函数头如下:

char*subdig(char*str,char*des)

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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