程序设计基础C实验报告Word文档下载推荐.docx
《程序设计基础C实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序设计基础C实验报告Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
![程序设计基础C实验报告Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/7/c84b1a69-173e-4d04-86d9-7db7e46d54f3/c84b1a69-173e-4d04-86d9-7db7e46d54f31.gif)
①输入10,程序运行结果是:
a=55
②把该程序用for循环语句进行改写
程序代码:
{
题目2:
计算1-3+5-7+......-99+101的值.(提示:
注意符号的变化)(文件名:
f2.cpp)
{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"
&
while(i)
{s*=i;
if(i>
n)break;
printf("
s=%ld\n"
s);
①程序运行结果是:
输入数的阶乘
②不使用break语句,此程序应如何修改?
while(i<
=n)
题目4:
下面程序的功能是打印100以内个位数为6且能被3整除的所有数,选择合适的语句填入该空格中。
f4.cpp)
{inti,j;
for(i=0;
i<
=9;
i++)
{j=i*10+6;
if(j%3!
=0)
continue;
j);
}
题目5:
编写一个把小写字母转换为大写字母的程序。
要求敲入”/”,则停止转换。
f5.cpp)
{charc,d;
putchar(‘>
‘);
do{
c=getchar();
c=(‘a’<
=c)&
&
(c<
=‘z’)?
c-32:
c;
putchar(c);
if(c==‘\n’);
//error
}while(c!
=‘/’);
/*判断是否是”/”,则停止转换*/
①运行程序,输入2AabcEfgAB/
程序运行结果是:
>
2AabcE
2>
A>
B>
C>
E>
fg
F>
G>
AB
②将第9行改为:
if(c==‘\n’)
再运行程序,输入2AabcEfgAB/
2AabcE
2AABCE
>
FG
AB
2.选择内容
题目6:
根据公式
求e的近似值,精度要求为10-n
f6.cpp)
#include<
{inti;
doublee,n;
e=1.0;
n=1.0;
n>
=1e-6;
i++)
{n=n/i;
e+=n;
printf(“e=%f\n”,e);
}
完善程序,运行结果:
e=2.
题目7:
打印出如下图案(文件名:
f7.cpp)
*
#include<
{inti,j;
for(i=1;
=4;
{for(j=1;
j<
=8-i;
j++)//理解数字8的作用
"
);
for(j=1;
=2*i-1;
j++)
*"
printf("
\n"
}/*上面的程序输出上三角形*/
/*下面的程序输出下三角形*/
for(i=3;
i>
=1;
i--)
{for(j=1;
1运行以上程序,验证实验结果。
2
②模仿上面程序,打印出如下图案
1
222
33333
{
inti,j;
for(i=1;
=3;
{for(j=1;
题目8:
编写程序:
打印出所有的“水仙花数”。
所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为153=13+53+33。
#include<
{inti,j,k,m,n;
9;
for(j=0;
=9;
j++)
for(k=0;
k<
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.掌握与数组有关的程序与算法。
二、实验任务
实验7:
阅读以下程序(文件名:
g1.cpp)
{inti,s=0,a[10]={0,1,2,3,4,5,6,7,8,9};
7;
s=s+a[i];
①程序的功能:
求出a【3】a【4】a【5】a【6】地和
②程序运行结果:
s=18
g2.cpp)
{intk,s,i,a[10]={1,2,3,4,5,6,7,8,9,10};
floatave;
for(k=s=i=0;
10;
{if(a[i]%2==0)continue;
s+=a[i];
k++;
if(k!
=0)
{ave=s/k;
printf(“k=%d,ave=%f\n”,k,ave);
①程序的功能:
奇数的和
②程序运行结果:
K=5,ave=5.
任意输入10个数,求其最大数和最小数。
g4.cpp)
#include<
{inta[10];
inti,j,max,min;
Pleaseinput10numbers:
scanf("
a[i]);
for(j=0;
if(a[j]>
a[j+1])
max=a[j];
min=a[j+1];
else
max=a[j+1];
min=a[j];
max=%dmin=%d"
max,min);
冒泡法对10个数排序(从小到大)。
g5.cpp)
inti,j,temp;
9-i;
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
Thesortednumbers:
printf("
%4d"
a[i]);
①理解以上程序,并编辑运行程序。
②将程序中第7行的数字9改为10,编译运行程序,结果怎样?
③将程序中第8行的数字9改为10,编译运行程序,结果怎样?
实验8:
输入一串字符,计算其中空格的个数。
h2.cpp)
string.h>
{charc[30];
inti,sum=0;
gets(c);
strlen(c);
if(c[i]=='
'
)
sum=sum+1;
空格数为:
%d\n"
sum);
h3.cpp)
{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;
3;
for(j=0;
4;
if(a[i][j]<
min)
{min=a[i][j];
row=i;
col=j;
printf(“min=%d,row=%d,col=%d\n”,min,row,col);
min=-2,row=2,col=1
预测程序结果,并编辑、运行。
h5.cpp)
{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);
任意输入20个数在一维数组a中,求20个数的平均值。
g6.cpp)
程序代码:
floatscore[10],avg=0,sum=0;
inti;
20;
{scanf("
%f"
score[i]);
sum+=score[i];
:
%f\n"
avg=sum/20);
任意输入10个数,判断该哪些是素数,并输出该素数。
g7.cpp)
用字符数组存储任意输入的10字符,求该10字符中最大字符。
h8.cpp)
题目9:
从键盘上任意键入一个3行4列的矩阵,要求输出其转置矩阵。
h9.cpp)
题目10:
有5个学生,考3门功课。
求出每一个学生的总分及平均分,统计平均成绩低于60分的学生人数。
h10.cpp)
{inta[3][;
inti,ave,sum,x;
for(i
scanf(”%d]”,&
a[3]);
三、实验结果(用截图说明)
实验七
题目一
题目二
实验八
第三题
实验9,10函数实验
1.理解函数定义的方法。
2.掌握函数实参与形参的对应关系,以及”参数传递”的方式;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。
实验9:
以下程序是求3个数中的最大值(文件名:
i1.cpp)
{inta,b,c,m;
intmax(intx,inty);
/*函数声明*/
printf(“inputa,b,c=“);
scanf(“%d,%d,%d”,&
a,&
b,&
c);
printf(“m=%d\n”,m);
intmax(intx,inty)/*函数定义*/
{intz;
z=(x>
y)?
x:
y;
returnz;
①完善程序,如果输入4,2,6,程序运行结果:
i2.cpp)
{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;
if(i==j)sum+=a[i][j];
returnsum;
sum=24
用子函数计算10名学生1门课成绩的平均分。
i3.cpp)
floataverage(floatarray[10])/*注意数据类型的一致*/
{inti;
floataver,sum=0;
for(i=0;
i++)sum+=array[i];
aver=sum/10;
return(aver);
{floatscore[10],aver;
inti;
printf(“\ninput10scores:
”);
for(i=0;
i++)scanf(“%f”,&
aver=average(score[10]);
/*error*/
printf(“\naveragescoreis%5.2f\n”,aver);
程序中有“error”标注处有错误,请改正,并调试运行程序。
aver=average(score);
子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。
i4.cpp)
{intnumber;
printf(“请输入一个正整数:
\n”);
scanf(“%d”,&
number);
if()
printf(“\n%d是素数:
”,number);
else
printf(“\n%d不是素数:
intprime(intnumber)
{intflag=1,n;
for(n=2;
flag==1&
n<
=number/2;
n++)
if()flag=0;
return(flag);
完善以上程序,并调试运行。
实验10:
该程序使用了局部变量与全局变量,理解它们的使用方式。
j4.cpp)
inta=3,b=5;
intmax(inta,intb)
{intc;
c=a>
b?
a:
b;
returnc;
{inta=8;
printf(“%d”,max(a,b));
①局部变量:
inta=3,b=5;
intc;
全局变量:
a=8;
8
以下是一个求1-10累加和的错误程序,请改正。
j5.cpp)
{inti,s;
for(i=1;
=10;
s=sum(i);
printf("
s=%d\t"
sum(intj)
{intx=0;
x+=j;
return(x);
改正为:
子函数实现一个字符串按反序存放,在主函数中输入和输出字符串。
i5.cpp)#include<
voidmain(){voidinverse(charstr[]);
charstr[100];
printf(“输入字符串:
scanf(“%s”,str);
inverse(str);
printf(“转换后的字符串是:
%s\n”,str);
voidinverse(charstr[])
{chart;
inti,j;
for(i=0,j=strlen(str);
strlen(str)/2;
i++,j--){t=str[i];
str[i]=str[j-1];
str[j-1]=t;
①运行以上程序,输入*,程序运行结果是:
转换后的字符串是:
*。
②将inverse函数中的for语句改为
i<
strlen(str);
i++,j--)再运行以上程序,输入*,程序运行结果是:
在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。
i6.cpp)
在主函数中定义二维数组A[3][4]、B[4],用子函数对数组A[3][4]每一行求和,其值放在数组B[4]中,在主函数中输出该值。
i7.cpp)
实验11指针实验
1.掌握指针的概念,指针变量的定义和使用。
2.熟悉和了解C语言指针一般设计方法。
3.学会使用C语言指针进行程序设计。
4.学会使用数组的指针和指向数组的指针变量。
5.进行简单C语言指针语句的设计、调试、编译和运行。
阅读以下程序。
k1.cpp
{intx=1,y=2,*p,*q;
p=x;
q=y;
printf(“x=%d,y=%d\n”,x,y);
printf(“&
x=%d,&
y=%d\n”,&
x,&
y);
printf(“p=%d,q=%d\n”,p,q);
printf(“p=%d,q=%d\n”,*p,*q);