C语言第五章复习.docx
- 文档编号:10685655
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:19
- 大小:28.79KB
C语言第五章复习.docx
《C语言第五章复习.docx》由会员分享,可在线阅读,更多相关《C语言第五章复习.docx(19页珍藏版)》请在冰点文库上搜索。
C语言第五章复习
第五章循环结构程序设计
一、选择题
23.有如下程序段,其执行结果为。
(02~03第一学期试题)
for(n=10;n>7;n--)
printf(“%d\n”,n);
A)10B)9C)10D)9
9898
8787
76
24.循环语句中的for语句,其一般形式如下:
for(表达式1;表达式2;表达式3)语句
其中表示循环条件的是。
(01~02第二学期试题)
A)表达式1B)表达式2C)表达式3D)语句
25.定义如下变量:
intn=10;
则下列循环的输出结果是。
(01~02第二学期试题)
while(n>7){n--;printf(“%d”,n);}
A)10B)9C)10D)9
9898
8787
76
26.下面程序段的运行结果是:
。
(03试题)
x=y=0;while(x<15)y++,x+=++y;
printf(“%d,%d”,y,x);
A)20,7B)6,12
C)20,8D)8,20
27.以下程序的运行结果是:
。
(03试题)
main()
{inta=2,i;
for(i=0;i<3;i++)printf(“%4d”,f(a));}
f(inta)
{intb=0,c=3;
b++;c++;return(a+b+c);}
A)71013B)777
C)7911D)789
28.下面程序的运行结果是:
。
(往届试题)
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A)-1B)1C)8D)0
29.下面有关for循环的正确描述是。
(04~05第二学期试题)
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
30.以下能正确计算1×2×3×…×10的程序段是。
(04~05第二学期试题)
A)do{i=1;s=1;s=s*i;i++;}while(i<=10);
B)do{i=1;s=0;s=s*i;i++;}while(i<=10);
C)i=1;s=1;do{s=s*i;i++;}while(i<=10);
D)i=1;s=0;do{s=s*i;i++;}while(i<=10);
31.以下程序段。
(04~05第二学期试题)
x=-1;do{x=x*x;}while(!
x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
32.下面程序的运行结果是:
。
(往届试题)
#include
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A)-1B)1C)8D)0
33.定义如下变量和数组:
intI;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面执行语句的结果为:
。
(往届试题)
for(I=0;I<3;I++)
printf(“%3d”,x[I][2-I]);
A)159B)147
C)357D)369
34.以下程序的运行结果是:
。
(往届试题)
main()
{intn=4;
while(n--)
printf(“%2d”,--n);}
A)20B)31
C)321D)210
35.设有以下程序段,则执行该程序后为:
。
(往届试题)
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(“%d”,s);
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
36.下面程序的运行结果是:
。
(往届试题)
#include
main()
{intI;
for(I=1;I<=5;I++)
switch(I%5)
{case0:
printf(“*”);break;
case1:
printf(“#”);break;
default:
printf(“\n”);
case2:
printf(“&”);break;}
}
A)#&&*B)#&C)#D)#&
&&
&*&*
&
*
三、程序填空题
2.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。
(03试题)
main()
{intm,n,s;
for(m=2;m<1000;m++)
{____
(1)____
for(n=1;n<=m/2;n++)
if(__
(2)___)s+=n;
if(__(3)___)printf(“%d\n”,m);}}
3.以下程序的功能是根据
求e的近似值,精度要求为
。
请填空:
(04~05第二学期试题)
main()
{inti=1;doublee,new;
e=1.0;new=1.0;
while(
(1))
{new/=(double)i;e+=new;
(2);}
printf(“e=%e\n”,e);
}
四、读程序写结果题
6.下面程序运行结果是:
。
(03试题)
main()
{intx,i;
for(i=1,x=1;i<=50;i++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;}
printf(“%d\n”,i);}
7.下面程序运行结果是:
。
(04~05第二学期试题)
#include
main()
{inti,j;
for(i=4;i>=1;i--)
{printf(“*”);
for(j=1;j<=4-i;j++)
printf(“*”);
printf(“\n”);}}
8.下面程序的运行结果是:
。
(往届试题)
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:
printf(“*”);break;
case1:
printf(“#”);break;
default:
printf(“\n”);
case2:
printf(“&”);}
}
9.下面程序的运行结果是:
_________。
(往届试题)
#include
main()
{inti,j;
for(i=0;i<=3;i++)
{for(j=0;j<=5;j++)
{if(i==0||j==0||i==3||j==5)printf(“*”);
elseprintf(“”);}
printf(“\n”);}
}
五、编程题
1.编写程序,求两个整数的最大公约数。
(1级)
2.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。
(1级)
3.中国古代数学家张丘建提出的“百鸡问题”:
一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。
现在有100个钱,要买100只鸡,是否可以?
若可以,给出一个解,要求三种鸡都有。
请写出求解该问题的程序。
(1级)
4.求100~200间的全部素数。
(1级)
5.整元换零钱问题。
把1元兑换成1分,2分,5分的硬币,共有多少种不同换法,请编写求解此问题的程序。
(1级)
6.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,...,编写程序求这个数列的前20项之和。
(1级)
7.编写程序,利用公式e=1+1/1!
+1/2!
+1/3!
+....+1/n!
求出e的近似值,其中n的值由用户输入(用于控制精确度)。
(1级)
8..一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:
6=1+2+3,6就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。
其中1000由用户输入。
(2级)
9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。
(1级)
10.请编写一程序,打印出九九乘法口诀表(例:
1*1=1)。
(1级)
11.请编写一程序,将所有“水仙花数”打印出来,并打印出其总数。
“水仙花数”是一个其各位数的立方和等于该整数的三位数。
(04~05第二学期试题)
12.编写一程序,求1-3+5-7+.........-99+101的值。
(1级)
13.编写程序,计算1!
+2!
+3!
+.......+n!
的值,其中n的值由用户输入。
(1级)
14.求sn=a+aa+aaa+aaaa+......+aa.....a的值,其中a是一个数字,例如:
2+22+222+2222+22222(此时n=5)。
n和a的值由键盘输入,请编程实现以上和过程。
(1级)
15.编写程序,用迭代法求x=√a的近似根。
求平方根的迭代公式为:
Xn+1=(Xn+a/Xn)/2。
要求前后两次求出的x的差的绝对值小于0.00001。
(1级)
16.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?
第10次反弹多高?
编写程序求解该问题。
(1级)
17.若有如下公式:
+
+
+。
。
。
。
。
。
。
+
试根据上述公式编程计算
的近似值
(精确到10-6)。
(03试题)
第五章答案
一、选择题
23~25ABB26~30DBDDC
31~35CDCAB36D
一、程序填空题
2.
(1)s=0
(2)m%n==0
(3)s==m
3.
(1)new>=1e-6
(2)i++
四、读程序写结果题
6.8
7.*
**
***
****
8.#&
*
9.******
**
**
******
一、编程题
1.mian()
{intn=0,m=0,temp,r;
printf(“PleaseInputmandnvalue:
\n”);
scanf(“%d%d”,&m,&n);
if(m>n)
{temp=m;
m=n;
n=temp;
}
r=m%n;
while(r!
=0)
{m=n;
n=r;
r=m%n;
}
printf(“TheMAXFactoris%d\n”,n);
}
2.#include
main()
{intn=1,m=0,k,mod_mn=1;
printf(“PleaseInputmvalue:
\n”);
scanf(“%d”,&m);
n=1;
for(k=0;;k++)
{mod_mn=m/(n*10);
printf(“%d”,(m-mod_mn*n*10)/n);
if(mod_mn==0)break;
n*=10;
}
}
3.#include
main()
{intl,m,n,answer_flag=0;
n=1;
printf(“BigRooster,Hen,Chickabiddy\n”);
for(l=0;l<=20;l++)
for(m=0;m<=(100-l*5)/3;m++)
{n=(100-l*5-m*3)*3;
if(l*m*n>0&&l+m+n==100&&(l*5+m*3+n/3)==100)
{printf(“%-4d%-4d%-4d\n”,l,m,n);
answer_flag=1;
}
}
if(answer_flag==0)
printf(“NotAnswer”);
}
BigRooster,Hen,Chickabiddy
41878
81181
12484
4.#include
#include
main()
{intk,l,m,n=0;
printf(“PleaseInputn:
\n);
for(m=101;m<=200;m+=2)
{if(n%10==0)printf(“\n”);
k=sqrt(m);
for(l=2;l<=k;l++)
if(m%l==0)break;
if(l>=k+1){printf(“%d”,m);n++;}
}
}
101103107109113127131137139149
151157163167173179181191193197
199
5.#include
main()
{intl,m,n,answer_flag=0;
n=1;
printf(“\n1CentCoin,2CentCoin,5CentCoin\n”);
for(l=0;l<=100;l++)
for(m=0;m<=(100-l)/2;m++)
{n=(100-l-m*2)/5;
if(l+m*2+n*5==100)
{printf(“%-4d%-4d%-4d\n”,l,m,n);
answer_flag+=1;
}
}
if(answer_flag==0)
printf(“NotAnswer”);
elseprintf(“TotalofExchangeMethodis%d”,answer_flag);
}
共有541种换法。
6.#include
main()
{intm1,n1,n,k,temp;
floats=0;
printf(“PleaseInputn:
\n”);
scanf(“%d”,&n);
m1=1;
n1=2;
for(k=0;k {s+=(float)n1/m1; temp=m1; m1=n1; n1=temp+n1; } printf(“\ns=%f”,s); } 前20项的和为32.660259 7.#include main() {intk,l,n; doublee=1,fact_k=1; printf(“PleaseInputn: ”); scanf(“%d”,&n); for(k=1;k<=n;k++) {fact_k=1; for(l=1;l<=k;l++) fact_k*=1; e+=1/(double)fact_k; } printf(“e=%lf”,e); } PleaseInputn: 100 e=2.718282 8.#include main() {intk,l,m,n; printf(“PleaseInputn: \n”); scanf(“%d”,&n); for(k=1;k<=n;k++) {for(m=0,l=1;l<=k/2;l++) if(! (k%l))m+=l; if(m==k)printf(“%4d”,k); } } 628496 9.#include main() {intyear=0,number=0; for(year=2000;year<3000;year++) {if((year%4==0&&year%100! =0)||year%400==0) {printf(“%d”,year); number++; if(number%10==0)printf(“\n”); } } printf(“\ntotalnumberofleapyearis%d”,number); } 10.#include main() {intj,k; printf(“\n”); for(j=1;j<10;j++) {for(k=1;k<=j;k++) printf(“%d*%d=%-4d”,k,j,j*k); printf(“\n”); } } 11.main() {inti,j,k,n; printf(“’水仙花’数是: ”); for(n=100;n<1000;n++) {i=n/100; j=n/10-i*10; k=n%10; if(i*100+j*10+k=i*i*i+j*j*j+k*k*k) { printf(“%d”,n); } } printf(“\n”); } ’水仙花’数是: 153370371407 12.#include mian() {intk,sum=0,sign=1; for(k=1;k<=101;k+=2) {sum+=k*sign; sign*=-1; } printf(“\nsum=%d”,sum); } 13.#include mian() {intk,l,n; doublesum=0,fact_k=1; printf(“PleaseInputn: ”); scanf(“%d”,&n); for(k=1;k<=n;k++) {fact_k=1; for(l=1;l<=k;l++) fact_k*=l; sum+=fact_k; } printf(“sum=%.2lf”,sum); } 14.#include main() {intk,l,n,a; doublesum=0,fact_k=1; printf(“PleaseInputnandavalue: ”); scanf(“%d%d”,&n,&a); for(k=1;k<=n;k++) {fact_k=0; for(l=1;l<=k;l++)fact_k=fact_k*10+a; sum+=fact_k; } printf(“sum=%.2lf”,sum); } 15.#include #include main() {intn,a; doublex1,x2,e=1; printf(“\nPleaseInputavalue: ”); scanf(“%d”,&a); x1=1; for(n=1;e>0.00001;n++) {x2=(x1+a/x1)/2; e=fabs(x2-x1); x1=x2; } printf(“sqrt(%d)=%lf”,a,x1); } 16.第10次落地时共经过299.609375米,第10次反弹高度为0.097656米 #include mian() {intn,k; doublex1,x2,sum=0; printf(“\nPleaseInputtimesvalue: ”); scanf(”%d”,&k); x1=100; sum=100; for(n=0;n {x2=x1/2; sum+=2*x2; x1=x2; } sum-=x2*2; printf(“Highof%dtimes=%lf”,k,x1,sum); } 17.main() {floata=1,b,pi,t=1; while(t>=1e-6) {pi=pi+t; a++; b=a*a; t=1/b; } pi=pi*6; printf(“pi=%f”,pi); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第五 复习