2012华水C语言实验报告3

时间:2019-05-14 19:52:24下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《2012华水C语言实验报告3》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《2012华水C语言实验报告3》。

第一篇:2012华水C语言实验报告3

华北水院高级语言程序设计(C语言)实验报告

(三)2012--2013学年第二学期

2012级专业:学号:姓名:………………………………………………………………………………………………

一、实验题目:循环结构程序设计

二、实验目的:(略)

三、实验内容

1.程序验证(略)

2.程序设计

1)找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。源代码:

#include

#include

int fun(int x)

{

int k;

for(k=2;k<=sqrt(x);k++)

if(x%k==0)

return 0;return 1;}

main()

{

int i,count=0;

for(i=100;i<=900;i++)

{

int temp1=i%10;

int temp2=(i)/10%10;

int temp3=i/100;

int temp4=temp1*100+temp2*10+temp3;

if(fun(i)&&fun(temp4))

{

count++;

printf(“%d ”,i);

if(count%9==0)

printf(“n”);

}

}

printf(“n”);return 0;

}

运行结果101 107 113 131 149 151 157 167 179181 191 199 311 313 337 347 353 359

373 383 389 701 709 727 733 739 743

751 757 761 769 787 797

Press any key to continue

2)编程:用迭代法求某数a的平方根。平方根的迭代公式如下:xn+1=(xn+a/xn)/2;设x0=a/2;

当迭代相邻两项差的绝对值小于10-5时,迭代结束。

源代码:

#include

#include

void main()

{

float a,x0,x1;

printf(“Input a number:”);

scanf(“%f”,&a);

if(a<0)

printf(“Error!n”);

else

{

x0=a/2;

x1=(x0+a/x0)/2;

do

{

x0=x1;

x1=(x0+a/x0)/2;

}

while(fabs(x0-x1)>1e-6);

printf(“sqrt(%f)=%fn”,a,x1);

}

}

运行结果:

Press any key to continue

第二篇: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 void main(){ 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);}

实验错误报告:

