c语言习题带答案.docx
《c语言习题带答案.docx》由会员分享,可在线阅读,更多相关《c语言习题带答案.docx(35页珍藏版)》请在冰豆网上搜索。
c语言习题带答案
基本语句练习
1、若有以下程序段D
#include””
voidmain()
{inta=2,b=5;
Printf(“a=%%d,b=%%d\n”,a,b);
}
其输出结果是()
A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d
2、以下程序段C
floata=;printf(“|%6.0f|\n”,a);
其输出结果是()
A、||B、||C、|3|D、|3.|
3、以下程序段的输出结果是()C
floata=;printf(“*%010.2f*\n”,a);
A、**B、**C、**D、**
4、下面语句printf(“|%8.5f|\n”,;的输出结果是()C
A、||B、||C、||D、||
5、若变量都已经正确说明,则以下程序段:
C
a=2;b=3;printf(a>b”***a=%d”:
“###b=%d”,a,b);
A、没有正确的输出格式控制B、输出为:
***a=2
C、输出为:
###b=2D、输出为:
***a=2###b=3
6、执行下列程序时输入1234567,程序的运行结果为()B
#include””
voidmain()
{intx,y;
scanf(“%2d%2ld”,&x,&y);
printf(“%d\n”,x+y);
}
A、17B、46C、15D、9
7、已知chara;intb;floatc;doubled;则表达式a*b+c-d结果为()型。
A
A、doubleB、intC、floatD、char
8、根据定义和数据的输入方式,输入语句的正确形式是()B
已有定义floatf1,f2;
数据的输入方式:
A、scanf(“%f,%f”,&f1,&f2);B、scanf(“%f%f”,&f1,&f2);
C、scanf(“%3.2f%2.1f”,&f1,&f2);D、scanf(“%3.2f,%2.1f”,&f1,&f2);
9、以下程序的输出结果为()*,*
#include””
voidmain()
{printf(“*%f,%4.3f*\n”,,;}
10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结构的是()。
B
A、顺序结构B、嵌套结构C、循环结构D、选择结构
11、若有语句:
inta=7;floatx=,y=;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A
A、B、2.750000C、D、
12、设有说明语句:
intx=43,y=0;charch=’A’;则表达式x>=y&&ch<’B’&&!
y的值是()。
D
A、语法错误B、0C、假D、1
13、若a为int类型,且其值为3,则执行完表达式a+=a*a后,a的值是_______。
12
14、inta;表达式(a=3*4,a*2),a+8的值为_______。
20
15、表达式*(1/2)的值为。
0
16、下列符号中,可以作为变量名的是()。
C
A、3aBB、$XC、_bD、if
17、设intx=1,y=1;表达式(!
x||y)的值是()。
B
A、0B、1C、2D、-1
18、下列标识符中,合法的标识符是()。
C
A、—abc1B、8abcC、_abc1D、for
19、下列关系表达式中结果为假的是()。
C
A、0!
=1B、2<=8C、(a=2*2)==2D、y=(2+2)==4
选择结构
1、对下述程序,正确的判断是()A
#include””
voidmain()
{intx,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y;y=x;
else
x++;y++;
printf(“%d,%d”,x,y);
}
A、有语法错误,不能通过编译B、若输入数据3和4,则输出4和5
C、若输入数据4和3,则输出3和4D、若输入数据4和3,则输出4和4
2、以下程序的输出结果是()B
#include””
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);
}
A、a=1,b=0B、a=2,b=1C、a=1,b=1D、a=2,b=2
3、以下程序的输出结果是()C
#include””
voidmain()
{inta=2,b=—1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);
}
A、0B、1C、2D、3
4、以下程序的输出结果是()A
#include””
voidmain()
{intw=4,x=3,y=2,z=1;
Printf(“%d\n”,(wzx));
}
A、1B、2C、3D、4
5、以下程序的运行结果是()B
#include””
voidmain()
{intk=2;
switch(k)
{case1:
prinft(“%d\n”,k++);
break;
case2:
printf(“%d\n”,k++);
case3:
printf(“%d\n”,k++);
break;
case4:
printf(“%d\n”,k++);
default:
printf(“Full!
\n”);
}
}
A、1B、2C、2D、3
3322
6、请写出以下程序的输出结果()1
#include””
voidmain()
{inta=100;
if(a>100)
printf(“%d\n”,a>100);
else
printf(“%d\n”,a<=100);
}
7、当a=1,b=2,c=3时,以下语句执行后,a,b,c中的值分别是——、——、——。
322
if(a>c)
b=a;a=c;c=b;
8、若变量已经正确定义,以下语句段的输出结果是——。
*#
x=0;y=2;z=3;
switch(x)
{
case0:
switch(y==2)
{case1:
printf(“*”);break;
case2:
printf(“%”);break;
}
case1:
switch(x)
{
case1:
printf(“$”);
case2:
printf(“*”);break;
Default:
printf(“#”);
}
}
9、如下程序的输出结果是()C
#include””
voidmain()
{inta=12,b=5,c=—3;
if(a>b)
if(b<0)c=0;
elsec++;
printf(“%d\n”,c);
}
A、0B、1C、-2D、-3
10、以下程序运行后,如果从键盘输入5,则输出结果是()B
#include””
voidmain()
{intx;
scanf(“%d”,&x);
if(x――<5)printf(“%d”,x);
elseprintf(“%d”,x++);
}
A、3B、4C、5D、6
11、以下程序的输出结果是()A
#include””
voidmain()
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break:
}
}
printf(“%d\n”,m);
}
A、1B、2C、3D、4
12、两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()A
#include””
voidmain()
{intx;
scanf(“%d”,&x);
if(x++>5)printf(“%d”,x);
elseprintf(“%d\n”,x——);}
A、7和5B、6和3C、7和4D、6和4
13、以下程序的输出结果是()C
#include””
voidmain()
{inta=-1,b=1,k;
if((++a<0)&&!
(b――<=0))
printf(“%d%d\n”,a,b);
else
printf(“%d%d\n”,b,a);
}
A、-1B、0C、1D、0
1100
14、以下关于运算符优先顺序的描述中正确的是()C
A、关系运算符<算术运算符<赋值运算符<逻辑运算符
B、逻辑运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑运算符
16、若从键盘输入58,则以下程序输出的结果是()585858
#include””
voidmain()
{inta;
scanf(“%d”,&a);
if(a>50)printf(“%d”,a);
if(a>40)printf(“%d”,a);
if(a>30)printf(“%d”,a);
}
17、以下程序输出的结果是()0
#include””
voidmain()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d\n”,d);
}
18、以下程序输出的结果是()20,0
#include””:
voidmain()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d,%d\n”,x,y);
}
19、inta=2,b=3,c=4;则执行语句a*=16+(b++)–(++c);后a的值是()。
28
20、以下程序的输出结果是()2
#include””
main()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);
}
20、若从键盘输入B,则以下程序输出的结果是______>=60<60
main()
{chargrade;scanf("%c",&grade);
case‘A’:
printf(">=85\t");
case’B’:
case’C’:
printf(">=60\t");
case’D’:
printf("<60\t");
}
循环结构
1、下述for循环语句()B
inti,k;
for(i=0,k=-1;k=1;i++,k++)
printf(“***”);
A、判断循环结束的条件非法B、是无限循环C、只循环一次D、一次也不循环
2、以下程序的输出结果是()A
#include””
voidmain()
{inti;
for(i=1;i<=5;i++)
{if(i%2)
putchar(‘<’);
else
continue;
putchar(‘>’);
}
putchar(‘#’);
}
A、<><><>#B、><><><#C、<><>#D、><><#
3、以下程序段的输出结果是()C
intx=3;
do
{printf(“%d”,x-=2);}while(!
(--x));
A、1B、30C、1-2D、死循环
4、以下程序的输出结果是()B
#include””
voidmain()
{inty=10;
for(;y>0;y――)
if(y%3==0)
{printf(“%d”,――y);
continue;
}
}
A、741B、852C、963D、8754321
5、若x是int型变量,以下程序段的输出结果是()D
for(x=3;x<6;x++)
printf((x%2)(“**%d”):
(“##%d\n”),x);
A、**3B、##3C、##3D、**3##4
##4**4**4##5**5
**5##5
6、以下程序的输出结果是()-1
#include””
voidmain()
{intx=2;
while(x――);
printf(“%d”,x);
}
7、以下程序段的输出结果是()11
inti=0,sum=1;
do
{sum+=i++;}
while(i<5);
printf(“%d\n”,sum);
8、下述程序的运行结果是()s=3
#include””
voidmain()
{ints=0,k;
for(k=7;k>4;k——)
{switch(k)
{case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;
}
}
printf(“s=%d”,s);
}
9、下面程序输出结果是()%@%@%@
#include””
voidmain()
{inta;
for(a=0;a<6;a++)
{if(a%2)
printf(“%%”);
else
continue;
printf(“@”);
}
printf(“\n”);
}
10、以下循环体的执行次数是()C
#include””
voidmain()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j——)printf(“%d\n”,i);
}
A、3B、2C、1D、0
11、以下程序中,while循环的次数是()D
#include””
voidmain()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
}
A、1B、10C、6D、死循环,不能确定次数
12、以下for循环的循环次数()C
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A、无限循环B、循环次数不定C、循环执行4次D、循环执行3次
13、执行下面程序片段的结果是()B
intx=23;
do
{
printf(“%d”,x--);
}while(!
x)
A、321B、23C、没有输出D、死循环
13、下面程序的输出结果是()D有难度
#include””
voidmain()
{intk,j,m;
for(k=5;k>=1;k--)
{m=0;
for(j=k;j<=5;j++)
m=m+k*j;
}
printf(“d\n”,m);
}
A、124B、25C、36D、15
14、下面程序的输出结果是()D
#include””
voidmain()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf(“%d%d”,x--,y);
}
A、10192B、9876C、10990D、101091
15、下面程序段的输出结果是()A
a=1;b=2;c=2;
while(a
printf(“%d,%d,%d”,a,b,c);
A、1,2,0B、2,1,0C、1,2,1D、2,1,1
16、若有如下语句,则程序段()B
intx=6;
do{printf(“%d\n”,x-=2);}
while(--x);
A、输出的是1B、输出的是4和1C、输出的是3和0D、死循环
17、下面程序的功能是计算1~10之间的奇数之和与偶数之和,请填空。
#include””
voidmain()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
___________;if(i<=10)b=i+1;
c+=b;
}
printf(“%d”,a);
printf(“%d”,c);
}
18、以下程序的输出结果是()52
#include””
voidmain()
{inti=10,j=0;
do
{j=j+i;
i--;
}while(i>2);
printf(“%d\n”,j);
}
19、有以下程序
#include””
voidmain()
{charc;
while((c=getchar())!
=’’)putchar(--c);
}
程序运行时,如果从键盘输入:
YN则输出结果是();x
20、下面程序段的运行结果是()**
x=2;
do{printf(“*”);x--;}while(x);
21、下面程序的运行结果是()1,-2有难度
#include””
voidmain()
{inty,a;
y=2;a=1;
while(y--!
=—1)
{do{a*=y;a++;}while(y--);}
printf(“%d,%d”,a,y);
}
数组
1、合法的数组说明语句是()B
A、inta[]=”string”;B、inta[5]={0,1,2,3,4};C、chara=”string”;
D、chara[]={0,1,2,3,4,5};
2、调用strlen(“abcd\0ef\0g”)的返回值是()A
A、4B、5C、8D、9
3、若有以下语句,则正确的描述是()B
charx[]=”12345”;
chary[]={‘1’,‘2’,‘3’,‘4’,‘5’};
A、x数组和y数组的长度相同B、x数组的长度大于y数组长度
C、x数组的长度小于y数组长度D、x数组等价于y数组
4、下面程序的运行结果是()ab
charc[5]={‘a’,’b’,’\0’,’c’,’\0’}’
printf(“%s”,c);
5、阅读程序,写出执行结果()Fortan
#include””
voidmain()
{charstr[30];
scanf(“%s”,str);
printf(“%s”,str);
}
运行程序,输入FortanLanguage
6、阅读程序,写出执行结果()0123
#include””
func(intb[])
{intj;
for(j=0;j<4;j++)
b[j]=j;
}
main()
{inta[4],i
func(a);
for(i=0;i<4;i++)
printf(“%d\t”,a[i]);
}
7、下列程序执行后的输出结果是()A
#include””
voidmain()
{chararr[2][4];
strcpy(arr,”you”);strcpy(arr[1],“me”);
arr[0][3]=’&’;
printf(“%s\n”,arr);
}
A、you&meB、youC、meD、err
8、有如下程序的输出结果是()D
#include””
voidmain()
{intn[5]={0,0,0},i,k=2;
for(i=0;iprintf(“%d\n”,n[k]);
}
该程序的输出结果是()
A、不定值B、2C、1D、0
9、如下程序的输出结果是()A
#include””
voidmain()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j
printf(“%d\n”,s);
}
A、14B、19C、20D、21
10、当执行下面的程序是,如果输入ABC,则输出的结果是()A
#include””
#include””
voidmain()
{charss[10]=”1,2,3,4,5”;
get(ss);strcat(ss,“6789”);printf(“%s\n”,ss);
}
A、ABC6789B、ABC67C、12345ABC6D、ABC456789
11、以下程序的输出结果是()A
#include””
f(intb[],intm,intn)
{inti,s=0;
for(i=m;ireturns;
}
main()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf(“%d\n”,x);
}
A、10B、18C、8D、15
12、以下程序函数sort()功能是对数组a中的数据进行由大到小的排序。
C
#include”:
”
voidsort(inta[],intn)
{inti,j,t;
for(i=0;ifor(j=i+1;jif(a[i]}
voidmain()
{int