实验8

更新时间:2023-09-25 16:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《高级语言程序设计》实验报告

实验室名称: 信息学院2202

班 级: 13级电科班 学生姓名: 学 号: 指导教师: 普园媛

学 期:2012-2013学年上学期

2012年12月

实验8 函数与数组

一、实验目的

1、掌握数组作为参数的函数编写与调用方法 2、掌握数组作为参数的特殊性

3、掌握字符串作为参数的函数编写与调用方法 二、知识要点

1、地址传递的概念及使用

2、数组元素和数组名作为函数参数的特点与区别 3、字符串作为参数的特点:‘\\0’字符的使用

三、实验预习 (要求做实验前完成)

1、数组作为函数参数时,其特殊性是形参数组的长度可以省略

参考答案:既可以把数组元素(下标变量)作为实参使用;也可以把数组名作为函数的形参和实参使用。

2、定义 字符 作为参数的函数时,通常需要提供长度作为参数;而定义 数组 作为参数的函数时,通常不需要提供长度参数

参考答案:数组 指针

3、写出满足如下要求函数的函数首部:

① 函数名为fmax,求一个实型数组的最大元素值: int fmax(int a)

② 函数名为scount,求一个字符串中大写字母的个数:

char scount(char x) //这里要求的字符串的个数应该是个整数

③ 函数名为delf,删除一个字符串的第一个字符: char delf(char x)

四、实验内容(要求提供:① NS图 ② 源程序 )

1、编写一个函数,其功能是将字符串中的除第一个字母以外的大写字母改写为小写字母,其他字符不变,如第一个字母不是大写字母则转为大写字母。

void pan(char a[10]) int i a[0]>=97&&a[0]<=122? T F a[0]=a[0]-32 for (i=1;i<10;i++) a[i]>='A'&&a[i]<='Z?' T F a[i]=a[i]+32 char a[10] gets(a) printf(\pan (a) puts (a); printf(\

#include \#include \void pan(char a[10]) { int i;

if (a[0]>=97&&a[0]<=122)

a[0]=a[0]-32;

for (i=1;i<10;i++) }

void main() {

char a[10];

if (a[i]>='A'&&a[i]<='Z')

a[i]=a[i]+32;

printf(\请输入小于10个字符的字符串:\\n\ gets(a); printf(\ pan (a); puts (a); printf(\}

2、分别编写函数,○1输入二维数组;○2对给定二维数组中的每一行按从小到大的顺序排序;○3输出二维数组。

void pan(int a[3][3]) int i,j,t,k for (i=0;i<3;i++) for (j=1;j<3;j++) for (k=0;k<3-j;k++) T a[i][k]>a[i][k+1]? F t=a[i][k];a[i][k]=a[i][k+1];a[i][k+1]=t; int a[3][3],i,j for (i=0;i<3;i++) for (j=0;j<3;j++) pan(a) for (i=0;i<3;i++) for (j=0;j<3;j++) printf(\ j=2? T printf(\

#include \void pan(int a[3][3])

F scanf(\ {

int i,j,t,k; for (i=0;i<3;i++) }

void main() {

int a[3][3],i,j;

printf(\请输入3X3数列:\\n\ for (i=0;i<3;i++)

for (j=0;j<3;j++)

scanf(\for (j=1;j<3;j++)

for (k=0;k<3-j;k++)

if (a[i][k]>a[i][k+1]) { }

t=a[i][k]; a[i][k]=a[i][k+1]; a[i][k+1]=t;

pan(a);

for (i=0;i<3;i++) }

3、在主函数中输入N个人的某门课成绩,分别用函数求:○1平均分、最高分和最低分;○2分别统计90-100、80-89、70-79、60-69分的人数及59分

for (j=0;j<3;j++) { }

printf(\if (j==2)

printf(\

以下的人数。结果在主函数中输出。

int max,min,sum; float ave 定义N=10 void pan1(int a[N]) int i max=min=sum=a[0] for (i=0;imax? T F F max=a[i] a[i]

#include \#define N 10 int max,min,sum; float ave;

void pan1(int a[N]) { int i;

max=min=sum=a[0]; for (i=0;i

ave=sum/N;

printf(\所有学生的平均分为%f,最高分为%d,最低分为%d\\n\

}

void pan2 (int a[N]) { int i; int b[5]={0}; for (i=0;i

switch (a[i]/10) {

case 10:b[4]++;break; case 9:b[4]++;break; sum+=a[i]; if (a[i]>max)

max=a[i];

if (a[i]

min=a[i];

case 8:b[3]++;break; case 7:b[2]++;break; }

printf(\分数在90-100分的有%d人\\n 分数在80-89分的有%d人\\n分数在70-79分的有%d人\\n分数在60-69-100分的有%d人\\n分数在59分以下的有%d人,\\n b[4],b[3],b[2],b[1],b[0]);

}

void main() {

int a[N],i;

printf(\请输入%d个人的成绩\\n\ for (i=0;i

scanf(\ case 6:b[1]++;break; default :b[0]++; }

pan1(a); pan2(a); }

五、实验结果

要求写出运行界面并输出运行结果

本文来源:https://www.bwwdw.com/article/b5nd.html

Top