第一范文网 - 专业文章范例文档资料分享平台

《高级语言》实验指导书

来源:用户分享 时间:2025/5/31 4:28:48 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《高级语言程序设计》实验指导书

#inclue #define N 10 void main( ) { int i,a[N],av;

for(i=0;i

printf(\; }

for(i=0;i!=N;i++) av+=a[i];

printf(\; }

上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意数组元素的输入问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。

相关知识:①数组元素值的输入;②求和求平均值的相关变量初始化问题;③输出格式符的正确使用。④数组元素的格式化输出。

2.下面程序是输入5个数据,然后求它们的和并输出结果。

#include void main( )

{int i, a[5], sum = 0;

scanf(\ for (i = 0; i <= 4; i ++) sum += a[i];

printf(\}

该程序中有哪些错误?如何修改?写出正确运行后的结果。 相关知识:数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。 3.有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。下面程序的初始说明和输出语句如下所示,请补充完成该程序。

#include void main( )

{ int i, j, row, colum, max;

static int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; ……

printf(\ max, row, colum); }

编程点拨:

① 初始化row、colum及max。

② 使用for循环的双重循环逐行把元素值与max值进行比较,比较结果如

果元素值比max值大,则改变max值,同时改变row和colum的值。

12

《高级语言程序设计》实验指导书

③最后输出max,row和colum的值。

相关知识:①二维数组的定义和初始化;②使用二重循环对二维数组元素的访问;

③求最值时相关变量初值的设定。

4.数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。

编程点拨:输入要查找的变量x的值;使用循环将输入的数和数组元素逐个进行比较,若找到,则提前退出循环;根据循环是正常结束还是提前结束来判断是否找到x。

部分源代码:

#include void main( )

{ int i, x, a[10]={1,2,3,4,5,6,7,8,9,10};

/*输入x变量的值 */ for ( i=0; i<10; i++ ) printf(\ printf(\

/* 循环查找与x相等的元素 */ if ( ) printf(\ /* 输出查找结论 ,输出下标值 */ else printf(\}

5.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。

编程点拨:

①定义数组时多开辟一个存储单元; ②找合适的插入位置;

j=3 3

下标=

a

0 1 2 4 5 6 7 8 9 10

20 18 16 14 12 10 8 6 4 2 k 15 找合适的插入位置:j=3

j=0 a[j] ≥k? 即20 ≥15 ? 是 j++ j=1 a[j] ≥k? 即18 ≥15 ? 是 j++ j=2 a[j] ≥k? 即16 ≥15 ? 是 j++

j=3 a[j] ≥k? 即14 ≥15 ? 不是,结束循环

while( a[j]>=k && j<10 ) j++;

13

《高级语言程序设计》实验指导书

找不到比k小的元素时也要退出循环

③向右移动插入点后的元素;先把a[9]移到a[10],a[8]移到a[9],…a[i]移到a[i+1],直到把a[j]移到a[j+1],即:i=j停止移动元素。

for(i=9;i>=j;i-- ) a[i+1]=a[i];

下标=

a 0 1 2 3 4 5 6 7 8 9 10

20 18 16 14 12 10 8 6 4 2 ④插入。 k 15 部分源代码:

#include #define N 11 void main() { int i,j,a[N];

printf(“Please input 10 numbers:”); for (i=0; i

scanf(“%d”,&a[i]); /*乱序输入10个整数*/ …… }

相关知识:①比较排序法、选择排序法和冒泡排序法;②数据元素的插入。 6.输入十个互不相同的整数并存在数组中,找出最大元素,并删除。 编程点拨:

求最大值所在元素下标:不必用max记住最大值,只要用k记住最大值所在的元素下标;删除最大值:从最大值开始将其后面元素依次前移一个位置。

下标=

a

0 1 2 3 4 5 6 7 8 9 10

2 8 16 14 1 10 8 16 4 20 6 部分源代码:

k=0;

if ( a[k]

k=2; 不执行 if ( a[k]

k=0;

for ( i=1; i<10; i++ ) if ( a[k]

14

《高级语言程序设计》实验指导书

k=3; 执行

相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空:

#include void main( )

{ float x[1000], sum=0.0, ave, a; int n=0, i;

printf (\ mark : \\n\ scanf(\

while (a>=0.0 && n<1000) { sum+= ;

x[n]= ;

n++;

scanf(\

}

ave= ; printf (\ printf (\ for (i=0; i

if ( ) printf(\}

8. 综合编程题:打印如下杨辉三角形

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1 编程点拨:

杨辉三角形有如下特点: 只有下半三角形有确定的值;

第一列和对角线上的元素值都是1;

其它元素值均是前一行同一列元素与前一行前一列元素之和。

9.调试下列程序,使之具有如下功能:任意输入两个字符串(如:“abc 123”和“china”),并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。

#include

#include void main()

{ char a[10],b[10]; int c,d,k,ch;

15

搜索更多关于: 《高级语言》实验指导书 的文档
《高级语言》实验指导书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c94vkv72wbn1ujto7zfoo_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top