c语言循环结构上机习题

合集下载

C语言程序设计第3版何钦铭-颜-晖--循环结构

C语言程序设计第3版何钦铭-颜-晖--循环结构

第4章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么?为什么?如果将精度改为 10-3,运行结果有变化吗?为什么?解答:如果对item赋初值0,则程序运行结果是pi=0,因为item为0时不满足while 循环的执行条件,即不执行循环,故 pi 值为 0。

如果将精度改为 10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得while循环次数减少,必然影响到n的值。

【练习 4-2】运行例 4-2程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是 -1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。

如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则while循环条件不成立,不执行循环体。

【练习4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数eps, 计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps (保留6位小数)。

试编写相应程序。

解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习4-4】如果将例4-3程序中的do-while语句改为下列while语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10; count ++;}解答:会有影响,因为当输入数据 number 为 0时,上述 while 循环将不执行,count 值仍为 0,故输出为 0,不符合题目要求。

C语言循环结构练习题

C语言循环结构练习题

第5 章循环结构程序设计5.1 基本知识点while 语句的使用格式和注意事项do-while 语句的使用格式和注意事项for 语句的使用格式和注意事项break 和continue 语句在循环语句中的应用循环结构的嵌套使用goto 语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51.单项选择题(1)语句while (!e); 中的条件!e 等价于。

A.e==0B. e!=1C. e!=0D. ~e(2)下面有关for 循环的正确描述是。

A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判定表达式C.在for 循环中,不能用break 语句跳出循环体D.for 循环体语句中,可以包含多条语句,但要用花括号括起来(3) C 语言中。

A.不能使用do-while 语句构成的循环B.do-while 语句构成的循环必须用break 语句才能退出C.do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环D.do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环(4) C 语言中while 和do-while 循环的主要区别是。

A. do-while 的循环体至少无条件执行一次B.while 的循环控制条件比do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句 ( 5)以下程序段。

int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误( 6)下列语句段中不是死循环的是________ 。

A. i=100;while (1){i=i%100+1;if (i==20) break; }B. for (i=1;;i++) sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是while (a){if (b) continue;c;}A. while (a) { if (!b) c; }B. while (c){ if (!b) break; c; }C. while (c){ if (b) c; }( 8)以下程序的输出结果是 ________ 。

C语言上机试题及答案

C语言上机试题及答案

实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。

2、熟悉 VC6 开发环境。

3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。

4、初步掌握程序的编辑修改和调试。

5、熟练使用赋值运算、算术运算等表达式。

6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。

二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。

请同学们按照下面的实验指导学习VisualC++6.0的使用。

1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。

