(完整版)c语言第六章循环结构程序设计(习题册答案)

合集下载

(完整版)c语言第六章循环结构程序设计(习题册答案)

(完整版)c语言第六章循环结构程序设计(习题册答案)

第六章循环结构程序设计基础练习(A)一、选择题1、C语言中while和do-while循环的主要区别是(A)。

A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) C)do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句2、以下描述中正确的是(C)。

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while3、设有程序段int k=10;while(k) k=k-1;则下面描述中正确的是(A)。

A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是( D )。

A) while(x=y) 5;B) while(0) ;C) do 2;while(x==b);D) do x++ while(x==10);5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。

A) 3 B) 4 C) 5 D) 66、语句while(!E);中的表达式!E等价于(A)。

A)E==0 B)E!=1 C)E!=0 D)E==17、下面程序段的运行结果是(A)。

a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18、下面程序的运行结果是(C)。

#include <stdio.h>main(){int num=0;while(num<=2){num++;printf(“%d\n”,nu m);}}A)1 B)1 C)1 D)12 2 23 39、以下能正确计算1×2×3×…×10的程序段是(C)。

C语言程序设计_第三版_谭浩强主编第6—8章课后习题答案

C语言程序设计_第三版_谭浩强主编第6—8章课后习题答案

C语言程序设计_第三版_谭浩强主编第6—8章课后习题答案C语言第6—8章课后习题答案第六章循环语句6.1输入两个正数,求最大公约数和最小公倍数.#includevoid main(){ int a,b,num1,num2,temp;printf("请输入两个正整数:\");scanf("%d,%d",&num1,&num2);if(num1<num2)< bdsfid="73" p=""></num2)<>{temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("它们的最大公约数为:%d\",a);printf("它们的最小公倍数为:%d\",num1*num2/a);}编译已通过6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数. 解:#includevoid main(){char c;int letters=0,space=0,degit=0,other=0;printf("请输入一行字符:\");while((c=getchar())!='\'){if(c>='a'&&c<='z' || c>'A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}printf("其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\",letters,space, digit,other);}6.3求s(n)=a+aa+aaa+…+aa…a之值,其中a是一个数字,n表示a的位数。

循环结构程序设计课后习题及答案

循环结构程序设计课后习题及答案