[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 void main(){

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 void main(){ char c1,c2;c1='w';

江西理工大学

} 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 void main(){ char c1,c2;c1='w';c2='s';c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c2);}

三、实验前的源程序:

/*查看某一年是否为闰年*/ #include void main(){ int year,i;scanf(“%d”,&year);if(year%4==0)

{

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 void main(){ int year,i;scanf(“%d”,&year);if(year%4==0)

{

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 void main(){ float x,y,z;scanf(“%5.2f,%5.2f”,&x,&y);z=x+y;printf(“z=%5.2f”,&z);} 修改后的源程序:

#include void main(){ float x,y,z;scanf(“%f%f”,&x,&y);z=x+y;printf(“z=%5.2f”,z);}

改错前的源程序;#include void main(){ int x=7654123;x*=10;printf(“x=%7d”,x);} 修改后的源程序:

江西理工大学

#include void main(){

long x=7654123;x*=10;printf(“x=%7d”,x);}

改错前的源程序:

#include void main(){ float c1=67;char c2;c2=c1+5;printf(“c1=%c,c2=%cn”,c1,c2);printf(“c1=%d,c2=%d”,&c1,&c2);} 修改后的源程序:

#include void main(){ int c1=67;char c2;c2=c1+5;printf(“c1=%c,c2=%cn”,c1,c2);printf(“c1=%d,c2=%d”,c1,c2);}

五、程序编写题:已知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 void main()

江西理工大学{ 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 void main(){ 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 “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 main(){ printf(“请输入一串乱序的10个整数:n”);int a[10];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]);}

实验错误报告:

[Error] D:Program FilesC-Free 4temp未命名1.cpp:33: parse error at end of

input 构建中止 未命名1: 1 个错误, 0 个警告

实验后的源程序:

//用选择法对10个整数排序

#include void main(){ printf(“请输入一串乱序的10个整数:n”);int a[10];

江西理工大学 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 void main(){ int a[3][3];int i,j,ji=1;printf(“请输入一个3*3的矩阵:n”);for(i=0;i<=2;i++)for(j=0;j<=2;j++){

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 void main(){ int a[3][3];int i,j,ji=1;printf(“请输入一个3*3的矩阵:n”);for(i=0;i<=2;i++)for(j=0;j<=2;j++){

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 void main(){ int a[10],i,j,t;printf(“请问你要输个几个数字: ”);scanf(“%d”,&j);printf(“请输入大小顺序的%d个数字: ”,j);for(i=0;i

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 void main(){ int a[10],i,j,t;printf(“请问你要输个几个数字: ”);scanf(“%d”,&j);printf(“请输入大小顺序的%d个数字: ”,j);for(i=0;i

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语言实验报告

C语言程序设计(B)

(2010-2011-2)

实验报告

教学班级:

学号:

姓名:

课程教师:王华金

实验辅导教师:王华金

江西理工大学P123--

五、1、编写函数,找出5*5数组对角线上元素的最小值,并在主函数中调用它。要求元素的值通过键盘输入。

实验前的源程序:

#include int func(int p[5][5]){ int i,j,min;min=p[0][0];for(i=0;i<5;i++)

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 int func(int p[5][5]){ int i,j,min;min=p[0][0];for(i=0;i<5;i++)

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 void input(float a[10][5])//输入学生成绩 { int i,j;

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 void input(float a[10][5])//输入学生成绩 { int i,j;

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 void Deal(int *p){ int i,m;

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 Deal(int*p){ int i,m;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[min];p[min]=m;m=p[9];p[9]=p[max];p[max]=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);}

P173-

五、7、编写小学生做加、减、乘、除四则运算的程序。例如在操作系统下,键入cal 15*15< 回车>,则在屏幕上显示15*15=225.实验前的源程序:

实验错误报告:

实验后的源程序:

#include main(){

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语言实验报告

实验一 熟悉C语言程序的运行环境

一、实验目的

1、了解在该系统上如何编辑、编译、连接和运行一个C 程序;

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

二、实验预习

1、认真阅读简单的C程序介绍,C程序上机步骤部分内容;

2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。

如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。初学者特别忌讳

上机前自己不编写程序,到时随便地抄别人的程序。

三、实验指导

1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。(1)选择File->New,使编辑窗口变成空白(2)输入下面的程序(例题1.1)#include void main(){ printf(“This is a C program.n”);}(3)按功能键【F9】进行编译和连接,观察屏幕上显示的编译信息。如果出现“出错 信息”,则应找出原因并改正之,再进行编译。

(4)如果编译无错误,按【Ctrl+F9】键使程序运行,按【Alt+F5】键,切换到用户 屏,观察分析运行结果。

2、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.2)。#include void main(){ int a,b,c;printf(“input a & b:”);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);} int max(int x,int y){ int z;if(x>y)z=x;else z=y;return(z);}(2)编译并运行,在运行时从键盘输入整数2 和5,格式为:2, 5(注意:两数据间 用逗号分隔开),然后按回车键,按【ALT+F5】键,观察运行结果。(3)自己试着改动一些数据或输入格式,再运行,观察结果作比较。

四、实验内容

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 main(){

printf(“n**********************n”);printf(“ ”how are you“n”);printf(“**********************n”);} 1.6题:

#include main(){ int a,b,c,max;scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max

八、分析、总结、及心得

通过本次实验让我学会c程序的编写应注意的一些细节,理解一些简单程序的编写方法。

实验二 数据类型,运算符与表达式

一、实验目的

1、掌握C 语言数据类型,以及对它们赋值的方法;

2、掌握不同的数据类型之间赋值的规律;

3、学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用;

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

二、实验预习

1、认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。

三、实验指导

1、输入并运行下面的程序: #include void main(){ int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(“%d,%d n ”,a,b);printf(“%u,%u n ”,a,b);printf(“%u,%u n ”,c,b);c=a=e;d=b=f;printf(“%d,%d n ”,a,b);printf(“%u,%u n ”,c,d);} 请对照程序和运行结果分析:

(1)将一个负整数赋给一个无符号的变量,会得到什么结果。

(2)将一个大于32767 的长整数赋给整形变量,会得到什麽结果。

(3)将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。

同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b =-40000, e = 65535,f = 65580。

2、输入下面程序: #include void main(){ int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}(1)运行程序,注意i,j,m,n 各变量的值,分别作以下改动并运行。(2)将第3 行中m, n 的值改为:m=i++;n=++j;再运行。(3)将程序改为: #include void main(){ int i, j;i=8;j=10;printf(“%d,%d”, i++, j++);} 运行并分析结果。

(4)在(3)的基础上,将printf 语句改为:

printf(“%d,%d”, ++i, ++j);运行并分析结果。(5)再将printf 语句改为:

printf(“%d,%d,%d,%d”, i, j, i++, j++);运行并分析结果。(6)将程序改为: #include void main(){ int i,j,m=0,n=0;j=10;i=8;m+=i++;n-=--j;printf(“i=%d, j=%d, m=%d, n=%d”,i,j,m,n);} 运行并分析结果。

四、实验内容

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 void main(){ float a,b,c,s;scanf(“%f,%f,%f”,&a,&b,&c);s=2*a*b+2*a*c+2*b*c;printf(“s=%.2f”,s);} 3题

#include void mian(){ char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5);}

七、分析、总结、及心得

通过本次的实验,熟悉如何定义一个整型、字符型和实型的变量,掌握算术运算符的使用,以及包含这些运算符的表达式,特别是自加和自减运算符的使用,学会一些简单程序编写所注意的问题。

实验三 简单C程序设计

一、实验目的

1、掌握C 语言中赋值语句的使用方法;

2、掌握不同类型数据的输入输出方法,能正确使用各种格式转换符;

二、实验预习

1、认真阅读数据的输入输出部分内容。

三、实验指导

1、从键盘输入两个0 到127 的整数,求两数的平方差并输出其值以及这两个整数的ASCII 码对应的字符。

(1)算法分析:标准ASCII 码值范围是0 到127,所以在这范围内的数可以以字符形式输出,实现方法是用格式输出函数并用格式符c 控制输出。(2)根据结果书写源程序 #include void main(){ int x,y,sub;scanf(“%d%d”,&x,&y);/* 变量前一定要加取地址符& */ sub=x*x-y*y;printf(“%c,%c,%d”,x,y,sub);}(3)在C 编辑环境下编辑源程序。(4)编译【F9】,直到程序没有错误。(5)运行【Ctrl+F9】,从键盘输入: 100 50↙

注意输入时两数间应以空格间隔,不能用逗号,只有源程序输入函数中两格式符以逗号间隔时输入才可以是:100,50↙(6)查看结果【Alt+F5】

2、输入程序

#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=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e);printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,n,p,q);}(1)运行程序并分析结果。

(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 void main(){ int a=3,b=4,c=5;long int u=51274,n=128765;float x=1.2,y=2.4,z=-3.6;char c1='a',c2='b';printf(“a=%2d b=%2d c=%2dn”,a,b,c);printf(“x=%f,y=%f,z=%fn”,x,y,z);printf(“x+y=%5.2f y+z=%5.2f z+x=%5.2fn”,x+y,y+z,z+x);printf(“u=%6ld n=%9ldn”,u,n);printf(“%s %s %d%sn”,“c1='a'”,“or”,c1,“(ASCII)”);printf(“%s %s %d%sn”,“c2='B'”,“or”,c2,“(ASCII)”);

}(2:)#include void main(){ int a,b;scanf(“%d”,&a);b=a/100+a%100/10*10+a%10*100;printf(“%d”,b);

}

七、分析、总结、及心得

在本次实验中,学会了赋值语句的使用方法,不同类型数据的输入输出,尤其是某些空格应特别注意,了解了在scanf语句中不能用n,这也是我一直犯的错误。

实验四 选择结构程序设计

一、实验目的

1、学会正确使用逻辑运算符及逻辑表达式;

2、熟练掌握if 语句与switch 语句;

二、实验预习

1、认真阅读if 语句和switch 语句部分内容。

2、编写好所需要的程序。

三、实验指导

1、输入三角形的三边长,判断这个三角形是否是直角三角形。

(1)算法分析:直角三角形斜边最长,要先找出三边中最长的边,判断最长边的平方 是否等于其余两边的平方和,若相等就是直角三角形。根据分析结果书写源程序。#include void main(){ int a,b,c,t;/* 三边设为a,b,c,t 是用于交换的中间变量*/ scanf(“%d,%d,%d”,&a,&b,&c);if(a

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 void main(){ float a;char b;printf(“please input a score:”);scanf(“%f”,&a);while(a<0||a>100){ printf(“input error”);

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 void main(){ float a;char b;printf(“please input a score:”);scanf(“%f”,&a);while(a<0||a>100){ printf(“input error”);

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 void main(){ long int a;long int g,s,b,q,w,f,place;scanf(“%ld”,&a);while(a>99999){ printf(“input error”);scanf(“%ld”,&a);} if(a>9999)place=5;else if(a>999)place=4;else if(a>99)place=3;else if(a>9)place=2;else place=1;printf(“%dn”,place);g=a%10;s=a%100/10;b=a%1000/100;q=a%10000/1000;w=a/10000;printf(“%ld,%ld,%ld,%ld,%ldn”,g,s,b,q,w);f=a%10*10000+a%100/10*1000+a%1000/100*100+a%10000/1000*10+a/10000;printf(“f=%ldn”,f);

}

七、实验心得

通过本次实验,明白了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 void main(){ int i,j;/*定义循环控制变量*/ for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)prinf(“ ”);/* 输出4-i 个空格*/ for(j=1;j<=2*i-1;j++)printf(“*”);printf(“n”);} }(3)在C 编辑环境下编辑源程序。(4)编译【F9】,直到没有错误。(5)运行【Ctrl+F9】。因不需输入,故此程序运行时仅是屏幕闪一下就又回到编辑环境了。

(6)查看结果【Alt+F5】。输出题目要求的图案。

四、实验内容

1.在C 编辑环境下编辑实验指导中给出的程序,编译并运行。2.要求学生独立完成如下题目:

(1)输出100到1000之间的所有水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

(2)输入一行字符,分别统计出其中英文字母、空格、数字 和其他字符的个数。

(3)试利用图形函数完成极坐标函数ρ=cos(3*X)图像的绘制。【进阶题目,选做】 根据以上题目要求编程并上机调试运行。

五、编程思路

2(1)对一个数字每一位的输出的前提下在利用一个if语句即可。2(2)先明白英文字母、空格、数字的ASCII,在用if函数即可。

六、程序运行结果 2(1):

#include #include void main(){ int a=100,g,s,b;while(a>=100&&a<=999);{ g=a%10;s=a%100/10;b=a/100;if(a==(pow(g,3)+pow(s,3)+pow(b,3)))

printf(“%dn”,a);

a++;}

}(2):

#include void main(){ char c;int i=0,j=0,k=0,l=0;while((c=getchar())!='n'){

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 #include #define PI 3.1415926

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;}

七、实验总结、心得

通过本次实验,理解了一些循环语句的选择、运用,对一些简单循环的嵌套有了更进一步的理解。

下载2012华水C语言实验报告3word格式文档
下载2012华水C语言实验报告3.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    c语言实验报告

    南昌大学实验报告 学生姓名: 学 号: 专业班级: √ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称 实验3 控制语句 二.实验目的 1.熟练掌握if 、if…el......

    c语言实验报告

    计算机软件技术基础实验报告 实验一:线性表的排序与查找 一.实验内容 a) 键盘输入一组无序数据,添加到线性表中; b) 排序线性表并输出排序结果; c) 键盘输入一个数,并插入到排好......

    C语言实验报告

    郑州轻工业学院 实 践 报 告 实现内容: OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件) 学号:541507020140 学生姓名:王红旭 专业班级:电子信......

    C语言实验报告

    实验一 C程序的运行环境和方法 一、实验目的 1.了解所用的计算机系统。 2.了解在该系统上如何进行编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序了解C程序的特点。 二......

    C语言实验报告

    C语言程序设计(B) (2010-2011-2) 实验报告2 教学班级: 学号: 姓名:课程教师: 实验辅导教师: 一、做一个“杨辉三角” 实验前的源程序: /*杨辉三角*/ #include void fun(int Y[][]......

    C语言实验报告

    C语言程序设计实验 --------指针应用实验 ========================山东农业大学实验报告 课程名称: c语言程序设计实验 学院: 水利土木工程学院 专业: 道路桥梁与渡河工程......

    C语言实验报告

    C语言第一学期实验: 第1次实验: 时间 2010-9-15 项目名称:创建第一个C语言程序 仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序: 1、 单击“开始”“程序”......

    C语言实验报告

    《C语言程序设计》实验报告实验名称 ____ C程序的运行环境和运行C程序的方法_学期日期 同组人李江涛指导老师_杨雪松___________成绩___________ -------------------------......