程序设计基础C实验报告key.docx

上传人:b****6 文档编号:6984823 上传时间:2023-01-14 格式:DOCX 页数:29 大小:26.41KB
下载 相关 举报
程序设计基础C实验报告key.docx_第1页
第1页 / 共29页
程序设计基础C实验报告key.docx_第2页
第2页 / 共29页
程序设计基础C实验报告key.docx_第3页
第3页 / 共29页
程序设计基础C实验报告key.docx_第4页
第4页 / 共29页
程序设计基础C实验报告key.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

程序设计基础C实验报告key.docx

《程序设计基础C实验报告key.docx》由会员分享,可在线阅读,更多相关《程序设计基础C实验报告key.docx(29页珍藏版)》请在冰豆网上搜索。

程序设计基础C实验报告key.docx

程序设计基础C实验报告key

《程序设计基础C》

 

教学班级:

学号:

姓名:

课程教师:

实验辅导教师:

重庆理工大学计算机学院

2012年2月

实验6循环程序设计

教学班级:

__________班学号:

__________姓名:

__________

实验日期:

___________实验地点:

_________(机房)

实验成绩:

___________

一、实验目的

1.了解C语言循环结构的使用范围。

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

3.熟练掌握C语言的三种循环结构:

whilc语句、do_while语句、for语句的特点和使用方法。

4.能够编写一些有实际应用意义的循环结构程序。

二、实验内容

1.基本内容

题目1:

编写一个自然数1至n的累加程序(如:

1+2+3+…n)。

(使用goto语句)

(文件名:

f1.cpp):

#include

voidmain()

{inti,a,n;

a=i=0;

printf(“n=“);

scanf(“%d”,&n);

E:

i++;

a+=i;

if(i

gotoE;

else

printf(“\na=%d”,a);

}

①输入10,程序运行结果是:

a=55

②把该程序用for循环语句进行改写

程序代码:

#include

voidmain()

{inti,s=0;

for(i=1;i<=10;i++)

s+=i;

printf("s=%d\n",s);

}

}

题目2:

计算1-3+5-7+......-99+101的值.(提示:

注意符号的变化)(文件名:

f2.cpp)

#include

voidmain()

{inti,t=1,s=0;/*t标识符号*/

for(i=1;i<101;i+=2)/*error*/

{s+=i*t;t=-t;}

printf(“s=%d\n”,s);

}

以上程序运行结果不对,请将标有”erro”处改正。

改正后,程序执行结果:

s=51

题目3:

阅读下列程序,预测其输出结果,并上机验证。

(文件名:

f3.cpp)

#include

voidmain()

{inti=1,n;

longs=1;

scanf("%d",&n);

while(i)

{s*=i;

i++;

if(i>n)break;

}

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

}

①程序运行结果是:

输入:

5,输出:

12

②不使用break语句,此程序应如何修改?

#include

voidmain()

{inti=1,n;

longs=1;

scanf("%d",&n);

while(i<=n)

{s*=i;

i++;

}

printf("s=%d\n",s);

}

题目4:

下面程序的功能是打印100以内个位数为6且能被3整除的所有数,选择合适的语句填入该空格中。

(文件名:

f4.cpp)

#include

voidmain()

{inti,j;

for(i=0;i<=9;i++)

{j=i*10+6;

if(j%3!

=0)

continue;

printf("%d",j);}

}

题目5:

编写一个把小写字母转换为大写字母的程序。

要求敲入”/”,则停止转换。

(文件名:

f5.cpp)

#include

voidmain()

{charc,d;

putchar(‘>‘);

do{

c=getchar();

c=(‘a’<=c)&&(c<=‘z’)?

c-32:

c;

putchar(c);

if(c==‘\n’);//error

putchar(‘>‘);

}while(c!

=‘/’);/*判断是否是”/”,则停止转换*/

}

①运行程序,输入2AabcEfgAB/

