哈尔滨工业大学(威海)软件学院 C 程序设计实验报告编号: 姓名院系软件学院学号任课教师指导教师于水实验地点实验时间实验名称 1、国王应该给大臣多少麦子; 2用英文字母组成一个菱形; 3、输出一段 DNA 序列对应的 mRNA 及转录出的蛋白质。同组人无预习报告(对实验主要内容的认识)得分 1. 如果循环次数已知,用 for ;如果循环次数未知,用 while 如果循环体至少要执行一次,用 do-whil 。 2. break 与 continue 的作用是跳转; continue 负责结束本次循环,回到循环条件处; break 负责退出本循环(本语句块)。 3. 一个工程中绝对不允许出现死循环。实验内容(问题,思路,程序,结果) 得分主要说明面对的问题是什么现象(输入,输出或者编译器提示等) ,通过这样的现象,能够得到什么已知条件。由此, 通过自己的设计方案, 设计并实现满足实验需求的程序或者文档。在实验报告中, 对于问题的分析和设计是重点内容。一、实验 1( 国王应该给大臣多少麦子) 本实验要求用两种方法计算国王应该给大臣多少麦子: 直接计算累加的通项和利用前项计算后项。 1、直接计算累加的通项:利用数学公式计算出累加通项为 Sn=a 1 *(1-q n )/(1-q) 程序如下: do{ sum=sum+a; a= a*2; i++; }while(i<=15); printf("sum=%d\n",sum); break; 2、利用前项计算后项: for(i=0;i<16;i++) { a=a*2; } sum =a-1; printf("sum=%d\n",sum); break; 3、把两个程序合并在一起的完整的程序: #include <> #include <> int main() { int i,a,sum,way; sum =0;i=0;a=1; printf(" 你想用第几种方法(请输入 1或 2):\n"); scanf("%d",&way); switch(way) { case 1:do{ sum=sum+a; a= a*2; i++; }while(i<=15); printf("sum=%d\n",sum); break; case 2: for(i=0;i<16;i++) { a=a*2; } sum =a-1; printf("sum=%d\n",sum); break; default: printf(" 请重新输入\n"); } return 0; }4、运行结果如下: 二、实验 2( 用英文字母组成一个菱形) 1、思路:( 1) 首先能够输出英文字母,用 putchar 语句,可以用 Asc 码来实现: for(k=0;k<=i;k++) putchar('A'+k); ( 2 )用四块三角形组成一个菱形:注意怎样输出空格(用一段循环语句来实现)。利用循环次数的不同来实现上下两块三角形的出现。( 3)还有提醒用户输入的数字应该在 1— 26。 2、具体程序如下: #include <> int main() { int n=0,i,j,k; printf("##########################################\n"); printf("********** 欢迎来到美丽的图形世界**********\n"); printf("##########################################\n"); printf(" 请输入一个数:"); scanf("%d",&n); if(n>0&&n<=26) { for(i=0;i<n;i++) { for(j=0;j<n-i;j++) printf(" "); for(k=0;k<=i;k++) putchar('A'+k); for(k=i;k>0;k--) putchar('A'+k-1); printf("\n"); } for(i=n-2;i>=0;i--) { for(j=0;j<n-i;j++) printf(" "); for(k=0;k<=i;k++) putchar('A'+k); for(k=i;k>0;k--) putchar('A'+k-1); printf("\n"); }} else { printf(" 你输入的数字不在 0-26 之间,请重新输入"); } return 0; }3、运行结果: 输入的数据对的时候: 输入数据错误的时候: 三、实验 3 1 、思路: ( 1):本实验要求输出输入 DNA 所对应的单链及转录出来的 mRNA 和所对应的蛋白质,我的思路是使用 if— else 语句来实现。( 2): 本
哈工大C语言DNA实验报告 来自淘豆网m.daumloan.com转载请标明出处.