C语言实验指导书

  • 格式:doc
  • 大小:131.50 KB
  • 文档页数:12

C语言实验指导书C语言实验指导书C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

一、循环实验目的:(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法。

实验要求:在报告中记录建立、保存C程序实习过程。

完成典型题目,分析遇到的困难和实验中的收获。

实验基本内容及步骤:题目一打印出以下图案** * ** * * * ** * * * * * ** * * * ** * **(1)题目分析:此题为循环题目,我们常用的循环语句为for语句,所以此题选择用for语句来做。

进行循环输出。

(2)程序:#include<stdio.h>void main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=4-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i+2;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}(3)运行结果:题目二编写程序实现输入整数n,输出如下所示由数字组成的菱形。

(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11(1)题目分析:此题为循环题目,我们常用的循环语句为for语句,所以此题选择用for语句来做。

进行循环输出。

然后循环过后考虑对齐。

(2)程序:#include<stdio.h>void main(){int i,j;printf("\n");for(i=1;i<=5;i++){for(j=1;j<=i;j++)printf("%2d",j);for(j=i-1;j>=1;j--)printf("%2d",j);printf("\n");}for(i=4;i>=1;i--){for(j=1;j<=i;j++)printf("%2d",j);for(j=i-1;j>=1;j--)printf("%2d",j);printf("\n");}}运行结果:二、数组实验目的:(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法。

实验要求:在报告中记录建立、保存C程序实习过程。

完成典型题目,分析遇到的困难和实验中的收获。

实验基本内容:题目一:编程:打印以下图案:* * * * ** * * * ** * * * ** * * * ** * * * *(1)题目分析:此题为循环以及数组的基本运用,考虑数组的定义以及for语句的基本运用。

(2)程序:#include<stdio.h>void main(){char a[5]={'*','*','*','*','*'};int i,j,k;char space=' ';for(i=0;i<=5;i++){printf("\n");for(j=1;j<=3*i;j++)printf("%1c",space);for(k=0;k<=5;k++)printf("%3c",a[k]);}printf("\n");}运行结果:题目二:输入4×4的数组,编写程序实现:(1)求出对角线上各元素的和;(2)求出对角线上行、列下标均为偶数的各元素的积;(3)找出对角线上其值最大的元素和它在数组中的位置。

(1)题目分析:此题主要为输入选择和输出,用循环和数组进行求和和求积运算。

程序:#include<stdio.h>void main(){float a[4][4],sum=0,sum1=1,max;int i,j,b;printf("请输入数组4*4个数:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%f",&a[i][j]);for(i=0;i<4;i++)sum=sum+a[i][i];printf("sum=%6.2f\n",sum);for(i=0;i<4;i++)if(i%2==0)sum1=sum1*a[i][i];printf("sum1=%6.2f",sum1); max=a[0][0];b=0;for(i=1;i<4;i++)if(max<a[i][i]){ max=a[i][i];b=i;}printf("max=%6.2f,%d",max,b); }(3)运行结果:三、函数实验目的:(1)掌握定义函数的方法;(2)掌握函数实参与形参的对应关系以及“值传递”的方式;(3)掌握函数的嵌套调用和递归调用的方法;(4)掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

(5)学习对多文件程序的编译和运行。

实验要求在报告中记录建立、保存C程序实习过程。

完成典型题目,分析遇到的困难和实验中的收获。

实验基本内容题目一:写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。

如输入1990,应输出“1└┘9└┘9└┘0”。

(1)题目分析:数组以及循环的运用,考虑变量的函数的使用。

(2)程序:#include<stdio.h>void main(){void insert(str);char str[80];printf("input four number:\n");scanf("%s",str);insert(str);}void insert(str)char str[];{int i;for(i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]=' ';}printf("\n result:\n %s\n",str);}(3)运行结果:题目二:用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

n的位数不确定,可以是任意位数的整数。

(1)题目分析:首先要用递归方式,然后要用选择语句。

进行筛选输出。

(2)程序:#include<stdio.h>void convert(n)int n;{int i;if((i=n/10)!=0)convert(i);putchar(n%10+'0');}void main(){int number;printf("input number:\n");scanf("%d",&number);printf("\n result:");if((number<0)){putchar('-');number=-number;}convert(number);}(3)运行结果:1112。