newC语言实验12345

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
《高级语言程序设计》
2013-2014学年第一学期
学院(部)管理学院
实验名称高级语言程序设计
学号031B*****
姓名黄玥婷
成绩
目录
实验一熟悉C程序运行环境 (1)
实验二顺序结构程序设计 (4)
实验三选择结构程序设计 (6)
实验四循环结构程序设计 (10)
实验五函数应用 (13)
实验六一维数组 (14)
实验七二维数组 (17)
实验八数组元素、数组名作函数参数 (21)
实验九综合实验 (23)
实验一 熟悉C 程序运行环境
一、实验目的
1. 熟悉C 语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C 语言程序的方法。

2. 掌握C 语言源程序的结构特点与书写规范。

二、实验学时数
2学时
三、实验步骤
(一) VC++6.0集成环境
(1)运行VC++6.0
a.双击桌面上的VC++6.0快捷方式,运行VC++6.0。

b.双击"C:\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV .EXE",运行VC++6.0。

(2)认识VC++6.0
(3)建立工程
在磁盘上新建一个文件夹,用于存放C 语言程序,如D:\柳稻香。

单击[文件]-[新建]新建一个工程,工程类型选择Win32 Console Application ,然后选择要存放的位置(刚才建立的文件夹D:\柳稻香),填写工程名称例如hello ,点确定按钮,在弹出的对话框中选择一个”hello,World!”程序,点击完成,然后在点击确定。

执行 编译
组建 工作空间 输出
标准按钮
菜单栏
(4)查看工程包含的文件
单击左侧工作空间右下角的FileView ,然后在工作空间上,点击+,可以看到Source Files 和Header Files 及Resource Files ,在Source Files 上继续点击+, 可以看到Source Files 下有两个文件,一个是hello.cpp ,一个是StdAfx.cpp 。

其中hello.cpp 为主函数所在的文件,在以后的编写程序中,都是写到此文件中。

(5)选中StdAfx.cpp ,点击[组建]-[编译],对StdAfx.cpp 进行预编译。

名称的英文全称为:Standard Application Framework Extensions 。

所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC 标准头文件(如Windows.H 、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。

这样可以加快编译速度,节省时间。

(6)选中以文件hello.cpp ,点击[组建]-[编译](此时,你可以在D:\柳稻香\hello\Debug 下可以找到生成的hello.obj 文件),然后在点击[组建]-[ 组建] (此时,你可以在D:\柳稻香\hello\Debug 下可以找到生成的hello.exe 文件),然后点击[组建]-[执行](执行的实际是D:\柳稻香\hello\Debug\hello.exe ),如果弹出一个Console 程序窗口,上面写着Hello World! Press
any key to continue 。

到目前为止一个简单的C 程序工程创建成功。

(二)阅读程序
要求:编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。

学会使用TC 运行程序的基本方法。

1. 输入并运行以下程序,观察运行结果。

# include <stdio.h> int main()
{ printf("*********************\n"); printf(" very good!\n");
printf("*********************\n"); return 0; }




2.求圆的面积。

#include <stdio.h>
#define PI 3.14
int main( )
{
float r,area;
printf("\n Enter r value:");
scanf("%f",&r);
area=PI*r*r;
printf(" \n area=%f\n",area );
return 0;
}
(四)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。

行号 #include <stdio.h>
1. int main( )
2. { int x;
3. x=5,y=8;
4. printf("\n%d,%d,%d\n",x,(x+5)*2,y);
5. return 0;
6. }
错错误在 2 行
应改为:{int x,y;
输出结果:调









1.编写程序输出用6颗星构成的等边三角形。

*
main()
{printf(“*\n”);
printf(“* *\n”);
printf(“* * *\n”);
}* *
* * *
四、试验心得
第一接触C语言的程序界面,感觉很有趣。

实验二顺序结构程序设计
一、实验目的
1.掌握各种类型数据输入输出的方法,能正确使用各种格式转换符。

2.熟练掌握顺序结构的程序设计,能够编写简单的应用程序。

二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。

#include <stdio.h>
int main( )
{ int a=17;
float u=1234.567;
printf("%d,%7d,%-7d\n",a,a,a); printf("%f,%7.2f\n",u,u); return 0; }
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。

1. 键盘输入任意一个小写字母,将其转换成大写字母,然后输出。

#include<stdio.h> int main( ) { char c1,c2; c1=getchar( ); c2=c1-32 ;
putchar('\n');putchar('\'' );putchar(c2); putchar('\'' ); return 0; }
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。

1. 行号 #include <stdio.h>
1 int main( )
分析结果
17, 17 ,17
1234.567017,1234,57 运行结果
2{ int i,k;
3 i=8;
4 k=5*I*I;
5 printf("%d\n",k);
6 return 0;
7 }
错错误在 4 行
应改为:k=5*i*i;
调试正确后
的运行结果
1.编程求出某学生期末三门课程的总分及平均分。

结果保留小数点后一位。

main()
{float score1,score2,score3,sum,average;
printf(“Input three score:”);
scanf(“%f,%f,%f”,&score1,&score2,&score3);
sum=score1+score2+score3;
average=sum/3;
printf(“sum=%0.1f,average%0.1f”,sum,average);
}
四、试验心得
在输入程序的时候需要小心谨慎,打错一个字就无法运行。

实验三选择结构程序设计
一、实验目的
1.掌握关系运算符和逻辑运算符和条件运算符。

2.学会正确书写关系表达式和逻辑表达式和条件运算符。

3.熟练掌握三种if语句和if嵌套。

4.熟练掌握switch语句。

二、实验学时数
2学时 三、实验步骤 (一)阅读程序
1. 输入并运行以下程序,观察运行结果。

#include <stdio.h> int main() { int a,b,c; a=10;b=60;c=30; if(a>b) a=b; b=c; c=a;
printf("a=%d,b=%d,c=%d\n" , a , b, c );
return 0;
}
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。

