文档库 最新最全的文档下载
当前位置:文档库 › C语言实验报告作业分析

C语言实验报告作业分析

C语言实验报告作业分析
C语言实验报告作业分析

第13章实验与指导

为了结合实际,强化操作,加强实践环节,激励创新意识,增强实验的针对性,提高程序设计的编程能力和调试能力,本章给出了与各章对应的实验题目,并给以必要的指导。

读者也可以举一反三,根据自己的学习兴趣,将自己专业领域或生活中的某些问题,作为实验题目,创造性地解决自己面临的实际问题,提高成就感和自豪感。

实验1 C程序的运行环境和运行C程序的方法

一、目的要求

1.认识在计算机系统上编辑、编译、连接和运行C程序的步骤。

2.在调试程序中观察系统提示,改正编译错误或连接错误。

3.了解C语言源程序的结构及书写格式,了解表达C语言程序的各个组成成分的术语。

二、实验内容

思考问题:什么是源程序?C语言源程序的结构是怎样的?C语言源程序的书写格式怎样?指出第1章例题的程序中哪些是注释、预处理命令、声明部分、可执行语句、函数定义、函数调用、关键字、main函数等。

1.练习进入C语言编程界面。输入下列源程序,进行修改、编译、连接和运行。应了解是用什么命令进行编译、连接和运行的。运行的结果是什么?

程序如下:

#include "stdio.h"

main ( )

{

printf("Programming is Fun.\n");

}

运行结果为:

2.输入下列源程序,进行修改、编译、连接和运行。运行的结果是什么?

程序如下:

#include "stdio.h"

main ( )

{ printf("Programming \n");

printf("is Fun.\n");

}

运行结果为:

运行结果比上题多一行,可知\n的作用是:

3.输入下列源程序,进行修改、编译、连接和运行。运行的结果是什么?

程序如下:

#include "stdio.h"

#include

main ( )

·1·

{

float x;

x=sin(3.141593/4);

printf("%f\n",x);

}

运行结果为:

语句float x; 的作用是:

实验2数据类型、运算符与表达式

一、目的要求

1.掌握C语言的基本数据类型。

2.学会如何书写整型、实型常量,如何定义整型、实型变量。

3.掌握C语言的算术运算符、赋值运算符、逗号运算符及运算规则。

4.掌握表达式的求值规则。

二、实验内容

思考问题:数据类型、运算符、表达式在C语句中充当什么成分?什么是标识符?如何书写整型、实型、字符型常量?如何定义整型、实型、字符型变量?怎样表示字符串?如何求表达式的值?混合表达式的求值规则是怎样的?

1.输入下列源程序,进行修改、编译、连接和运行。分析++运算符。

程序如下:

#include "stdio.h"

main ( )

{

int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n);

}

运行结果为:

前++的含义是:

后++的含义是:

2.输入下列源程序,进行修改、编译、连接和运行。分析++和--运算符。

程序如下:

#include "stdio.h"

main ( )

{

int i,j;

i=8;

j=10;

printf("%d,%d\n",i,j);

·2·

printf("%d,%d\n",i++,j--);

printf("%d,%d\n",i,j);

printf("%d,%d\n",++i,--j);

}

运行结果为:

分析如何得出此运行结果:

3. 输入下列源程序,进行修改、编译、连接和运行。分析表达式的值。

#include

main ( )

{

int a=7,b=3;

float x=2.5,y=4.7,z1,z2;

printf("z1=%f\n",x+a%3*(int)(x+y)%2/4);

printf("z2=%f\n",(float)(a+b)/2+(int)x%(int)y);

}

运行结果为:

表达式x+a%3*(int)(x+y)%2/4得到这样的结果是因为:

表达式(float)(a+b)/2+(int)x%(int)y得到这样的结果是因为:

4. 输入下列源程序,进行修改、编译、连接和运行。分析表达式的值。

#include "stdio.h"

main( )

{

int x, z;

float y, w;

x=(1+2, 5/2, -2*4, 17%4);

y=(1.+2. , 5./2. , -2.*4.);

z=(1+2, 5/2 , -2*4 , -17%4);

w=(1+2, -2*4 , -17%4, 5/2);

printf("x=%d,y=%f,z=%d,w=%f\n", x, y, z, w);

}

运行结果为:

