谭浩强C语言程序设计习题集 联系客服

发布时间 : 星期三 文章谭浩强C语言程序设计习题集更新完毕开始阅读bcc3a43b998fcc22bdd10db7

B)while循环控制条件比do-while的循环控制条件严格。 C)do-while允许从外部转入到循环体内。 D)do-while的循环体不能是复合语句。 参考答案:A

5.15 以下能正确计算10!的程序段是 。

A)do {i=1;s=1; B)do{i=1;s=0; s=s*i; s=s*i; i++; i++;

}while(i<=10); }while(i<=10); C)i=1;s=1; D)i=1;s=0; do{s=s*i; do{s=s*i; i++; i++;

}while(i<=10); }while(i<=10); 5.16 以下程序段 。

x=-1;

do x=x*x; while(!x);

A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 参考答案:C

5.17 以下描述中正确的是 。

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C)在do-while循环体中,一定要有能使while后面表达式的值变为零(\假\的操作。 D)do-while循环中,根据情况可以省略while。 参考答案:C

5.18 若有语句如下,则程序段的输出是 。

int x=3;

do {printf(\

A)1 B)1和-2 C)3和0 D)死循环

*5.19下面程序的功能是计算正整数2345的各位数字平方和。

#include \main()

{int n,sum=0; n=2345;

do {sum=sum+【1】; n=【2】; } while(n);

printf(\

【1】A)n B)(n)*(n) C)n/10 D)(n/10)*(n/10) 【2】A)n/1000 B)b/100 C)n/10 D)n 参考答案:【1】B 【2】C

5.20 下面程序是从键盘输入学号,然后输出学号中百位数是3的学号,输入0时结束循环。请选择填空。

#include main()

{long int num;

scanf(\do

{if(【1】) printf(\ scanf(\}while(【2】); }

【1】A)num0/10==3 B)num/100==3 C)num/10==3 D)num/10==3

【2】A)!num B)num>0==0 C)!num==0 D)!num!=0 参考答案:【1】B 【2】C

5.21 等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。

#include main()

{int a,q,n,sum; a=1;q=2;n=sum=0; do

{【1】; ++n;a*=q;

}while(sum<100); 【2】;

printf(\}

【1】A)sum++ B)sum+=a C)sum*=a D)a+=sum 【2】A)n=n-2 B)n=n C)n++ D)n-=1 参考答案:【1】B 【2】D

5.22 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。

#include main()

{int i=0,j,k; do

{i++;k=316-13*i;}while( ); j=k/11;

printf(\}

A)k/11 B)k C)k/11==0 D)k==0 参考答案:B

5.23 下面程序的运行结果是 。

#include main() {int y=10;

do {y--;}while(--y); printf(\}

A)-1 B)1 C)8 D)0 参考答案:D