itgle.com

编写函数fun(),它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。[试题源程序]include <conio.h>include <stdio.h>void fun(int *a, int *n){}main(){int aa[1000], n, k;clrscr();fun(aa,&n);fo

题目

编写函数fun(),它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。

[注意] 部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

[试题源程序]

include <conio.h>

include <stdio.h>

void fun(int *a, int *n)

{

}

main()

{

int aa[1000], n, k;

clrscr();

fun(aa,&n);

for(k=0; k<n; k++)

if(k+1)%10==0)

{

printf("%5d", aa[k]);

printf("\n");

}

else

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

}


相似考题
参考答案和解析
正确答案:void fun(int *a int *n) { int i j=0; for(i=1; i=1000; i++) if((i%7=0 ||i%11==0)&&i%77!=0) a[j++]=i; *n=j; }
void fun(int *a, int *n) { int i, j=0; for(i=1; i=1000; i++) if((i%7=0 ||i%11==0)&&i%77!=0) a[j++]=i; *n=j; } 解析:本题的关键是if条件语句及参数传递。本题的设计思路是:(1)利用循环遍历1到1000之内的整数;(2)利用if语句判断,把查找到的整数保存到形参数组a中;(3)把数组a中数组元素的个数赋值到形参指针n所指的内存。注意程序中if语句的判断条件,本题是找出能被7或11整除但不能同时被7和11整除的所有整数。能同时被7和11整除的数一定能被77整除,且不能被7整除的数不一定就是能被7或11整除的数。所以,可得出程序中的if语句。
更多“编写函数fun(),它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将 ”相关问题
  • 第1题:

    计算1000以内所有不能被7整除的整数之和


    sum% 7 != 0

  • 第2题:

    下列能判断能被7或11整除,但不能同时被7和11整除的数

    A.((i%7==0)||(i%11==0))&&(!((i%7==0)&&(i%11==0))

    B.((i%7==0)||(i%11==0))&&(((i%7==0)&&(i%11==0)))

    C.((i%7!=0)||(i%11==0))&&(((i%7==0)&&(i%11==0)))

    D.((i%7==0)||(i%11!=0))&&(((i%7==0)&&(i%11==0)))


    ((i%7==0)||(i%11==0))&&(!((i%7==0)&&(i%11==0))

  • 第3题:

    输出[1,1000]内能被3整除而不能被7整除的数,并统计有多少个?


    #include<stdio.h> main() {int i,a; for(i-0;i<10;i++) {a=i*10+7;/*求个位为7的数*/ if(a%3==0)printf('%d\\n',a);/*判断其是否能被3整除*/ } }

  • 第4题:

    计算1000以内所有不能被7整除的整数之和。


    import random
    ls=[random.randint(1000,5000) for i in range(20)]
    ts=(2,3,5,7)
    l1=[0]*len(ls)
    for i in range(len(ls)):
    for t in ts:
    if ls[i] % t==0:
    l1[i]=1
    l2=[]
    for i in range(len(ls)):
    if l1[i]==0:
    l2.append(ls[i])
    print("生成的20个1000~5000的随机数是:")
    print(ls)
    print("其中不能被10以内素数整除的数是:")
    print(l2)

  • 第5题:

    编写程序,计算出1000到5000之间能被3和7整除但不能被13整除的所有整数的和。


    【审题关键句】千位+百位等于十位+个位,且千位+百位等于个位-千位的10倍。计算并输出这些四位自然数的个数cnt以及这些数的和。 【解题思路】 ①首先定义一个循环变量i,以及分别用来存放四位数分解之后各位数的变量qw(千位)、bw(百位)、SW(十位)和 gw(个位)。 ②通过for循环依次对数组中的每个四位数进行分解,循环初值为l 000,终值为5000,每循环一次,循环变量i的值加1。每分解一个四位数,根据题目要求,判断其“千位+百位=十位+个位”的条件是否满足,同时判断“(千位+百位)=(个位-千位)*10”的条件是否满足,两个条件之间用运算符进行连接。当同时满足以上两个判断条件时,计数变量cnt的值加l,同时将该四位数累加到求和变量sum中,最终得到满足条件的四位自然数个数cnt及它们的和sum。 本题中cnt和sum变量在源程序中已经定义,在该子程序中就不需要再重新定义了。 【参考答案】