C语言程序设计阅读程序题库.docx
《C语言程序设计阅读程序题库.docx》由会员分享,可在线阅读,更多相关《C语言程序设计阅读程序题库.docx(24页珍藏版)》请在冰豆网上搜索。
C语言程序设计阅读程序题库
阅读程序题
导读:
学会阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。
读者通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。
如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。
程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。
习题基本上是按照教材的章节来安排的,读者可以根据学习的进度选择部分习题。
【2.1】以下程序的输出结果是。
main()
{floata;
printf("%g",a);
}
A)0.00000e+00B)0.0C)1.00000e-07D)0
【2.2】下面程序的输出结果是____。
#include
main()
{intx=10;
{intx=20;
printf("%d,",x);
}
printf("%d\n",x);
}
A)10,20B)20,10C)10,10D)20,20
【2.3】以下程序的输出结果是____。
main()
{unsignedintn;
inti=-521;
n=i;
printf("n=%u\n",n);
}
A)n=-521B)n=521C
【2.4】以下程序的输出结果是。
main()
{intx=10,y=10;printf("%d%d\n",x――,――y);
}
A)1010B)99C)910D)109
【2.5】以下程序的输出结果是____。
main()
{intn=1;
printf("%d%d%d\n",n,n++,n--);
}
A)111B)101C)110D)121
【2.6】以下程序的输出结果是____。
main()
{intx=0x02ff,y=0x0ff00;
printf("%d\n",(x&y)>>4|0x005f);
}
A)127B)255C)128D)1
【2.7】以下程序的输出结果是____。
main()
{inta=1;
charc='a';
floatf=2.0;
printf("%d\n",(!
(a==0),f!
=0&&c=='A'));
}
A)0B)1
【2.8】下面程序的输出结果是____。
main()
{inta=1,i=a+1;
do
{a++;
}while(!
~i++>3);
printf("%d\n",a);
}
A)1B)2C)3D)4
【2.9】下面程序的输出结果是____。
main()
{inta=111;
a=a^00;
printf("%d,%o\n",a,a);
}
A)111,157B)0,0C)20,24D)7,7
【2.10】下面程序的输出结果是____。
main()
{chars[12]="abook";
printf("%.4s",s);
}
A)abook!
B)abook!
<四个空格》
C)aboD)格式描述错误,输出不确定
【2.11】下面程序的输出结果是____。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A)a=12b=34B)a=123b=45C)a=12b=345D)语句右错误
【2.12】以下程序段的输出结果是。
inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%db=%dc=%d\n",a,b,c);
A)a=10b=50c=10B)a=10b=30c=10
C)a=50b=30c=10D)a=50b=30c=50
【2.13】以下程序的输出结果是。
main()
{inta=0,b=1,c=0,d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)d=15;
elsed=25;
printf("d=%d\n",d);
}
A)d=10B)d=15C)d=20D)d=25
【2.14】下面程序的输出结果为。
main()
{inta=1,b=0;
switch(a)
{case1:
switch(b)
{case0:
printf("**0**");break;
case1:
printf("**1**");break;
}
case2:
printf("**2**");break;
}
}
A)**0**B)**0****2**C)**0****1****2**D)有语法错误
【2.15】以下程序的输出结果是。
main()
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{case'1':
v1++;
case'3':
v3++;
case'2':
v2++;
default:
v4++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1
C)v1=5,v2=8,v3=6,v4=1D)v1=4,v2=7,v3=5,v4=8
【2.16】下面程序的输出是。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
【2.17】下面程序的输出是____。
main()
{intnum=0;
while(num<=2)
{num++;
printf("%d\n",num);
}
}
A)1B)1C)1D)1
222
33
4
【2.18】下面程序的输出结果是____。
main()
{inta=1,b=0;
do
{switch(a)
{case1:
b=1;break;
case2:
b=2;break;
default:
b=0;
}
b=a+b;
}while(!
b);
printf("a=%d,b=%d",a,b);
}
A)1,2B)2,1C)1,1D)2,2
【2.19】从键盘上输入"446755"时,下面程序的输出是____。
#include
main()
{intc;
while((c=getchar())!
='\n')
switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf("\n");
}
A)888988B)668966C
【2.20】下面程序的输出结果是____。
main()
{intk=0;
charc='A';
do
{switch(c++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;contiue;
case'E':
k=k+10;break;
default:
k=k/3;
}
k++;
}while(c<'C');
printf("k=%d\n",k);
}
A)k=1B)k=2C)k=3D)k=4
【2.21】下面程序的输出结果是____。
main()
{intx,i;
for(i=1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d",x);
}
}
A)3981B)4284C)2668D)2870
【2.22】下面程序的输出结果是____。
#include
main()
{inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf("%d\n",k);
}
A)20B)21C)22D)23
【2.23】假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是____。
#include
main()
{floatx,y,z;
scanf("%f,%f",&x,&y);
z=x/y;
while
(1)
{if(fabs(z)>1.0)
{x=y;
y=z;
z=x/y;
}
elsebreak;
}
printf("%f\n",y);
}
A)1.500000B)1.600000C)2.000000D)2.400000
【2.24】下面程序的输出结果是____。
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<-3;j++)
{if(j%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
A)x=4B)x=8C)x=6D)x=12
【2.25】下面程序的输出结果是____。
main()
{inti,j,k=10;
for(i=0;i<2;i++)
{k++;
{intk=0;
for(j=0;j<=3;j++)
{if(j%2)continue;
k++;
}
}
k++;
}
printf("k=%d\n",k);
}
A)k=4B)k=8C)k=14D)k=18
【2.26】下面程序的输出结果是____。
#include
main()
{intn[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[i+1][j+1]+=n[i][j];
printf("%d\n",n[i][j]);
}
A)14B)0C)6D)不确定
【2.27】下面程序的输出结果是____。
#include
main()
{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};
inti,j,n;
n=9;
i=n/5;
j=n-i*5-1;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
A)6B)-3C)2D)不确定
【2.28】下面程序的输出结果是____。
intm[3][3]={{1},{2},{3}};
intn[3][3]={1,2,3};
main()
{printf("%d\n",m[1][0]+n[0][0]);/*①*/
printf("%d\n",m[0][1]+n[1][0]);/*②*/
}
①A)0B)1C)2D)3
②A)0B)1C)2D)3
【2.29】下面程序的输出结果是____。
#include
main()
{chars1[50]={"somestring*"},s2[]={"test"};
printf("%s\n",strcat(s1,s2));
}
A)somestring*B)test
C)somestritestD)somestring*test
【2.30】下面程序的输出结果是____。
#include
f(char*s)
{char*p=s;
while(*p!
='\0')
p++;
return(p-s);
}
main()
{printf("%d\n",f("ABCDEF"));
}
A)3B)6C)8D)0
【2.31】下面程序的输出结果是____。
#include
#include
main()
{charstr[100]="Howdoyoudo";
strcpy(str+strlen(str)/2,"esshe");
printf("%s\n",str);
}
A)HowdoyoudoB)essheC)HowareyouD)Howdoesshe
【2.32】下面程序的输出结果是____。
#include
func(inta,intb)
{intc;
c=a+b;
return(c);
}
main()
{intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
A)11B)20C)21D)31
【2.33】下面程序的输出结果是____。
#include
voidfun(int*s)
{staticintj=0;
do
{s[j]+=s[j+1];
}while(++j<2);
}
main()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
A)35756B)23445C)35745D)12345
【2.34】下面程序的输出结果是____。
#include
intk=1;
main()
{inti=4;
fun(i);
printf("\n%d,%d",i,k);/*①*/
}
fun(intm)
{m+=k;k+=m;
{chark='B';
printf("\n%d",k-'A');/*②*/
}
printf("\n%d,%d",m,k);/*③*/
}
①A)4,1B)5,6C)4,6D)A,B,C参考答案都不对
②A)1B)-59C)-64D)A,B,C参考答案都不对
③A)5,66B)1,66C)5,6D)A,B,C参考答案都不对
【2.35】下面程序的输出结果是____。
#include
fun(intn,int*s)
{intf1,f2;
if(n==1||n==2)
*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{intx;
fun(6,&x);
printf("%d\n",x);
}
A)6B)7C)8D)9
【2.36】下面程序的输出结果是____。
intw=3;
main()
{intw=10;
printf("%d\n",fun(5)*w);
}
fun(intk)
{if(k==0)return(w);
return(fun(k-1)*k);
}
A)360B)3600C)1080D)1200
【2.37】下面程序的输出结果是____。
#include
funa(inta)
{intb=0;
staticintc=3;
a=c++,b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=funa(a++);
printf("%d\n",k);
}
A)3B)0C)5D)4
【2.38】下面程序的输出结果是____。
#include
voidnum()
{externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
main()
{inta=7,b=5;
x=a-b;
y=a+b;
num();
printf("%d,%d\n",x,y);
}
A)12,2B)5,25C)1,12D)输出不确定
【2.39】下面程序的输出结果是____。
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
}
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
}
A)777B)71013C)7911D)789
【2.40】下面程序的输出结果是____。
#include
try()
{staticintx=3;
x++;
return(x);
}
main()
{inti,x;
for(i=0;i<=2;i++)
x=try();
printf("%d\n",x);
}
A)3B)4C)5D)6
【2.41】下面程序的输出结果是____。
#include
main()
{intx=1;
voidf1(),f2();
f1();
f2(x);
printf("%d\n",x);
}
voidf1(void)
{intx=3;
printf("%d",x);
}
voidf2(x)
intx;
{printf("%d",++x);
}
A)111B)222C)333D)321
【2.42】下面程序的输出结果是____。
#include
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf("%d\n",SUB(a++,b++));
}
A)12B)15C)16D)20
【2.43】下面程序的输出结果是____。
main()
{inta[]={1,2,3,4,5,6};
int*p;
p=a;
printf("%d",*p);
printf("%d",*(++p));
printf("%d",*++p);
printf("%d",*(p--));
p+=3;
printf("%d%d",*p,*(a+3));
}
A)123354B)123456C)122345D)123445
【2.44】下面程序的输出结果是____。
main()
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p=a;
p+=6;
printf("%d",*p);/*①*/
printf("%d",*(*(a+6)));/*②*/
printf("%d",*(a[1]+=2));/*③*/
printf("%d",*(&a[0][0]+6));/*④*/
}
A)7777B)②句语法错误C)③句语法错误D)④句语法错误
【2.45】下面程序的输出结果是____。
#defineFMT"%X\n"
#include
main()
{staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf(FMT,a[2][2]);/*①*/
printf(FMT,*(*(a+1)+1));/*②*/
}
①A)9B)11C)AD)B
②A)6B)7C)8D)前面三个参考答案均是错误的
【2.46】下面程序的输出结果是____。
#include
main()
{inta[]={1,2,3,4,5};
intx,y,*p;
p=&a[0];
x=*(p+2);
y=*(p+4);
printf("%d,%d,%d\n",*p,x,y);
}
A)1,3,5B)1,2,3C)1,2,4D)1,4,5
【2.47】下面程序的输出结果是____。
voidive(x,n)
intx[],n;
{intt,*p;
p=x+n-1;
while(x
{t=*x;
*x++=*p;
*p--=t;
}
return;
}
main()
{inti,a[]={1,2,3,4,5,6,7,8,9,0};
ive(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
A)1234567890B)0987654321
C)1357924680D)0864297531
【2.48】下面程序的输出结果是____。
#include"string.h"
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1{t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{staticchar*p="1234567";
fun(p,strlen(p));