当前位置:文档之家› C语言课设1

C语言课设1

C语言课设1
C语言课设1

一、需求分析

所做题号为1,包含6个小题,分别如下:

1、字符类型统计器:编写程序,在终端用键盘输入字符串,以CTRL+Z 组合表示输入完毕,统计输入的字符串中空格符、制表符、换行符的个数,并显示统计结果。

2、舍罕王的失算:相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8*8共64格的象棋棋盘说:“陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。”舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王共要多少麦子赏赐他的宰相?

3、汉诺塔:一块板上有三根针:A 、B 、C 。A 针上套有64个大小不等的圆盘,大的在下,小的在上,如下图所示。要把这64个圆盘从A 针移动到C 针上,每次只能移动一个圆盘,移动可以借助B 针进行。但在任何时候,任何针的圆盘都必须保持大盘在下,小盘在上。求移动的步骤。

4、用递推化梯形法求定积分:?

=1

0sin dx x

x

I 的值。 5、算法设计题:输入一个字符串并将它输出,以ctrl+z 组合键表示输入完毕,要求将输入的字符串中多于一个的连续空格符合并为1个。

6、一个有序的字母序列:a ,b ,d ,f ,h ,j ,l ,p ,t ;编写一个程序,要求从终端输入一个字幕,将该字母插入这个序列中使得字母序列依然保持有序,然后输出新的字母序列。注意:如果输入的字母在原序列中存在,就将该字母插入到已存在字母的后面。

二、总体设计

1、因为计算机存储的都是ASCII 码,查表可知空格符、制表符、换行符的ASCII 码值分别为3

2、9、10。要判断是否输入完毕,所以也需要知道CTRL+Z 输入的字符在计算机中对应什么,查询可知CTRL+Z 输入的字符在计算机中对应EOF 结束标志。(经过操作输入CTRL+Z 无法结束,所以改为输入为1时结束)

流程图如下:

2、达依尔要求:第一个格子1粒麦子,第二个格子2粒麦子,第三个格子4粒麦子,……以后每一小格都比前一个小格的麦粒数增加一倍,直到64个小格子为止。可知:第i 个格子的麦粒数为1

-i 2(i=1,2,...,64),所以总数为:∑=64

1i 1-2i

可以用for 循环做。(在c 语言中有两种方法计算1-i 2,直接调用pow 函数或者采用for 循环)

3、因为要大盘在上,小盘在下。所以这样移动:

(1)现将第1~63个盘子移到B针上,保证大盘在下小盘在上。

(2)再将最下面的盘子移动到C针上。

(3)将B针上的63个盘子移到C针上。

关键在于第(1)步和第(3)步,由于每次只能移动一个圆盘,所以在移动过程中必须要借助另外一根针,即第(1)步将第1~63个盘子借助C针移到B 针上;第(3)步将B针上的63个盘子借助A针移到C针上。这又是两个新的汉诺塔问题。

将上第1~63个盘子借助C针移到B针上:

(1)将A针第1~62个盘子借助B针移到C针上,保证大盘在下小盘在上。(2)再将最下面的(第63个)盘子移动到B针上。

(3)将C针上的62个盘子借助A针移到B针上。

将B针上的63个盘子借助A针移到C针上:

(1)将B针第1~62个盘子借助C针移到A针上,保证大盘在下小盘在上。(2)再将最下面的(第63个)盘子移动到C针上。

(3)将A针上的62个盘子借助B针移到C针上。

这明显是一个递归问题。

4、梯形法计算?=1

0sin dx x

x

