程序设计基础C实验报告.doc_第1页
程序设计基础C实验报告.doc_第2页
程序设计基础C实验报告.doc_第3页
程序设计基础C实验报告.doc_第4页
程序设计基础C实验报告.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础C实验报告程序设计基础C实验报告教学班级:_111040602_ 学号:_ 姓名:_课程教师:_ 实验辅导教师:_重庆理工大学计算机学院 2012年2月实验6 循环程序设计教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、实验目的1. 了解C语言循环结构的使用范围。2. 学会正确使用逻辑运算符和逻辑表达式。3. 熟练掌握C语言的三种循环结构:whilc语句、do_while语句、for语句的特点和使用方法。4. 能够编写一些有实际应用意义的循环结构程序。二、实验内容1基本内容题目1:编写一个自然数1至n的累加程序(如:1+2+3+n)。(使用goto语句)(文件名:f1.cpp): #include void main() int i,a,n; a=i=0; printf(“n=“); scanf(“%d”,&n); E: i+; a+=i; if (in) goto E; else printf(“n a=%d”,a); 输入10,程序运行结果是: a=55 把该程序用for循环语句进行改写 程序代码: #include void main() 题目2:计算135799+101的值(提示:注意符号的变化)(文件名:f2.cpp) #include void main() int i,t=1,s=0; /* t标识符号 */ for (i=1;i=101; i+=2) /*error*/ s+=i*t; t= -t; printf(“s=%dn”,s); 以上程序运行结果不对,请将标有”erro”处改正。改正后,程序执行结果: s=51 题目3:阅读下列程序,预测其输出结果,并上机验证。(文件名:f3.cpp)#includevoid main() int i=1,n; long s=1; scanf(%d,&n); while(i) s*=i; i+; if(in) break; printf(s=%ldn,s); 程序运行结果是: 输入数的阶乘 不使用break语句,此程序应如何修改? #includevoid main() int i=1,n; long s=1; scanf(%d,&n); while(i=n) s*=i; i+; printf(s=%ldn,s); 题目4:下面程序的功能是打印100以内个位数为6且能被3整除的所有数,选择合适的语句填入该空格中。(文件名:f4.cpp)#includevoid main() int i,j; for(i=0; i=9 ;i+) j=i*10+6; if( j%3!=0 ) continue; printf(%d,j);题目5:编写一个把小写字母转换为大写字母的程序。要求敲入”/”,则停止转换。(文件名:f5.cpp) #include void main() char c,d; putchar(); do c=getchar(); c=(a=c)&(c); while(c!=/); /* 判断是否是”/”,则停止转换 */ 运行程序,输入2AabcEfgAB/程序运行结果是: 2AabcE2AABCEfgFGABAB 将第9行改为:if (c=n) 再运行程序,输入2AabcEfgAB/程序运行结果是: 2AabcE 2AABCE fgFGABAB 2选择内容题目6:根据公式 求e的近似值,精度要求为10-n(文件名:f6.cpp)include void main() int i; double e,n; e=1.0; n=1.0; for (i=1;n=1e-6;i+) n=n/i; e+=n; printf(“e=%fn”,e); 完善程序,运行结果: e=2.718282 题目7:打印出如下图案(文件名:f7.cpp)*#include void main()int i,j; for(i=1;i=4;i+) for(j=1;j=8-i;j+) /理解数字8的作用 printf( ); for(j=1;j=1;i-) for(j=1;j=8-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(* ); printf(n); 运行以上程序,验证实验结果。 模仿上面程序,打印出如下图案 1 2 2 2 3 3 3 3 3程序代码: #include void main() #includevoid main()int i,j;for(i=1;i=3;i+)for(j=1;j=8-i;j+)printf( ); for(j=1;j=2*i-1;j+)printf(* ); printf(n); 题目8:编写程序:打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33。(文件名:f6.cpp) #include void main()int i,j,k,m,n; for(i=1;i9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) m=i*100+j*10+k;n=i*i*i+j*j*j+k*k*k; if(m=n)printf(%10d,m); 三、实验结果(用截图说明)第一题第二题第四题第五题第六题第七题第八题四、调试心得(选作)实验7,8 数组实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、 实验目的1. 理解数组与普通变量的区别及特点;2. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;3. 掌握字符数组和字符串函数的使用;4. 掌握与数组有关的程序与算法。二、 实验任务1基本内容实验7:题目1:阅读以下程序(文件名:g1.cpp) #include void main() int i,s=0,a10=0,1,2,3,4,5,6,7,8,9; for(i=3;i7;i+) s=s+ai; printf(“s=%dn”,s); 程序的功能: 求出a【3】a【4】a【5】a【6】地和 程序运行结果: s=18 题目2:阅读以下程序(文件名:g2.cpp)#includevoid main() int k,s,i,a10=1,2,3,4,5,6,7,8,9,10; float ave; for(k=s=i=0;i10;i+) if(ai%2=0) continue;s+=ai;k+; if(k!=0) ave=s/k;printf(“k=%d,ave=%fn”,k,ave); 程序的功能: 奇数的和 程序运行结果: K=5,ave=5.000000 题目4:任意输入10个数,求其最大数和最小数。(文件名:g4.cpp)程序代码: #include void main()int a10;int i,j,max,min;printf(Please input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);for(j=0;jaj+1) max=aj; min=aj+1; else max=aj+1; min=aj; printf(max=%d min=%d,max,min); 题目5:冒泡法对10个数排序(从小到大)。(文件名:g5.cpp)#include void main()int a10;int i,j,temp;printf(Please input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)for(j=0;jaj+1) temp=aj; aj=aj+1; aj+1=temp; printf(The sorted numbers:n);for(i=0;i10;i+)printf(%4d,ai);理解以上程序,并编辑运行程序。将程序中第7行的数字9改为10,编译运行程序,结果怎样? 将程序中第8行的数字9改为10,编译运行程序,结果怎样? 实验8:题目2:输入一串字符,计算其中空格的个数。(文件名:h2.cpp)#include #include void main()char c30; int i,sum=0; gets(c); for(i=0;istrlen(c);i+) if(ci= ) sum=sum+1; printf(空格数为:%d n,sum);题目3:(文件名:h3.cpp)#includevoid main() int i,j,row,col,min;int a34=1,2,3,4,9,8,7,6,-1,-2,0,5;min=a00;row=col=0;for(i=0;i3;i+)for(j=0;j4;j+)if(aijmin) min=aij;row=i; col=j; printf(“min=%d,row=%d,col=%dn”,min,row,col);程序的功能: 程序运行结果: min=-2,row=2,col=1 题目5:预测程序结果,并编辑、运行。(文件名:h5.cpp)#include void main() char s20,s120; scanf(“%s”,s); printf(“s=%sn”,s); scanf(“%s%s”,s,s1); printf(“s=%s,s1=%s”,s,s1); puts(“n”); gets(s); puts(s);2选择内容实验7:题目6:任意输入20个数在一维数组a中,求20个数的平均值。(文件名:g6.cpp) 程序代码: #include void main() float score 10,avg=0,sum=0;int i;for(i=0;i20;i+)scanf (%f,&scorei);sum+=scorei; printf(:%f n,avg=sum/20); 题目7:任意输入10个数,判断该哪些是素数,并输出该素数。(文件名:g7.cpp)程序代码: #include void main() 实验8:题目8:用字符数组存储任意输入的10字符,求该10字符中最大字符。(文件名:h8.cpp) 程序代码: #include void main() 题目9:从键盘上任意键入一个3行4列的矩阵,要求输出其转置矩阵。(文件名:h9.cpp) 程序代码: #include void main() 题目10:有5个学生,考3门功课。求出每一个学生的总分及平均分,统计平均成绩低于 60 分的学生人数。(文件名:h10.cpp)程序代码: #include void main() int a3 ;int i,ave,sum,x;for(iscanf(”%d”,&a3);三、 实验结果(用截图说明)实验七题目一题目二实验八第二题第三题四、调试心得(选作)实验9,10 函数实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、 实验目的1. 理解函数定义的方法。2. 掌握函数实参与形参的对应关系,以及”参数传递”的方式;3. 掌握函数的嵌套调用和递归调用的方法;4. 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。二、 实验任务1基本内容实验9:题目1:以下程序是求3个数中的最大值(文件名:i1.cpp)#includevoid main() int a,b,c,m; int max(int x,int y); /* 函数声明*/printf(“input a,b,c=“);scanf(“%d,%d,%d”,&a,&b,&c); printf(“m=%dn”,m);int max(int x,int y) /*函数定义*/ int z; z=(xy)?x:y; return z; 完善程序,如果输入4,2,6,程序运行结果: 题目2:(文件名:i2.cpp)#includevoid main() int a3=0,2,4,6,8,10,12,14,16,sum; int func(int a3); /*函数声明*/sum=func(a); printf(“n sum=%dn”,sum);int func(int a3) /*函数定义*/ int i,j,sum=0; for(i=0;i3;i+)for(j=0;j3;j+) if(i=j) sum+=aij; return sum; 程序的功能: 程序运行结果: sum=24 题目3:用子函数计算10名学生1门课成绩的平均分。(文件名:i3.cpp)#includefloat average(float array10) /* 注意数据类型的一致 */ int i; float aver,sum=0; for (i=0;i10;i+) sum+=arrayi; aver=sum/10; return (aver); void main() float score10,aver;int i;printf(“n input 10 scores:”);for (i=0;i10;i+) scanf(“%f”,&scorei);aver=average(score10); /* error */printf(“n average score is %5.2fn”,aver); 程序中有“error”标注处有错误,请改正,并调试运行程序。 aver=average(score); 题目4:子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。(文件名:i4.cpp) #includevoid main() int number; printf(“请输入一个正整数:n”);scanf(“%d”,&number);if ( ) printf(“n %d是素数:”,number);elseprintf(“n %d不是素数:”,number);int prime(int number) int flag=1,n;for (n=2; flag=1 & n=number/2;n+)if ( ) flag=0;return (flag); 完善以上程序,并调试运行。实验10:题目4:该程序使用了局部变量与全局变量,理解它们的使用方式。(文件名:j4.cpp)#includeint a=3,b=5;int max(int a,int b) int c; c=ab?a:b; return c;void main() int a=8; printf(“%d”,max(a,b); 局部变量: int a=3,b=5; int c; 全局变量: a=8; 程序运行结果: 8 题目5:以下是一个求1-10累加和的错误程序,请改正。(文件名:j5.cpp)#includevoid main() int i,s; for(i=1;i=10;i+) s=sum(i); printf(s=%dt,s);sum(int j) int x=0; /* error */ x+=j; return(x);改正为: 2选择内容实验9:题目5:子函数实现一个字符串按反序存放,在主函数中输入和输出字符串。(文件名:i5.cpp) #include#include void main() void inverse(char str);char str100; printf(“输入字符串:n”); scanf(“%s”,str); inverse(str); printf(“转换后的字符串是:%sn”,str); void inverse(char str) char t; int i,j; for (i=0,j=strlen(str); istrlen(str)/2 ; i+,j-) t=stri; stri=strj-1; strj-1=t; 运行以上程序,输入1234567*,程序运行结果是: 转换后的字符串是: *7654321 。将inverse函数中的for语句改为 for (i=0,j=strlen(str); istrlen(str) ; i+,j-) 再运行以上程序,输入1234567*,程序运行结果是: 1234567* 。题目6:在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。(文件名:i6.cpp)程序代码: #include void main() 题目7:在主函数中定义二维数组A34、B4,用子函数对数组A34每一行求和,其值放在数组B4中,在主函数中输出该值。(文件名:i7.cpp)程序代码: #include void main() 三、 实验结果(用截图说明)第二题第五题四、调试心得(选作)实验11 指针实验教学班级:_ 学号:_ 姓名:_实验日期:_ 实验地点:_(机房) 实验成绩:_ 一、 实验目的1掌握指针的概念,指针变量的定义和使用。2熟悉和了解C语言指针一般设计方法。3学会使用C语言指针进行程序设计。4学会使用数组的指针和指向数组的指针变量。5进行简单C语言指针语句的设计、调试、编译和运行。二、 实验任务1基本内容题目1:阅读以下程序。(文件名:k1.cpp#include void main() int x=1,y=2, *p, *q; p=x;q=y; /* error */printf(“x=%d,y=%dn”,x,y);printf(“&x=%d,&y=%dn”,&x,&y);printf(“p=%d,q=%dn”,p,q);printf(“p=%d,q=%dn”,*p,*q);请改正程序中的错误。预测程序结果,并上机调试运行程序。题目2:预测程序结果,并上机运行程序验证结果。(文件名:k2.cpp) #include void main() int a=1,3,5,7,9,11,13; int *p=a ; printf(1-%dn,*p); printf(2-%dn,*(+p); printf(3-%dn ,*+p); printf(4-%dn ,*(p-); printf(5-%dn ,*p-); printf(6-%dn,*p+); printf(7-%dn,+(*p); printf(8-%dn,(*p)+); p=&a2; printf(9-%dn ,*p); printf(10-%dn,*(+p); p+; printf(11-%dn ,*p); 程序运行结果: 1- -12- -33- -54- -55- -36- -17- -48- -49- -510- -711- -9 题目3:提示:静态变量的使用(文件名:k3.cpp)#includevoid main() static int a6=1,2,3,4; /* 静态变量 */ int *p,i,s=1; p=a; for(i=0;i6;i+) s*=*(p+i); printf(“%dn”,s);程序运行结果: 0 题目4:预测程序结果,并上机运行程序验证结果。(文件名:k4.cpp)#includevoid main() char a=“abcdef”; char *b=“ABCDEF”; int *p,i; for(i=0;i3;i+) printf(“%c,%sn”,*a,b+i);printf(“-n”); for(i=3;ai;i+) putchar(*(b+i); printf(“%cn”,*(a+i); 程序运行结果: 题目5:预测程序结果,并上机运行程序验证结果。(文件名:k5.cpp)#includevoid main() int n1,n2,n3; int *pointer_1,*pointer_2,*pointer_3; void swap(int *p1,int *p2);printf(“请输入三个整数 n1,n2,n3:”); scanf(“%d,%d,%d”,&n1,&n2,&n3); pointer_1=&n1; pointer_2=&n2; pointer_3=&n3; if (n1n2) swap(pointer_1, pointer_2); if (n1n3) swap(pointer_1, pointer_3); if (n2n3) swap(pointer_2, pointer_3); printf(“三个整数为:%d,%d,%dn”,n1,n2,n3);void swap(int *p1,int *p2) int p; p=*p1;*p1=*p2;*p2=p; 程序的功能: 如果输入4,2,6,程序运行结果: 2,4,6 题目6:预测程序结果,并上机运行程序验证结果。(文件名:k6.cpp)#include#include#include void main() char str120, str220, str320; void swap(char *p1,char *p2); printf(请按行输入三个字符串:n); scanf(%s,str1); scanf(%s,str2); scanf(%s,str3); if (strcmp(str1,str2)0) swap(str1,str2); if (strcmp(str1,str3)0) swap(str1,str3); if (strcmp(str2,str3)0) swap(str2,str3); printf(三个字符串为:n); printf(%sn%sn%sn,str1,str2,str3);#includevoid main() int cle=0,sle=0,di=0,wsp=0,ot=0,i; char *p,s100=0; printf(“请输入一行字符:”); i=0; while (si=getchar()!=n) i+;p=&s0; while (*p!=0) if (A=*p)&(*p=Z) +cle;else if (a=*p)&(*p=z) +sle;else if (*p= ) +wsp;else if (*p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论