扬大C语言上机题(3)

2019-04-16 17:57

1,2,6,4,8,9,10,2,3,4,2,3,4,5,4,6,7,8,6,9,1,6,7,8,7,6,9,10,8,6, 7,6,8,9,5,4,3,9,8,7

4. 请编写函数int twinborn(int a[][2],int m,int n),其功能是找出[m,n]中的所有孪生质数对(相差为2的两个质数称为孪生质数),并依次将每对孪生质数写到a指向的二维数组的每一行中。编写main函数,声明一个100×2的二维数组a,并从键盘上输入m和n的值,用a、m、n作为实在参数调用函数twinborn,将结果数组以行为单位输出至屏幕。例如,测试数据和运行结果如下:

input two numbers:10 100 11, 13 17, 19 29, 31 41, 43 59, 61 71, 73

5. 编程要求:(1)请编写函数int fun(int a[][3]),其功能是:找出符合下列命题的所有3位数:“若一个三位数是37的倍数,则将这个三位数的三个数字循环移位得到另两个三位数也是37的倍数”。例如,148是37的倍数,481和814也都是37的倍数。将满足条件的三位数及其循环移位后得到的另2个三位数依次写到形参a指向的二维数组中,函数返回三位数的组数(注意:尽量做到已经输出过的数,下次就不再输出。例如:148,481,841三个数算作一组)。(2)编写main函数,声明一个300×3的二维数组a,用a作为实在参数调用函数fun,输出所有满足上述条件的三位数。输出时,每组数据占一行。 /*1#include \int prime(int i) {int k;

for(k=2;k

}

int twinborn(int a[][2],int m,int n) { int k=0,i;

for(i=m;i<=n-2;i+=2) if(prime(i)&&prime(i+2)) a[k][0]=i,a[k][1]=i+2,k++;

return k; }

main()

{ int a[100][2],m,n,i; printf(\scanf(\if(!(m%2)) m+=1; if(m==1)

m+=2;

m=twinborn(a,m,n); for(i=0;i

printf(\getch(); }*/

/*2

#include \#include \void fun(char x[]) {int i,j; for(i=0;x[i];)

if(x[i]>='1'&&x[i]<='9')

{for(j=i;x[j]!=0;j++);j=j-1; {while(j>=i)

{x[j+1]=x[j];j--;} x[i]='$';i=i+2; } }

else i++; }

main()

{ char c[20]=\puts(c); fun(c);

printf(\getch(); } */

/*3

#include \

void cont (int a[],int n, int b[]) {

int i;

for(i=0;i<40;i++) b[a[i]]++; }

main()

{ int

a[40]={1,2,6,4,8,9,10,2,3,4,2,3,4,5,4,6,7,8,6,9,1,6,7,8,7,6,9,10,8,6, 7,6,8,9,5,4,3,9,8,7},b[11]={0},i,n=40; cont(a,n,b);

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

printf(\getch(); } */ /*5

(1)

#include #include int fun(int a[][3]) {

int n,y,k,m,q,b,c,i=0,x; for(n=100;n<1000;n++) {

if(n7==0) { k=n/100; m=n/10;

q=n;

if(k*m*q!=0&&((k==m)+(m==q)+(q==k)<3)) { b=100*m+10*q+k; c=100*q+10*k+m;

if(b7==0&&c7==0) {

a[i][0]=n; a[i][1]=b;

a[i][2]=c; i++; } } } }

return i; } main() {

int a[300][3],i,n; n=fun(a);

for(i=0;i

printf(\getch(); }*/

/*(2)*/

#include #include

int fun1(int n,int m,int a[][3]) { int i;

for(i=0;i

if(n==a[i][0]||n==a[i][1]||n==a[i][2]) return 0; return 1; }

int fun(int a[][3]) {

int n,y,k,m,q,b,c,i=0,x; for(n=100;n<1000;n++) {

if(n7==0) { k=n/100; m=n/10; q=n;

if(k*m*q!=0&&(k==m)+(m==q)+(q==k)<3&&fun1(n,i,a))

/*第1个条件去掉2位数,第2个条件去掉重复数字,第3个条件去掉前面出

现过的3位数*/ { b=100*m+10*q+k; c=100*q+10*k+m; if(b7==0&&c7==0) {

a[i][0]=n; a[i][1]=b; a[i][2]=c; i++; } } }

}

return i; } main() {

int a[300][3],i,n; n=fun(a);

for(i=0;i

printf(\getch(); }

4.任何各位数字不全相同的3位正整数经以下变换后均能变为495,称495为3位整数的黑洞数。变换步骤:对于任意一个各位数字不全相同的3位正整数,将组成该正整数的3个数字重新组合分别生成一个最大数和最小数,用最大数减去最小数得到一个新的3位数(不足3位时前面补0);再对新的3位数重复上述操作,最多重复7次。

编写程序,接收从键盘输入的一个3位正整数,判断各位数字是否不全相同,若不全相同,则实施上述变换,输出每步变换后得到的3位整数。

5.求1~100以内的“完备数”。一个数如果恰好等于除它本身之外的各个因子之和,则称该数为“完备数”。例如:6是完备数。因为6的因子为1,2,3,且6=1+2+3。


扬大C语言上机题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:题库(动力气象概论)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: