内容发布更新时间 : 2024/12/31 5:57:49星期一 下面是文章的全部内容请认真阅读。
编程作业系统AnyviewC —— 支持可视化运行调试
Anyview题库:C程序设计 21题(2011-5-5)
第8章 (5题)
8.010 写一函数求3个整数中最小的数。 要求实现下列函数:
int min(int x,int y,int z);
8.020 编写函数,求将整笔钱换为1元、5元和10元的零钱共有多少种换法? 要求实现下列函数:
int change(int n);
/* 返回将n元钱换为1元、5元和10元的零钱的换法种数 */ {int x,y,z,count=0; for(x=0;10*x<=n;x++) for(y=0;5*y<=n;y++) for(z=0;z<=n;z++) if(10*x+5*y+z==n)
{printf(\return(count); }
8.030 先编写一个判断素数的函数。再编写一个函数将一个偶数表示为两个素数之和,并返回其中较小的素数。注:素数指只能被1和自身整除的正整数。规定0,1不是素数。 要求实现下列2个函数: int prime(int n);
/* 判断素数,如果是素数返回1,不是素数则返回0 */ {int i,flag=1;
for(i=2;i int f(int i); /* 将偶数i表示为两个素数之和,返回其中较小的素数*/ {int x; for(x=3;x if(prime(x)&&prime(i-x)) {printf(\return(x); } 8.050 编写函数,将字符串中ASCII码最小的字符放在第一个字符位置,其余字符依次往后移。 要求实现下列函数: - 1 - void func(char str[]); {int i,mini=0; char min=str[0]; for(i=1;str[i]!='\\0';i++) if(min>str[i]) {mini=i;min=str[i];} for(i=mini;i>0;i--) str[i]=str[i-1]; str[0]=min; } 8.060 编写函数将一个nxn的二维数组按“次对角线”翻转。 例如:翻转前的数组 翻转后的数组 1 2 3 9 6 3 4 5 6 ---> 8 5 2 7 8 9 7 4 1 要求实现的函数原型为: void invert(char a[N][N]) { int i,j,t; for(i=0;i a[i][j]=a[N-1-j][N-1-i]; a[N-1-j][N-1-i]=t;} } /* 8.072 编写函数将一个NxN的二维数组a的元素按行向右轮转1位。 例如:轮转前的数组 轮转后的数组 1 2 3 3 1 2 4 5 6 ---> 6 4 5 7 8 9 9 7 8 */ void turningRight(char a[N][N]) { int i,j; char temp; for(i=0;i for(i=0;i a[i][j]=a[i][j+1]; a[i][j+1]=temp; } - 2 - } /* 8.067 编写函数将一个NxN的二维数组的周边元素“顺时针”轮转1位。 例如:轮转前的数组 轮转后的数组 1 2 3 4 1 2 4 5 6 ---> 7 5 3 7 8 9 8 9 6 */ void turningClockwise(char a[N][N]) { char temp,t; int column=0,row=0,flag=1; temp = a[0][0]; a[0][0] = a[1][0]; column = 1; while(!(row==0&&column==0)) { t = a[row][column]; a[row][column] = temp; temp = t; if(flag==1) { if(column!=N-1) column ++; else { flag++; row++; } } else if(flag==2) { if(row!=N-1) row++; else { flag++; column--; } } else if(flag==3) { if(column!=0) - 3 -