c语言.docx
《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(24页珍藏版)》请在冰豆网上搜索。
c语言
带*的题为上机课必做题,主要为后面编程题和程序填空题。
一、选择题(30题)
1、有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}}
执行后输出结果是()
A)011122B)012C)012020D)120
2、有以下程序
main()
{inti=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是()
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
3、有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出结果是()
A)2B)3C)4D)编译时有错,无结果
4、有以下程序
main()
{inti=0,s=0;
do{
if(i%2)
{i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是()
A)16B)12C)28D)21
5、以下程序的输出结果是()
main()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A)5B)4C)6D)不确定
6、以下程序中,while循环的循环次数是()
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
}
A)1B)10C)6D)死循环,不能确定次数
7、以下程序的输出结果是()
main()
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31B)13C)10D)20
8、以下程序的输出结果是()
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
A)1B)0C)非0的数D)-1
9、以下程序的输出结果是()
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printh("%d\n",a);
}
A)21B)32C)33D)11
10、阅读以下程序:
()
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d"x);
elseprintf("%d"x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A)3B)4C)5D)6
11、假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(ww:
x;m=(mm:
y;m=(mm:
z;
则该程序运行后,m的值是()
A)4B)3C)2D)1
12、以下程序的输出结果是()
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
}
A)101B)6C)5D)4
13、若执行以下程序时从键盘上输入9,则输出结果是()
Main()
{intn;
scanf("%d",&n);
if(n++<10)
printf("%d\n",n);
else
printf("%d\n",n--);
}
A)11 B)10 C)9 D)8
14、有以下程序段
intk=0
while(k=1)
k++;
while循环执行的次数是()
A)无限次 B)有语法错,不能执行C)一次也不执行 D)执行1次15、以下程序执行后sum的值是()
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15 B)14 C)不确定 D)0
16、有以下程序段
intx=3
do
{printf("%d",x-=2);}
while(!
(--x));
其输出结果是()
A)1 B)30 C)1-2 D)死循环
17、若变量c为char类型,能正确判断出c为小写字母的表达式是()
A)'a'<=c<='z'
B)(c>='a')||(c<='z')
C)('a'<=C)and('z'>=c)
D)(c>='a')&&(c<='z')
18、以下程序的输出结果是()
main()
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'z'));}
A)0 B)1 C)2 D)3
19、以下程序的输出结果是()
main()
{intx=10,y=10,i;
for(i=0;x>8;y=i)
printf(“%d%d”,x--,y);
}
A)10192B)9876C)10990D)101090
20、以下程序的输出结果是()
main()
{inti;
for(i=1;i<=6;i++)
{if(i%2)
{printf(“#”);continue;}
printf(“*”);
}
printf(“\n”);
}
A)#*#*#B)#####C)*****D)*#*#*
21、以下程序的输出结果是()
main()
{inti;
for(i='A';i<='I';i++)printf(“%c”,i+32);
printf(“\n”);
}
A)编译不通过,无输出B)acegC)acegiD)abcdefghi
22、以下程序输出结果是()
main()
{intm=5;
if(m>5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
A)7B)6C)5D)4
23、运行以下程序后,如果从键盘上输入china#《回车》,则输出结果为()
#include
main()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a':
case'h':
default:
v1++;
case'0':
v2++;
}
printf(“%d,%d\n”,v1,v2);
A)2,0B)5,0C)5,5D)2,5
24、设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为()
A)1B)2C)3D)0
25、以下程序的输出结果是()
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
26、设x和y均为int型变量,则执行以下的循环后,y值为()
for(y=1,x=1;y<=50;y++)
{if(x==10))break;
if(x%2==1)
{x+=5;continue;}
x-=3;
}
A)2B)4C)6D)8
27、假定a和b为int型变量,则执行以下语句后b的值为()
a=1;b=10;
do
{b-=a;a++;}
while(b--<0);
A)9B)-2C)-1D)8
28、设j为int型变量,则下面for循环语句的执行结果是()
For(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf(“%d”,j);
}
A)63B)74C)62D)73
29、有以下程序
main()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(x%2==0)
{x++;if(x%3==0)
{x++;if(x%7==0)
{x++;printf("%d",i);}}}
}
}
输出结果是()
A)28B)27C)42D)26
30、假定所有变量均已正确说明,下列程序段运行后x的值是()
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);if(c)x=3;
elsex=4;
A)34B)4C)35D)3
二、填空题(阅读程序20题,程序填空10题)
1、若有以下程序
main()
{intp,a=5;
if(p=a!
=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是。
2、若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a
if(aprintf("%d,%d,%d\n",a,b,c);
}
执行后输出结果是。
3、以下程序运行后的输出结果是。
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
4、以下程序运行后的输出结果是。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:
m++;n++;break;
case10:
n++;break;
default:
k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
5、执行以下程序后,输出'#'号的个数是。
#include
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
6、若从键盘输入58,则以下程序输出的结果是。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
7、以下程序输出的结果是。
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
8、以下程序的输出结果是。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
9、以下程序运行后的输出结果是。
main()
{inti=10,j=0;
do
{j=j+i;i-;
while(i>2);
printf("%d\n",j);
}
10、设有以下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为。
11、下列程序段的输出结果是。
intn='c';
switch(n++)
{default:
printf("error");break;
case'a':
case'A':
case'b':
case'B':
printf("good");break;
case'c':
case'C':
printf("pass");
case'd':
case'D':
printf("warn");
}
12、下面程序输出结果是。
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);
}
13、程序执行后的输出结果是。
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
14、若有intⅰ=5,j=10;则执行完语句
switch(i){
case4:
j++;
case5:
j--;
case6:
j++;
case7:
j-=2;
default:
;}
后j的值。
15、有以下程序
main()
{intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf(“%d\n”,x);
}
执行后的输出结果是。
16、main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是。
17、当a=1,b=3,c=5,d=4时,执行完下面的一段程序后x的值是。
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
18、下列程序段的输出结果是。
intk,s;
for(k=0,s=0;k<10;k++)
if(s>k)break;
elses+=k;
printf("k=%d,s=%d",k,s);
19、输入c2470f?
<回车>后,下列程序的输出结果是。
#include
main()
{charch;longnumber=0;
while((ch=getchar())<’0’||ch>’6’);
while(ch!
=’?
’&&ch>=’0’&&ch<=’6’){
number=number*7+ch-‘0’;
printf(“%ld#”,number);
ch=getchar();
}
20、输入4<回车>后,下列程序的输出结果是。
#include
main()
{intj,k,n;
floatf,s;
scanf(“%d”,&n);
s=0;f=1;
for(k=1;k<=n;k++){
for(j=1;jf=f*k;
s=s+f;
printf(“%.0f#”,s);
}}
*21、下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;;i++)
{j=i*10+6;
if()continue;
printf("%d",j);
}
}
*22、下面程序的功能是求1!
+2!
+3!
+4!
+5!
,请填空:
main()
{inti,j,f,sum=0;
for(i=1;i<=5;i++)
{f=1;
for(j=1;;j++)
;
sum=sum+f;
}
printf(“5!
=%d”,sum);
}
23、以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。
请填空。
#include
main()
{intk;
printf(“Enteraintnumber:
”);
scanf(“%d”,&k);
if
printf(“yes\n”);
else
printf(“”);
}
*24、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。
用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。
请填空。
Main()
{intn,i,j;
printf(“EnterINTnumbers,with0toend\n”);
i=j=0;
scanf(“%d”,&n);
while
{if(n>0)i++;
if(n<0)j++;
;
}
printf(“i=%4dj=%4d\n”,i,j);
}
25、如果一个数的各位数的立方和等于它本身,则这样的数称为水仙花数求100~999中所有的水仙花数。
main()
{inti,a,b,c;
for(i=100;i<=999;i++)
{a=i/100;
b=;
c=i%10;
if()
printf(“%5d”,i);}}
26、输入1个正整数n,计算并输出s的前n项的和。
S=1-1/2+1/3-1/4+1/5-1/6+……
#include
main()
{intk,flag,n;floats;
flag=1;s=0;
scanf("%d",&n);
for(k=1;k<=n;k++){
s=s+;
;
}
printf("sum=%fn",s);
}
*27、输出下列图形。
123456789main()
23456789inti,j;
3456789for(i=1;i<=;i++)
456789{for(j=;j<=9;j++)printf("%2d",j);
56789printf("\n");}
6789
789
89
9
28、下面程序的功能是:
从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,最后当输入负数时结束输入。
请填空:
Main()
{floatx,amax,amin;
Scanf(“%f”,&x);
Amax=x;amin=x;
While()_
{if(x>amax)amax=x;
If(xScanf(“%f”,&x);
}
Printf(“\namax=%f\namin=%f\n”,amax,amin);
}
*29、下面程序的功能是计算1到10之间的奇数之和即偶数之和。
请填空:
Main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
;
c+=b;
}
Printf(“偶数之和:
%d\n”,a);}
Printf(“奇数之和:
%d\n”,);
30、以下程序用“辗转相除法”来求出两个正整数的最大公约数。
请填空。
若两个数分别放在m和n中,求最大公约数的算法如下:
(1)将两数中最大的那个放在m中,小的放在n中。
(2)求出m被n除后的余数r。
(3)若余数为0则执行步骤(7);否则执行步骤(4)。
(4)把除数作为新的被除数;把余数作为新的除数。
(5)求出新的余数r。
(6)重复步骤(3)到(5)。
(7)输出n,n即为最大公约数。
main()
{intr,m,n,t;
printf(“Enterm,n:
”);
scanf(“%d%d”,&m,&n);
printf(“m=%dn=%d\n”,m,n);
if(mt=m;m=n;n=t;
r=;
while()
{m=n;n=r;r=;}
printf(“H.C.F=%d\n,n);
}
三、编程题(15题)
*1、求出100至300内所有百位和个位相加能被3整除的数字。
*2、编程求S=1/1!
+1/2!
+1/3!
+........+1/n!
直到1/n!
<=1e-6
*3、编写程序实现用一元