高级语言程序设计(下)实验编程题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数编程题

(1)编写一个程序实现如下功能:编写两个函数,其功能分别为:

①求N个整数的最大值和次大值。

②求两个整数的最大公约数和最小公倍数。主函数调用这两个函数(程序以文件名sy6_7.c存盘)。

#include

#define N 10

void max(int b[],int n) //求最大数和次大数

{int i,max,max2;

max=max2=b[0];

for(i=1;i

max=max

for(i=1;i

if(max2

max2=b[i];

printf("\n%d is max, %d is smax ",max,max2);

}

int gcd(int m,int n) //最大公约数和最小公倍数

{int r;

r=m%n;

while(r)

{m=n;

n=r;

r=m%n;

}

return n;

}

void main()

{

int a1,a2,b,c,i;

int a[N];

printf("请输入%d个整数:",N);

for(i=0;i

scanf("%d",&a[i]);

max(a,N);

printf("输入两个正正数:");

scanf("%d%d",&a1,&a2);

b=a1*a2;

c=gcd(a1,a2);

printf("%4d和%4d的最大公约数%4d,最小公倍数%4d\n",a1,a2,c,b/c);

}

2)编写一个程序实现如下功能:验编一函数,功能为判断一字符串是否为回文。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的5个字符串统计其中回文的个数。(程序以文件名sy6_8.c存盘)。

#include

#include

int function(char a[])

{

int i;

int l=strlen(a);

for(i=0;i

if(a[i]!=a[l-i-1])

return 0;

return 1;

}

void main()

{

char s[100];

int count=0,i;

for(i=1;i<=5;i++)

{ printf("输入第%d个字符串:",i);

scanf("%s",s);

if(function(s))

{printf("%s是回文\n",s);count++;}

else printf("%s不是回文\n",s);

}

printf("共有回文%d个\n",count);}

(3)编写一个程序实现如下功能:利用自定义函数,实现将一个十进制数转换成二进制数(程序以文件名sy6_9.c存盘)。

#include "stdio.h"

#include "string.h"

void main()

{

int i,n;

char a[33];

void trans10_2(char x[],int m);

printf("\nInput a positive integer:");

scanf("%d",&n);

trans10_2(a,n);

for (i=strlen(a)-1;i>=0;i--)

printf("%c",a[i]);

printf("\n");

}

void trans10_2 (char x[],int m)

{

int r,i=0;

while(m>0)

{

r=m%2;

x[i]=r+48;

m=m/2;

i++;

}

x[i]='\0';

}

指针编程

(1)编写一个程序实现如下功能:利用指针作函数参数,设计一函数实现将n个元素进行排序(程序以文件名sy7_7.c存盘)。

#include

void sort(int *p,int n)

{int i,j,t;

for(i=0;i

for(j=0;j

if(*(p+j)>*(p+j+1)) //由小到大排序

{ t=*(p+j); *(p+j)=*(p+j+1);*(p+j+1)=t;}

}

void main()

{int a[10],i;

printf("输入%d个正数:",10);

for(i=0;i<10;i++)

scanf("%d",&a[i]);

sort(a,10); //调用排序函数

printf("排序后:\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

}

(2)编写一个程序实现如下功能:利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后三个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原(程序以文件名sy7_8.c存盘)。

#include

void jiami(char *ch)

{ char *p=ch;

while(*p!='\0')

{ if(*p>='a' && *p<='z'|| *p>='A'&& *p<='Z')

相关文档
最新文档