(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。

2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。

⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。

⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。

在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。

在弹出窗口中的Files 标签页下,选择C++ Sour ce File。

在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。

点击 OK 按钮。

将出现编辑窗口 ,如图 1-2 所示。

在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。

图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。

(完整版)C语言循环结构练习题集带答案解析

(完整版)C语言循环结构练习题集带答案解析

第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。

A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。

A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。

A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。

int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。

A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。

C 循环结构23道题[含答案解析]

C  循环结构23道题[含答案解析]

题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。

输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。

若为素数则输出1,否则输出0。

(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。

输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。

C语言循环结构练习题带答案.doc

C语言循环结构练习题带答案.doc

第 5 章循环结构程序设计练习题1.单项选择题( 1)语句 while (!e);中的条件!e等价于A。

A. e==0B. e!=1C. e!=0D. ~e( 2)下面有关for循环的正确描述是D。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在 for循环中,不能用break 语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。

A.不能使用do-while语句构成的循环B. do-while 语句构成的循环必须用break 语句才能退出C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环( 4) C 语言中 while 和 do-while 循环的主要区别是A 。

A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句( 5)以下程序段C。

int x=-1;do{x=x*x;}while (!x);A.是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误( 6)下列语句段中不是死循环的是__C__。

A.i=100;while (1){i=i%100+1;if (i==20) break;}B.for (i=1;;i++)sum=sum+1;C.k=0;do{++k;} while (k<=0);D.s=3379;while (s++%2+3%2)s++;( 7)与以下程序段等价的是__A__。

while (a){if (b) continue;c;}A.while (a)B.while (c){ if (!b) c; }{ if (!b) break; c; }C. while (c)D. while (a){ if (b) c; }{ if (b) break; c; }( 8)以下程序的输出结果是_B___。

C语言循环结构练习题带答案

C语言循环结构练习题带答案

第5章循环结构程序设计练习题1. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。

A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。

A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。

A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。

int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。

A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。

while (a){if (b) continue;c;}A. while (a)B. while (c){ if (!b) c; } { if (!b) break; c; }C. while (c)D. while (a){ if (b) c; } { if (b) break; c; }(8)以下程序的输出结果是_B___。

C语言循环结构练习题带标准答案

C语言循环结构练习题带标准答案

C语言循环结构练习题带标准答案第5章循环结构程序设计5.1基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2练习题51.单项选择题(1)语句while (!e)。

中的条件!e等价于A。

A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是D。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。

A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。

A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段C。

int x=-1。

do{x=x*x。

}while (!x)。

A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。

A. i=100。

while (1){i=i%100+1。

if (i==20) break。

}B.for (i=1。

i++)sum=sum+1。

C.k=0。

do{++k。

} while (k<=0)。

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

c语言循环结构上机习题标准化工作室编码[XX968T-XX89628-XJ668-XT689N]1、计算n的阶乘(n!),n的取值在1~10之间。

分别使用while、do…while和for语句实现。

(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。

3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函数值。

4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。

(分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子)5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。

要求每一行显示5个数,并且统计一共有多少个整数能被n整除。

6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。

main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while( ① ){ if(x>amax) amax=x;if( ② ) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。

分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z的取值范围:1) x的取值范围为1~202) y的取值范围为1~333) z的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。

数据要求问题中的常量:无问题的输入:无问题的输出:int x,y,z /*公鸡、母鸡、小鸡的只数*/初始算法1.初始化为1;2.计算x循环,找到公鸡的只数;3.计算y循环,找到母鸡的只数;4.计算z循环,找到小鸡的只数;5.结束,程序输出结果后退出。

算法细化算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。

步骤2和3是按照步长1去寻找公鸡和母鸡的个数。

步骤4的细化4.1 z=14.2 是否满足百钱,百鸡4.2.1 满足,输出最终百钱买到的百鸡的结果4.2.2 不满足,不做处理4.3 变量增加,这里注意步长为3程序代码如下#include "stdio.h"main(){int x,y,z;for(x=1;x<=20;x++){for(y=1;y<=33;y++){for(z=3;z<=99;z+=3){if((5*x+3*y+z/3==100)&&(x+y+z==100))/*是否满足百钱和百鸡的条件*/printf("cock=%d,hen=%d,chicken=%d\n",x,y,z );}}}}分析程序运行结果如下:cock=4,hen=8,chicken=78cock=8,hen=11,chicken=81cock=12,hen=4,chicken=84对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即。

请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试这一方法。

程序修改:1、统计使用三重循环的循环次数2、使用二重循环完成,并统计循环次数#include <stdio.h>int main(){int i1,i2,j1,j2,a,b,c,d;for(i1=11;i1<=99;i1++)for(j1=i1+1;j1<=99;j1++){a=i1/10;b=i1%10;c=j1/10;d=j1%10;if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d) { i2=b*10+a;j2=d*10+c;}if(i1*j1==i2*j2){printf("%d*%d=%d*%d\t",i1,j1,i2,j2);} }return 0;}#include <stdio.h>void main(){int a,b,c,d;for(a=1; a<=9; a++)for(b=1; b<=9; b++)for(c=a+1; c<=9; c++)for(d=1; d<=9; d++)d{if((a*10+b)*(c*10+d)==(10*b+a)*(10*d+c))if((a!=b)&&(a!=c)&&(a!=d)&&(b!=c)&&(b! =d)&&(c!=d))printf("%d%d*%d%d=%d%d*%d%d\t",a,b,c,d ,b,a,d,c);}}#include<stdio.h>main(){int i, n,j=0;printf("请输入一个整数n:");scanf("%d" ,&n);if(n>=1&&n<=100){printf("1~100间可以被%d整除的数是:\n",n); for(i=n;i<=100;i+=n){ printf("%-3d",i);j++;if(j%5==0)putchar('\n');}}elseprintf("输入错误!");}#include<stdio.h>int main(){int x,y;for(x=1;x<=9;x++){y=3*x*x+2*x+1;printf("f(%d)=%d\n",x,y);}}#include<stdio.h>int main(){int n,m=0,i=0;printf("求1到100之间可以被n整除的整数\n");printf("请输入整数n:");scanf("%d",&n);if(n>=1&&n<=100){ while(m<=100-n){ m+=n;i++;printf("%3d,",m);if(i%5==0)putchar('\n');}printf("\n1到100一共有%d个整数可以被%d整除\n",i,n);}elseprintf("输入错误");}#include<stdio.h>int main(){int letters=0,space=0,digit=0,others=0;char c;printf("请输入一串字符:");for(;(c=getchar())!='\n';){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseothers++;}printf("你一共输入了%d个字母,%d个空格,%d个数字,%d个其它字符\n",letters,space,digit,others);}使用数组#include"string.h"#include<stdio.h>void main(){int k;static char st[1];gets(st);k=strlen(st);printf("%d",k);}。

相关文档
最新文档