程序运行结果是:

Z>A>A>B>C>E

F>G>

A>B>/>

②将第9行改为:

if(c==‘\n’)

再运行程序,输入2AabcEfgAB/

程序运行结果是:

2AABCE

FG

AB/

2.选择内容

题目6:

根据公式

求e的近似值,精度要求为10-6

(文件名:

f6.cpp)

#include

voidmain()

{inti;

doublee,n;

e=1.0;n=1.0;

for(i=1;n>=1e-6;i++)

{n/=i;

e+=n;}

printf(“e=%f\n”,e);

}

完善程序,运行结果:

2.718282

题目7:

打印出如下图案(文件名:

f7.cpp)

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

#include

voidmain()

{inti,j;

for(i=1;i<=4;i++)

{for(j=1;j<=8-i;j++)//理解数字8的作用

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");

}/*上面的程序输出上三角形*/

/*下面的程序输出下三角形*/

for(i=3;i>=1;i--)

{for(j=1;j<=8-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");}

}

①运行以上程序,验证实验结果。

②模仿上面程序,打印出如下图案

1

222

33333

程序代码:

#include

voidmain()

{#include

voidmain()

{inti,j;

for(i=1;i<=3;i++)

{for(j=1;j<=3-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("%d",i);

printf("\n");

}

printf("\n");

}

}

题目8:

编写程序:

打印出所有的“水仙花数”。

所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。

例如,153是一个“水仙花数”,因为153=13+53+33。

(文件名:

f6.cpp)

#include

voidmain()

{

inti,j,k,m,n;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{m=i*100+j*10+k;n=i*i*i+j*j*j+k*k*k;

if(m==n)printf("%10d",m);

}

}

三、实验结果(用截图说明)

四、调试心得(选作)

实验7,8数组实验

教学班级:

_______学号:

__________姓名:

___________

实验日期:

___________实验地点:

_________(机房)

实验成绩:

___________

一、实验目的

1.理解数组与普通变量的区别及特点;

2.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

3.掌握字符数组和字符串函数的使用;

4.掌握与数组有关的程序与算法。

二、实验任务

1.基本内容

实验7:

题目1:

阅读以下程序(文件名:

g1.cpp)

#include

voidmain()

{inti,s=0,a[10]={0,1,2,3,4,5,6,7,8,9};

for(i=3;i<7;i++)

s=s+a[i];

printf(“s=%d\n”,s);

}

①程序的功能:

求a[3]至a[6]的和

②程序运行结果:

s=18

题目2:

阅读以下程序(文件名:

g2.cpp)

#include

voidmain()

{intk,s,i,a[10]={1,2,3,4,5,6,7,8,9,10};

floatave;

for(k=s=i=0;i<10;i++)

{if(a[i]%2==0)continue;

s+=a[i];

k++;

}

if(k!

=0)

{ave=s/k;

printf(“k=%d,ave=%f\n”,k,ave);

}

}

①程序的功能:

求数组a[10]中的奇数之和的平均值,并记录其奇数的个数。

②程序运行结果:

k=5;ave=5.000000;

题目4:

任意输入10个数,求其最大数和最小数。

(文件名:

g4.cpp)

程序代码:

#include

voidmain()

{inti,j=0,k=0,a[10];

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=1;i<10;i++)

{if(a[i]>a[j])j=i;

if(a[i]

}

printf("max=%d\nmin=%d\n",a[j],a[k]);

}

}

题目5:

冒泡法对10个数排序(从小到大)。

(文件名:

g5.cpp)

#include

voidmain()

{inta[10];inti,j,temp;

printf("Pleaseinput10numbers:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if(a[j]>a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

printf("Thesortednumbers:

\n");

for(i=0;i<10;i++)

printf("%4d",a[i]);

}

①理解以上程序,并编辑运行程序。

②将程序中第7行的数字9改为10,编译运行程序,结果怎样?

不变

③将程序中第8行的数字9改为10,编译运行程序,结果怎样?

不变

实验8:

题目2:

输入一串字符,计算其中空格的个数。

(文件名:

h2.cpp)

#include

#include

voidmain()

{charc[30];

inti,sum=0;

gets(c);

for(i=0;i

if(c[i]=='')

sum=sum+1;

printf("空格数为:

%d\n",sum);

}

题目3:

(文件名:

h3.cpp)

#include

voidmain()

{inti,j,row,col,min;

inta[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};

min=a[0][0];

row=col=0;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

if(a[i][j]

{min=a[i][j];row=i;col=j;}

printf(“min=%d,row=%d,col=%d\n”,min,row,col);

}

①程序的功能:

找出a[3][4]中的最小元素及其行列数

②程序运行结果:

min=-2,row=2,col=1;

题目5:

预测程序结果,并编辑、运行。

(文件名:

h5.cpp)

#include

voidmain()

{chars[20],s1[20];

scanf(“%s”,s);

printf(“s=%s\n”,s);

scanf(“%s%s”,s,s1);

printf(“s=%s,s1=%s”,s,s1);

puts(“\n”);

gets(s);

puts(s);

}

输入Howdopyoudo?

输出s=How

S=do,s1=you

do?

2.选择内容

实验7:

题目6:

任意输入20个数在一维数组a中,求20个数的平均值。

(文件名:

g6.cpp)

程序代码:

#include

voidmain()

{

inta[20],i,j,s=0;

for(i=0;i<20;i++)

scanf("%d",&a[i]);

for(j=0;j<20;j++)

s+=a[j];

s/=20;

printf("s=%d",s);

}

题目7:

任意输入10个数,判断该哪些是素数,并输出该素数。

(文件名:

g7.cpp)

程序代码:

#include

voidmain()

{

inta[10],i,j,k;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=0;j<10;j++)

{for(k=2;k

if(a[j]%k==0)break;

if(k>=a[j])

printf("%d",a[j]);

}

}

实验8:

题目8:

用字符数组存储任意输入的10字符,求该10字符中最大字符。

(文件名:

h8.cpp)

程序代码:

#include

voidmain()

{

chara[10];

inti,j=0;

printf("请任意输入10个字符:

\n");

for(i=0;i<10;i++)

a[i]=getchar();

for(i=1;i<10;i++)

if(a[i]>a[j])

j=i;

putchar(a[j]);

printf("\n");

}

题目9:

从键盘上任意键入一个3行4列的矩阵,要求输出其转置矩阵。

(文件名:

h9.cpp)

程序代码:

#include

voidmain()

{

inti,j,a[3][4],b[4][3];

printf("任意输入12个整数:

\n");

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("数组a:

\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

{

printf("%6d",a[i][j]);

b[j][i]=a[i][j];

}

printf("\n");

}

printf("数组b:

\n");

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

printf("%6d",b[i][j]);

printf("\n");

}

}

题目10:

有5个学生,考3门功课。

求出每一个学生的总分及平均分,统计平均成绩低于60分的学生人数。

(文件名:

h10.cpp)

程序代码:

#include

voidmain()

intj,i,k=0;

floata[5][3],b[5];

printf("依次输入五个同学的成绩:

\n");

for(i=0;i<5;i++)

for(j=0;j<3;j++)

scanf("%f",&a[i][j]);

for(i=0;i<5;i++)

{

b[i]=a[i][0];

for(j=1;j<3;j++)

b[i]+=a[i][j];

b[i]/=3;

}

for(i=0;i<5;i++)

if(b[i]<60)

k+=1;

printf("%d\n",k);

}

三、实验结果(用截图说明)

四、调试心得(选作)

实验9,10函数实验

教学班级:

_______学号:

__________姓名:

___________

实验日期:

___________实验地点:

_________(机房)

实验成绩:

___________

一、实验目的

1.理解函数定义的方法。

2.掌握函数实参与形参的对应关系,以及”参数传递”的方式;

3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。

二、实验任务

1.基本内容

实验9:

题目1:

以下程序是求3个数中的最大值(文件名:

i1.cpp)

#include

voidmain()

{inta,b,c,m;

intmax(intx,inty);/*函数声明*/

printf(“inputa,b,c=“);

scanf(“%d,%d,%d”,&a,&b,&c);

m=max(a,b);

m=max(m,c);

printf(“m=%d\n”,m);

}

intmax(intx,inty)/*函数定义*/

{intz;

z=(x>y)?

x:

y;

returnz;

}

①完善程序,如果输入4,2,6,程序运行结果:

6

题目2:

(文件名:

i2.cpp)

#include

voidmain()

{inta[][3]={0,2,4,6,8,10,12,14,16},sum;

intfunc(inta[][3]);/*函数声明*/

sum=func(a);

printf(“\nsum=%d\n”,sum);

}

intfunc(inta[][3])/*函数定义*/

{inti,j,sum=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i==j)sum+=a[i][j];

returnsum;

}

①程序的功能:

计算斜向右的对角线元素之和

②程序运行结果:

sum=24

题目3:

用子函数计算10名学生1门课成绩的平均分。

(文件名:

i3.cpp)

#include

floataverage(floatarray[10])/*注意数据类型的一致*/

{inti;floataver,sum=0;

for(i=0;i<10;i++)sum+=array[i];

aver=sum/10;

return(aver);

}

voidmain()

{floatscore[10],aver;

inti;

printf(“\ninput10scores:

”);

for(i=0;i<10;i++)scanf(“%f”,&score[i]);

aver=average(score[10]);/*error*/

printf(“\naveragescoreis%5.2f\n”,aver);

}

程序中有“error”标注处有错误,请改正,并调试运行程序。

Aver=average(score);

题目4:

子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。

(文件名:

i4.cpp)

#include

voidmain()

{intnumber;

printf(“请输入一个正整数:

\n”);scanf(“%d”,&number);

if(prime(number)==1)

printf(“\n%d是素数:

”,number);

else

printf(“\n%d不是素数:

”,number);}

intprime(intnumber)

{intflag=1,n;

for(n=2;flag==1&&n<=number/2;n++)

if(number%n==0)flag=0;

return(flag);

}

完善以上程序,并调试运行。

实验10:

题目4:

该程序使用了局部变量与全局变量,理解它们的使用方式。

(文件名:

j4.cpp)

#include

inta=3,b=5;

intmax(inta,intb)

{intc;

c=a>b?

a:

b;

returnc;

}

voidmain()

{inta=8;

printf(“%d”,max(a,b));

}

①局部变量:

a,c全局变量:

a,b

②程序运行结果:

8

题目5:

以下是一个求1-10累加和的错误程序,请改正。

(文件名:

j5.cpp)

#include

voidmain()

{inti,s;

for(i=1;i<=10;i++)

s=sum(i);

printf("s=%d\t",s);

}

sum(intj)

{intx=0;/*error*/

x+=j;

return(x);

}

改正为:

staticintx=0;

2.选择内容

实验9:

题目5:

子函数实现一个字符串按反序存放,在主函数中输入和输出字符串。

(文件名:

i5.cpp)#include

#include

voidmain(){voidinverse(charstr[]);

charstr[100];

printf(“输入字符串:

\n”);scanf(“%s”,str);

inverse(str);

printf(“转换后的字符串是:

%s\n”,str);

}

voidinverse(charstr[])

{chart;

inti,j;

for(i=0,j=strlen(str);i

str[i]=str[j-1];

str[j-1]=t;

}

}

①运行以上程序,输入1234567*,程序运行结果是:

*7654321。

②将inverse函数中的for语句改为

for(i=0,j=strlen(str);i

1234567*。

题目6:

在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1