C语言程序设计上机及习题集.docx
《C语言程序设计上机及习题集.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上机及习题集.docx(34页珍藏版)》请在冰豆网上搜索。
C语言程序设计上机及习题集
C语言程序设计复习题
一、选择题
(1)设有intx=11;则表达式(x++*1/3)的值是
A)3B)4C)11D)12
(2)下列程序的输出结果是
A)3B)3.2C)0D)3.07
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
(3)下列程序执行后的输出结果是(小数点后只写一位)
A)666.06.0B)666.76.7
C)666.06.7D)666.76.0
main()
{doubled;floatf;lingl;inti;
i=f=1=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
}
(4)下列变量定义中合法的是
A)short_a=1-.le-1;B)doubleb=1+5e2.5;
C)longdo=0xfdaL;D)float2_and=1-e-3;
(5)设intx=1,y=1;表达式(!
x||y--)的值是
A)0B)1C)2D)-1
(6)与y=(x>0?
1:
x<0?
-1:
0);的功能相同的if语句是
A)if(x>0)y=1;B)if(x)
elseif(x<0)y=-1;if(x>0)y=1;
elsey=0;elseif(x<0)y=-1;
elsey=0;
C)y=-1D)y=0;
if(x)if(x>=0)
if(x>0)y=1;if(x>0)y=1;
elseif(x==0)y=0;elsey=-1;
elsey=-1;
(7)以下循环体的执行次数是
A)3B)2C)1D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
(8)以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
(9)下列程序执行后的输出结果是
A)GB)HC)ID)J
main()
{intx='f';printf("%c\n",'A'+(x-'a'+1));}
(10)执行下面的程序段后,变量k中的值为
A)不定值B)33C)30D)10
intk=3,s[2];
s[0]=k;k=s[1]*10;
(11)若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用上
A)a[p-a]B)*(&a[i])C)p[i]D)a[10]
(12)下列程序执行后的输出结果是
A)6B)7C)8D)9
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5];
a=0;b[0]=3;
func(&a,b);printf("%d\n,b[0]);
}
(13)下列程序的运行结果是
A)a=%2,b=%5B)a=2,b=5
C)a=d,b=dD)a=%d,b=%d
#include
main()
{inta=2,c=5;
printf("a=%d,b=%d\n",a,c);}
(14)下列程序执行后的输出结果是
A)3B)6C)9D)随机数
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=p;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
(15)设有数组定义:
chararray[]="China";则数组array所占的空间为
A)4个字节B)5个字节C)6个字节D)7个字节
(16)下列程序的输出结果是
A)4B)6C)8D)10
intb=2;
intfunc(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
(17)在以下四组中,每组有两个分别运算的函数,运算结果相同的是
A)4B)2C)2D)0
main()
{inti,j,m=0,n=0;
for(i=p;i<2;i++)
for(j=0;j<2;j++)
if(j>=i)m=1;n++;
printf("%d\n",n);
}
(18)下列程序的输出结果是
A)5B)6C)7D)8
structabc
{inta,b,c;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0],a+s[1],b;
printf("%d\n",t);
}
(19)设intb=2;表达式(b>>2)/(b>>1)的值是
A)0B)2C)4D)8
(20)在C程序中,可把整型数以二进制形式存放到文件中的函数是
A)fprintf函数B)fread函数C)fwrite函数D)fputc函数
(21)下列程序执行后的输出结果是
A)-32767B)FFFEC)-1D)-32768
main()
{charx=0xFFFF;printf("%d\n",x--);}
(22)若有定义:
floatw;inta,b;则合法的switch语句是
A)switch(w)B)switch(a);
{case1.0:
printf("*\n");{case1printf("*\n");
case2.0:
printf("**\n");case2printf("**\n");
}}
C)switch(b)D)switch(a+b);
{case1:
printf("*\n");{case1:
printf("*\n");
default:
printf("\n");case2:
printf("**\n");
case1+2:
printf("**\n");default:
printf("\n");
}}
(23)以下程序段的执行结果是
A)a=12y=12B)a=12y=12
a=14y=16a=16y=28
a=16y=20
a=18y=24
C)a=12y=12D)a=12y=12
a=14y=26
a=14y=44
inta,y;
a=10;y=0;
do
{a+=2;y+=a;
printf("a=%dy=%d\n",a,y);
if(y>20)break;
{while(a=14);
.
.
.
(24)若有以下调用语句,则不正确的fun函数的首部是
A)voidfun(intm,intx[])B)voidfun(ints,inth[41])
C)voidfun(intp,int*s)D)voidfun(intn,inta)
main()
{…
inta[50],n;
…
fun(n,&a[9]);
…
}
(25)语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A)a\bre\'hi\'y\\\bouB)a\bre\'hi\'y\bou
C)re'hi'youD)abre'hi'y\bou
(说明:
'\b'是退格符)
(26)请选出正确的程序段
A)int*p;B)int*s,k;
scanf("%d",p);*s=100;
……
C)int*s,k;D)int*s,k;
char*p,c;char*p,e;
s=&k;s=&k;
p=&c;p=&c;
*p='a';s=p;
…*s=1;
…
(27)已知指针p的指向如下图所示,则执行语句*--p;后*p的值是
A)30B)20C)19D)29
a[0]
a[1]
a[2]
a[3]
a[4]
10
20
30
40
50
(28)设已有定义:
char*st="howareyou";下列程序段中正确的是
A)chara[11],*p;strcpy(p=a+1,&st[4]);
B)chara[11];strcpy(++a,st);
C)chara[11];strcpy(a,st);
D)chara[],*p;strcpy(p=&a[1],st+2);
(29)下列程序执行后的输出结果是
A)you&neB)youC)meD)err
mai()
{chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s\n",arr);
}
(30)下列程序执行后的输出结果是
A)helloB)helC)hloD)hlm
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!
";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{inti=0;func1(i);printf("\n");}
(31)假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行:
prghellogood<回车>后,程序的输出结果是
A)hellogoodB)hgC)helD)hellogood
main()(intargc,char*argv[])
{inti;
if(argc<-0)return;
for(i=1;i}
(32)下列程序执行后的输出结果是
A)6B)8C)10D)