循环结构程序设计习题与答案1、循环语句的三要素分别是、、.2、for语句括号内的3个表达式的作用分别是、、.3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环.4、在循环结构中,break语句的作用是;continue语句的作用是.5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次.6、下面程序段的执行次数:int a=0;while<a=0>{ printf<"good\n">;a--;}7、下面程序段的执行次数:int a=0;while<a==0>{ printf<"good\n">;a--;}8、下面程序段的执行次数:int a=1;while<a=1>{ printf<"good\n">;a++;}9、下面程序段的执行次数:int a=1;while<a==1>{ printf<"good\n">;a++;}10、下列程序段的运行结果是.for<i=5;i>=0;i-->printf<"%d ",i>;11、下列程序段的运行结果是.for<n=1;n<20;n=n+3>printf<"%d ",n>;12、下列程序段的运行结果是.for<ch='a' ;ch<='e' ;ch++>printf<"%d",ch-97>;13、下列程序段的运行结果是.for<i=1,j=5 ; i<j ; i++,j-->printf<"i=%d j=%d\n",i,j>;14、下列程序段的运行结果是.for<n=1 ; n*n<20 ; n++>printf<"%d \n",n+n>;二、选择题1、下列程序段中,死循环的是〔〕A、for <i=1; ;>B、i=32767;{ if<++i%2==0> continue; doif<++i%3==0> break; { if<i<0> break;} }while<++i>;C、i=1;D、for<i=1; ; >while<i-->; if<++i<10> break;2、下列程序段中,不是死循环的是〔〕A、inti=10;B、for< ; 1;>while<1>{ i=i%100+1;if<i>100> break;}C、int a=0;D、int x=21;do while<x>{ ++a; --x;}while<a>=0>;三、阅读程序,写出程序运行结果.1、#include"stdio.h"main<>{inti=0,sum=1;do{sum+=i;i++;}while<i<5>;printf<"%d\n",sum>;}程序运行结果:2、#include"stdio.h"main<>{inta,b;b=10;a=1;while<a<=b>a*=2;printf<"%d\n",a>;}程序运行结果:3、#include"stdio.h"main<>{int x=2;while<x-->;printf<"%d\n",x>;}程序运行结果:4、#include"stdio.h"main<>{int x=3;do{printf<"%d\n",x-=2>;}while<!x>;}程序运行结果:5、#include"stdio.h"main<>{inti;for<i=1;i<=5;i++>switch<i%5>{case 0:printf<"*">;break; case 1:printf<"#">;break; case 2:printf<"&">;break; default:printf<"\n">;}}程序运行结果:6、#include"stdio.h"main<>{charch;while<<ch=getchar<>>!='!'>putchar<++ch>;}程序运行结果:7、#include"stdio.h"main<>{inti,j;for<i=0;i<=5;i++>{for<j=1;j<10;j++>if<j==5> break;if<i<2> continue;if<i>2> break;printf<"j=%d\n",j>;}printf<"i=%d\n",i>;}程序运行结果:8、#include"stdio.h"main<>{int x ,y;x=37,y=13;while<x!=y>{if<x>y>x=x-y;if<y>x>y=y-x;}printf<"x=%d\n",x>;}程序运行结果:四、编程题1、输出下列图案12 43 6 94 8 12 165 10 15 20 252、输出下列图案*********3、编程求2-4+6-8+…-100+102的值.4、输出公元1500年至2500年所有的闰年的年号.5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.循环结构程序设计〔参考答案〕一、填空题、1.循环条件循环体循环控制变量2.循环变量赋初值循环测试条件循环变量更新3.执行整个周期外层循环条件为假4.提前结束包含它的循环语句的执行提前结束本次循环周期开始执行下一次循环周期5.0 1 06.07. 18.无数9. 110.5432111.1 4 7 10 13 16 1912.0123413.I=1,j=5I=2,j=414.14916二、选择题1. B2. D三、程序运行结果1.112.163.-14.15.#&*6.bgufsoppo7.i=5J=38.x=1四、编程题1.#include"stdio.h"main<>{inti,j;for<i=1;i<=5;i++>{for<j=1;j<=i;j++>printf<"%d ",i*j>;printf<"\n">;}}2.#include"stdio.h"main<>{inti,j;for<i=5;i>=1;i-=2>{for<j=1;j<=i;j++>printf<"*">;printf<"\n">;}}3.#include"stdio.h"main<>{inti,y=1,s=0;for<i=2;i<=102;i+=2>{ s=s+y*i;y*=-1; 〔y=-y>; } printf<"2-4+6+...-100+102=%d",y>;}4.#include"stdio.h"main<>{inti;for<i=1500;i<=2500;i++>if<i%4==0&&i%100!=0||i%400==0> printf<"%d ",i>;}5.#include"stdio.h"main<>{floatcj,min,max=0;printf<"请输入学生成绩,输入负数时结束:\n">; scanf<"%f",&cj>;min=cj;while<cj>=0>{if<cj>max>max=cj;if<cj<min>min=cj;scanf<"%f",&cj>;}printf<"max=%f\nmin=%f",max,min>;}。

《C语言程序设计教程(第二版)》习题答案

《C语言程序设计教程(第二版)》习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。

2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。

递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。

*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。

C语言程序设计(第3版)第6章习题参考答案

C语言程序设计(第3版)第6章习题参考答案
printf("\nplease input the first idiom: ");
gets(stridiom1);
printf("\nplease input the second idiom: ");
gets(stridiom2);
fnConcat(stridiom1,stridiom2);
printf("\nthe result is: %s",stridiom1)=0;
while(b[j] != '\0') /*把第二个字符串的内容连接到第一个字符串的后面*/
{
a[i+j] = b[j];
j++;
}
a[i+j]= '\0'; /*添加字符串结束符*/
}
void main()
{ char stridiom1[80],stridiom2[80];
i++;
}
a[j]= '\0'; /*添加字符串结束符*/
}
void main()
{ char stridiom1[80];
printf("\nplease input the first idiom: ");
gets(stridiom1);
fnConvert(stridiom1);
printf("\nthe result is: %s",stridiom1);
scanf("%d",&n);
printf("%ld",fnF(n));
getch();
}
(4)编一函数判别某一数是否为素数,若是,返回值为1,否则,返回值为0。

林军主编《C语言程序设计》课后参考答案第六章(习题六)

林军主编《C语言程序设计》课后参考答案第六章(习题六)

第六章(习题六----数组)一.填空1.102.303.标识符4.一,二5.06.首地址7.行8.【数组长度】9.【下标】二.单项选择1——5ADCAC6——8DBD三阅读程序题1.1 2 3 45 6 7 89 10 11 122.1 2 34 5 67 8 9*********1 0 04 5 07 8 9*********四程序填空1.(1)b=a[i](2)a[i]=a[9-i](3)a[9-i]=b2.(1)a[i][0]=1(2)a[i][i]=1(3)a[i][j]=a[i-1][j]+a[i-1][j-1] 五编程题1.#include<stdio.h>main(){int a[11];int i,t,j;for(i=1;i<11;i++){printf("input:");scanf("%d",&a[i]);}for(i=1;i<10;i++)for(j=1;j<=10-i;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=1;i<11;i++) printf("%d ",a[i]);}2.#include<stdio.h>main(){int i,j,t,k,a[10];printf("输入十个数\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++){k=i;for(j=i+1;j<10;j++) if(a[k]<a[j])k=j;if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}printf("将序排列结果:\n"); for(i=0;i<10;i++)printf("%d ",a[i]);}3.#include<stdio.h>#define N 10main(){int a[N],i,t;printf("数组元素:\n");for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N/2;i++){t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("数组逆序结果:"); for(i=0;i<N;i++)printf("%d ",a[i]);}4.#include<stdio.h> main(){int a[21],i;a[0]=1;a[1]=1;for(i=2;i<21;i++)a[i]=a[i-1]+a[i-2]; printf("数列前二十项\n"); for(i=0;i<21;i++) printf("%d ",a[i]);}7.#include<stdio.h> main(){intb[4][4],i,j,a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16};for(i=0;i<4;i++)for(j=0;j<4;j++)b[i][j]=a[j][i];printf("A数组:\n");for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%-4d",a[i][j]);}printf("转置后数组B:\n");for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%-4d",b[i][j]);}}8.#include<stdio.h>main(){int a[4][4]={1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4},i,j,sum=0; for(i=0;i<4;i++)sum+=a[i][i];for(i=0;i<4;i++)sum+=a[i][4-1-i];printf("4*4矩阵:\n");for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%-4d",a[i][j]);}printf("矩阵对角线元素之和:\n%d",sum);}。

C语言程序设计第四版第六章答案_谭浩强

C语言程序设计第四版第六章答案_谭浩强

C语言程序设计第四版第六章答案_谭浩强1、用筛选法求100之内的素数。

解:#include#includeint main(){int i,j,n,a[101];for (i=1;i<=100;i++)a[i]=i;a[1]=0;for (i=2;i<sqrt(100);i++)< bdsfid="73" p=""></sqrt(100);i++)<>for (j=i+1;j<=100;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0;}printf("\");for (i=2,n=0;i<=100;i++){ if(a[i]!=0){printf("%5d",a[i]);n++;}if(n==10){printf("\");n=0;}}printf("\");return 0;}2、用选择法对10整数排序。

解:#includeint main(){int i,j,min,temp,a[11];printf("enter data:\");for (i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\");printf("The orginal numbers:\");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\");for (i=1;i<=9;i++){min=i;for (j=i+1;j<=10;j++)if (a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\The sorted numbers:\");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\");return 0;}3、求一个3×3的整型矩阵对角线元素之和。

C语言程序设计教程第六章课后习题参考答案

C语言程序设计教程第六章课后习题参考答案