1. 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在_______上填写正确内容。

#include <stdio.h> int main() { char ch ;
分析结果
a=10,b=30,c=10 运行结果
scanf("%c",&ch);
if (ch>=’A’&& ch<’Z’ )ch=ch+32;
else if (ch>='a' && ch<='z' ) ch=ch-32 ;
printf("%c\n" ,ch);
return 0;
}
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。

1.以下程序实现求分段函数。

y= -1 x>9
x*(x+2) 3<x<=9
2*x -1<x<=3
x-1 x<=-1
#include <stdio.h>
int main()
1 { int x ,y ;
2 scanf(“%d”,&x);
3 if (3<x<=9) y=x*(x+2);
4 else if (-1<x<=3) y=2*x;
5 else if (x<=-1)y=x-1;
6 else y=-1;
7 printf(“%d\n”, y);
8 return 0;
9 }
的运行结果输出结果:
(四)编写程序
1. 输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。

),经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A
80至90分(包括80):B
70至80分(包括70):C
60至70分(包括60):D
60分以下: E
main()
{float score;
scanf(“%f”,&score);
if(score<0||score>100) printf(“您输入的成绩有误!\n”);
else
{if(score>=90) printf(“等级为:A\n”);
else if(score>=80) printf(“等级为:B\n”);
else if(score>=70) printf(“等级为:C\n”);
else if(score>=60) printf(“等级为:D\n”);
else print(“等级为:E\n”);
}
}
四、试验心得
学校c语言,需要对程序的英文有一定了解,要理解其意。

实验四循环结构程序设计
一、实验目的
1. 掌握while ,do-while,for 循环语句的使用与区别;
2. 掌握循环条件、循环体、循环终止等循环要素;
3. 掌握循环嵌套的执行过程。

4. 熟练使用循环语句、循环嵌套编写程序。

