当前位置:文档之家› 级软件工程(卓越班)《C语言程序设计》实验指导书

级软件工程(卓越班)《C语言程序设计》实验指导书

实验1 C的实验环境和C语言的数据类型⒈实验目的⑴了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。

⑵通过运行简单的C程序,初步了解C源程序的特点。

⑶掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

⑷掌握不同的类型数据之间赋值的规律。

⑸学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

⒉实验内容和步骤⑴检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。

⑵进入所用的集成环境。

⑶熟悉集成环境的界面和有关菜单的使用方法。

⑷输入并运行一个简单的、正确的程序。

⒊实验题目⑴输入下面的程序# include “stdio.h”void main(){ printf(“This is a c program.\n”);}程序无误,其运行的结果为:(请填写)⑵输入并编辑一个有错误的C程序。

# include “stdio.h”void main(){ int a,b,suma=123; b=456;sum=a+bprint(“sum i s %d\n”,sum);}运行后程序出现几处错误,请分别指出,并逐一更改:⑶若k,g均为int型变量,则下列语句的输出为,:# include “stdio.h”void main(){ int k, g;k=017; g=111;print(“%d\t”,++k);printf(“%x\n”,g++);}运行结果为:实验2 数据的输入输出⒈实验目的⑴掌握C语言中赋值表达式的使用方法。

⑵掌握用格式化输入/输出函数实现各种类型数据的输入输出,能正确使用各种格式转换符。

⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。

⒉实验内容(1)用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

问在键盘上如何输入?请书写程序#include “stdio.h”void main(){ int a,b;float x,y;charc1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&y);scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”);}运行,并按照如下方式在键盘上输入:A=3 b=78.5 71.82A a运行结果:A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2);按以上的输入、输出将如何变化?请分析原因(2)用下面的程序输出一个实数。

请就每项输出的结果格式加以说明#include “stdio.h”void main(){ float x=12.5875;printf(“y=%f\n”,y);printf(“y=%7.2f\n”,y);printf(“y=%7.4f\n”,y);printf(“y=%07.2f\n”,y);printf(“y=%*.*f”,7,2,y);printf(“\n\n”);printf(“y=%e\n”,y);printf(“y=%10.2e\n”,y);printf(“y=%-10.2e\n”,y);printf(“y=%12.4e\n”,-y);}(3)用下面的程序输出字符、字符串。

请就每项输出的结果格式加以说明#include “stdio.h”void main(){ char x=’A’,name[30]=”I am a student of university”;printf(“Output of characters\n\n”);printf(“%c\n%3c\n%5c\n”,x,x,x);printf(“%3c\n%c\n”,x,x);printf(“\n\n”);printf(“Output of strings\n\n”);printf(“%s\n”,name);printf(“%20s\n”,name);printf(“%20.10s\n”,name);printf(“%-20.10s\n”,name);printf(“%.10s\n”,name);printf(“%10s\n”,name);}实验3 格式化输入的问题及解决⒈实验目的⑴掌握用格式化输入/输出函数实现各种类型数据的输入输出,能正确使用各种格式转换符。

⑵初步了解scanf()函数使用时可能存在的问题及其解决方法。

⑶初步了解输入非法字符的检查与处理。

⒉实验内容⑴用下面的程序是输入整数,然后输出。

#include "stdio.h"main(){ int m,n;printf("Please input m: ");scanf("%d",&m);printf("\n\nm=%d\n",m);printf("Please input n: ");scanf("%d",&n);printf("\n\nn=%d\n",n);}运行时,并按照如下几种方式从输入,结果是否正确?分别分析原因:①输入1.5↙②输入q↙⑵下面的程序是按操作数1+操作数2 的格式输入一个整数加法表达式,然后以:操作数1+操作数2=计算结果的形式输出。

程序如下:#include “stdio.h”void main(){ int data1, data2 ;char op ;printf(“please enter the dxpression data1+data2:\n”) ;scanf(“%d%c%d”,&data1,&op,&data2);printf(“%d%c%d =%d\n”,data1,op,data2,data1+data2);}运行时,并按照如下几种方式从输入,结果是否正确?分别分析原因:①输入125、空格、+、空格和30↙②输入125、+、和30↙③输入125、空格、和30↙④输入125.35、空格、和30↙⑶调用scanf()函数实现格式化数据输入,但实际上scanf()函数也有返回值,其返回值是成功读入数据的个数。

通过检查scanf()函数的返回值及其大小可以检查输入的正确数据及其个数。

#include "stdio.h"main(){ int m,n, ret;printf("Please input m and n: ");ret=scanf("%d%d",&m,&n);printf("\n\nret=%d,m=%d,n=%d\n",ret,m,n);}运行时,并按照如下几种方式从输入,结果是否正确?分别分析原因:①输入1.5 3↙②输入q 3↙③输入125 30↙实验4 选择结构程序设计⒈实验目的⑴了解C语言表示逻辑量的方法(以0代表”假”,以非0代表”真”)。

⑵学会正确使用逻辑运算符和逻辑表达式。

⑶熟练掌握if语句和switch语句。

⑷结合程序掌握一些简单的算法。

⑸学习调试程序。

⒉实验内容题目⑴:由键盘输入3个整数a、b、c,作为三角形的三条边,判断能否构成三角形,若不能构成,请给出提示信息;若能构成三角形,指出构造的是何种三角形(等腰三角形、直角三角形、一般三角形)。

题目⑵:从键盘上输入一个百分制成绩score,按下列原则输出其等级:A =90∽100,B=80∽89,C=70∽79,D=60∽69,F=0∽59,高于100或低于0显示错误信息。

要求:不能用讲稿上的分解方法。

要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。

实验5、循环结构程序设计⒈实验目的⑴熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

⑵掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

⑶进一步学习调试过程。

⒉实验内容题目⑴:输入两个正整数m和n,求其最大公约数和最小公倍数。

题目⑵:利用泰勒级数:sinx≈x-x3/3!+x5/5!-x7/7!+x9/9!-…,计算sinx的值。

要求最后一项的绝对值小于10-6,并统计出共累加了多少项。

要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。

实验6 函数定义和使用⒈ 实验目的⑴学习C语言中函数的定义和调用方法。

⑵掌握通过参数在函数间传递数据的方法。

⑶熟悉对包含函数调用的程序的调试方法。

⒉ 实验题目A:修改调试题目:题目⑴:调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。

写出调试过程。

#include “stdio.h”void main(){ int a=0,k;/* a保存素数之和*/float av;/* av保存1000以内素数的平均值*/for (k=2;k<=1000;k++)if (fun(k)) /* 判断k是否为素数*/a+=k;av=a/1000;printf("av=%f\n",av);}fun(int n) /* 判断输入的整数是否为素数*/{ int i,y=0;for(i=2;i<n;i++)if (n%i==0) y=1;else y=0;return y;}题目⑵:调试以下程序并查看运行结果:#include “stdio.h”void main(){ int a=1,b=2,c;c=max(a,b);printf("max is %d\n",c);}max(int x,int y) //请回答:函数功能是什么?{ int x;z=(x>y)?x:y;return(z);}题目⑵:调试以下程序并查看运行结果:int a=5;int b=7;#include “stdio.h”void main(){ int a=4,b=5,c;c=plus(a,b);printf("A+B=%d\n",c);}int plus(int x,int y) 请回答:函数功能是什么?{ int z;z=x+y;return(x);}B、编程题目:要求:每道题目分别书写程序,试运行(如何输入,结果如何)。

相关主题