C语⾔程序设计教程第六章课后习题参考答案P158 1求三个实数最⼤值#includefloat max(float,float,float);int main(){float a,b,c,m;printf("请输⼊三个实数:");scanf("%f %f %f",&a,&b,&c);printf("最⼤数为%f\n",max(a,b,c));return 0;}float max(float a,float b,float c){float t;if(a>b&&a>c)t=a;else if(b>a&&b>c)t=b;elset=c;return t;}P158 2求最⼤公约数最⼩公倍数#includeint fun1(int a,int b);int fun2(int a,int b);int main(){int a,b;printf("请输⼊两个整数:");scanf("%d %d",&a,&b);printf("最⼤公约数为:%d\n",fun1(a,b));int t,r;if(a{t=a;a=b;b=t;}while((r=(a%b))!=0) {a=b;b=r;}return b;}int fun2(int a,int b) {int n;n=(a*b)/fun1(a,b); return n;}P158 3求完全数#includevoid wan(int n); void main(){int n;for(n=1;n<1000;n++) wan(n);printf("\n");}void wan(int n){if(n%i==0)s=s+i;}if(n==s)printf("%d\t",n); }P158 4⽆暇素数#include#includeint nixvshu(int n);int isPrime(int n);int main(){int n,t;printf("⽆暇素数:\n");for(n=100;n<=999;n++) {t=nixvshu(n);if(isPrime(n)&&isPrime(t)) printf("%d\t",n);}printf("\n");return 0;}int nixvshu(int n){int x=0;while(n){x=x*10+n%10;n=n/10;}return x;int i;for(i=2;i<=sqrt(n);i++)if(n%i==0) return 0;return n;}P158 7递归函数#includeint Y(int n){if(n==0)return 0;if(n==1)return 1;if(n==2)return 2;elsereturn (Y(n-1)+Y(n-2)+Y(n-3)); } int main(){int n,k=0;for(n=0;n<=19;n++){printf("%d\t",Y(n));k++;if(k%5==0)printf("\n");}return 0;}P124 6分解质因数#include#includevoid fenjie(int );int main(){int n;printf("请输⼊⼀个正整数:"); scanf("%d",&n);if(isPrime(n)){printf("%d=1*%d\n",n,n);}else{fenjie(n);printf("\n");}return 0;}int isPrime(int n){int i;for(i=2;i<=sqrt(n);i++){if(n%i==0) return 0;}return 1;}int zhi(int n){int m;for(m=2;m<=n;m++){if(isPrime(m)&&(n%m==0)) break;void fenjie(int n){int m;printf("%d=%d",n,zhi(n));while(n>zhi(n)){m=zhi(n);n=n/m;printf("*%d",zhi(n));}}P47 1输出闰年#includeint f(int year);int main(){int year,k=0;for(year=1900;year<=2000;year++){if(f(year)){printf("%d\t",year);k++;if(k%5==0)printf("\n");}}return 0;}int f(int year){if((year%4==0&&year%100!=0)||(year%400==0)) return year;P47 2输出回⽂数#includeint fun(int n);int main(){int n,k=0;for(n=10;n<=2000;n++) {if(n == fun(n)){printf("%d\t",n);k++;if(k%5==0)printf("\n");}}return 0;}int fun(int n){int i=0;while(n>0){i=i*10+n%10;n=n/10;}return i;}P47 3进制转换#includevoid trans(int n,int base); int main()printf("请输⼊要转换的⼗进制数:"); scanf("%d",&n);printf("请输⼊转换的进制:"); scanf("%d",&base);trans(n,base);printf("\n");return 0;}(⽅法⼀)void trans(int n,int base){if(n){trans(n/base,base);if(n%base>=10)switch(n%base){case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;}elseprintf("%d",n%base);}}(⽅法⼆)void trans(int n,int base){int r;char c;trans(n/base,base); r=n%base;if(r>=10)c='A'+r-10;elsec='0'+r;printf("%c",c);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章循环结构程序设计基础练习(A)一、选择题1、C语言中while和do-while循环的主要区别是(A)。

A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) C)do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句2、以下描述中正确的是(C)。

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while3、设有程序段int k=10;while(k) k=k-1;则下面描述中正确的是(A)。

A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是( D )。

A) while(x=y) 5;B) while(0) ;C) do 2;while(x==b);D) do x++ while(x==10);5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。

A) 3 B) 4 C) 5 D) 66、语句while(!E);中的表达式!E等价于(A)。

A)E==0 B)E!=1 C)E!=0 D)E==17、下面程序段的运行结果是(A)。

a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18、下面程序的运行结果是(C)。

#include <stdio.h>main(){int num=0;while(num<=2){num++;printf(“%d\n”,nu m);}}A)1 B)1 C)1 D)12 2 23 39、以下能正确计算1×2×3×…×10的程序段是(C)。

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);10、下面程序的运行结果是(D)。

#include <stdio.h>main(){int y=10;do{ y--; }while(--y);printf(“%d\n”,y--);}A)-1 B)1 C)8 D)011、已知int i=1,j=0;执行下面语句后j的值是(D)。

