塔里木大学计算机基础课程实验报告
实验步骤与内容:
1、 程序填空:输入正整数,判断是否既是5也是7的倍数,是,输出YES,否则,输出NO。
#include <stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a%5==0&&a%7==0)
{printf("YES");}
else
{printf("No");}
}
2、 程序填空:从键盘输入一行字符,可以是数字、字母、或是其他字符,对输入的字符进行判断,统计字符串中数字字符、字母字符、空格字符及其他字符的个数,当输入换行符时结束循环。
#include<stdio.h>
main()
{
char c;
int num,letter,blank,others;
letter=0,num=0,blank=0,others=0;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c>='0'&&c<='9')
num++;
else if(c==' ')
blank++;
else others++;
}
printf("num=%d,letter=%d,blank=%d,others=%d\n",num,letter,blank,others);
}
3、 程序改错:从键盘上输入三个整数,并比较大小,按照从小到大的顺序输出。
#include "stdio.h"
void main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{t=a;
a=b;
b=t;}
if(a>c)
{t=a;
a=c;
c=t;}
if(b>c)
t=b,b=c,c=t;
printf("%d %d %d\n",a,b,c);
}
运行结果:
程序出错分析:
第一:scanf的括号里没有&。第二;if语句下没有{}。
4、 程序改错。
#include<stdio.h>
/********error**********/
main()
{
int x,y,t;
/********error**********/
scanf("%d%d",&x,&y);
if(x>=y)
{
t=x-y;
printf("%d\n",t);
}
/********error**********/
else
{t=x+y;
printf("%d\n",t);
/********error**********/
}}
运行结果:
程序出错分析:第一:main后不能有;。 第二:scanf中的“”里不能有\n。 第三:then应改为else 。第四:最后应加上}。
5、 分析程序的运行结果。
#include <stdio.h>
#include <math.h>
main()
{
int a,gewei,shiwei,baiwei;
scanf("%3d",&a); /* 输入一个3位的整数 */
gewei=a%10;
shiwei=a/10%10;
baiwei=a/100;
if(pow(gewei,3)+pow(shiwei,3)+pow(baiwei,3)==a)
printf("YES\n");
else
printf("NO\n");
}
运行结果(输入153和246):
程序分析:
以输入153为例分析,当输入153后,分别把个位、十位、百位给了gewei、shiwei、baiwei。然后,如果各位自乘3次之和等于输入之数,则输出YES,否则,输出NO。
6、 分析程序的运行结果。
#include "stdio.h"
void main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("%d %d\n",a,b);
}
运行结果:
程序分析:
对于switch(x)对应两条语句case 1:switch(y)、case 2:a++;b++;break;
儿在case 1:switch(y)中又有两条语句case 0:a++;break;case 1:b++;break;一个是对x,一个是对y,只要条件满足就得执行对应语句。局体分析 :x满足case 1所以执行switch(y)对应的两条语句,y满足case 0所以执行其后语a++;break;,a等于1,后遇到break即结束该条对应语句,即switch(y)对应的语句结束。又由于case 1:switch(y){case 0:a++;break;case 1:b++;break;}其花括号没有break语句,所以不管x是否满足case 2都要执行其后语句a++;b++;break;所以a便成2,b便成了1。
7、 编写程序:铁路托运行李,假设每张车票可按每公斤0.5元托运50公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.3元,试编写一道计算行李托运费的程序。
设托运行李重为W公斤,托运费为X元,要求如下:
①用if 语句实现分支。自变量w与函数值x均采用实型。
②自变量w值从键盘输入,且输入前要有提示信息。
③数据的输出格式采用以下形式: w=输入值,x=计算值
④分别以行李重30公斤,80公斤为自变量,运行该程序。记录运行结果。
程序:
#include "stdio.h"
void main()
{float x,y;
scanf("%f",&x);
if(x>=0&&x<=50)
{y=x*0.5;}
else
y=x*0.5+(x-50)*0.3;
printf("%f",y);
}
运行结果:
8、
编写程序:输入实数x,按下列公式求分段函数y的值。
程序:
#include "stdio.h"
void main()
{float x,y;
scanf("%f",&x);
if(x<-20)
{y=x*x+0.8*x+6;
}
else
if(x>=-20&&x<10)
{y=x*x-0.47*x+3.9;
}
else
if(x>=10)
{y=x*x*x+2.6*x-7;
}
else
{printf("²»ÔÚ¶¨ÒåÓòÄÚ¡£");}
printf("%f",y);
}
运行结果:
第二篇:《经典规范C语言程序设计》实验报告(第二章)
《高级语言程序设计》实验报告
班级: 学号: 姓名: 成绩:
实验日期: 年 月 日
实验题目: 实验二设计并运行简单的C程序
实验目的:
实验内容:
原始数据、相应的运行结果和必要的说明。
原始数据、相应的运行结果和必要的说明。
分析与思考:(调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会)