思考得出此运行结果的原因。

实验3顺序结构程序设计

一、目的要求

1.正确使用数据输入/输出函数scanf、printf及整型、实型、字符型数据的输入/输出格式。

2.正确使用字符输入/输出函数getchar、putchar。

3.学会编写简单顺序结构的程序。

二、实验内容

思考问题:scanf与printf函数的格式控制字符串由什么组成?scanf与printf函数中不同

·3·

数据类型对应的格式字符和附加格式说明字符是怎样的?

1.输入下列源程序,进行修改、编译、连接和运行。

程序如下:

#include

main ( )

{

char c1,c2,x;

c1=97;

c2=98;

printf("%c,%c\n",c1,c2);

printf("The following output int of c1 and c2. yes or no?\n"); /*下面是否输出c1和c2的数值*/

printf("Please input y:\n");/*请输入字母y,从而输出*/ x=getchar( );

printf("%d,%d\n",c1,c2);

}

运行结果为:

程序最后两个printf输出的结果不同,这种不同是由什么引起的:

2.运行下面的程序,写出运行结果。

#include "stdio.h"

main( )

{

int a=5,b=7;

float x=67.8564,y=-789.124;

long n=1234567;

char c='A';

printf("a=%3d,b=%3d\n",a,b);

printf("x=%10.2f,y=%10.2f\n",x,y);

printf("n=%ld\n",n);

printf("c=%c or c=%d(ASCII)\n",c,c);

putchar(c);

putchar('\n');

}

运行结果为:

3.编程求圆周长c、圆面积s、圆球表面积area、圆球体积v。在程序中调用scanf函数通过键盘输入半径r,输出计算结果,输出要求有文字说明,计算结果精确到小数点后两位。

圆周长、圆面积、圆球表面积、圆球体积的计算公式为:

c=2πr, s=πr2,area=4πr2,v=4/3πr3。

算法提示:

①定义符号常量PI的值为3.1416;

②定义实型变量r、c、s、area、v;

③提示输入"Please enter r:";

④读入r;

⑤根据公式计算c=2* PI *r,s= PI *r*r,area=4* PI *r*r,v=PI *r*r*r*4/3;

⑥打印两位小数的结果c、s、area、v。

·4·

·5·

编写程序: 测试结果为:

4.输入一个华氏温度f ,要求输出摄氏温度c 。公式为c=5/9×(f-32)。 输出要求有文字说明,取2位小数。 算法提示:

① 定义实型变量c 、

f ; ② 提示输入"Please enter f:"; ③ 读入f ;

④ 根据公式计算c ; ⑤ 打印两位小数的结果。 编写程序:

测试结果为:

实验4 顺序结构程序设计(续)

一、目的要求

1.掌握编写简单顺序结构程序的方法。 2.掌握表达式的求值规则。

二、实验内容

1.输入两个正整数,求它们相除所得的商,商的整数部分、小数部分及余数。例如17除以2,其商为8.5,商的整数部分为8,小数部分为0.5,余数为1。

算法提示:若商为x ,则(int)x 即为商的整数部分。 编写程序: 输入为: 输出结果为:

2.设a=12,分析下列表达式的值,并编写一个(不是四个)程序,上机进行验证。 ① a+=a ② a-=2

③a*=2+3

④a/=a+a

算法提示:给a赋值后,输出第一个表达式的值;重新给a赋值后,输出第二个表达式的值;……

程序为:

四个表达式的值分别为:

3. 从键盘输入一个小写字母,把它转化为大写字母后输出。

编写程序:

输入为:

输出结果为:

实验5选择结构程序设计

一、目的要求

1.掌握6个关系运算符、3个逻辑运算符及运算规则。

2.掌握if语句的3种形式及对应的语法规则、执行流程。

二、实验内容

思考问题:比较运算符==与赋值运算符=有何区别?如何表示复杂条件?逻辑表达式的求值规则是怎样的?怎样比较实数相等?

1.有3个整数a、b、c,由键盘输入,输出其中最大的数。

算法提示:

①定义整型变量a、b、c、max;

②提示输入"Please enter a,b,c:";

③读入a、b、c;

④找出a、b中的较大数存入max;

⑤找出第3个数c与max中的较大数,并再次存入max;

⑥3个数中的最大数就是max,打印max。

编写程序:

