c语言备考习题及部分答案Word文档下载推荐.docx
- 文档编号:18589052
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:25
- 大小:23.11KB
c语言备考习题及部分答案Word文档下载推荐.docx
《c语言备考习题及部分答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言备考习题及部分答案Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
i++) ;
printf("
%d"
i);
(A) 0 (B) 9 (C) 09 (D) 10
6.C语句for(;
;
){ ……}是指(B )。
(A)无意义 (B)无限循环 (C)循环执行1次 (D)循环执行0次
7.以下程序的输出结果是:
A
main ( )
{ int n = 4
while (n--)printf ("
--n);
}
A)2 0 B)3 1 C)3 2 1 D)2 1 0
8.设int a=1,则执行完循环While(a++<
5);
a的值是:
A)6 B)5 C)1 D)-264
9.在下列for循环中,其循环次数是( B )
for(x=1,y=0;
(y!
=123)&
&
(x<
4);
x++);
A)4 B)3 C)1 D)无数多次
10.有如下程序
main( )
{ int x=1,a=0,b=0;
switch(x){
case 0:
b++;
case 1:
a++;
case 2:
b++;
}
printf(“a=%d,b=%d\n”,a,b);
该程序的输出结果是 ( A)
A) a=2,b=1
B) a=1,b=1
C) a=1,b=0
D) a=2,b=2
11.若有定义float x,y;
int a,b;
则合法的switch语句是(C )
(A)switch(a)
{case 3+x:
printf("
abc"
);
case 4:
123abc"
}
(B)switch(a)
case 3 printf("
case 4 printf("
(C)switch(b)
{default:
case 1:
case 1+2:
1234"
}
(D)switch(a+b);
{case 1+2:
case 1:
default:
12.循环语句for(x=0,y=0;
=123)||(x<
x++);
的循环次数是(C )。
(A)3
(B)4
(C)无限次
(D)不确定次
13.下述程序的输出结果是( B)
#include <
void main()
{int x=9;
for (;
x>
0;
x--)
{if (x%3= =0)
{printf("
--x);
continue;
}
(A)741
(B)852
(C)963
(D)875421
14.假定a和b为int型变量,则执行以下语句后b的值为(D )
a=1;
b=10;
do {b-=a;
a++;
while (b--<
0);
(A)9
(B)-2
(C)-1
(D)8
15.循环语句for (x=0,y=0;
x++);
的循环执行(A )
(A)无限次 (B)不确定次 (C)4次 (D)3次
16.设x和y均为int型变量,则执行下面的循环后,y的值为(C )
for(y=1,x=1;
y<
=50;
y++)
{if (x>
=10) break;
if (x%2==1) {x+=5;
continue;
x-=3;
(A)2
(C)6
17.语句while(!
e==0);
什么时候将会陷入死循环(B )
A)e==0 B)e!
=0 C)e!
=1 D)e!
=-1
18.执行下面程序段的结果是(B )。
int x=23;
do
{ printf("
%2d"
x--);
}while (!
x);
(A)打印出321 (B)打印出23 (C)不打出任何内容 (D)陷入死循环
19.循环语句for(a=0,b=0;
(b!
=45)||(a<
a++);
的循环次数是( D )
(A) 4 (B) 3 (C) 5 (D) 无数多次
20.以下不是死循环的语句( D )。
(A) for ( ;
x ++= i);
(B) while
(1) {x++;
(C) for ( i = 10;
i-- ) sum -= i;
(D) for ( ;
(c = getchar()) !
= ‘\n’;
) sum -= i;
21.若 int x = 3;
且有下面的程序片段,则输出结果为( C )。
do
{ printf ( "
, x -= 2 );
}while ( !
( --x ));
(A) 1 (B) 30 (C) 1-2 (D) 死循环
22.以下程序的输出结果是( A ) 》
main ( )
{ int n = 4 ;
while (n--)
printf ("
}
A)20 B)31 C)321 D)210
23.语句while (!
中的表达式!
E等价于( A ) 。
A)E= =0 B)E!
=1 C)E!
=0 D)E==1
24.以下程序段(C )。
int x=-1;
do {x=x*x;
while (!
A)是死循环 B)循环执行2次 C)循环执行1 次 D)有语法错0
25.对以下程序段,描述正确的是( C) 。
int k=5;
while (k=0) k=k-1;
printf("
k);
A)循环体被执行了5次 B)循环体是无限循环
C)循环体一次也不执行 D)循环 体被执行一次
26.以下语句执行完后i 的值为( A )。
for(x=0,y=3,i=0;
(y>
3)&
x++,y++) i++;
A)0 B)1 C)2 D)3
27.下面程序的运行结果是(C )。
main( )
{int x=0,y=0;
while
(1) y=++x;
printf("
y);
}
A)1 B)控制表达式非法 C)无限循环 D)0
28.下面程序段的输出结果是(C ) 。
int x=3;
do {printf("
A) 1 B) 130 C)1-2 D) 死循环
29.执行下列程序段之后,b的值为( D ) 。
int a=1,b=10;
while(b--<
A)9 B)-2 C)-4 D)8
30.在下述程序中,判断i>
j共执行了( D)次。
{int i=0,j=10,k=2,s=0;
for (;
)
{i+=k;
if (i>
j)
{printf("
s);
break;
}
s+=i;
}
}
(A)4 (B)7 (C)5 (D)6
三、多选题
1.在下列语句所构成的程序结构中,break语句和continue语句均可使用的是(BCD )
(A)用goto语句和if语句构成的循环 (B)while循环 (C)do-while循环
(D)for循环 (E)switch语句构成的分支结构
2.与for(表达式1;
表达式3);
语句等价的选项有( ACE)。
(A)for(表达式1;
1;
(B)for(表达式1;
(C)表达式1;
while
(1)表达式3;
(D)表达式1;
while(0)表达式3;
(E)表达式1;
while(3)表达式3;
3.在while(<
表达式>
)中,用于表达式等于0时循环,否则退出循环的表达式可以写成( BD )。
A) while(x!
=0) B) while(x==0) C) while(x) D) while(!
x) E) while(x=0)
4.在C语言中,下列说法正确的有(BC )。
(A)"
do 语句体 while(条件)"
中的语句体可能一次也不会执行
(B)"
中当条件为0时将结束循环
(C)for(表达式1;
表达式2;
中的表达式1无论如何都会执行一次
(D)for循环只能用于循环次数已确定的情况
(E)do-while语句和while语句在任何情况下完成的功能等价
5.在下列选项中,构成死循环的程序段是( ACE )。
A) int i=100;
B) int k=100;
C) int s=36;
while
(1) do while(s);
{i=i%100+1;
{k++;
--s;
if(i>
100) break;
}while(k>
=1000);
D) int x=10;
E)for(;
for(;
x--) if(x==0)break;
四、填空题
1.根据以下if语句所给的条件,写出等价的switch语句,使它完成相同的功能,
(假定score取值在所0-100之间)。
请完善程序。
if语句:
if(score<
60) k=1;
else if(score<
70) k=2;
80) k=3;
90) k=4;
=100) k=5;
等价的switch语句:
n=__________;
if(n<
6) ______________;
switch(n)
{ case 5:
k=1;
case 6:
k=2;
case 7:
k=3;
case 8:
k=4;
_______ k=5;
①(INT)(SCORE/10)或SCORE/10
②N=5
③ CASE 0:
CASE 10:
2.设I,j,k均为int型变量,则执行完下面的for循环后,k的值为( 10 )。
for (I=0,j=10;
I<
=j;
I++,j--) k=I+j;
3.以下程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母。
请填空。
____#INCLUDE_______________
main( )
{char c;
while ((c=getchar( ))!
='
\n'
if (c>
a'
c<
z'
)
{c=c-32;
putchar( c);
}
4.以下程序的功能是求20以内3的倍数之和sum1及剩余数据之和sum2。
main( )
{int sum1=0,sum2=0,i;
for(i=1;
=20;
i++)
if(_I%3= =0
_______)
sum1+=i;
else sum2+=i;
printf("
%d,%d"
sum1,sum2);
}
5.下列两个程序段在什么情况下输出结果等价__当输入的数据小于或等于100时
int i,sum=0;
int i,sum=0;
scanf("
&
i);
scanf("
while(i<
=100) do { sum+=i;
{ sum+=i;
i++;
i++;
} } while(i<
=100)
printf("
\n%d"
sum);
printf("
6.下面程序用于计算1+(1+2)+(1+2+3)+……+(1+2+3+……+10),请完善程序。
#include<
main()
{int total,sum,m,n;
________________;
for(m=1;
m<
=10;
m++)
{sum=0;
for(n=1;
n<
=m;
n++)sum=sum+n;
___________________;
total=%d\n"
total);
}①TOTAL=0 ②TOTAL=TOTAL+SUM
7.下面程序用于求100~200之间的所有素数。
请填空:
_______________
{int m,n,k;
for(m=101;
200;
m=m+2)
{k=sqrt(m);
for(n=2;
=k;
n++)___________;
if(n>
k)printf("
m)
① #INCLUDE<
②IF(M%N==0)BREAK
8.下面程序从键盘读入50个整数并求其中正整数之和。
请完善程序
{int i,a,sum;
sum=0;
for(i=0;
50;
{scanf("
a);
if(a<
0)___________ ;
sum=sum+a;
sum=%d\n"
①CONTINUE
9.下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,
否则输出0,请为程序填空。
main()
{int I,x,__________;
scanf("
for(I=2;
=x/2;
I++)
if (___________) {y=0;
printf("
}①Y=1
② X%I= =0
10.下述程序的输出结果是 13 。
{int I=0,s=1;
do
s+=I++;
while (I++<
6);
printf("
11.下述程序用"
辗转相除法"
计算两个正整数m和n的最大公约数。
#include <
void main()
{int m,n,w;
scanf("
5d,%d"
m,&
n);
while (n)
{w= __①M%N_________ ;
m= n ;
n= w ;
}
%d,m);
}
12.下面程序的功能是输出数且s中最大元素的下标,请填空。
{int k,p;
int s[]=[1,-9,7,2,-10,3];
for (p=0,k=p;
p<
6;
p++)
if (s[p]>
s[k]) _K=P;
_____________
13.下面程序段中循环体的执行次数是 ______3___ 。
a=10;
b=0;
do{b+=2;
a-=2+b;
while(a>
=0);
14.运行下列程序时,输入数据为"
2473<
回车>
"
则程序的输出结果为 ___668977_____ .
#include<
{int s;
while((s=getchar())!
'
{switch(s-'
2'
{case 0:
case 1:
putchar(s+4);
case 2:
case 3:
putchar(s+3);
default:
putchar(s+2);
}
15.如下程序运行后输出的结果是( _____2____ )。
void main()
{ int i=0;
while(++i<
3)
if(i==2)
break;
16.以下程序完成输出3到1000之间的所有素数。
I%J==0
#include "
main ()
{ int i,j;
for ( i=3;
i<
=1000;
i++)
{ for ( j=2;
j<
=i-1;
j++)
if ( __________ ) break;
if ( j==i ) printf ("
%5d "
17.以下程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母。
main( )
{char c;
while ((c=_____________)!
)
if (c>
)
{ c=c-32;
%c"
c);
GETCHAR( )
18.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩。
main( )
{float sum=,ave,a;
int n=0,i;
printf(“Enter mark\n”);
scanf(“%f”,&
a);
while(a>
=
{sum=sum+a;
_____________;
}
ave=sum/n;
printf(“ave=%f、n”,ave);
N++
19.以下程序运行后的输出结果为____3_____.
#inlcude <
void main( )
{int i=0;
while (++i<
if (i==2) continue;
printf("
20.以下程序的功能是输出1000以内能被3或5整除,但不能同时被3和5整除的数。
main( )
{int j;
for(j=1;
j<
1000;
j++)
if(________________)
%fd"
j);
(J%3= =0||J%5= =0) &
(J%15!
=0)
21.以下程序的功能是求a,b两个整数的最大公约数。
main( )
{int a=12,b=8,t;
while (_____B!
=0________)
{t=a%b;
a=b;
b=t;
printf(%3d),a);
22.以下程序的功能是求1+1/2+1/3+…..+1/100 的值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 备考 习题 部分 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)