C++期末习题 南财.docx
- 文档编号:29476641
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:15
- 大小:20.80KB
C++期末习题 南财.docx
《C++期末习题 南财.docx》由会员分享,可在线阅读,更多相关《C++期末习题 南财.docx(15页珍藏版)》请在冰豆网上搜索。
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];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+期末习题 南财 C+ 期末 习题