测试结果为:

2.有一函数如下:

x x<1

y= 2x-1 ,当1≤x<10时

3x-11 x≥10

·6·

用scanf函数输入x的值,求y值。

算法提示:

①定义实型变量x、y;

②提示输入"Please enter x:";

③读入x;

④判断x所在的区间,应用y的计算公式求值;

⑤打印结果。

编写程序:

测试结果为:

3.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上(含90分)为A;80分以上、90分以下(含80分、不含90分)为B;70分以上、80分以下(含70分、不含80分)为C;60分以上、70分以下(含60分、不含70分)为D;60分以下(不含60分)为E。(不用switch语句)

算法提示:

①定义百分制成绩(整型变量)score;

②提示输入"Please enter score:";

③读入score;

④判断score所在的区间,对应得出score的等级并打印出来。

编写程序:

测试结果为:

实验6选择结构程序设计(续)

一、目的要求

掌握选择结构程序设计的方法。

二、实验内容

·7·

1.从键盘输入一个字符,判断此字符属于下面哪一种。

(1)字母(a~z,A~Z)

(2)数字字符(0~9)

(3)其他字符

显示相应的提示信息。

编写程序:

2.输入三角形的三条边长,求三角形的面积。要求检查输入的三条边是不是正数以及能否构成三角形(如果三角形的任意两条边的长度之和大于第三边,则可以构成三角形)。

编写程序:

输入为:

输出结果为:

3.求方程ax2+bx+c=0的根。a、b、c从键盘输入,要考虑a=0,b2-4ac>0,b2-4ac=0,b2-4ac<0四种情况。a=0时方程不是二次方程,b2-4ac>0时有两个不相等的实根,b2-4ac=0时有两个相等的实根,b2-4ac<0有两个共轭复根。

编写程序:

输入为:

输出结果为:

实验7循环结构程序设计

一、目的要求

1.掌握while、do…while、for语句的语法规则、执行流程。

2.比较3种循环语句的异同。

二、实验内容

思考问题:3种循环语句的异同点是什么?能否互相转换?for循环中的3个表达式与while循环中的表达式是如何对应的?

1.分别用while、do…while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8·····

算法提示:

①定义实型变量sum、term、a、b、c,整型变量i;

②初始化:sum=0,分子a=2,分母b=1;

③初始化:计数器i =1;

④计算第i项term =a/b;

⑤累加sum=sum+term;

⑥计算c=a+b,更新b=a,更新a=c;

⑦计数器加1,i++;

⑧重复④~⑦,直到i>20;

·8·

⑨输出2位小数的结果。

编写程序:

方法1,用while语句:

方法2,用do…while语句:

方法3,用for语句:

3次测试结果,数列前20项之和sum为多少?

2.计算多项式的值:s=1!+2!+3!+4!+ (20)

算法提示:该多项式迭代公式为:term=term*i,sum=sum+term。

请思考哪些变量需要初始化?变量应采用什么类型?

编写程序:

上机运行结果为:

3.36块砖36人搬,男搬4女搬3,小孩2人搬1砖。要求一次全搬完,问男、女、小孩各若干(人)?

算法提示:设x、y、z表示男、女、小孩的人数,则有不定方程:

x+y+z=36

4x+3y+z/2=36

用穷举法,对x、y、z所有可能的组合测试出满足条件的解。

x、y、z的取值范围如下:

x:1~8,步长1;

y:1~11,步长1;

z:2~36,步长2。

对x、y、z所有可能的组合:8×11×(36/2)重复测试条件:

4*x+3*y+z/2==36 &&x+y+z==36

是否成立,若成立则打印出x、y、z的值。

编写程序:

上机运行结果有几组解?男、女、小孩各多少人?

4.打印ASCII码值为40~80的ASCII码值对照表。

注意打印格式,如何在一行中同时打印若干列?

编写程序:

观察上机输出结果。

输出结果为:

实验8循环结构程序设计(续)

一、目的要求

掌握循环结构程序设计的方法。

二、实验内容

·9·

1.把1张100元的人民币兑换成5元、2元和1元的纸币(每种都要有)共50张,问有哪几种兑换方案?

算法提示:可参考百钱百鸡问题,本题与之类似。

编写程序:

