C复习题阅读程序题.docx
- 文档编号:26043161
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:19.82KB
C复习题阅读程序题.docx
《C复习题阅读程序题.docx》由会员分享,可在线阅读,更多相关《C复习题阅读程序题.docx(27页珍藏版)》请在冰豆网上搜索。
C复习题阅读程序题
1、以下程序执行时输出结果为2.0,3.5
2.00,3.50。
#include
#definep3.5
intmin(intx,inty)
{
2→X
3→y
intz;
if(x z=x; else z=y; 2→x returnz; } voidmain() { intix=2.5; doubledz; floatfx=2.5,fy=3,fz; fz=min(fx,fy); dz=p*(float)(ix/2); printf("\n%.2f,%.2f",fz,dz); } 2、以下程序运行后输出结果是Yellow 。 enumcolor{BLACK,YELLOW,BLUE,GREEN,WHITE}; main() { char*colorname[]={“Black”,“Yellow”, “Blue”,“Green”,“White”}; enumcolorc1=GREEN,c2=BLUE; printf(“%s”,colorname[c1-c2]); } 3、以下程序运行后输出结果的第一行是112 ,第二行是358 。 intf(intn) { staticintf1,f2,f; if(n==0)returnf1=1; if(n==1)returnf2=1; f=f1+f2; f1=f2; f2=f; returnf; } main() { inti; for(i=0;i<6;i++){ if(i%3==0)printf("\n"); printf(“%d”,f(i)); } } 4、以下程序运行后输出结果的第一行是1010 ,第二行是22 。 voidchange(intx,intm) {staticcharch[]={'0','1','2','3','4','5','6','7','8','9'}; inti=0,r; charb[80]; while(x) {r=x%m;x/=m; b[i++]=ch[r]; } for(--i;i>=0;i--) printf("%c",b[i]); } main() {inta,b; change(10,2); printf("\n"); change(10,4); } 5、以下程序运行后输出结果的第一行是1,2,3, ,第二行是0,4,5,000 第三行是0,0,0,004。 main() { intm,n,x[3][3]={0},k=1; for(m=0;m<3;m++) for(n=0;n<3;n++) { if(m%2)break; if(m>n)continue; x[m][n]=k++; } for(m=0;m<3;m++){ for(n=0;n<3;n++)pprintf("%d,",x[m][n]); printf("\n"); } } 6、以下程序运行时输出b[2]的值是6 b[4]的值是15 。 #include voidsum(int*pa,int*pb,intn) {inti; if(n==1)*pb=*pa; else {for(i=0;i *(pb+n-1)+=*(pa+i); sum(pa,pb,n-1); } } main() {inta[5]={1,2,3,4,5}; intb[5]={0},i; sum(a,b,5); printf("%d,%d",b[2],b[4]); } 7、以下程序运行后输出结果的第一行是ABCD ,第二行是DCBA,第三行是DCBADBAC。 #include structnd{ charname[2]; intage; structnd*next; }a[4]={{"A",19},{"B",21},{"C",18},{"D",23}},*hd; main() {inti,j,k; tructnd*p1,*p2,*p3; hd=&a[3]; for(i=3;i>0;i--) a[i].next=&a[i-1]; a[i].next=NULL; for(i=0;i<4;i++) printf("%s",a[i].name); printf("\n"); p1=p3=hd; while(p1! =NULL) {printf("%s",p1->name); p3=p1;p1=p1->next; } printf("\n"); p1=hd;p2=p1->next; p1->next=p2->next; p3->next=p2; p2->next=NULL; p1=hd; while(p1! =NULL){ printf("%s", p1->name); p1=p1->next; } } 8、下列程序运行后的输出是 5 。 intfun(intfirst,intsecond) { returnfirst++*second++; } main() { intp=1,r; r=p+++fun(p++,p++); printf("%d\n“,r); } 9、若下列程序段中的变量a、z、和p分别存储在主存FFD2H、FFD4H、和FFD8H处,则执行表达式*p++->y后,变量p的值为: 10FFD8H 。 main() { inta=4; struct{ intx,*y; }z,*p=&z; z·x=10; z·y=&a; …… } 10、以下程序运行后输出结果是3 。 #include intf(intx,inty) {if(x returnx,y; else returny,x; } main() { printf("%d",f(2,3)); } 11、以下程序运行后输出结果的第一行是2341 第二行是0 。 #include voidf(int*a,intn,inttimes) {inti,t=a[0]; for(i=0;i a[n-1]=t;times++; } main() {inta[5]={1,2,3,4},i; f(a,4,a[4]); for(i=0;i<4;i++)printf("%d",a[i]); printf("\n%d",a[4]); } 12、以下程序运行后输出结果的第一行是6 第二行是15 。 #include intf() {inti,s=0; for(i=1;i<=3;i++) {staticinti=1; s=s+i;i++; } returns; } main() {inti; for(i=0;i<2;i++) printf("%d\n",f()); } 13、以下程序运行后输出结果的第一行是2 第二行是12 。 #include intf(intn,intx) {if(n==1) returnx; elsereturnf(n-1,x+2)+x; } main() { printf("%d\n",f(1,2));printf("%d",f(3,2)); } 14、以下程序运行后输出结果的第一行是149 , 第二行是238 , 第三行是567 。 #include intf(int(*a)[5],intm,intn) {inti,j,k; a[0][0]=m; for(k=1;k {i=k;j=0; a[i][j]=++m; while(j while(i>0)a[--i][j]=++m; } } main() {inti,j,x[5][5]={0}; f(x,1,3); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d",x[i][j]); printf("\n"); } } 15、以下程序运行后输出结果的第一行是C 第二行是this,VC,C 。 #include #include voidss(chara[][10],int*m,charb[][10],int*n) {inti,j,k; for(i=0;i<*m;i++){ for(j=0;j<*n;j++) if(strcmp(a[i],b[j])==0){ for(k=i;k<*m-1;k++) strcpy(a[k],a[k+1]); *m=*m-1;i--;break;} } for(i=0;i<*m;i++) strcpy(b[i+*n],a[i]); *n=*n+*m; } main() {chara[][10]={"this","C"}; charb[10][10]={"this","VC"}; inti,m=2,n=2; ss(a,&m,b,&n); for(i=0;i printf("%s",a[i]); printf("\n"); for(i=0;i printf("%s",b[i]); } 16、下列程序运行后的输出是 9 。 main() { union{ inti[2]; longk; charc[4]; }r={071,070},*s=&r; printf(“%c”,s->c[0]); } 17、下列程序运行后的输出是 10,20 。 voidswap(int*x,int*y) { inttemp; temp=*x; *x=*y; *y=temp; } voidSWAP(intx,inty) { swap(&x,&y); } main() { inta=10,b=20; SWAP(a,b); printf(“%d,%d\n”,a,b); } 18、下列程序运行后的输出是 14 。 main() { intf1(int),f2(int)sum(int(*f)(int),int,int); printf(“%d\n”,sum(f1,1,2)+sum(f2,1,2)); } intsum(int(*f)(int),intm,intn) { intk,sum=0; for(k=m;k<=n;k++) sum+=(*f)(k)*(*f)(k); returnsum; } intf1(intx) { returnx+1; } intf2(intx) { returnx-1; } 19、执行以下程序后,输出结果的第一行是77 第二行是30 最后一行是101 intmain() {intx=30; { intx=77; printf(“%d\n”,x); } printf(“%d\n”,x); while(x++<33){ intx=100; x++; printf(“%d\n”,x); } } 20、运行以下程序后,输出结果的第一行是her 第二行是teac 第三行是the 。 #include #include #include structnode{ charinfo[5]; structnode*link; }; main() {structnode*create(char*); voidprint(structnode*); structnode*head=NULL; charc[]=“theteacher”; head=create(c); print(head); } structnode*create(char*s) {intk; structnode*h,*p; h=NULL; while(*s){ k=0; p=(structnode*)malloc(sizeof(structnode)); while(k<4&&*s) p->info[k++]=*s++; p->info[k]=‘\0’; p->link=h; h=p; } returnh; } voidprint(structnode*head) { structnode*p=head; while(p! =NULL){ puts(p->info); p=p->link; } } 21、运行以下程序后,输出结果的第一行是781 第二行是692 第三行是543 main() {inti=0,j,k=1,n=3,arr[20][20]; while(i for(j=i;j for(j=n-i-2;j>=i;j--)arr[n-i-1][j]=k++; for(j=n-i-2;j>=i;j--)arr[j][i]=k++; for(j=i+1;j<=n-i-2;j++)arr[i][j]=k++; i++;} if(n%/2)arr[i][i]=k; for(i=0;i for(j=0;i printf(“\n”); } } 22、运行以下程序后,输出结果的第一行是1010 第二行是12 。 voidchange(intx,intm) { ch[]={‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’},b[80]; inti=0;r; while(x){ r=x%m;x/=m; b[i++]=ch[r]; } for(--i;i>=0;i--) printf(“%c”,b[i]); } main() {inta,b; change(10,2); printf(“\n”); change(10,8); } 23、下面程序的输出结果是3,4,2,4, #include inta[][2]={1,2,3,4}; voidmain() {int(*p)[2],i; p=a; printf(“%d,%d,”,p[1][0],(*(p+1))[1]); for(i=0;i<2;i++)printf(“%d,”,*(*(p+i)+1)); } 24、下面程序的输出结果是1 #include intf(intx,inty) {return(y-x);} main() {inta=5,b=6,c=2; int(*g)(int,int)=f; c=(*g)(a,b); printf(“%d\n”,c); } 25、下面程序的输出结果是abcd,bcd efgh,mnpq #include #defineT“%s,%s\n” voidmain() {char*x[]={“abcd”,”efgh”,”mnpq”,”rstu”}; char**y; y=x; ++y; printf(T,*x,*x+1); printf(T,*y,y[1]); } 26、下面程序运行的正确结果是3 #include #defineN5 intfun(char*s,chara,intn) {intj; *s=a; j=n; while(*s returnj; } voidmain() {charc[N+1]; intb; for(b=1;b<=N;b++)*(c+b)=’A’+b+1; printf(“%d\n”,fun(c,’E’,N)); } 27、下面程序运行的正确结果是1,y structtree {intx;charc; }t; func(structtreet) {t.x=10;t.c=‘x’; } voidmain() {t.x=1; t.c=‘y’; func(t); printf(“%d,%c\n”,t.x,t,c); } 28、下面程序运行的正确结果是MNQ structstr1 {charc[5];char*s;}; voidmain() {structstr1s1[2]={“ABCD”,“EFGH”,“IJK”,“LMN”}; structstr2 {structstr1sr;intd; }s2={“OPQ”,“RST”,32767}; structstr1*p[2]; p[0]=&s1[0];p[1]=&s1[1]; printf(“%s”,++p[1]->s); printf(“%c”,s2.sr.c[2]); } 29、以下程序运行时输出结果为3。 #include #defineY2 #defineM(y)((y)+(y)/Y) main() {printf("%d",M(Y)); } 30、以下程序运行时输出结果为126。 #include intfun(intn) {staticintj=1; j*=n++; returnj; } voidmain(void) {intk; for(k=1;k<4;k++) printf("%4d",fun(k)); } 31、以下程序运行时输出结果是2468. #include intf(intn) {if(n<1)return; f(n-2); printf("%d",n); } main() {f(8);} 32、以下程序运行时输出结果第一行是6,5第二行是5,6。 #include #definef(x,y,z)z=x,x=y,y=z voidg(intx,inty) {intz;z=x,x=y,y=z;} main() { inta=6,b=5,c; g(a,b); printf("%d,%d",a,b); a=6;b=5; f(a,b,c); printf("\n%d,%d",a,b); } 33、以下程序运行时输出结果第一行是231第二行是123第三行是312。 #include voidexchang(intx[][3],intn,intm) {inti,k; for(i=0;i<3;i++) {k=x[n][i];x[n][i]=x[m][i];x[m][i]=k;} } main() {inta[3][3]={3,1,2,1,2,3,2,3,1},*p[3],i,j; for(i=0;i<3;i++)p[i]=a[i]; for(i=0;i<2;i++) for(j=0;j<2-i;j++) if(p[j][1] for(i=0;i<3;i++) { for(j=0;j<3;j++)printf("%3d",a[i][j]); printf("\n"); } } 34、执行以下程序段后,输出的第一行是_12345_,输出的第二行是__1817__ #include voidfunc(intm,intn) {if(m else{func(m/n,n);printf("%d",m%n);} } voidmain() {void(*p)(int,int); p=func; (*p)(12345,10);putchar('\n'); (*p)(377,20);putchar('\n'); } 35、执行以下程序段后,在main函数返回之前,全局变量x的值是___,main函数中局部变量y的值是__. #include intx; intfunc(intn) {staticcharm=1; m=m*8;x+=m*n--; return(--n); } voidmain() {inti,y;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题 阅读 程序