5.掌握break、continue的使用
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
int main()
{ int a=2,b=8;
while(b--<0)
b-=a ;
a++ ;
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
a=3,b=7
分析结果
运行结果
要求:依据题目要求,分析已给出的语句,填写空白。

但是不要增行或删行,改动程序的结构。

1. 以下程序的功能是计算正整数2345的各位数字平方和,请在_______
上填写正确内容。

#include <stdio.h>
int main()
{ int n,sum= 0 ;
n=2345;
do
{ sum = sum + _(n%10)*(n%10)______;
__n=n/10_________;
} while( n) ;
printf("sum=%d\n",sum);
return 0;
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。

1.下面程序的功能是计算n!。

行号#include<stdio.h>
1int main()
2{ int i,n,s=1;
3printf("Please enter n:");
4scanf("%d",&n);
5for(i=1;i<=n;i++)
6 s=s*i;
7printf("%d! = %d\n",n,s);
8 return 0;
的运行结果输出结果:
1.小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。

到第10天再想吃时,只剩下一块了。

编程计算小明妈妈总共给小明买了多少块巧克力?
#include <stdio.h>
int main()
{int day=10,num=1;
while(day>1)
{num=(num+1)*2;
day--;
}
printf(“一共买了%d块巧克力.\n”,num);
return0;
}
四、试验心得
对循环句的理解不充分,不是很懂。

实验五函数应用
一、实验目的
1.掌握函数的定义和调用。

2.理解形参和实参的使用和传值调用。

3.理解函数声明的使用。

4.掌握函数的嵌套调用。

5.了解函数的嵌套与递归调用,掌握递归函数的编写规律。

二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
void fun (int x, int y, int z)
{ z=x * x + y * y;
}
int main()
{ int a=38;
fun(7,3,a);
printf("%d\n",a);
return 0;
}
38
分析结果
运行结果
(二)
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
#include <stdio.h>
_double max(double a,double b);
int main()
{ double x,y;
scanf("%lf%lf",&x,&y);
printf("%.8lf\n",max(x,y));
return 0;
}
double max(double a,double b)
{ return (a>b ? a:b) ; }
1.编写一个函数,选出能被3整除且至少一位是5的两位数,用主函数调用这个函数,并输出所有这样的两位数。

int fun(int a[])
{int i,n=0;
for(i=10;i<99;i++)
if((i%3==0&&i%10==5||i/10==5))a[n++]=i;
return n;
}
int main()
{int a[40],i,n;
n=fun(a);
for(i=0;i<n;i++)
printf(“%d”,a[i]);
return 0;
}
四、试验心得
感觉函数的程序设计较难,但对解难题有很大的帮助,设计了程序后就不需要人工耗费大量的时间了,准确性也有了保证。

实验六一维数组
一、实验目的
掌握一维数组的定义和使用。

二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
int main()
{ int a[]={1,2,3,4,5},i,j,s=0;
j = 1;
for ( i = 4 ; i>=0 ; i--)
{
s = s+ a[i] * j ;
j = j * 10 ;
}
printf(" s= %d \n" , s );
return 0;
}
s=12345
分析结果
运行结果
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。

但是不要增行或删行,改动程序的结构。

1.下面程序的功能是将十进制整数转换成二进制,请在_______上填写正确内容。

#include <stdio.h>
int main()
{ int k=0,n,j,num[16]={0};
printf("输入要转换的十进制数\n");
scanf("%d",&n);
printf ("%d转换为二进制数:\n",n);
do
{ num[k]= n%2____;
n=n/2;__k++____;
} while(n!=0);
for(k=15;k>=0;k--)
printf("%d",num[k]);
return 0;
}
(四)编写程序
1.试编制程序使数组中的数按照从大到小的次序排列。

(起泡法和选择法)
#include <stdio.h>
#define N 10
int main()
{float a(N);
int i,j;
printf(“请输入%d个数:”,N);
for(i=0;i<N;i++)
scanf(“%f”,&a[i]);
for(i=0;i<N;i++)
for(j=0;j<N-1-i;j++)
if(a[j]<a[j+1]) {a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];a[j]=a[j]-a[j+1];}
printf(“由大到小排序后数组为:”);
for(i=0;i<N;i++)
printf(“%.2f”,a[i]);
printf(“\n”);
return 0;
}
四、试验心得
在不断的学习中由易而难,让我学起来并不觉得吃力。

学会数组后,我发现原来可以简单的就解决线性代数,真是省了不少力。

实验七二维数组一、实验目的
1.掌握二维数组的使用。

2.熟练掌握字符数组的定义与使用。

3.掌握常用的字符处理函数。

二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
#include <string.h>
int main()
{ char s1[50]= “I am”;
char s2[ ]=”student!” ;
printf(“%d,\n”, strlen(s2) );
strcat(s1,s2);
printf(“%s\n”,s1);
return 0;
}
分析结果 8
I am student!
运行结果
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.下面程序的功能是将字符串a中所有的字符 d 删除。
#include <stdio.h>
int main()
{ char s[80] ;
int i,j;
gets(s);
for(i=j=0;s[i]!='\0'; i++)
if (s[i]!='d') s[j++]=s[i] ;
s[j]='\0';
puts(s) ;
return 0;
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 #include <stdio.h>
int main()
1 { char a[ ] ;
2 int i, len=0 ;
3 a=“C Language Program”;
4 for (i=0;a[i]!=‘ \0 ’;i++)
5 len++;
6 pri ntf(“%s ,%d\n”,a,len) ;
7 return 0;
8}
调试正确后
输出结果: 的运行结果
(四)
1.有一篇文章,不超过50行文字,每行不超过80个字符。

要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

#include<stdio.h>
int main()
{int i,j,upp,low,dig,spa,oth;
char text[50][80];
upp=low=dig=spa=oth=0;
for(i=0;i<50;i++)
{printf(“Please input line %d\n”,i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!=’\0’;j++)
{if(text[i][j]>=’A’&&text[i][j]<=’Z’)
upp++;
else if(text[i][j]>=’a’&& text[i][j<=’z’)
low++;
else if(text[i][j>=’0’&& text[i][j<=’9’)
dig++;
else if(text[i][j==’’)
spa++;
else
oth++;
}
}
printf(“\n upper case:%d\n”,upp);
printf(“lower case:%d\n”,low);
printf(“digit:%d\n”,dig);
printf(“space:%d\n”,spa);
printf(“other:%d\n”,oth);
return 0;
}
四、试验心得
二位数组看上去挺难,之前没有充分掌握数组的设计,学起来觉得有些吃力。

实验八数组元素、数组名作函数参数
一、实验目的
掌握数组元素、数组名作函数参数。

二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
int f (int a);
int main()
{ int s[8] = {1,2,3,4,5,6},i,d=0;
for (i=0;f(s[i]) ;i++)
d+=s[i];
printf("%d\n",d);
return 0;
}
int f(int a)
{ return a%2;
}
1
分析结果
运行结果
(二)完成程序
1.mystrlen函数的功能是计算字符串的长度,并作为函数值返回。

请填空,并配写主调函数。

int mystrlen(char str[ ])
{ int i;
for(i=0; _str[i]__!=‘\0';i++);
return(_i_);
}
int main ( )
{int len;
char a[800];
gets(a);
len=mystrlen(a);
printf(“%s的长度为:%d\n”,a,len);
return 0;
}
(四)编写程序
1.编写一个将一个字符串逆转的程序,如将a [ ] =“apple“改为a [ ] =“elppa“。

#include<stdio.h>
#include<string.h>
int main()
{char a[]=”apple”,ch;
int i,len;
printf(“a[]=%s\n”,a);
len=strlen(a);
for(i=0;i<len/2;i++)
{ch=a[i];
a[i]=a[len-1-i];
a[len-1-i]=ch;
}
printf(“a[]=%s\n”,a);
return 0;
}
四、试验心得
这一章融合了之前所学几章的内容,对于解决复杂的题目有很好的帮助,是很有用的学习内容。

实验九综合实验
一、实验目的
通过实验把C语言中的顺序结构、选择结构、循环结构、数组、函数等主要知识点进行综合应用,加深学生对编程算法思想的理解,进一步提高学生的编程能力。

二、实验学时数
2学时
三、实验步骤
编写程序:
4.输入10个整数,编写自定义函数,实现把最大数与最后一个数交换,并输出交换前和交换后的数组。

#include <stdio.h>
#define N 10
int find(int a[], int n ,int x)
{
int i=0;
for(i=0;i<n;i++)
{
if(a[i]==x)
return i;
}
if(i==n)
return -1;
}
void main(void)
{
int i=0;
int a[N];
int x=0;
for(i=0;i<N;i++)
scanf(&quot;%d&quot;,&amp;a[i]);
scanf(&quot;%d&quot;,&amp;x);
if(find(a,N,x)==-1)
printf(&quot;不在数组中\n&quot;);
else
printf(&quot;在数组中,下标是%d\n&quot;,find(a,N,x));
}
四、试验心得
这是对C语言的综合应用,深入了解了C语言,对程序设计有了更深的理解和应用,编程能力有了进一步的提高,让我受益匪浅。

相关文档
最新文档