2.韩信点兵问题:有兵一队,若五人排成一行,则末行一人;六人排成一行,则末行五人;七人排成一行,则末行四人;十一人排成一行,则末行十人,问最少有多少兵?

算法提示:用兵数作循环变量进行循环测试,若满足所说的条件则输出兵数并用break 退出循环,否则兵数加1继续循环。

编写程序:

3.求100~300间的所有素数。

算法提示:可参考第5章的例题,采用一个for循环,将例题中的多数语句作为for的循环体。

编写程序:

实验9选择、循环结构程序设计

一、目的要求

1.掌握switch语句的语法规则、执行流程;进一步掌握选择结构程序设计的方法。

2.进一步掌握循环结构程序设计的方法。

二、实验内容

思考问题:用else if语句和switch语句都能处理同一个问题,从程序的可读性上讲,那一种更好?

1.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上(含90分)为A;80分以上、90分以下(含80分、不含90分)为B;70分以上、80分以下(含70分、不含80分)为C;60分以上、70分以下(含60分、不含70分)为D;60分以下(不含60分)为E(使用switch语句)。

算法提示:

①定义百分制成绩(整型变量)score;

②提示输入"Please enter score:";

③读入score;

④构造switch表达式;

⑤将switch表达式的值与case常量匹配,打印相应等级。

编写程序:

测试结果为:

·10·

2.请用switch 语句求一笔定期存款的到期利息:输入存款数、存款年数,输出到期利息。设存款利率为1年期2%,2年期2.5%,3年期2.8%,5年期3%。利息计算公式为a=p ×r×n,设:a为到期利息,p为存款数,n为年数,r为利率(使用switch语句)。

算法提示:

①定义实型变量a、p、r,整型变量n;

②提示输入"Please enter p,n:";

③读入p、n;

④构造switch表达式;

⑤将switch表达式的值n与case常量匹配,得到存款利率r;

⑥根据p、n、r 计算利息a=p*r*n;

⑦输出2位小数的结果。

编写程序:

测试结果为:

