高级语言程序设计实验C
高级语言程序设计实验
C
Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】
陕西理工大学
《高级语言程序设计(C)》
实验报告
院系:
班级:
学号:
姓名:
目录
实验一:C开发环境与顺序结构程序设计
1.实验目的:
(1) 了解集成开发环境VC++的使用方法,理解相关命令的含义,掌握编辑、编译、连接以及运行调试的方法,掌握程序的基本结构,掌握输入输出的方式。
(2) 掌握程序设计的基本要素中的数据类型、变量、运算符以及表达式的运用。
(3) 学会正确使用逻辑运算符和逻辑表达式以及关系运算符与关系表达式,掌握在程序设计中灵活使用顺序结构。
2.实验环境:
(1) 硬件环境
CPU: Inter Pentium(R)4 CPU 以上
内存:2GByte
(2) 软件环境
操作系统:Microsoft Windows 7
编译系统:Microsoft Visual
C++
3.实验步骤:
按如图所示流程进行实验内容的
调试。
(1) 在XP操作系统中,启动VC++
编译环境;
(2) 在VC++编译界面输入C源程
序;
(3) 选择编译、组建、执行命令
进行编译、链接和运行,并记录
实验数据;
(4) 按以上方法依次输入其他源
程序并调试、运行和记录实验数
据。
4.实验内容:
输入并运行下列程序,查看程序运行的结果。
#include<>
void main()
{
printf(“* * * * * * * * * *\n”);
printf(“Programing in c A Labrtry Maual\n”);
printf(“* * * *\n”);
printf(“*\n”);
}
查看程序运行的结果
#include<>
void main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j--;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
}
找出下列程序中的错误,改正后写出程序运行结果.
#include<>
void main()
{
Int x,y=z=5,aver;
x=7;
AVER=(x+y+z)/3
printf(“AVER=%d\n”,aver);
}
输入参考程序。在下划线处分别填入不同的变量定义、表达式、输出格式控制符号。
#include<>
void main()
{
int a,b,x;
f\n",c); }
编程求
)
ln(
)
sin(x
a
ax
y+
+
=
。要求a和x从键盘输入。当a=,x=时,求y的值。
#include<>
#include<>
void main()
{
float a,x,y;
scanf("%f%f",&a,&x);
y=sin(sqrt(a*x))+log(a+x);
printf("%f\n",y);
}
从键盘上任意输入一个三位整数,按逆序输出。例如输入456,输出654。提示:456%10=6 456/10%10=5 456/10/10=4
6*102
+5*10
1
+4*10
=654
#include<> main()
{
int n;
int a,b, c;
int num;
printf("请输入一个三位整数n\n"); scanf("%d", &n);
c=n/100;
b=(n-c*100)/10;
a=n%10;
num= a*100 + b*10 + c;
printf("num=%d\n", num);
}
5.实验总结
实验二:分支结构与循环结构程序设计
1.实验目的:
⑴了解C 语言表示逻辑量的方法;(0为“假”,非0为“真”)学会正确使用关系表达式和逻辑表达式。
⑵熟练掌握if 语句、switch 语句、while 语句、do-while 语句和for 语句的使用方法。
⑶结合程序掌握一些简单的算法。
⑷掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 ⑸学习调试程序
2.实验环境:
操作系统:Windows 7 编程软件:Visual C++
3.实验内容:
(1) 使用if 语句或者switch 语句编程求解以下分段函数:
y= 。
#include<> #include<> main() {
float x,y;
scanf("%f",&x); if(x<1) y=2*x-1;
else if(x>=1&&x<10) y=sqrt(x+10); else y=2*x+1;
printf("%f\n",y);
}
(2) 使用if语句或者switch语句编程实现以下功能:
从键盘任意输入0----100之间的整数作为学生的成绩,要求根据以下的条件判断并输出相应成绩的等级。
大于等于90,小于等于100:优秀
大于等于70,小于等于89:良好
大于等于60,小于等于69:及格
小于60:不及格
#include<>
main()
{
int x;
scanf("%d",&x);
switch(x/10)
{
case 10:printf("优秀\n");break;
case 9:printf("优秀\n");break;
case 8:printf("良好\n");break;
case 7:printf("良好\n");break;
case 6:printf("及格\n");break;
default:
printf("不及格\n");
}
}
(3)n的值从键盘输入,要求分别用三种循环语句实现以下功能:1+2+3+4+……+n
1、用while语句实现。
#include<>
main()
{
int i=1,s=0,n;
scanf("%d",&n);
while(i<=n)
{
s=s+i;
i=i++;
}
printf("%d\n",s);
}
2、用do----while语句实现#include<>
main()
{
int i=1,s=0,n;
scanf("%d",&n);
do
{
s=s+i;
i=i++;
}
while(i<=n);
printf("%d\n",s); }
3、用for语句实现。
#include<>
main()
{
int i=1,s=0,n;
scanf("%d",&n);
for (;i<=n;i++)
s=s+i;
printf("%d\n",s);
}
(4)n的值从键盘输入,要求用循环语句实现以下功能:1!+2!+………+n!
#include<>
void main()
{ int n,i;
float s=0,t=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ t*=i; s+=t; }
printf("1+2!+3!...+n!=%f\n",s);
}
(5)程序填空,求100以内的整数中最大可被13整除的数是哪一个
#include<>
int main( )
{
int i;
for( i=100 ; i>=0 ;i--)
{ if( i%13==0 )
break;
}
printf("%d\n",i);
return 0;
}
(6)输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<>
int main()
{
int p,r,n,m,temp;
printf("Enter n,m :");
scanf("%d,%d",&n,&m);
if(m { temp=m ; m=n ; n=temp ; } p=m*n; r=m%n; while( r!=0 ) { m=n; n=r; r=m%n ; } printf("The greatest common divisor:%d\n",n); printf("The lowest common multiple :%d\n",p/n); return 0; } 提示:if语句的功能是将两数中大的那个放在m中,保证m>n,然后再求m对n的余数r,通过while语句循环,直到余数r为零。 (7)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 #include<> int main() { char c; int letters=0,space=0,digit=0,other=0; printf("Enter line character :\n"); while(( c=getchar())!='\n') { if( c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’ ) letters++; else if( “c==” ) space++; else if( c>=’0’&&c<=’9’ ) digit++; else other++; } printf("letters:%d\nspace:%d\ndigit:%d\nother:%d\n",letters,space,digit ,other); return 0; } (8)编写程序输出如下图形,请填空。 #include"" * * * * * * * * * * * * * * * * * * * * * * * * #define s ' ' int main() { int n,i,j; printf("Enter n:"); scanf( “%d ”,&n ); for(i=1;i<=n;i++) {for(j=1;j<=10;j++) putchar(s); for(j=1; j<=n-i ;j++) putchar(s); for(j=1; j<=2*i-1 ;j++) putchar(‘*’) ; printf("\n"); } for(i=1;i<=n-1;i++) {for(j=1;j<=10;j++) putchar(s); for(j=1;j<=i ;j++) putchar(s); for(j=1; j<=2*(n-i)-1;j++) putchar('*'); printf("\n"); } } 记录运行结果: 4.实验总结 实验三数组及数组的应用 1.实验目的: 1、掌握一维数组和二维数组的定义、数组元素的引用和数组的输入输出方法。 2、重点掌握一维数组的应用(如排序等)。 3、了解与数组有关的数值计算方法(如矩阵运算)。 2.实验环境: 操作系统:Windows 7 编程软件:Visual C++ 3.实验内容: (1)以下程序以每行输出8个数据的形式输出a数组。 #include<> void main( ) {int a[50],i; for(i=0; i<50;i++) scanf(“%d”, ); for(i=0; i<50;i++) { if( ) ; printf(“%3d”,a[i]); } printf(“\n”);} 输出结果: (2)利用数组实现以下功能:从键盘任意输入若干个整数(不超过100个),统计并输出这些整数的平均值,以及高于此平均值的整数个数。 程序: (3)对于二维数组 ? ? ? ? ? ? ? ? ? ? 9 8 7 6 5 4 3 2 1 ,求1)所有元素中最大、最小值。2)各行元素之和。3) 主对角线元素之和。。 程序: 4.实验总结: 实验四:函数与指针