C复习题阅读程序题.docx

上传人:b****9 文档编号:26043161 上传时间:2023-06-17 格式:DOCX 页数:27 大小:19.82KB
下载 相关 举报
C复习题阅读程序题.docx_第1页
第1页 / 共27页
C复习题阅读程序题.docx_第2页
第2页 / 共27页
C复习题阅读程序题.docx_第3页
第3页 / 共27页
C复习题阅读程序题.docx_第4页
第4页 / 共27页
C复习题阅读程序题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C复习题阅读程序题.docx

《C复习题阅读程序题.docx》由会员分享,可在线阅读,更多相关《C复习题阅读程序题.docx(27页珍藏版)》请在冰豆网上搜索。

C复习题阅读程序题.docx

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;

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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