while(i)switch(i){ case 1: i+=1;j++;break;case 2: i+=2;j++;break;case 3: i+=3;j++;break;default: i--;j++;break;}A) 1 B) 2 C) 3 D) 死循环12、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是(A)。

#include <stdio.h>main(){int c;while((c=getchar())!=‘\n’)switch(c-‘2’){case 0:case 1: putchar(c+4);case 2: putchar(c+4); break;case 3: putchar(c+3);default: putchar(c+2); break;}printf(“\n”);}A)668977 B)668966 C)66778777 D)6688766二、填空题1、执行下面程序段后,k值是36。

k=1; n=263;do{ k*=n%10; n/=10; }while(n);2、下面程序的运行结果是s=254。

#include <stdio.h>main(){int a,s,n,count;a=2; s=0; n=1; count=1;while(count<=7) { n=n*a; s=s+n; ++count; }printf(“s=%d”,s);}3、下面程序段的运行结果是* *。

x=2;do{ printf(“*”); x--; }while(!x==0);4、运行以下程序时,从键盘键入China#<CR>(<CR>代表回车),则下面程序的运行结果是5,5。

#include <stdio.h>main(){int v1=0,v2=0; char ch;while((ch=getchar())!=‘#’)switch(ch){case ‘a’:case ‘h’:default: v1++;case ‘o’: v2++;}printf(“%d,%d\n”,v1,v2);}三、编程:1、编程求1*3*5*7*9的值2、编写程序计算下列算式的值:直到某一项A<=0.000001时为止。

输出最后C的值。

3、从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

1、参考答案:main(){ int i;long p=1;do{ p=p*i;i=i+2;} while (i<=9);printf(“1*3*5*9=%ld\n”,t);}2、参考答案:#define E 0.000001main(){ float x,y=1,s=0;printf("Please enter x=");scanf("%f",&x);while(1/y>E){ s=s+1/y;y=y*x;}printf("S=%f\n",s);}3、参考答案:{ int n=0;char c;c=getchar();while(c!=’\n’){ if(c>=’0’&&c<=’9’) n++;c=getchar();}printf(“%d\n”,n);}能力提高(B)一、选择填空题1、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。

#include <stdio.h>main(){int m=0,n=0;char c;while(( A)!=‘\n’){if(c>=‘A’&&c<=‘Z’) m++;if(c>=‘a’&&c<=‘z’) n++;}printf(“%d\n”,m<n? A );}(1) A)c=getchar() B)getchar() C)scanf(“%c”,c)(2) A)n:m B)m:n C)m:m D)n:n2、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include <stdio.h>main(){int a,max=0;scanf(“%d”,&a);while( B){if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max);}A)a==0 B)a C)!a==1 D)!a3、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include <stdio.h>main(){int n,sum=0;n=2345;do{sum=sum+ B;n= C;}while(n);printf(“sum=%d”,sum);(1) A)n%10 B)(n%10)*(n%10) C)n/10 D)(n/10)*(n/10)(2) A)n/1000 B)n/100 C)n/10 D)n%10二、读懂程序,并按照程序的功能将程序补充完整1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。

请填空。

#include <stdio.h>main(){int r,m,n;scanf(“%d %d”,&m,&n);if(m<n) r=m,m=n,n=r;r=m%n;while(r) { m=n; n=r; r= m%n; }printf(“%d\n”,n);}2、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。

请填空。

#include <stdio.h>main(){int i=1,j=0;do{if( i%3==2&&i%5==3&&i%7==2){printf(“%4d”,i);j=j+1;if( j%5==0) printf(“\n”);}i=i+1;}while(i<1000);}3、等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。

请填空。

#include <stdio.h>main(){int a,d,sum;a=2; d=3; sum=0;do{sum+=a;a+=d;if( sum%4==0) printf(“%d\n”,sum);}while(sum<200);}第2讲基础练习(A)一、选择题1、下面有关for循环的正确描述是(D)。

A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来2、对for(表达式1;;表达式3)可理解为(B)。

A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1; 表达式1;表达式3)D)for(表达式1; 表达式3;表达式3)3、下列说法中正确的是(C)。

A)break 用在switch语句中,而continue 用在循环语句中。

B)break 用在循环语句中,而continue用在switch语句中。

C)break 能结束循环,而continue只能结束本次循环。

D)continue能结束循环,而break只能结束本次循环。

4、以下正确的描述是(B)。

相关文档
最新文档