第一篇:华北水利水电大学2012级C语言实验报告
华北水院高级语言程序设计(C语言)实验报告
(二)2012--2013学年第二学期
2012级专业: 学号:姓名:………………………………………………………………………………………………
一、实验题目:选择结构程序设计
二、实验目的:(略)
三、实验内容
1.程序验证(略)
2.程序设计
1)设变量a、b、c分别存放从键盘输入的3个整数。编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。源代码:运行结果:
2)输入某学生的考试成绩等级A、B、C、D,要求按照等级输出对应的分数段。A级对应分数段为80~100,B级对应分数段70~79,C级对应分数段60~69,D级对应分数段为60分以下。
源代码:运行结果:
第二篇:c语言实验报告
学号:__________ 姓名:__________ 班级:__________ 日期:__________
指导教师:__________ 成绩:__________
实验一 上机操作初步和简单的C程序设计
一、实验目的1、熟悉C语言运行环境Turbo C++3.02、会简单的程序调试
3、熟悉C语言各种类型数据的输入输出函数的使用方法
4、掌握顺序结构程序设计
二、实验内容
1、上机运行本章3个例题,熟悉所用系统的上机方法与步骤。(习题1.7)
2、编写一个C程序,输入a、b、c 3个值,输出其中最大者。(习题1.6)
3、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。注意:在Trubo C++ 3.0中不能输入汉字,只能输入英文或拼音。(习题4.8)
4、运行如下程序,写出运行结果。第一┆范文网www.xiexiebang.com整理该文章,版权归原作者、原出处所有...#include
void main()
{
int a=1,b=2;
a=a+b;b=a-b;a=a-b;
printf(“%d,%dn”,a,b);
}
三、实验步骤与过程
四、程序调试记录
第三篇:C语言 实验报告
C语言程序设计(B)
(2010-2011-2)
实验报告
教学班级: 学号: 姓名: 课程教师: 实验辅导教师:
江西理工大学
自由编辑的程序
一、实验前的源程序:
//任意整数的叠加 #include
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before
`for' [Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before `)' 构建中止 未命名10: 2 个错误, 0 个警告
实验后的源程序:
//任意整数的叠加 #include
int i,j,sum=0;printf(“please input a int numbern”);scanf(“%d”,&j);for(i=0;i<=j;i++)sum=sum+i;printf(“此数的叠加=%dn”,sum);}
二、实验前的源程序:
/*小写字母转大写字母*/ #include
江西理工大学
} c2='s';c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c);
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名11.cpp:9: `c' undeclared(first
use this function)[Error] D:Program FilesC-Free 4temp未命名11.cpp:9:(Each undeclared
identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名11.cpp:9: for each function it
appears in.)构建中止 未命名11: 3 个错误, 0 个警告
实验后的源程序:
/*小写字母转大写字母*/ #include
三、实验前的源程序:
/*查看某一年是否为闰年*/ #include
{
if(year%100==0)
{
if(year%400==0)
i=1;
else
江西理工大学
i=0;
}
else
i=1;
} else
i=0;if(i)
printf(“%d 是闰年n”,year);else
printf(“%d 不是闰年n”,year);}
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名14.cpp:15: parse error before
`else' [Error] D:Program FilesC-Free 4temp未命名14.cpp:25: parse error at end
of input 构建中止 未命名14: 2 个错误, 0 个警告
实验后的源程序:
/*查看某一年是否为闰年*/ #include
{
if(year%100==0)
{
if(year%400==0)
i=1;
else
i=0;
}
else
i=1;
} else
i=0;if(i)
江西理工大学
printf(“%d 是闰年n”,year);else
printf(“%d 不是闰年n”,year);}
数据的输入和输出
四、程序改错题
改错前的源程序;#include
#include
改错前的源程序;#include
江西理工大学
#include
long x=7654123;x*=10;printf(“x=%7d”,x);}
改错前的源程序:
#include
#include
五、程序编写题:已知char ch’b’;int i=3 ,j=5;float x=22.354,y=435.6789;根据下面的输出结果编写程序。ch =’b’,ASCII=98 i=3□□□□□□j=5 x=22.35□□□y=435.68 实验前的源程序:
#include
江西理工大学{ char ch='b';int i=3,j=5;float x=22.354,y=435.6789;printf(“ch='%c',ASCII=%dn”,ch,ch);printf(“i=%d
j=%dn”,i,j);printf(“x=%.2f
y=%.2fn”,x,y);} 实验错误报告:无 实验后的源程序:
#include
j=%dn”,i,j);printf(“x=%.2f
y=%.2fn”,x,y);}
六、从键盘输入一行字符,统计其中小写字母、大写字母和其它字符的个数:
实验前的源程序:
#include “stdio.h” void main(){ printf(“请任意输入一串字符:n”);
char ch,sum1=0,sum2=0,other=0;
ch=getchar();
while(c!='n')
{
if(c>='A'&&c<='Z')sum1++;
else if(c>='a'&&c<='z')sum2++;
else other++;
c=getchar();
} printf(“大写字母的个数:%dn”,sum1);printf(“小写字母的个数:%dn”,sum2);
江西理工大学printf(“其他字符母个数:%dn”,other);}
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名7.cpp:7: `c' undeclared(first
use this function)[Error] D:Program FilesC-Free 4temp未命名7.cpp:7:(Each undeclared
identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名7.cpp:7: for each function it
appears in.)构建中止 未命名7: 3 个错误, 0 个警告
实验后的源程序:
#include “stdio.h” void main(){ printf(“请任意输入一串字符:n”);
char ch,sum1=0,sum2=0,other=0;
ch=getchar();
while(ch!='n')
{
if(ch>='A'&&ch<='Z')sum1++;
else if(ch>='a'&&ch<='z')sum2++;
else other++;
ch=getchar();
} printf(“大写字母的个数:%dn”,sum1);printf(“小写字母的个数:%dn”,sum2);printf(“其他字符母个数:%dn”,other);}
七、使用以下公式求∏的近似值,要求精确到最后一项的绝对值小于10e-4
∏/4=1-1/3+1/5-1/7+……
实验前的源程序:
#include “stdio.h” #include “math.h” main(){
江西理工大学
} float sum=0;int i,j;for(i=1;;i++){ j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.o/j);continue;break;} printf(“∏=%fn”,sum*4.0);
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名9.cpp:13: nondigits in number
and not hexadecimal [Error] D:Program FilesC-Free 4temp未命名9.cpp:19: parse error at end
of input 构建中止 未命名9: 2 个错误, 0 个警告
实验后的源程序:
#include “stdio.h” #include “math.h” main(){ float sum=0;int i,j;for(i=1;;i++){
j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.0/j);continue;} break;} printf(“∏=%fn”,sum*4.0);}
八、用选择法对10个整数排序: 实验前的源程序:
江西理工大学#include
scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
k=a[j+1];} printf(“这10个整数从小到大排列为:”);for(j=0;j<10;j++){
printf(“%d ”,a[j]);} printf(“n”);printf(“这10个整数从大到小排列为:”);for(j=9;j>=0;j--){
printf(“%d ”,a[j]);}
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名1.cpp:33: parse error at end of
input 构建中止 未命名1: 1 个错误, 0 个警告
实验后的源程序:
//用选择法对10个整数排序
#include
江西理工大学 int i,j,k;for(i=0;i<10;i++){ scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){ if(a[j]>a[j+1]){
k=a[j];
a[j]=a[j+1];
k=a[j+1];} } printf(“这10个整数从小到大排列为:”);for(j=0;j<10;j++){ printf(“%d ”,a[j]);} printf(“n”);printf(“这10个整数从大到小排列为:”);for(j=9;j>=0;j--){ printf(“%d ”,a[j]);} }
九、求一个3*3的整数矩阵对角线元素之积:
实验前的源程序:
#include
scanf(“%d”,&a[i][j])} for(i=0;i<3;i++)
江西理工大学 {
for(j=0;j<3;j++)
{
printf(“%d ”,a[i][j]);
}
printf(“n”);
}
printf(“n”);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(i=j)
ji*=a[i][j];
printf(“主对角线的积为:%dn”,ji);
} }
实验错误报告:
[Error] D:Program FilesC-Free 4temp未命名4.cpp:11: parse error before
`}' 构建中止 未命名4: 1 个错误, 0 个警告
实验后的源程序:
#include
scanf(“%d”,&a[i][j]);} for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf(“%d ”,a[i][j]);
}
printf(“n”);
}
江西理工大学
printf(“n”);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(i=j)
ji*=a[i][j];
printf(“主对角线的积为:%dn”,ji);
} }
十、将一个数组中的值按你需从新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。
实验前的源程序:
#include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; t=a[j-i-1];} printf(“该数组逆序排列为:”); for(i=0;i printf(“%d ”,a[i]);printf(“n”);} 实验错误报告: [Error] D:Program FilesC-Free 4temp未命名3.cpp:25: parse error at end of input 构建中止 未命名3: 1 个错误, 0 个警告 江西理工大学实验后的源程序: #include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; a[j-i-1]=t;} printf(“该数组逆序排列为:”); for(i=0;i printf(“%d ”,a[i]);} printf(“n”);} 江西理工大学 C语言程序设计(B) (2010-2011-2) 实验报告 教学班级: 学号: 姓名: 课程教师:王华金 实验辅导教师:王华金 江西理工大学P123-- 五、1、编写函数,找出5*5数组对角线上元素的最小值,并在主函数中调用它。要求元素的值通过键盘输入。 实验前的源程序: #include for(j=0;j<5;j++) if(i==j) if(p[i][j] return min;} void main(){ int i,j,m,a[5][5];printf(“请输入a[5][5]:n”);for(i=0;i<5;i++)for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);printf(“a[5][5]:n”);for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%4d”,a[i][j]);printf(“n”);} m=func(a);printf(“主对角线上元素的最小值为:%dn”,m);} 实验错误报告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名4.cpp:13: error: `main' must return `int' [Warning] C:Users陶鑫DocumentsC-FreeTemp未命名4.cpp:27:2: warning: no newline at end of file 构建中止 未命名4: 1 个错误, 1 个警告 江西理工大学 实验后的源程序: #include for(j=0;j<5;j++) if(i==j) if(p[i][j] return min;} main(){ int i,j,m,a[5][5];printf(“请输入a[5][5]:n”);for(i=0;i<5;i++)for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);printf(“a[5][5]:n”);for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%4d”,a[i][j]);printf(“n”);} m=func(a);printf(“主对角线上元素的最小值为:%dn”,m);} P123-- 五、3、编写从整形数组中检索给定数值的函数,若找到则输出该数值在数组中的位置。 实验前的源程序: #include “stdio.h” int Find(int array[],int Array size,int num){ int i;for(i=0;i 江西理工大学int main(){ int a[]={1,2,3,4,5};num=4,n=5,index;index=find(a,5,num);if(index)printf(“%d在数组中第%d位置”,num,index);else printf(“数组中没有这个数!”);} 实验错误报告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:2: error: expected `,' or `...' before “size” [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `;' before “size” [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: `size' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `)' before ';' token [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `;' before ')' token [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `num' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `n' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `index' was not declared in this scope 江西理工大学[Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:14: error: `find' was not declared in this scope [Warning] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:19:2: warning: no newline at end of file 实验后的源程序: #include “stdio.h” int Find(int Array[], int Array_size, int num){ int i;for(i=0;i P123-- 五、6、输入10名学生5门课的成绩,分别用函数求:(1)每门课的平均分。(2)找出最高的分数所对应的学生和成绩。 实验前的源程序: #include for(i=0;i<10;i++) { printf(“输入第%d个学生五门课的成绩:”,i+1); for(j=0;j<5;j++) scanf(“%f”,&a[i][j]); } } void aver_cour(float a[10][5])//课程的平均分 江西理工大学 { int i,j; float sum; for(i=0;i<5;i++) { sum=0; for(j=0;j<10;j++) sum+=a[j][i]; printf(“第%d门课的平均成绩为:%6.2fn”,i+1,sum/10); } } void highest(float a[10][5])//查找最高分 { int i,j,flag1,flag2;float max=0; for(i=0;i<10;i++) { for(j=0;j<5;j++) { if(max { max=a[i][j]; flag1=i; flag2=j; } } } printf(“最高分对应的是学生:%d课程:%dn”,flag1+1,flag2+1);} void main(){ float a[10][5]; input(a); aver cour(a); highest(a); } 实验错误报告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名6.cpp:35: error: `main' must return `int' [Error] C:Users陶鑫DocumentsC-FreeTemp未命名6.cpp:38: error: `aver' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名6.cpp:38: error: expected `;' before “cour” 江西理工大学[Warning] C:Users陶鑫DocumentsC-FreeTemp未命名6.cpp:40:4: warning: no newline at end of file 构建中止 未命名6: 3 个错误, 1 个警告 实验后的源程序: #include for(i=0;i<10;i++) { printf(“输入第%d个学生五门课的成绩:”,i+1); for(j=0;j<5;j++) scanf(“%f”,&a[i][j]); } } void aver_cour(float a[10][5])//课程的平均分 { int i,j; float sum; for(i=0;i<5;i++) { sum=0; for(j=0;j<10;j++) sum+=a[j][i]; printf(“第%d门课的平均成绩为:%6.2fn”,i+1,sum/10); } } void highest(float a[10][5])//查找最高分 { int i,j,flag1,flag2;float max=0; for(i=0;i<10;i++) { for(j=0;j<5;j++) { if(max { max=a[i][j]; flag1=i; flag2=j; } } } printf(“最高分对应的是学生:%d课程:%dn”,flag1+1,flag2+1);} main() 江西理工大学 { float a[10][5]; input(a); aver_cour(a); highest(a);} P173- 五、2、对具有10个元素的char类型的数组,从下标为6的元素开始全部设置'#'号,保持前6个元素中的内容不变。 实验前的源程序: #include“stdio.h” main(){int i;char a[10]={'h','e','l','l','o','j','p','i','j','d'};for(i=0;i<10;i++)printf(“%c”,a[i]);printf(“n”); for(pi=(a+6);pi<(a+10);pi++) *pi='#';for(i=0;i<10;i++)printf(“%c”,a[i]);} 实验错误报告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名1.cpp:8: `pi' undeclared(first use this function)[Error] C:Users陶鑫DocumentsC-FreeTemp未命名1.cpp:8:(Each undeclared identifier is reported only once [Error] C:Users陶鑫DocumentsC-FreeTemp未命名1.cpp:8: for each function it appears in.) 构建中止 未命名1: 3 个错误, 0 个警告 江西理工大学 实验后的源程序: #include“stdio.h” main(){int i;char a[10]={'h','e','l','l','o','j','p','i','j','d'}, *pi;for(i=0;i<10;i++)printf(“%c”,a[i]);printf(“n”); for(pi=(a+6);pi<(a+10);pi++) *pi='#';for(i=0;i<10;i++)printf(“%c”,a[i]);} P173- 五、5、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,并输出对换后的10个数。 实验前的源程序: #include int max,min; max=min=0;for(i=0;i<10;i++){ if(*(p+i)>*(p+max))max=i; if(*(p+i)<*(p+min))min=i;} m=p[0];p[0]=p[max];p[max]=m;m=p[9];p[9]=p[min];p[min]=m;} void Show(int *p){ int i=0;printf(“交换后结果如下:n”);while(i<10) printf(“%d ”,*(p+i++));printf(“n”);} 江西理工大学void main(){ int data[10];int i=0;printf(“请输入十个数:n”);while(i<10) scanf(“%d”,data+i++)Deal(data);Show(data);} 实验错误报告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名7.cpp:24: error: `main' must return `int' [Error] C:Users陶鑫DocumentsC-FreeTemp未命名7.cpp:30: error: expected `;' before “Deal” [Warning] C:Users陶鑫DocumentsC-FreeTemp未命名7.cpp:32:2: warning: no newline at end of file 构建中止 未命名7: 2 个错误, 1 个警告 实验后的源程序: #include 江西理工大学} void Show(int*p){ int i=0;printf(“交换后结果如下:n”);while(i<10)printf(“%d”,*(p+i++));printf(“n”);} void main(){ int data[10];int i=0;printf(“请输入十个数:n”);while(i<10)scanf(“%d”,data+i++);Deal(data);Show(data);} P173- 五、7、编写小学生做加、减、乘、除四则运算的程序。例如在操作系统下,键入cal 15*15< 回车>,则在屏幕上显示15*15=225.实验前的源程序: 实验错误报告: 实验后的源程序: #include int i,j,k;char *f[2];int b[2];scanf(“%s”,&f[1]);scanf(“%d”,&b[1]); 江西理工大学 江西理工大学12 } scanf(“%s”,&f[2]);scanf(“%d”,&b[2]);i=b[1];j=b[2];k=i*j;printf(“%d*%d=%d”,i,j,k); 实验一 熟悉C语言程序的运行环境 一、实验目的 1、了解在该系统上如何编辑、编译、连接和运行一个C 程序; 2、通过运行简单的C程序,初步了解C程序的特点。 二、实验预习 1、认真阅读简单的C程序介绍,C程序上机步骤部分内容; 2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。 如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。初学者特别忌讳 上机前自己不编写程序,到时随便地抄别人的程序。 三、实验指导 1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。(1)选择File->New,使编辑窗口变成空白(2)输入下面的程序(例题1.1)#include (4)如果编译无错误,按【Ctrl+F9】键使程序运行,按【Alt+F5】键,切换到用户 屏,观察分析运行结果。 2、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.2)。#include 四、实验内容 1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。 2、试编写一程序完成如下信息的显示。********************************** “How are you!” ********************************** 3、编写一个C 程序(习题1.6):输入a, b, c 三个值,输出其中最大者。根据上述题目要求编程并上机调试运行。 五、实验报告要求 实验结束后,应整理实验报告,其内容应包括: 1、实验题目 2、设计思路 3、写出程序源代码 4、写出程序运行结果 5、对实验结果进行分析、总结 六、设计思路 1.5题:以main为主函数,对三条语句进行编码,分别输出,即可达到所要求的结果。1.6题:以main为主函数,先输入三个整形十进制数,任取其一,与其它两个中的任一进行对比,取其最大,再与剩余的一个进行对比,可得最大。 七、源程序清单 1.5题: #include printf(“n**********************n”);printf(“ ”how are you“n”);printf(“**********************n”);} 1.6题: #include 八、分析、总结、及心得 通过本次实验让我学会c程序的编写应注意的一些细节,理解一些简单程序的编写方法。 实验二 数据类型,运算符与表达式 一、实验目的 1、掌握C 语言数据类型,以及对它们赋值的方法; 2、掌握不同的数据类型之间赋值的规律; 3、学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用; 4、进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验预习 1、认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。 三、实验指导 1、输入并运行下面的程序: #include (1)将一个负整数赋给一个无符号的变量,会得到什么结果。 (2)将一个大于32767 的长整数赋给整形变量,会得到什麽结果。 (3)将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。 同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b =-40000, e = 65535,f = 65580。 2、输入下面程序: #include (4)在(3)的基础上,将printf 语句改为: printf(“%d,%d”, ++i, ++j);运行并分析结果。(5)再将printf 语句改为: printf(“%d,%d,%d,%d”, i, j, i++, j++);运行并分析结果。(6)将程序改为: #include 四、实验内容 1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。 2、试编一程序实现输入长宽高,计算长方体的表面积。 3、按习题3.7 的要求编程序并上机运行,该题的要求是: 要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母“A”后面第4 个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5 分别变为’G’、’l’、’m’、’r’、’e’、,并输出。 (1)输入编好的程序,并运行该程序。分析是否符合要求。 五、实验结果 1题: (1):100,-100 100,65436 100,65436(2):-15536,32767(3):5000,32767 2题: (1):9,119,10(2):9,11,8,11(3):8,10(4):9,11(5):9,11,8,10(6):i=9,j=9,m=8,n=-9 六、源程序清单 四.2题 #include #include 七、分析、总结、及心得 通过本次的实验,熟悉如何定义一个整型、字符型和实型的变量,掌握算术运算符的使用,以及包含这些运算符的表达式,特别是自加和自减运算符的使用,学会一些简单程序编写所注意的问题。 实验三 简单C程序设计 一、实验目的 1、掌握C 语言中赋值语句的使用方法; 2、掌握不同类型数据的输入输出方法,能正确使用各种格式转换符; 二、实验预习 1、认真阅读数据的输入输出部分内容。 三、实验指导 1、从键盘输入两个0 到127 的整数,求两数的平方差并输出其值以及这两个整数的ASCII 码对应的字符。 (1)算法分析:标准ASCII 码值范围是0 到127,所以在这范围内的数可以以字符形式输出,实现方法是用格式输出函数并用格式符c 控制输出。(2)根据结果书写源程序 #include 注意输入时两数间应以空格间隔,不能用逗号,只有源程序输入函数中两格式符以逗号间隔时输入才可以是:100,50↙(6)查看结果【Alt+F5】 2、输入程序 #include (2)在此基础上,修改程序的第7~11 行: 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;运行程序,分析结果。(3)将printf 语句改为: printf(“a=%d,b=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);printf(“f=%f,g=%fnm=%d,n=%dnp=%d,q=%dn”,f,g,m,n,p,q);运行程序,分析结果。 (4)将p、q 改用%o 格式符输出。运行程序,分析结果。 四、实验内容 1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。 2、本节实验题目: (1)若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'。想得到以下的输出格式和结果,请写出程序。要求输出结果如下:(注意空格的输出)a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1='a' or 97(ASCII)c2='B' or 98(ASCII)(2)假设m是一个三位数,试编写一程序完成将m的个位,十位,百位反序输出(例如:123反序输出为321)。 五、实验结果 三、1: d,2,7500 2、(1): a=61,b=62 c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000(2): a=-15536,b=5536 c1==,c2=> d=3157.89,e= 0.12 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=50000,q=5536(3): c1==,c2=> d= 3157.890137,e= 0.123456791043 f=3157.890121,g=0.123457 m=-15536,n=0 p=5536,q=-1(4): a=15536,b=5536 c1==,c2=> d= 3157.890137,e= 0.123456791043 f=3157.890121,g=0.123457 p=12640,q=177777 六、源程序清单 2(1): #include }(2:)#include } 七、分析、总结、及心得 在本次实验中,学会了赋值语句的使用方法,不同类型数据的输入输出,尤其是某些空格应特别注意,了解了在scanf语句中不能用n,这也是我一直犯的错误。 实验四 选择结构程序设计 一、实验目的 1、学会正确使用逻辑运算符及逻辑表达式; 2、熟练掌握if 语句与switch 语句; 二、实验预习 1、认真阅读if 语句和switch 语句部分内容。 2、编写好所需要的程序。 三、实验指导 1、输入三角形的三边长,判断这个三角形是否是直角三角形。 (1)算法分析:直角三角形斜边最长,要先找出三边中最长的边,判断最长边的平方 是否等于其余两边的平方和,若相等就是直角三角形。根据分析结果书写源程序。#include t=a; a=b; b=t;}/* a 中放a,b 中较长边*/ if(a t=a; a=c; c=t;}/* a 中放a,b,c 中的最长边*/ if(a*a==b*b+c*c) printf(“Y”);else printf(“N”);}(2)编辑源程序(3)编译【F9】,直到没有错误。(4)运行【Ctrl+F9】,输入: 3,4,5↙ (5)查看结果【Alt+F5】,输出: Y 四、实验内容 1、在C 编辑环境下编辑实验指导中给出的程序、编译并运行。 2、本节实验题目: (1)给出一个百分制成绩,要求输出成绩等级A、B、C、D。90 分以上为A,80~89分为B,70~79 分为C,60~69 分为D,60 分以下为E。 ①事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。 ②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。 ③修改程序,使之能正确处理任何数据。当输入数据大于100 或小于0 时,通知用户“输入数据错”,程序结束。 (2)给出一个不多于5位的正整数,要求:①求出它是几位数。②分别打印出每一位数。③按逆序打印出各位数字。 五、简述编程思路 2.1.1首先写一段程序(switch语句)来对不是所要求的输入的判断与执行,其次写出主要要执行的语句对于switch要求用break跳出,if则不同,六、源程序清单 2.1.1:(用switch)#include scanf(“%f”,&a);} switch((int)a/10){ case 0: case 1: case 2: case 3: case 4: case 5:b='E';break; case 6:b='D';break; case 7:b='C';break; case 8:b='B';break; case 9: case 10:b='A';} printf(“b=%cn”,b); } 2.1.2:(用if) #include scanf(“%f”,&a);} if(a>=0&&a<60) b='E';else if(a>=60&&a<70) b='D';else if(a>=70&&a<80) b='C';else if(a>=80 &&a<90) b='B';else b='A'; printf(“b=%cn”,b); } 2.2: #include } 七、实验心得 通过本次实验,明白了if和switch的联系,以及长整形在打印时注意的地方,学会使用逻辑运算符及逻辑表达式。 实验五 循环控制 一、实验目的 1.熟练掌握for 语句、while 语句、do-while 语句实现循环的方法; 2.理解循环嵌套及其使用方法; 3.掌握break 语句与continue 语句的使用; 4.掌握用循环实现一些常用算法(如穷举、迭代、递推等)。 二、实验预习1.认真阅读本章教材中循环控制部分.2.编写好所需要的程序。 三、实验指导 1.打印如下图案 * * * * * * * * * * * * * * * * (1)算法分析:从图案中找出行数,空格数,星号数间的关系如下: 行数空格数星号数 1 3 1 2 2 3 3 1 5 4 0 7 i 4-i 2*i-1 可用双重循环控制整个图案的输出。若用循环变量i,j 分别控制外层,内层循环,则 i 的取值从1 到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,星号个数是2*i-1。 (2)根据分析结果写出源程序 #include (6)查看结果【Alt+F5】。输出题目要求的图案。 四、实验内容 1.在C 编辑环境下编辑实验指导中给出的程序,编译并运行。2.要求学生独立完成如下题目: (1)输出100到1000之间的所有水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。 (2)输入一行字符,分别统计出其中英文字母、空格、数字 和其他字符的个数。 (3)试利用图形函数完成极坐标函数ρ=cos(3*X)图像的绘制。【进阶题目,选做】 根据以上题目要求编程并上机调试运行。 五、编程思路 2(1)对一个数字每一位的输出的前提下在利用一个if语句即可。2(2)先明白英文字母、空格、数字的ASCII,在用if函数即可。 六、程序运行结果 2(1): #include printf(“%dn”,a); a++;} }(2): #include if(c>=65&&c<=90||c>96&&c<=122) i++; else if(c>=48&&c<=57) j++; else if(c==32) k++; else l++;} printf(“i=%d,j=%d,k=%d,l=%dn”,i,j,k,l); }(3): #include int main(){ int gdriver, gmode;float p,x,px,py,zx,zy;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver, &gmode, “c: c”);for(x=0;x<=2*PI;x+=0.01){ p=cos(3*x); zx=p*cos(x); zy=p*sin(x); px=320+zx*100; py=240-zy*100; putpixel(px,py,14);} getch();closegraph();return 0;} 七、实验总结、心得 通过本次实验,理解了一些循环语句的选择、运用,对一些简单循环的嵌套有了更进一步的理解。第四篇:C语言实验报告
第五篇:c语言实验报告