厦门理工学院c语言实验4_循环答案)
- 格式:doc
- 大小:137.50 KB
- 文档页数:12
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
第4部分部分参考答案测试11.(1) g=x[i]%10(2) y[n++]=x[i]2. float fun( int k )return s;3.void fun(int a[], int b[], int c[], int n) {int i;for (i=0;i<n;i++)c[i]=a[i]+b[n-1-i];}测试21. (1) if (s[i]>='0' && s[i]<='9')(2) s[i]-'0';(3) n;2. void fun(long s,long *t)while(s>0)3. int fun(int score[],int m,int below[]){int i,k=0;float ave,s=0;;for (i=0;i<m;i++)s=s+score[i];ave=s/m;printf("aver=%f\n",ave);for (i=0;i<m;i++)if (score[i]<ave)below[k++]=score[i];return k;}测试31.(1) *p;(2) i++;(3)‘\0’2. for (i=0, j=0; i<sl; i+=2)t[j] ='\0';3.void fun(int x, int pp[], int *n) {int i,j=0,k=0;for (i= 1;i<x;i++)if (x%i==0)pp[j++]=i;for (i=0;i<j;i++)if (pp[i]%2==1)pp[k++]=pp[i];*n=k;}测试41.(1)*p==ch(2) bb[n++]=i(3) n2. for (i=sl, j=0; i>=0; i-=2)t[2*j] = '\0';3. void fun(STREC a[ ]){STREC h;int i,j;for (i=0;i<N;i++)for (j=i+1;j<N;j++)if (a[i].s<=a[j].s){h=a[i];a[i]=a[j];a[j]=h;}}测试51.(1) "out.dat","w"(2) fputc(ch,fp)(3) fclose(fp)2.*u = '\0';for (i=0; i<ul/2; i++)3.void fun(char s[],char t[]) {int i,n=0;for (i=0;s[i]!='\0';i++)if (i%2==0)t[n++]=s[i];t[n]='\0';}习题1 数据运算、顺序结构一、选择题1. C2. C3. D4. C5. B6. A7. D8. C9. C 10.D 11.A 12.D 13.D 14.D 15.D 16.B 17.D 18.B 19.C 20.C 21.D 22.B 23.C 24.D 25.A 26.D 27.D 28.B 29.C 30.C 31.A 32.C 33.B 34.D 35.D 36.A 37.B 38.D 39.D 40.D 41.B 42.A 43.C 44.D 45.C二、填空题1. 9.52. 123%10,123/10%10、 123/1003. 0 0x4. ASCII、整习题2 选择结构一、选择题1. D2. C3. B4. D5. C6. B7. A 8. B 9. B A 10.D二、填空题1. 5 25 12. z=13. a1=1 a2=1b1=0 b2=14. 1,05. if(a>b){scanf(“%d”,&a);n++;}else {scanf(“%d”,&b);m++;}6. 输入两个数x,y,比较x+y和x*y哪个数大。
实验四编号1#include <stdio.h>void main(){int i=0;while(i++<=1)printf("%2d",i);printf("%2d",i);}实验四编号2#include <stdio.h>void main(){int i=0;doprintf("%2d",i);while(i++<=1);printf("%2d",i);}实验四编号3#include<stdio.h>void main(){int a,b;for(a=1,b=1;a<100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b+=5;}printf("a=%d,b=%d",a,b);}实验四编号4#include <stdio.h>void main(){float i,sum;for(i=1;i<=100;i++)sum+=1/i;printf("1+1/2+1/3+...+1/100=%f",sum); }实验四编号5#include <stdio.h>void main(){int i,sum=0;i=0;while(1){i++;if(i>=100)break;if(i%2==0)continue;sum+=i;}printf("1+3+5+...+99=%d",sum);}实验四编号6#include <stdio.h>void main(){int i,sum=0,fac=1;for(i=1;i<=99;i+=2){fac=i*(i+1)*(i+2);sum+=fac;}printf("1*2*3+3*4*5+...99*100*101=%d",sum); }实验四编号7#include<stdio.h>void main(){ int i;for (i=1;i<=9;i++)if (i*i%10==i) printf("%d,",i);for (i=10;i<=99;i++)if (i*i%100==i) printf("%d,",i);if (100*100%1000==100) printf("%d,",100); }实验四编号8#include<stdio.h>main(){int m,a,b,c,i;for(m=100,i=0;m<=999;m++){a=m/100;b=m/10%10;c=m%10;if(a+b+c==11)i++;}printf("count=%d",i);实验四编号9#include<stdio.h>void main(){int a,s=0;scanf("%d",&a);while(a/10!=0){{if(a%10==2)s++;}a/=10;}if(a%10==2)s++;printf("count=%d",s);}实验四编号10#include<stdio.h>#include<math.h>main(){int i=200,j,num=0,sum=0;for(i;;){for(j=2;j<=sqrt(i);j++)if(i%j==0)break;if(j>sqrt(i)){sum+=i;num++;if(num>=10)break;}i++;}printf("大于200的素数之和:%d\n",sum);}实验四编号11#include <stdio.h>void main(){int a,b,c,x;for(x=100;x<=999;x++){ a=x/100;b=x%100/10;c=x%10;if(x==a*a*a+b*b*b+c*c*c)printf("%d\n",x);}实验四编号12#include<stdio.h>void main(){int i,j=0,a=0;for(i=0;i<5;i++)do{if(j%3)break;a++;j++;}while(j<10);printf("j=%d,a=%d",j,a);}实验四编号13#include <stdio.h>void main(){int m,n;scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}实验四编号14#include <stdio.h>void main(){int i,j,k,count;count=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++){if(i==j)continue;for(k=0;k<=9;k++)if( k!=i&&k!=j )count++;}printf("这样的三位数共有%d个",count); }实验四编号15#include<stdio.h>void main(){int a,b,c,d,n;for(n=1;n<=100;n++){a=n/10;b=n%10;c=a+b;d=a*b;if(d>c) printf(" %d",n);}}实验四编号16#include<stdio.h>void main(){int x=7,b;while(b!=0){if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0) break;b=1;x++;}printf("%d\n",x);}实验四编号17#include<stdio.h>void main(){int big,mid,small;for(big=1;big<=33;big++)for(mid=1;mid<=49;mid++){ small=100-big-mid;if(6*big+4*mid+small==200) printf("big=%d,mid=%d,small=%d\n",big,mid,small);} }实验四编号18#include<stdio.h>void main(){int n,sum,i;for(n=2;n<=1000;n++){sum=0;for(i=1;i<n;i++){if(n%i==0)sum+=i;}if(sum==n)printf("%d,",n);}}。
c语言循环实验报告C语言循环实验报告引言:C语言是一种广泛应用于程序设计和开发的高级编程语言。
而循环结构是C语言中最为重要和基础的语法之一,它可以帮助我们重复执行某些特定的代码块,提高程序的效率和灵活性。
本实验旨在通过实际编程实践,探索C语言中循环结构的使用方法和应用场景,并进一步加深对循环的理解。
实验一:for循环在C语言中,for循环是最常用的循环结构之一。
它的基本语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {循环体语句;}```在本实验中,我们使用for循环来实现一个简单的九九乘法表打印程序。
通过嵌套的for循环,我们可以方便地控制行和列的输出,实现乘法表的格式化打印。
以下是代码示例:```#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d * %d = %d\t", j, i, i * j);}printf("\n");}return 0;}```通过运行以上代码,我们可以得到一个完整的九九乘法表。
实验二:while循环除了for循环,C语言中的while循环也是常用的循环结构之一。
它的基本语法如下:```while (条件表达式) {循环体语句;更新表达式;}```在本实验中,我们使用while循环来实现一个简单的猜数字游戏。
游戏规则是计算机随机生成一个1到100的整数,玩家通过输入猜测的数字,计算机根据猜测结果给出相应的提示,直到猜中为止。
以下是代码示例:```#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {int target, guess;srand(time(0));target = rand() % 100 + 1;printf("猜数字游戏开始!\n");printf("请输入一个1到100的整数:"); scanf("%d", &guess);while (guess != target) {if (guess > target) {printf("猜大了!请重新输入:"); } else {printf("猜小了!请重新输入:"); }scanf("%d", &guess);}printf("恭喜你,猜对了!\n");return 0;}```通过运行以上代码,我们可以体验到一个简单而有趣的猜数字游戏。
4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。
《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i 的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while 语句构成的循环不能用其他语句构成的循环来代替。
B.do---while 语句构成的循环只能用break 语句退出。
C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k 为整型变量,则下面while 循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。