C语言程序设计基础实验报告册程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语⾔程序设计基础实验报告册程序
实验项⽬⽬录
实验1 熟悉C语⾔编程环境
实验2 ⽤C语⾔编写简单程序
2.1 基本数据处理
2.2 计算分段函数
2.3 指定次数的循环
2.4 使⽤函数
实验3 分⽀结构程序设计
实验4 循环结构程序设计
4.1 基本循环语句的使⽤
4.2 嵌套循环
实验5 函数程序设计
实验6 控制结构综合程序设计
实验7 数组
7.1排序问题
7.2找出矩阵中最⼤值所在的位置
7.3进制转换
实验8 指针程序设计
7.4指针与数组
7.5指针与字符串
实验9 结构程序设计
实验10 程序结构与递归函数实验11 指针数组、指针与函数
浙江⼤学城市学院实验报告
实验项⽬名称实验1 熟悉C语⾔编程环境
实验成绩指导⽼师(签名) ⽇期
⼀. 实验⽬的和要求
1.熟悉C语⾔编程环境Visual C++6.0,掌握运⾏⼀个C程序的基本步骤,包括编辑、编译、连接和运⾏。
2.了解C程序的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
⼆. 实验内容、原理及实验结果与分析
说明:实验指导教师可根据教学内容指定题⽬。
1. 建⽴⾃⼰的⽂件夹,略
2. 编程⽰例,参考实验⼿册。
3. 编程题1
(10003)在屏幕上显⽰⼀个短句“What is a computer?”。
【源程序】
#include
int main(void)
{
printf(“What is a computer?\n”);
return 0;
}
4. 编程题2
(10004)在屏幕上显⽰如下图案。
* * * *
* * *
* *
*
【源程序】
#include
int main(void)
{
printf(“* * * *\n”);
printf(“* * *\n”);
printf(“* *\n”);
printf(“*\n”);
return 0;
}
5. 调试⽰例
(10005)改正下列程序中的错误,在屏幕上显⽰短句“Welcome to You!”。
(源程序error01_1.cpp)【正确程序】
#include
int main(void)
{
printf(“Welcome to You!\n”);
return 0;
}
6. 改错题
(10007)在屏幕上显⽰如下图案。
* * *
* *
*
【正确程序】
#include int main(void)
{
printf("* * * *\n"); printf(" * * *\n"); printf(" * *\n"); printf(" *\n"); return 0;
}
浙江⼤学城市学院实验报告
实验项⽬名称实验2 ⽤C 语⾔编写简单程序实验成绩指导⽼师(签名) ⽇期2.1 基本数据处理
⼀. 实验⽬的和要求
1.掌握算术表达式和赋值表达式的使⽤。
2.掌握基本输出函数的使⽤。
3.能够编程实现简单的数据处理。
4.掌握简单C 程序的查错⽅法。
⼆. 实验内容、原理及实验结果与分析
说明:实验指导教师可根据教学内容指定题⽬。
1. 调试⽰例,参考实验⼿册。
2. 编程题1
(20012)求华⽒温度150°F 对应的摄⽒温度。
计算公式如下:329 595?-?=f c ,
其中:c 表⽰摄⽒温度,f 表⽰华⽒温度。
【源程序】
#include
int main(void)
{ int fahr,celsius;
fahr=150;
celsius=5.0/9* fahr-5.0/9*32;
printf(“fahr=%d,celsius=%d \n”, fahr, celsius);
return 0;
}
这两个公式的计算结果是否⼀样?为什么?
int main(void)
{ int fahr,celsius;
fahr=150;
celsius=5.0*(fahr-32)/9;
printf(“fahr=%d,celsius=%d \n”, fahr, celsius);
return 0;
}
3. 编程2
(20013)求摄⽒温度26°C 对应的华⽒温度。
计算公式如下:325
9+=c f
,其中:c 表⽰摄⽒温度,f 表⽰华⽒温度。
【源程序】 #include
int main(void)
{ int fahr,celsius;
celsius=26;
fahr=9.0/5*celsius+32;
printf(“celsius=%d,fahr=%d \n”,celsius,fahr);
return 0;
}
4.编程题3
(20014)已知某位学⽣的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该⽣3门课程的平均分。
【源程序】
#include
int main(void)
{ int m,e,c,aver;
m=87;e=72;c=93;
aver=(m+e+c)/3;
printf(“aver=%d\n”,aver);
return 0;
}
5.编程题4
(20015)当n为152时,分别求出n的个位数字(digit1)、⼗位数字(digit2)和百位数字(digit3)的值。
【源程序】
#include
int main(void)
{ int n,digit1, digit2, digit3;
n=152;;
digit1=n%10;
digit2=n/10%10
digit3=n/100;
printf(“digit1=%d,digit2=%d,digit3=%d\n”, digit1,digit2,digit3);
return 0;
}
6.改错题
(20016)改正下列程序中的错误,计算某个数x的平⽅y,并以“y=x*x”和“x*x=y”的形式输出x和y的值。
请不要删除源程序中的任何注释。
(源程序error02_2.cpp)
【正确程序】
#include
int main(void)
{ int x,y;
scanf(“%d”,&x);
y=x*x;
printf(“%d=%d+%d\n”,y,x,x);
printf(“%d+%d=%d\n”,x,x,y);
return 0;
}
浙江⼤学城市学院实验报告
实验项⽬名称实验2 ⽤C语⾔编写简单程序
实验成绩指导⽼师(签名) ⽇期
2.2计算分段函数
⼀. 实验⽬的和要求
1.使⽤if语句计算分段函数。
2.正确书写关系表达式。
3.掌握基本输⼊函数的使⽤,能正确调⽤C语⾔提供的数学库函数。
4.掌握简单的单步调试⽅法。
⼆. 实验内容、原理及实验结果与分析
说明:实验指导教师可根据教学内容指定题⽬。
1.调试⽰例,参考实验⼿册。
2.编程题1
(20022)输⼊华⽒温度,输出对应的摄⽒温度。
计算公式:c = 5*(f-32)/9,式中:c表⽰摄⽒温度,f表⽰华⽒温度。
输⼊输出⽰例:括号内为说明
输⼊
150 (fahr=150)
输出
celsius = 65
【源程序】
#include
int main(void)
{ int fahr,celsius;
scanf(“%d”,&fahr);
celsius=5.0*(fahr-32)/9;
printf(“celsius=%d\n”,celsius);
return 0;
}
如果华⽒温度和摄⽒温度都是双精度浮点型数据,如何修改程序?#include
int main(void)
{ double fahr,celsius;
scanf(“%lf”,&fahr);
celsius=5*(fahr-32)/9;
printf(“celsius=%f\n”,celsius);
return 0;
}
3.编程2
(20023)输⼊存款⾦额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位⼩数。
interest = money(1+rate)^year - money
输⼊输出⽰例:括号内为说明
输⼊
1000 3 0.025 (money = 1000, year = 3, rate = 0.025)
输出
interest = 76.89
【源程序】
#include
#include
int main(void)
{ int year;
double money,rate,interest;
scanf(“%lf%d%lf”,&money,&year,&rate);
interest=money*pow((1+rate),year)-money;
printf(“interest=%.2f\n”,interest);
return 0;
}
4.编程题3
(20024)输⼊⼀个正整数repeat (0
输⼊ x,计算并输出下列分段函数 f(x) 的值(保留2位⼩数),请调⽤ sqrt 函数求平⽅根,调⽤ pow 函数求幂。
当x >= 0时,f(x) = x^0.5,当x⼩于0时,f(x) = (x+1)^2 + 2x + 1/x。
输⼊输出⽰例:括号内是说明
输⼊
3 (repeat=3)
10
-0.5
输出
f(10.00) = 3.16
f(-0.50) = -2.75
f(0.00) = 0.00
【源程序】
#include
#include
int main( )
{
int ri, repeat;
float x,y;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%f", &x);
if(x>=0) y=sqrt(x);
else y=pow((x+1),2)+2*x+1/x;
printf("f(%f)=.%.2f\n",x,y);
}
return 0;
}
5.改错题计算分段函数的值(改错题error02_4)
(20025)输⼊⼀个正整数repeat (0
输⼊输出⽰例:括号内是说明
输⼊
2 (repeat=2)
10
234
输出
f(10.0) = 0.1
f(234.0) = 234.0
【正确程序】
#include
int main(void )
{
int ri, repeat;
double x,y;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%lf", &x);
if(x!=10) y=x;
else y=1/x;
printf("f(%.1f)=.%.1f\n",x,y);
}
return 0;
}
6.编程题4 计算两个整数的和、差、积、商与余数
(20026)输⼊2个整数 num1 和 num2,计算并输出它们的和、差、积、商与余数。
输出两个整数的余数可以⽤ printf("%d %% %d = %d\n", num1, num2,
num1%num2);
输⼊输出⽰例:括号内是说明
输⼊
5 3 (num1=5,num2=3)
输出
5 + 3 = 8
5 - 3 = 2
5 * 3 = 15
5 / 3 = 1
5 % 3 = 2
【源程序】
#include
int main(void )
{
int num1i,num2;
scanf("%d%d", &num1,&num2);
printf("%d + %d = %d\n", num1, num2, num1+num2);
printf("%d - %d = %d\n", num1, num2, num1-num2);
printf("%d * %d = %d\n", num1, num2, num1*num2);
printf("%d / %d = %d\n", num1, num2, num1/num2);
printf("%d %% %d = %d\n", num1, num2, num1%num2);
return 0
}
如果num1和num2是双精度浮点型数据,如何修改程序?题⽬的要求都能达到吗?#include
int main(void )
{
double num1i,num2;
scanf("%lf%lf", &num1,&num2);
printf("%f + %f = %f\n", num1, num2, num1+num2);
printf("%f - %f = %f\n", num1, num2, num1-num2);
printf("%f * %f = %f\n", num1, num2, num1*num2);
printf("%f / %f = %f\n", num1, num2, num1/num2);
printf("%f %% %f = %d\n", num1, num2, (int)num1%(int)num2);
return 0
}
浙江⼤学城市学院实验报告
实验项⽬名称实验2 ⽤C语⾔编写简单程序
实验成绩指导⽼师(签名) ⽇期
2.3指定次数的循环
⼀. 实验⽬的和要求
1.熟练掌握for语句的使⽤
2.熟练掌握指定次数的循环程序设计
3.掌握运⾏到光标的调试⽅法
⼆. 实验内容、原理及实验结果与分析
说明:实验指导教师可根据教学内容指定题⽬。
1.调试⽰例,参考实验⼿册。
2.编程题1求m+(m+1)+(m+2)+ (100)
(20032)输⼊⼀个正整数repeat (0
输⼊⼀个正整数m(0<=m<=100),计算表达式 m + (m+1) + (m+2) + ...... + 100的值。
输⼊输出⽰例:括号内为说明
输⼊
3 (repeat=3)
0 (计算0+1+2+ (100)
10 (计算10+11+12+ (100)
50 (计算50+51+52+ (100)
输出
sum = 5050
sum = 5005
sum = 3825
【源程序】
#include
int main(void )
{
int ri, repeat;
int i,m,sum;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
sum=0;
scanf("%d", &m);
for(i=m;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
return 0;
}
输⼊2个正整数m和n (m≤n),求n
i m i
=
∑【源程序】
#include
int main(void )
{
int ri, repeat;
int i,m,n,sum;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
sum=0;
scanf("%d%d", &m,&n);
for(i=m;i<=n;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
return 0;
}
3.编程2 求1/m+1/(m+1)+1/(m+2)+......+1/n。
(20033)输⼊⼀个正整数repeat (0
输⼊2个正整数 m 和 n(m<=n),计算表达式 1/m + 1/(m+1) + 1/(m+2) + ...... + 1/n的值,输出时保留3位⼩数。
输⼊输出⽰例:括号内为说明
输⼊
3 (repeat=3)
5 15 (计算1/5+1/6+1/7+...+1/15)
10 20 (计算1/10+1/11+1/12+...+1/20)
1 3 (计算1+1/2+1/3)
输出
sum = 1.235
sum = 0.769
sum = 1.833
【源程序】
#include
int main(void )
{
int ri, repeat;
int i,m,n;
double sum;
scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){ sum=0;
scanf("%d%d", &m,&n); for(i=m;i<=n;i++)
sum=sum+1.0/i;
printf("sum=%.3f\n",sum); }
return 0;
}
【源程序】
#include
int main(void )
{
int ri, repeat;
int i,m,n;
double sum;
scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){ sum=0;
scanf("%d%d", &m,&n);。