3.计算多项式前n项的值:s=a+aa+aaa+aaaa+····,整数a、n由键盘输入(0

算法提示:该多项式迭代公式为:term=term*10+a,sum=sum+term。

请思考:哪些变量需要初始化?变量应采用什么类型?

请画出流程图:

编写程序:

输入a=2,n=4时上机运行结果为:

输入a=5,n=6时上机运行结果为:

输入a=1,n=8时上机运行结果为:

实验10一维数组

一、目的要求

1.掌握一维数组的基本概念,定义一维数组和初始化一维数组的方法。

2.掌握一维数组的基本操作,如输入/输出、引用数组元素等。

3.掌握与数组有关的算法,例如找最大或最小值、排序、数列首尾颠倒等。

二、实验内容

·11·

思考问题:如何定义一维数组?如何初始化一维数组?int a[10];定义了几个数组元素?各数组元素如何表示(引用)。

1.某整数数组a具有8个数组元素,用冒泡法对这些元素从小到大进行排序。8个数组元素用scanf函数输入。

输入为:

运行结果为:

2.将一个数列首尾颠倒。设该数列为1,3,6,7,9,11,15。要求按15,11,9,7,6,3,1的顺序存放并输出。

算法提示:先找到数组的中点位置,然后依次将首尾元素交换。

编写程序:

实验11二维数组

一、目的要求

1.掌握二维数组的基本概念,定义二维数组和初始化二维数组的方法。

2.掌握二维数组的基本操作:引用数组元素、行(列)求和,整个数组的输入/输出等。

二、实验内容

思考问题:说出二维数组的存储结构。二维数组的输入/输出采用什么方法?

1.求一个5×6矩阵的所有靠外侧的元素之和,元素均为整数。

编写程序:

输入数据:

运行结果为:

2.分别求一个4×4矩阵的一条对角线上的元素之和与另一条对角线上的元素之和的乘积。

编写程序:

输入数据:

运行结果为:

3.打印杨辉三角形前10行。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

……

算法提示:N-S图如图13-1所示。

·12·

编写程序:

运行程序。

图13-1 打印杨辉三角形的N-S图

实验12字符数组和字符串

一、目的要求

1.掌握字符数组的基本概念,定义字符数组和初始化字符数组的方法。

2.掌握字符数组和字符串的关系,用字符串初始化字符数组的方法。

3.了解常用字符串处理函数的使用方法。

二、实验内容

思考问题:字符串的结构是怎样的?字符数组可以用字符串来初始化,这时要注意什么?设char word[10]= "China",那么strlen(word)=? sizeof(word)=?(sizeof函数求表达式和类型的字节数)常用的字符串处理函数有哪些?

1.输出钻石图形,用字符串初始化二维字符数组编写程序。上机验证。

*

* *

* *

* *

*

提示:用char a[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};初始化。

编写程序:

运行程序。

2.输出下面几何图形。

*****

·13·

*****

*****

*****

*****

编写程序:

运行程序。

3.将字符数组a中下标为单号(1,3,5,…)的元素值赋给另一个字符数组b,然后输出a和b的内容。

编写程序:

输入字符串a:

输出字符串:

a=

b=

4.输入一行字符,统计其中有多少个单词。比如,输入“I am a boy”,有4个单词。

算法提示:令num为单词数目(初值为0),word=0表示字符为空格,word=1表示字符不是空格,word初值为0。

如果当前字符是空格,令word=0,否则如果当前字符不是空格,而word=0,说明出现新单词,令num+=1,word=1。

①创建字符数组char string[81];

②初始化num=0, word=0;

③输入一行字符string;

④重复执行以下操作,直到遇到空字符:

如果string[i] =空格,令word=0;

否则如果word=0,令word=1,num++。

⑤输出num。

编写程序:

输入一行字符:

统计结果:

num=

实验13函数(一)

一、目的要求

1.掌握函数、函数参数的基本概念。

2.定义和调用用户自定义函数的语法规则。

3.掌握函数声明的概念及函数声明的时机。

二、实验内容

思考问题:调用库函数时应在程序开头添加什么命令?什么是void函数?void函数与有返回值函数的调用格式有什么不同?形参、实参的对应有什么规定?

·14·

·15·

1.根据下列公式,编写一个函数fun(float x),并编写一个主函数调用它。要求在主函数中输入已知值和输出结果。

x 2

-6x +1 x <0 y =

x 3+2x -5 x ≥0

编写程序: 运行结果为:

2.编写一个函数prt(char c,int n),重复输出给定的字符c (这里的c 是@),输出n 次。在主函数中调用该函数,输出如下的直角三角形。

@ @@ @@@ @@@@ @@@@@ @@@@@@

函数prt(char c,int n)完成输出一行的功能,是一个void 函数,有两个形参。 编写程序: 运行程序。

实验14 函数(二)

一、目的要求

1.了解或掌握函数的嵌套调用规则。

2.了解或掌握函数的递归适合用于解决什么问题及其使用方法。 3.掌握数组元素作函数实参、数组名作函数参数的优缺点。

二、实验内容

思考问题:递归算法是利用函数处理问题的技术。递归函数每一次调用都保存了形参和变量的值;然后通过逐次返回上一次调用,实现回代过程,从而解决原始问题。

1.用函数的嵌套编写程序计算∑=n

i i 0!的值,n 为大于等于0的整数。

编写程序:

输入n=6,输出结果是:

2.用递归方法求n 阶勒让德多项式的值,递归公式如下:

1

n =0 p n (x )= x ,当

n =1 时 ((2n -1)x -p n -1(x )-(n -1)p n -2(x ))/n

n ≥1

编写程序:

输入x=3,n=5,输出结果为:

3.数组元素作函数实参,求数组5个元素(实数)的立方和。

,当 时

编写程序:

输入为:

运行结果为:

4.数组名作函数实参,求数组5个元素(实数)的立方和。

编写程序:

输入为:

运行结果为:

实验15函数(三)

一、目的要求

1.了解或掌握局部变量、全局变量的作用域和使用场合。

2.了解或掌握auto、register、extern和static变量的生存期和使用场合。

3.掌握#define命令的用法。

4.掌握使用宏的方法。

二、实验内容

思考问题:尽量不使用全局变量的原因是什么?带参的宏在定义时需注意什么问题?

1.分析下面程序的运行结果,为什么会出现这种结果?

#include "stdio.h"

void fun(int i, int j);

main( )

{

int i,j,x,y,n,g;

i=2,j=3,g=x=5,y=9,n=7;

fun(n,6);

printf("g=%d;i=%d;j=%d\n",g,i,j);

printf("x=%d;y=%d\n",x,y);

fun(n,6);

}

void fun(int i, int j)

{

int x,y,g;

g=8;x=7;y=2;

printf("g=%d;i=%d;j=%d\n",g,i,j);

printf("x=%d;y=%d\n",x,y);

x=8,y=6;

}

运行结果为:

分析:

2.分析下面程序的运行结果,为什么会出现这种结果。

·16·

#include "stdio.h"

void incx(void);

void incy(void);

main( )

{

incx( );

incy( );

incx( );

incy( );

incx( );

incy( );

}

void incx(void)

{

int x=0;

printf("x=%d\t",++x);

}

void incy(void)

{

static int y=0;

printf("\ny=%d\n",++y);

}

运行结果为:

分析:

3.分析下面程序的运行结果,为什么会出现这种结果?

#include "stdio.h"

#define MAX 3

int a[MAX];

void fun1(void);

void fun2(b[ ]);

main( )

{

fun1( );

fun2(a);

printf("\n");

}

void fun1(void)

{

int k, t=0;

for (k=0;k

}

void fun2(b[])

{

int k;

for(k=0;k< MAX;k++) printf("%d",b[k]);

·17·

}

运行结果为:

分析:

4.定义一个带参的宏,求两个整数(例如97和62)相除所得的余数。并编写main函数,输入这两个整数,输出结果。

编写程序:

运行结果为:

5.定义一个宏,将大写字母变成小写字母。并编写main函数,输入大写字母,输出由该宏转换成的小写字母。

编写程序:

输入大写字母A:

输出结果为:

实验16指针(一)

一、目的要求

1.掌握指针的基本概念。

2.掌握指针变量的定义和初始化。

二、实验内容

思考问题:在int a=2, *p; *p=2;中,两个*的作用有什么不同?

1.两个指针变量各自指向一个整型变量,请使这两个指针变量交换指向。

编写程序:

运行结果为:

2.两个指针变量各自指向一个整型变量,请交换这两个指针变量所指向的变量的值。

编写程序:

运行结果为:

3.有3个整型变量i、j、k。请编写程序,设置3个指针变量p1、p2、p3,分别指向i、j、k。然后通过指针变量使i、j、k这3个变量的值顺序交换,即原来i的值赋给j,原来j的值赋给k,原来k的值赋给i。i、j、k的原值由键盘输入,要求输出i、j、k的原值和新值。

提示:可参考【例9.3】。

编写程序:

运行结果为:

4.从键盘输入3个整数给整型变量i、j、k,要求设置3个指针变量p1、p2、p3分别指向i、j、k,通过比较使p1指向3个数的最大者,p2指向次大者,p3指向最小者,然后由从大到小的顺序输出三个数。

提示:*p1与*p2比较,若*p1<*p2,则*p1与*p2交换;*p1与*p3比较,若*p1<*p3,则*p1与*p3交换;*p2与*p3比较,若*p2<*p3,则*p2与*p3交换。经过这3次比较,即可使*p1最大,*p2次之,*p3最小。

·18·

编写程序:

运行结果为:

实验17指针(二)

一、目的要求

1.掌握用指针作函数参数的编程方法。

2.掌握使用指向函数的指针的使用方法。

3.掌握返回指针值的函数(函数的返回值是指针)。

二、实验内容

思考问题:使用指针有什么优越性?

1.练习指针作为函数参数。使用指针,定义一个函数,能够将main函数传递过来的3个整型数据按从小到大的顺序排好序;在main函数中输出排序的正确结果。

提示:可参考【例9.4】。

编写程序:

运行结果为:

2.练习指向函数的指针。编写一个函数,求3个实数的最小者;在main函数中定义指向函数的指针变量调用它。

提示:可参考【例9.6】。

编写程序:

运行结果为:

3.练习返回指针值的函数。编写一个函数,求某班级学生的某门课的最高分(整数)、最低分(整数)、平均分(实数,保留2位小数)和成绩优秀(大于和等于90分)的学生的平均分(实数,保留2位小数)。要求学生的成绩在main函数中输入,所求结果也在main函数中输出。用返回指针的函数实现。

提示:可参考【例9.11】。

编写程序:

输入:

运行结果为:

实验18指针(三)

一、目的要求

1.掌握指针与数组的关系,通过指针访问数组。

2.掌握使用指针数组来处理字符串数组。

3.掌握指向字符串的指针。

4.练习使用带参的main函数。

·19·

二、实验内容

思考问题:用下标法和指针法访问数组元素时,各有哪些表示方法?

1.分别用下标法、指针法(指针变量p)访问数组a[10]={-2,-10,0,-1,7,99,-35,43,61,-8},用这两种方法输出数组各元素的值,每种方法输出的10个元素在一行上。

编写程序:

下标法:

指针变量法:

运行结果为:

2.练习指针数组。有3个字符串"China"、"America"、"France",请按字母顺序(A、C、F)的逆顺序(F、C、A)输出这3个字符串。(要求用指针数组指向这三个字符串。)编写程序:

运行结果为:

3.练习指针与字符串。在一行字符串中删除指定的字符。例如,在“I study C Language”中删去字符“C”。

编写程序:

运行结果为:

4.练习例9.26和例9.27。

实验19结构体与链表

一、目的要求

1.掌握结构体类型、结构体变量的定义和引用。

2.了解或掌握链表的概念,对链表进行操作。

二、实验内容

思考问题:结构体应用于什么场合?

1.某班有10位学生,每位学生的数据包括学号、姓名、性别、3门课成绩,计算平均分,输出一张成绩单。

格式如下:

姓名性别英语数学语文平均分

编写程序:

运行结果为:

2.对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人名字(设有10个投票人),最后输出各候选人得票结果。要求用结构体类型实现。

编写程序:

运行结果为:

3.将一个链表按逆序排列,即将链头当链尾,链尾当链头。

·20·

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码

游戏C语言实验报告完整版

游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y

四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,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); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言大作业报告

目录 一、设计题目 二、目标和需求分析 三、开发工具 四、应用平台 五、程序模块 1、游戏盒子 2、2048 3、扫雷 4、贪吃蛇 六、开发日志 七、程序调试及运行 八、程序开发总结 总结:虽然做出来的东西真的没什么技术水平,但是我们尽量把这个东西的每个方方面面做完整。

目标和需求分析一个小的游戏盒子,可以用来启动其它游戏,当然,其它游戏也是我们大作业的编写内容,平时可以玩玩用来打发时间 用到的工具VS2005 Easyx图形库 Pthread线程库 Hge 分工 秦贤康 组织大家,编写主程序,及构思计划,技术指导 王尧 所有的文件处理,数据算法方面优化 王懿晨 合作2048模块 杨梓晗 图片资源加工,音乐裁剪,按钮制作 程维驰 合作扫雷模块 应用平台:WINDOWS X64

程序功能模块: 一、 安装包:(写入开始菜单快捷方式,桌面快捷方式,开机启动等)//pascal 脚本编写 #define MyAppName "C 大作业" #define MyAppVersion "2.0" #define MyAppPublisher "五人小组" #define MyAppExeName "1.exe" [Setup] AppId={{49DB1DB4-FAE9-4ACB-A4B9-E5C420C5F10B} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppName} DisableDirPage=yes DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes (剩余代码未全部给出) 安装包 内嵌:C 语言报告 游戏盒子 开机启动,桌面快捷方式等 进入动画,左侧动画 启动模块 通知,和显示游戏信息 2048 扫雷 贪吃蛇 主界面信息显示 通知栏信息显示 意见箱

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,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() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

C语言大作业设计-

CHANGZHOU INSTITUTE OF TECHNOLOGY C语言大作业 设计说明书 题目: 通讯录管理系统 二级学院(直属学部):计算机信息工程学院 专业: 软件工程(中英合作)班级: 12软件二: 学号: 2013年7月 目录

1 概述 (1) 1.2设计分析 (1) 1.3开发工具 (1) 1.4应用平台 (1) 2 系统设计 (2) 2.1功能模块设计 (2) 2.2数据结构设计 (4) 2.3函数功能设计 (4) 3 实现与测试 (7) 3.1关键技术实现 (7) 3.2测试运行结果 (8) 4 开发日志 (14) 5 设计总结 (14) 6 参考文献 (14)

1 概述 1.1 小组构成及分工 1.2 设计分析 本程序设计共包含六个函数模块,分别是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块,完成通讯录的功能。在主函数中可以以1、2、3、4、 5、6数字键分别可以执行某个功能模块。 1.3 开发工具 Visual C++ 6.0 和window32 1.4 应用平台 Windows XP 32位 2 系统设计 2.1功能模块设计

1.系统模块图 本系统包括6个模块,分别是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等,各模块的功能如图2.1所示。各个模块的功能描述如下: (1)添加模块:可以添加通讯录记录,依次输入、年龄、、地址、电子后,并会提示是否继续添加。 (2)显示模块:可以以表格形式输出所有通讯录里的记录。 (3)删除模块:输入欲删除的那个人的名字后,会自动删除他(她)的记录容。 (4)查询模块:可以选择用、、地址三种方式查询。 (5)修改模块:输入欲修改的那个人的名字后,再依次输入、年龄、、地址、电子完成修改。 (6)保存模块:输入文件名(带后缀名)后,即可将通讯录信息保 存到文件。 图2.1 系统模块图 2.任务执行流程图

:C语言实验报告册-2016.3资料

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 16数字媒体技术学生学号: 1613031008 学生姓名:李翔 所属院部:计算机工程学院指导教师:吕艳林 20 16 ——20 17 学年第一学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:初级程序设计实验学时: 6 实验地点: A107 实验日期: 2016年10月13,20,27 实验成绩: 批改教师:批改时间:

实验1 初级程序设计 一、实验目的和要求 (1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试; (2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用; (4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用; (6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p; printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改错

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\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() { int a,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() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

C语言大作业报告范文

学院XX学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (3) 2.3函数实现 (3) 2.4开发日志 (4) 3 程序调试及运行 (4) 3.1程序运行结果 (4) 3.2程序使用说明 (4) 3.3程序开发总结 (4) 4 附件(源程序) (4)

1 摘要 1.1 设计题目 (A)求最大数;(B)高次方数的尾数 1.2 设计容 (A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows XP 32位 2 详细设计 2.1 程序结构 (A)求最大数

定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a>999,输出c。循环语句采用for 循环。 (B)高次方数的尾数

定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i>13,输出j。循环语句采用for循环。

2.2 主要功能 程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。 原理和方法: (A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。 (B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。 2.3 函数实现 (A)求最大数 int a,b=555555,c; /*定义变量,赋初值*/ for(a=100;a<=999;a++) /*FOR循环*/ { if(b%a==0) /*利用IF语句判断b是否可以被a整除*/ c=a; /*将555555的约数赋给c*/ } printf("%d\n",c); /*输出c*/ (B)高次方数的尾数 int i,j=1; /*定义变量,赋初值*/ for(i=1;i<=13;i++) /*FOR循环*/ { j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/ } printf("%d\n",j); /*输出j*/ 2.4 开发日志 (A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。 (B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C语言课程设计大作业62994

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:

一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

西北工业大学C语言大作业实验报告

学院*****************

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计内容 (3) 1.3开发工具 (3) 1.4应用平台 (4) 2 详细设计 (4) 2.1程序结构 (4) 2.2主要功能 (10) 2.3函数实现 (13) 2.4开发日志 (18) 3 程序调试及运行 (20) 3.1程序运行结果 (20) 3.2程序使用说明 (22) 3.3程序开发总结 (22) 4 附件(源程序) (22)

1 摘要 1.1 设计题目 折半法查找演示程序 1.2 设计内容 本程序是一个演示折半查找算法的演示程序。由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。 1.3 开发工具 Visual C++ 6.0和Win32。

1.4 应用平台 Windows 2000/XP/Vista 32位 2 详细设计 2.1 程序结构 程序功能模块: 本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。各模块的主要功能如下: 程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。 此部分模块主函数源代码如下: int a[N]; /*存储要查找的数表,用户输入*/ int i,n,num,count; /*count为折半次数计数器,n为数表数据个数,num存储所查数据*/ int top,bottom,mid; char c; /*存储选择函数中的输入的字符y或n*/ int flag=1; /*折半法循环标志变量*/ int loc=-1; /*存储所查找数据位置*/ double k=0; p_s(76);puts("\n"); /*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文) printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n"); puts("\n"); /*程序欢迎语*/ p_s(13); printf("制作者:***************** "); /*作者信息*/ p_s(4); printf("Email:************************ "); /*电子邮件*/

相关文档