高级语言程序设计(下)实验编程题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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')