I : 定步长:若有)(dx dy x f =,则用梯形法有))1()((2

h

y y k 1k +++=+k f k f 流程图:

5、本题要求输入的字符串中多于一个的空格符合并为一个,因此可以在输入每个字符时判断它是否为空格符。若是,则接下来的空格符不输出输出。

流程图:

6、注意数组的大小,因为要插入一个字母。将输入的字母和原序列的字母按顺序比较ascii码值大小。确定好位置后,将该位置后的字母按顺序后移一个单位,然后插入该字母。

流程图:

三、详细设计

1、程序及注释

#include

#include

main()

{

char c;//定义字符变量

int Space=0, Tab=0, Enter=0;//定义整型变量

printf("Please input a string:\n");//在运行窗口显示“Please input a string :(请输入一段字符串)”

scanf("%c", &c);//输入一个字符

while(c!=’1’) //当输入字符不为ctrl+z时,运行while里面的语句

{

if (c==32) Space++;//当输入的字符的ASCII码等于32(即空格键的ASCII码值)时,Space加一

else if (c==9) Tab++; //当输入的字符的ASCII码等于9(即制表键的ASCII码值)时,Tab加一

else if (c==10) Enter++; //当输入的字符的ASCII码等于10(即回车键的ASCII码值)时,Enter加一

scanf("%c", &c);//输入一个字符

}

printf("the number of Space:%d\n", Space); //输出显示这串字符串的空格键个数

printf("the number of Tab:%d\n", Tab); //输出显示这串字符串的制表键个数printf("the number of Enter:%d\n", Enter);//输出显示这串字符串的回车键个数system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下}

2、程序及注释

①采用pow函数计算2的i次方。

#include

#include

void main()

{

double sum=0;//定义双精度变量

int i;//定义整型变量

for(i=0;i<64;i++)//进行64次循环

sum=sum+pow(2,i);//累加求和

printf("the number of qrain is: %lf\n", sum);//显示结果

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下}

②采用for循环方式计算2的i次方。

#include

#include

void main()

{

double x,sum=0;//定义双精度变量

int i,n;//定义整型变量

for (n = 0; n <64; n++)//进行64次循环计算sum

{

x = 1;

for (i = 0; i

x = 2 * x;//循环结束后x=2的i次方

sum = sum + x;//循环结束后sum为最后结果

}

printf("the number of qrain is: %lf\n", sum);//显示结果

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下}

3、

#include

move(int n,char x,char y,char z)//定义调用函数move()

{

if(n==1)

printf("move disk from position %c to %c\n",x,z);

else

{

move(n-1,x,z,y);//调用move()函数

printf("move disk from position %c to %c\n",x,z);

move(n-1,y,x,z);//调用move()函数

}

}

int main(void)

{

int n;//定义整型变量

printf("input diskes number:\n");

scanf("%d",&n);//从键盘上输入n的值

printf("the step to moving %d diskes:\n",n);

move(n,'A','B','C');//调用move()函数

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下}

4、程序及注释

#include

#include

double func(double x)//定义调用函数func(),计算sin(x)/x的值

{

if(x!=0)

return sin(x)/x;

else

return 1;

}

int main(void)

{

double i,y,h,n;//定义双精度变量

y=0;

scanf("%lf/n", &h);//输入步长值

n=1/h;

for(i=0;i

{

y=y+0.5*h*(func(i*h)+func((i+1)*h));//梯形法计算

}

printf("the h is:%lf\n",h);//显示步长

printf("the result of integration is :%.10lf\n",y);//显示求和结果

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下}

5、程序及注释

#include

#include

main()

{

char c,lastc='c';//定义字符变量,给lastc初值为“c”

printf("Please input a string:\n");

scanf("%c",&c);//输入一个字符

while(c!=EOF)//当输入ctrl+z时结束循环

{

if(c!=32)

{

putchar(c);//输出字符

lastc=c;//将输入的字符值给lastc

scanf("%c" ,&c);//输入一个字符

}

else

{

if(lastc!=32) putchar(c);//当lastc的ascii码值不为32(即输入空格键)时,输出字符

lastc=c;//将输入的字符值给lastc

scanf("%c" ,&c); //输入一个字符

}

}

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下

}

6、程序及注释

#include

#include

main()

{

char c;//定义字符变量

char str[10]={'a','b','d','f','h','j','l','p','t'};

int i,j,k;//定义整型变量

printf("please input a alpha\n");

scanf("%c" ,&c);//输入一个字符

if((c<'A')||(c>'z')) return(0);

if((c>'Z')&&(c<'a')) return(0);

if((c>'A')&&(c<'Z')) c=c+32;//当输入的字符为大写字母时,转换为小写字母

for(i=0;i<8;i++)

{

if((c>=str[i])&&(c

k=i+1;

}

if(c>=str[8])

k=9;

for(j=8;j>=k;j--)

str[j+1]=str[j];

str[k]=c;

printf("the result is:\n") ;

printf("%s",str) ;

system("pause"); //加上这句语句,可以看到结果;否则运行界面只会闪一下

}

四、程序运行结果测试与分析

1、结果:

分析:由于当我使用EOF作为结束符时,当我在窗口输入ctrl+Z时并不能结束,

当我把结束符改为数字1就可以了,所以我用数字1作为结束符。

2、两种方法结果一样:

分析:一开始定义x,sum为整型变量,结果答案出来有问题(结果为0);经过计算发现结果非常大,所以定义x,sum双精度型变量。

3、因为当n=64结果太多不好观察,下面取n=2和n=4

n=2:

n=4:

分析:因为如果n=64的话,结果就非常长,所以我用n=2和4做为示范。

4、结果:

当步长h=0.0001时:

当步长h=0.01时:

分析:由书上可知实际值为0.946081;我采用的是定步长梯形法,所以当h越小越接近实际值。

5、结果:

6、结果:

五、结论与心得

总的来说,本次C语言课程设计的小题都比较简单。其实一开始我是想选大题的,不过由于时间关系和大题的程序编写比较复杂,所以我只看了下理解了一下,报告选择做小题。

在做第一个小题字符类型统计器时,我遇到了个问题:就是结束符为EOF 时,我在运行窗口输入ctrl+Z无法结束程序(以前我用win32位平台的vc++和win-tc能成功,但现在用win64位平台的democ、vc++和vs2013就不能成功)。这个问题始终没能解决,我觉得有可能是操作平台的原因。所以最后结束符我用数字1代替。

在做第三个小题汉诺塔时,对递归操作理解并不深刻,所以花了不少时间做。

在做第四个小题梯形法时,一开始我用的定步长,到最后的时候我想用变步长(加倍减半法)试试,加倍减半法确定步长循环结束有点复杂,由于时间关系并没有做。

这次实验相当于让我重新学习了一遍C语言的知识,把不熟悉的变熟悉了(如递归、数组、指针)。

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

(完整版)C语言课程设计实验报告

目录 目录 (1) 第1章问题描述 (2) 1.1 题目 (2) 1.2基本要求 (2) 第2章需求分析 (2) 1.1软件的基本功能 (2) 1.2输入/输出形式 (2) 1.3测试数据要求 (3) 第3章概要设计 (3) 1.1主程序 (3) 第4章详细设计 (4) 1.1数据类型 (4) 1.2伪码算法 (4) 1.3 程序流程图 (7) 第5章操作 (8) 1.1 进入足球比赛积分排行榜界面 (8) 1.2进入目录 (8) 1.3输入球队比赛信息 (10) 1.4 显示九轮比赛排行榜 (12) 1.5 保存数据 (15) 1.6 由D 盘查看数据 (16) 第6章参考文献 (16)

第1章问题描述 1.1 题目 足球比赛积分排行榜程序 1.2基本要求 (1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。 (2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。 (3)编写一程序输入每轮比赛的比分,并可以存储。 (4)最后统计出每轮比赛的积分榜。 第2章需求分析 1.1软件的基本功能 (1)输入10个足球队的9轮比赛进球数。 (2)计算10个球队的积分,净胜球,总进球。 (3)对9轮比赛进行排序。 1.2输入/输出形式 由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求 输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。 第3章概要设计 1.1主程序 头文件: #include 说明:main函数的头文件,控制整个程序。 #include 说明:清屏的头文件。 #include 说明:包括了大量的函数原型,调用现成的库函数。 #include 说明:基于char*的字符串处理函数。 全局变量: void input(); 输入数据函数 void sort(); 排序数据函数 void display(); 显示数据函数 void save(); 保存数据函数

C语言程序设计实验报告(实验1-12)

文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持. 《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue

2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容:

C语言程序设计实验报告

C语言程序设计实验报告 实验名称计算出1000以内10个素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内的10个素数以及它们的和。 要求: 在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i1;i-=2)/* x为奇数时,做函数计算*/ { n=sushu(i); /* 做判断素数的函数调用*/

( 励志天下) if(n!=0)/* 对素数的处理*/ { a[j]=n;/* 把素数由大至小存入数组a[ ]中*/ j++; if(j<11) m+=n; /* 统计前10个素数之和*/ } } if(j<10)/* 当素数个数小于10个时,结果输出*/ { for(i=0;i { n=a[i]; printf("%d",n); printf("+");

《C语言程序设计》实验报告实验

《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语 法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue 2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b;

printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容: 教材《C语言程序设计教程》第2章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) { char m,n; m=280; n=320; printf(“%d\t%d\n”,m,n); printf(“%c\t%c\n”,m,n); } 2. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include int main( ) { int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c;//请将此处d改为b printf("d=%f,e=%f\n",d,e);

C语言程序设计实验报告(函数)

C语言程序设计实验报告(实验名称:函数) 1实验目的 (1)掌握函数的定义方法、调用方法、参数说明以及返回值; (2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式; (3)掌握函数的嵌套调用及递归调用的用的设计方法; (4)在编程过程中加深理解函数调用的程序设计思想。 2实验内容 (1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。 要求: ①在主函数中输入一个整数x(直接赋值或从键盘输入); ②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是 否为素数的信息,输出格式为“x is a prime number”或”x is not a prime number”; ③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查 结果是否正确。 (2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: ①在主函数中从键盘输入一对整型数据a和b; ②调用函数后,根据返回值对a和b的关系进行说明。例如,在主函数中输 入:10,5,则输出“10 is a multiple of 5”; ③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6 与4,20与4,37与9。

3算法描述流程图 (1)primeNum(int x)(判别一个数是否是素数)函数流程图 ①主函数流程图:

②判断素数函数流程图:

(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图 ①主函数流程图:

C语言程序设计实验报告

C语言程序设计实验报告 实验一 一、实验内容:用scanf函数输入数据,a=3,b=7,x=8.2,y=123.22,c1=A,c2=a,用print函数进行输出。 原程序:如下图 运行结果:如下图 二、实验内容:从键盘输入一个整数,并将其插入到其元素已按升序排列的数组中,要求插入操作完成后,数组中的元素仍按升序排列 原程序:如下图

运行结果: 实验二 一、实验内容:存款利息计算,有10000元,想存5年,按以下几种方法存。 (1)一次存5年。(2)先存2年期,到期将本息再存3年。 (3)先存3年期,到期后再存2年。(4)存1年期,到期将本息再存1年,连存5次。计算各自存法5年后的本息是多少? 原程序:如下图

运行结果:如下图 二、实验内容:设半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆柱表面积,圆柱体积。用scanf输入数据,输出结果,输入要有文字说明,取小数点后2位数字。 原程序:如下图 运行结果:如下图

三、实验内容:给出一个不多于5位的正整数,要求: (1)求出它是几位数?(2)分别输出每个数字?(3)按逆顺序输出。如(123输出321)原程序:如下图 运行结果:如下图

实验三 一、实验内容:输入两个正整数,求其最大公约数和最小公倍数 原程序:如下图 运行结果:如下图 二、实验内容:一个数如果恰好等于它的因子之和,这个数就称为完数,例如6=1+2+3,编程找出1000之内的所有完数,并按下面格式输出其因子。 6 its factors are 1,2,3 原程序:如下图

运行结果:如下图 实验四 一、实验内容:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数原程序:如下图 运行结果:如下图

c语言课程设计实验报告

c语言课程设计实验报告c语言是一门通用计算机编程语言,应用广泛。下面就随小编一起去阅读c语言课程设计实验报告,相信能带给大家帮助。 实验目的 掌握C程序设计编程环境VisualC++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。(] 实验要求 在报告中记录建立、保存C程序实习过程。 实验基本内容 编写程序,在屏幕上显示一个短句“HelloWorld” 程序: 1)编译如下程序: #include Voidmain() { printf(“HelloWorld!”); } 2)链接。执行Build-命令。 3)运行。执行BuildExecute命令。显示结果。 4)关闭程序工作区。 运行结果: 输出结果:HelloWorld!

总结: 掌握C语言程序设计的基本框架,能够编写简单的程序。 实验目的 掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。() 通过编程进一步理解和掌握运算符的确切含义和功能。 实验要求 在报告中记录建立、保存C程序实习过程。完成典型题目,分析遇到的困难和实验中的收获。 实验基本内容 输入程序,观察输出结果1>./**/ 1)编译如下程序:#includevoidmain(){ charch;intk; ch='a',k='b'; printf("%d,%x,%c",ch,ch,ch,ch,k);printf("k=%%d",k)} 2)链接。执行Build-命令。 3)运行。执行BuildExecute命令。显示结果。 4)关闭程序工作区。 2>./**/ 1)编译如下程序:#includevoidmain(){ floata1,a2;doubleb1,b2;a1=;a2=;b1=; b2=;

c语言程序设计实验报告模板

c语言程序设计实验报告模板 篇一:C语言程序设计实验报告 一、实验目的: 1、掌握C语言的数据类型和变量的声明。 2、掌握不同类型数据之间赋值的规律。 3、掌握C语言的运算符和表达式的使用。 4、熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容: ①输人程序:#includevoid main { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果(2)按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。 程序: 三、实验步骤: ①输人程序: #include void main { int a, b; float d,e; char c1,c2; double f, g; long m, n;

unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果。 预计结果: a=61,b=62 c1=a,c2=b d=``3.56,e=`-6.87 f=````3157.890121,g=```````0.123456 m=50000,n=-60000 p=32768,q=40000(`代表空格) 结果: g的输出看来是四舍五入了。 ③在此基础上,将程序第9~14行改为: a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。 p=a=m=50000;q=b=n=-60000;这两条语句将p、a、m的值和q、b、

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤 其是通过上机来掌握语法规则,使学生全面了解C语言的特点,熟练掌握C语言程序设计 的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 五、实验项目与学时分配 注:带的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20% 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫 生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28 学时的实验,其中带*号实验项目为选做实验项目,实际课时为时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C 程序的运行环境和运行一个 C 程序的方法一、实验目的 1. 了解Visual C++ 编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个 C 程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用 什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加自减(--) 运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf( “%c n”,c1,c2); printf( “%d %d n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++; printf( “ %d,%d,%d,%d\n ” ,i,j,m,n); } 18 学 其 、(++) 和

c语言课设报告实验报告

c语言课程设计实验报告 c语言是一门通用计算机编程语言,应用广泛。下面就随小编一起去阅读c语言课程设计实验报告,相信能带给大家帮助。 实验目的 掌握C程序设计编程环境Visual C++,掌握运行一个C 程序的基本步骤,包括编辑、编译、链接和运行。(]实验要求 在报告中记录建立、保存C程序实习过程。 实验基本内容 编写程序,在屏幕上显示一个短句“Hello World” 程序: 1)编译如下程序: #include Void main() { printf (“Hello World! ”); } 2)链接。执行Build-命令。 3)运行。执行Build Execute 命令。显示结果。 4)关闭程序工作区。 运行结果:

输出结果:Hello World! 总结: 掌握C语言程序设计的基本框架,能够编写简单的程序。 实验目的 掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。()通过编程进一步理解和掌握运算符的确切含义和功能。 实验要求 在报告中记录建立、保存C程序实习过程。完成典型题目,分析遇到的困难和实验中的收获。 实验基本内容 输入程序,观察输出结果 1>./**/ 1)编译如下程序: #includevoid main() { char ch; int k; ch='a',k='b'; printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) } 2)链接。执行Build-命令。 3)运行。执行Build Execute 命令。显示结果。 4)关闭程序工作区。 2>./**/ 1)编译如下程序: #includevoid main() {

C语言程序设计基础实验报告3

实验3 逻辑结构程序设计 一、实验目的 1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2、学会正确使用逻辑运算符和逻辑表达式。 3、熟练掌握if 语句和switch 语句。 4、结合程序掌握一些简单的算法。 5、学习调试程序。 二、实验内容和步骤 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1、改错题。给定程序MODI1.C 的功能是: 对于如下函数: 用scanf 函数输入x 的值,求y 值。 /* MODI1.C */ #include void main() { int x, y; /***********found***********/ scanf ("%d", &x); if ( x < 1 ) y = x; /***********found***********/ else if ( 1 <=x&& x < 10 ) y = 2*x -1 ; else y = 3*x -11; printf("y = %d\n", y ); } 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! 修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输出的y 值是否正确。 ?? ???≥-<≤-<=)10(113) 101(12)1(x x x x x x y

C语言程序设计实验报告

C语言程序设计实验报告 (实验三:C程序的多源文件工程化设计试验)实验成绩: (实验四:函数的调用及参数传递验证试验) 实验成绩: 专业:轨道交通信号与控制 班级:1303班 姓名:郭芸 学号:201310010 指导教师:李建国 兰州交通大学自动化与电气工程学院 2014年05月03日

实验三:C程序的多源文件工程化设计试验 一实验要求: 设计一个发牌的程序,要求按照1-13分别对应同一个花色的牌的数字,按照随机方式发出这13张牌,程序每次运行时发出的牌的顺序不同。 解题思路:随机数的产生需要采用:srand(time(0));语句和(1+rand()%13)两个语句来实现。 1.流程图:

2.编辑环境的截图与过程描述: 3.源代码: #include #include int main() { void Srand(); Srand(); return 0;

} #include #include #include void Srand() { int i,j; int a[13]; srand(time(0)); for(i=0;i<13;i++) { j=1+rand()%13; while(a[j]==1) { j=rand()%13; } a[j]=1; printf("%d ",j+1); } } 4.代码编译链接中编译系统给出的错误、警告内容截图和分析、警告和错误的原因分析,修改是怎样进行的说明: 错误分析:函数定义错误,

5.运行结果截图: 实验四:函数的调用及参数传递验证试验 一实验内容: 设计一个发牌的程序,要求按照1-13分别对应同一个花色的牌的数字,按照随机方式生成这13张牌,并存放于数组中。 1设计包括数组元素作为参数的子函数,在子函数内输出该元素,并改变该元素的值,再次输出; 2设计包括数组名为参数的子函数,在子函数内对数组进行从到大的排序; 排序后在主函数输出; 解题思路:套用实验三的函数,修改实验三的func1函数,让其多加一个改变数组元素值得语句,实现实验四的要求1。增加一个func进行数组元素排序,在func1中调用func2,实现实验四要求2。

c语言课设实验报告-记事本程序(含源码)

C语言课设实验报告 [记事本程序] 班级: 学号: 姓名: 指导老师: 2012.9.3-2012.9.24

C语言课设实验报告 题目:编写一个记事本程序。 设计要求:1、记录要做的事,到设定的时间后弹出对话框提醒。2、能实现编辑、保存、另存为、查找替换等功能。3、提示:使用文件输入输出流,定时器。 课设过程:拿到题目时,还没有一个大概的设计思路。当看完file,menu,graphic的程序代码之后,有了大 致的代码结构:1、先做好一个菜单的界面2、file的子菜单及其功能(新建,打开,保存,另存为,退出)的实现3、edit子菜单(查找,替换,定时)及其功能的实现。基本框架做好后,再写各个功能的函数,写好后将其插到主函数中。因为各个功能互不影响,其中还涉及到功能函数之间的嵌套,还有功能的子函数的位置。在课设过程中遇到的第一个问题是输入内容的存放。在file例子中是用结构体来存放输入内容,一开始,我想用一个字符串数组来存放,但文件内容写入的时候写入失败,文件可以建立,但打开后里面没有内容。我觉得是fwrite()函数中的各个参数有问题,fwrite括号中的参数为(w(已定义的用来存放输入内容的字符串数组名),strlen(w[2000]),1,fp),于是就换成了一个普通的指针来存放,但还是行不通。之所以不用像file 中的结构体那样来存放数据,是因为如果用结构体,那结构体中就只有一个元素,且也元素必是一个字符串数组或是指针,为了更简洁一点,就排除了用结构体这个想法。虽然输入的内容写不进所建立的文件中,但不会影响其他功能函数的编写。在写完输入,文件的建立和内容的写入函数后,接着就是输入内容的保存和另存为,这两个功能差不多,只是文件名不同。因为在创建文件程序块里文件名是程序员自己命名好了的,并且只能建立一个,每次输入的内容会把上次输入的文件内容覆盖。所以我想由用户自己给文件命名,文件名是用一个字符串数组来存放,猜想建立文件的函数为fp=fopen("c:\%s.txt",s(存放文件名的数组名),''ab+"),但运行报错,猜想不可行,于是向老师请教了这个问题,经老师指导,用指针来存放文件名,fp=(s,"ab+"),输入文件名时得要按某盘根录下+某文件夹下+文件名的形式输入。编到这儿,file子菜单的功能就完成了,接下来就是edit子菜单功能函数的编写。但因为不知道key_alt_e的扫描码,在网上也搜索不到,课设老师也不太记得了,说用bioskey函数把这个值输出来,但是程序编写好后,输出的值不稳定,且不是十进制数值,于是就向其他的老师需求帮助,在老师的帮助下,知道了key_alt_e的扫描码,于是可以打开edit子菜单功能。但在这个过程中又遇到了edit子菜单窗口的问题,通过不断改变window(),box(),gotoxy()函数中参数的数值,一次一次运行调试,查看是否到位,是否美观,最后才把把值确定。edit子菜单中查找和替换功能要繁琐,就没编译。程序大致也编译完成了,功能都可以实现,但是还是文件写入的问题,文件打开后,里面没有任何内容,实为系统问题,程序无任何语法错误,但程序的功能可以运行。 代码及注释: #include #include #include #include #include #include /*textcolor,clrscr,where

C语言程序设计实验报告(一)

C语言程序设计实验报告 专业:班级:日期:成绩: 实验组别:第次实验:指导教师: 学生姓名:学号:同组人姓名: 实验名称:指针实验 一、实验目的 (1)熟练掌握指针的说明、赋值、使用。 (2)掌握用指针引用数组的元素,熟悉指向数组的指针的使用。 (3)熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。 (4)掌握带有参数的main函数的用法。 二、实验内容及要求 1.源程序改错 下面的源程序中是否存在错误?如果存在,原因是什么?如果存在错误要求在计算机上对这个源程序进行调试修改,是之能够正确执行。 源程序: #include int main(void) { float * p; scanf("%f",p); printf("%f\n",*p); return 0; } 2.源程序修改替换 (1)下面源程序的功能是,通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数。请在程序中的下划线处填写合适的表达式、语句或代码片段来完善该程序。 源程序: #include #include int main(void) { ____________________________ char a[80],b[80],c[160],*result=c; int choice,i;

do { printf("\t\t1 copy string.\n"); printf("\t\t2 connect string.\n"); printf("\t\t3 exit.\n"); printf("\t\tinput a number(1-3)please! \n"); scanf("%d",&choice); } while(choice<1||choice>5); switch (choice) { case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; } getchar(); printf("input the first string please! \n"); i=0; _______________________ printf("input the second string please!\n"); i=0; _______________________ result=____(a,b); printf("the result is %s\n",result); down: ; return 0; } (2)请上机运行第(1)题程序使之能按下面要求输出结果(注:(输入)表示该行数据是键盘数据): 1.copy string。 2.Connect string。 3.Exit。 Input a number(1-3)please! 2(输入) Input the first string please! The more you learn,(输入) Input the second string please! The more you get.(输入)

C语言程序设计实验报告

C语言程序设计实验报告 1实验目的 1.熟练掌握一维数组,二维数组的定义,初始化和输入输出方法; 2.熟练掌握字符数组和字符串函数的使用; 3.掌握和数组有关的常用算法(如查找排序等)。 2实验内容 (4).编程实现“折半查找”的过程。 折半查找的处理过程:在一个数据已排好序的数组中,首先比较要查找的值与数组之间的元素,如果两者相等,则查找的数据必然在数据的前半部,此后只需在数据的前半部继续折半查找;如果前者的数据比后者大,则要查找的数据必然在数组的后半部分,此后只需在数组的后半部继续折半查找。 3算法描述流程图

4源程序 #include main() { int a,b,c[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},n; printf("please input an number:"); scanf("%d",&n); for(a=0,b=20;a

C语言课程设计实验报告

C语言课程设计实验报告 院系:通信工程学院 班级:09级16班 姓名:马萧 学号:52091601 实验题目:学生成绩管理系统

实验要求 一、题目目的 利用TURBOC2.0实现学生成绩管理系统的录入、查询、删除、统计等基本操作。进一步巩固C语言的学习,以提高学生对开发环境的进一步认识和综合编程能力。 二、需要处理的基础数据 学生基本信息:学号(例如2003级12班6号写作20031206)、姓名、性别、年龄、课程名称(外语SCORE[0]、高数SCORE[1]、C语言SCORE[2]、马哲SCORE[3])、考试成绩等。 三、系统功能 1.学生基本情况录入。 2.允许对已经录入的数据进行显示。 3.允许进行数据的插入。 4.删除基本数据的相关信息。 5.基于姓名的查询。如:姓张的所有同学。 6.基于各种基本数据的统计计算。如: ①统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。 ②列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格学生清单(学号、姓名、不及格的课程和成绩)。 ③统计并输出各门功课的平均成绩和总平均成绩。 四、任务说明 1.查找相关函数、编写数据结构、算法、代码等,8学时;(周一) 2.完成菜单以及插入、删除记录过程;(周二) 菜单的样板模式为: " 1. Enter list" 输入记录 " 2. Delete a record from list" 从表中删除记录 " 3. print list " 显示链表中所有记录 " 4. Search record on name" 按照姓名查找记录 " 5. Save the file" 将链表中记录保存到文件中 " 6. Load the file" 从文件中读入记录 " 7. compute the score" 计算所有学生的总分和均分 " 8. insert record to list " 插入记录到表中

相关主题
文本预览
相关文档 最新文档