试题1下列程序的功能是:找出所有100以内(含100)满足i,i+4,i+10都是素数的整数i(i+10也在100以内)的个数cnt以及这些i之和sum。请编写函数countvalue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。注意:部分源程序已给出。请勿改动主函数main()和函数writeDAT()的内容。试题程序:#include <stdio.h>int cnt, sum;int isPrime(int number){int i, tag =

题目

试题1

下列程序的功能是:找出所有100以内(含100)满足i,i+4,i+10都是素数的整数i(i+10也在100以内)的个数cnt以及这些i之和sum。请编写函数countvalue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。

注意:部分源程序已给出。

请勿改动主函数main()和函数writeDAT()的内容。

试题程序:

#include <stdio.h>

int cnt, sum;

int isPrime(int number)

{

int i, tag = 1;

for (i=2; tag && i<=number/2; i++)

if (number%i == 0)

tag = 0;

return tag;

}

void countValue()

{

}

void writeDat()

{

FILE *fp;

fp = fopen("out.dat", "w");

fprintf(fp, "%d\n%d\n", cnt, sum);

fclose(fp);

}

void main()

{

cnt = sum = 0;

countValue();

printf("满足条件的整数的个数=%d\n", cnt);

printf("满足条件的整数的和值=%d\n", sum);

writeDat();


相似考题
更多“试题1下列程序的功能是:找出所有100以内(含100)满足i,i+4,i+10都是素数的整数i(i+10也在100以内) ”相关问题
  • 第1题:

    请补充函数fun(),该函数的功能是:求100(不包括100)以内能被2或5整除,但不能同时被2和5整除的自然数。结果保存在数组bb中,函数fun()返回数组比元素的个数。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio.h>

    define N 100

    int fun (int bb [] )

    {

    int i, j;

    for(【 】;i<100; i++)

    if ((i%1!=0&&i%5==0)|| (i%2==0&&i%5 !=0)

    【 】;

    【 】;

    }

    main()

    {

    int i, n;

    int bb [N];

    clrscr ();

    n=fun (bb);

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

    {

    if (i%10==0)

    printf ("\n");

    printf ("% 4d", bb [i]);

    }

    }


    正确答案:i=l j=0 bb[j++]=I return j
    i=l, j=0 bb[j++]=I return j 解析:第一空:题目要求找100以内的自然数,而自然数是从1开始的,所以i的初始值为1。变量j声明时没有初始化,所以在这里初始化为0,用来记录满足条件的自然数的个数。第二空:将满足条件的白然数存于数组bb中,下标加1是为了下一次存储做准备。第三空:题目要求fun()函数返回数组bb元素的个数,所以函数返回j。

  • 第2题:

    下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。

    main()

    {int i, x, y=1;

    scanf("%d", &x);

    for(i=2; i<=x/2; i++)

    if【14】{ y=0; break;}

    printf("%d\n", y);

    }


    正确答案:
    (x%i==0)

  • 第3题:

    下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。

    y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)

    例如,若m=2000,则应输出0.000160。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <conio.h>

    include <stdio. h>

    /*************found**************/

    fun (int m)

    { double y=0, d;

    int i;

    /*************found**************/

    for (i=100, i<=m, i+=100)

    {d= (double) i* (double) i;

    y+=l. 0/d;

    }

    return (y);

    }

    main ( )

    { int n=2000;

    clrscr();

    printf("\nThe result is %lf\n",fun(n));


    正确答案:(1)错误:fun(int m) 正确:double fun(int m) (2)错误:for(i=100i=mi+=100) 正确:for(i=100;i=m;i+=100)
    (1)错误:fun(int m) 正确:double fun(int m) (2)错误:for(i=100,i=m,i+=100) 正确:for(i=100;i=m;i+=100) 解析:题目要求在函数fun()中求级数前m项和,可用循环语句,每次计算级数中的一项,然后累加。此题的难点就在定义fun(int m)中的m的定义,由后面函数的应用可以确定应该定义成double fun(int m)。for(i=100,i=m,i+=100)中是一个简单的基础错误。

  • 第4题:

    【程序说明】 程序功能是求1到100之间的所有素数。

    【程序】

    SET TALK OFF

    CLEAR

    J=2

    DO WHILE J<=100

    I=2

    DO WHILE (5)

    IF MOD(J,I)=0

    (6)

    ENDIF

    I=I+1

    ENDDO

    IF (7)

    ?J

    ENDIF

    J=J+1

    (8)

    SET TALK ON

    RETURN

    (5)

    A.I>J

    B.I>=J

    C.I<J

    D.I<=J


    正确答案:D

  • 第5题:

    下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(1+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out64.dat中(数值1不是素数)。

    注意:部分源程序已给出。

    请勿改动主函数main()和输出数据函数writeDAT()的内容。

    试题程序:

    include<stdio.h>

    int cnt, sum;

    int isPrime(int number)

    {

    int i,tag=1;

    if (number==1)

    return 0;

    for(i=2;tag && i<=number/2;i++)

    if(number%i==0) tag=0;

    return tag;

    }

    void countValue ( )

    {

    }

    void main( )

    {

    cnt=sum=0;

    countValue ( );

    printf ( "满足条件的整数的个数=%d\n", cnt);

    printf ( "满足条件的整数的和值=%d\n", sum);

    writeDAT ( );

    }

    writeDAT ( )

    {

    FILE *fp;

    fp=fopen("out64.dat","w");

    fprintf(fp,"%d\n%d\n",cnt,sum);

    fclose(fp);

    }


    正确答案:void countValue() { int icount=0xx[30]; int jkm; cnt=0; sum=0; for(i=2;i90;i++) /*找数的范围为100以内*/ if(isPrime(i)) /*如果该数为素数则将它存入数组xx中并统计个数*/ { xx[count]=i; count++; } for(i=0;icount;i++) /*如果数组xx中的素数加4和加10得到的数仍为素数*/ if(isPrime(xx[i]+4)&&isPrime(xx[i]+10)) { cnt++; /*统计满足条件的数的个数*/ sum+=xx[i]; /*将满足条件的数组xx中的数求和*/ } }
    void countValue() { int i,count=0,xx[30]; int j,k,m; cnt=0; sum=0; for(i=2;i90;i++) /*找数的范围为100以内*/ if(isPrime(i)) /*如果该数为素数,则将它存入数组xx中,并统计个数*/ { xx[count]=i; count++; } for(i=0;icount;i++) /*如果数组xx中的素数加4和加10得到的数仍为素数*/ if(isPrime(xx[i]+4)&&isPrime(xx[i]+10)) { cnt++; /*统计满足条件的数的个数*/ sum+=xx[i]; /*将满足条件的数组xx中的数求和*/ } } 解析:本题考查的知识点如下:
    (1)循环结构与判断结构的嵌套使用。
    (2)判断结构中多个条件的布尔运算。
    题中要求判断在100以内,i,i+4,i+10都是素数的个数。因为i+10也必须在100以内,1不是素数,我们可以从2开始判断到89即可(90是偶数,明显不是素数)。可以先找出2到89之间素数的个数,再判断这些素数加4和加10后是否还是素数。加4是素数与加10是素数必须同时满足,所以两个条件间用“与”运算。

  • 第6题:

    下列给定程序中,函数fun()的功能是找出100~n(n不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    define N 100

    int fun(int *s,int n)

    {

    int i,j,k,a,b,c;

    j=0;

    for(i=100;i<n;i++)

    {

    /*************found***********/

    k=n;

    a=k%10;

    k/=10;

    b=k%10;

    c=k/10;

    if(a==b+c)

    /************found**************/

    s[j]=i;

    }

    return j;

    }

    main()

    {

    int a[N],n,num=0,i;

    do

    {

    printf("\nEnter n(<=1000):”);

    scanf("%d",&n);

    }

    while(n>1000);

    num=fun(a,n);

    printf("\n\nThe result:\n”);

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

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

    printf("\n\n");

    }


    正确答案:(1) 错误:k=n; 正确:k=i; (2) 错误:s[j]=i; 正确:s[j++]=i;
    (1) 错误:k=n; 正确:k=i; (2) 错误:s[j]=i; 正确:s[j++]=i; 解析:错误1:k就是当前要被判断的数,是随着i值的变化而变化的。错误2:在循环中,j是数组的下标要递增。

  • 第7题:

    假设i=10,j=20,k=-30,则表达式!(i<j+k)‖!(i+10<=j)的值为______。


    正确答案:false
    false

  • 第8题:

    下列的程序的功能是求2~100之间的素数,程序中划线部分应填入的选项是 public class Testnn { public static void main(String args[]) { Labell: for(int i=2;i<100;i++) { for(int j=2;j<i;j++) { if(i%j==______)continue Labell; } System.out.println(i); } } }

    A.0

    B.1

    C.i

    D.j


    正确答案:A
    解析:根据素数的定义,如果一个数只能分解成1和本身这两个乘积因子,那么这个数就是素数,如5只能等于是1*5,而6不仅能等于1*6,还能等于2*3,所以5是素数,而6是合数;有了素数的概念便可以用双重for语句进行判断,外层for(inti=2;i100;i++)是让被测试的数移动的;而里面的for(intj=2;ji;j++),是用来判断被测试的数能不能被分解为除去1和它本身以外的位于1和本身之间的数,如果能,则有i%j==0,回到第一个特环,接着继续执行。

  • 第9题:

    下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,请填空。


    正确答案:

  • 第10题:

    下列程序的功能是:输出100以内能被3整除且个位数为6的所有整数。请填空。 usingSystem; classProgram{ publicstaticvoidMain(string[]args) { int i,j; for(()); (); i++) { j=i*10+6; if((j%3==0))continue; Console.WriteLine(“{0}”,j);


    正确答案:i=100

  • 第11题:

    问答题
    有矩阵:VAR  A:ARRAY[1‥100,1‥100]  OF  integer;元素按行存储。在一虚存系统中,采用LRU淘汰算法,一个进程有3页内存空间,每页可以存放200个整数。其中第1页存放程序,且假定程序已在内存。  程序A:  FOR i:=1 TO 100 DO       FOR j:=1 TO 100 DO         A[i,j]:=0; 程序B:   FOR j:=1 TO 100 DO        FOR i:=1 TO 100 DO          A[i,j]:=0;  分别就程序A和B的执行进程计算缺页次数。

    正确答案: 题中100×100=10000个数据,每页可以存放200个整数,故一共存放在50个页面中。由于元素按行存储,第1行、第2行放在第1页,…,第99行、第100行放在第50页。故对于程序A,缺页中断为50次。对于程序B,缺页中断为5000次。
    解析: 暂无解析

  • 第12题:

    填空题
    下列程序的功能是:输出100以内能被3整除且个位数为6的所有整数。请填空。 usingSystem; classProgram{ publicstaticvoidMain(string[]args) { int i,j; for(()); (); i++) { j=i*10+6; if((j%3==0))continue; Console.WriteLine(“{0}”,j);

    正确答案: i=100
    解析: 暂无解析

  • 第13题:

    ( 7 )在窗体上画 1 个命令按钮,其名称为 Command1 ,然后编写下列事件过程:

    Private Sub Command1_Click( )

    Dim arr(1 To 100 ) As Integer

    For i=1 To 100

    arr(i)=Int(Rnd*1000)

    Next i

    Max=arr ( 1 )

    Min=arr ( 1 )

    For i=1 To 100

    If 【 7 】 Then

    Max=arr(i)

    End If

    If 【 8 】 Then

    Min=arr(i)

    End If

    Next i

    Print"Max=" ; Max , "Min=" ; Min

    End Sub

    程序运行后 , 单击命令按钮 , 将产生 100 个 1000 以内的随机整数 , 放入数组 arr 中 , 然后查找并输出这 100 个数中的最大值 Max 和最小值 Min ,请填空。


    正确答案:
    ( 7 )【答案】 【 7 】 Max<arr(i) 【 8 】 Min>arr(i)
    【解析 】 如果数组中某元素的值大于此前的最大值 , 则将该元素定义为最大值 , 同样 , 如果数组中某元素的值小于此前的最小值,则将该元素定义为最小值。这样可以查找到数组中的最大值和最小值。

  • 第14题:

    如下程序实现为100×100的矩阵初始化为0,假定矩阵按列存放,开始时内存为空,程序和相关变量常驻内存,若分配给矩阵a的内存块为1页,页面大小为每页100个整数字。程序如下; int I,j,a[100][100]; for(j=0;j<100;j++) for (I=0;I<100;I++) a[1][j]=0; 则程序运行完毕发生的缺页中断次数为( )。

    A.99

    B.100

    C.100*100

    D.不能确定


    正确答案:B
    解析:由于分配给矩阵的内存块为1页,.而每页大小为100个整数字,在此题环境中,由于程序及变量已经在内存中并常驻内存,不会发生缺页中断,只有当程序需要的数据所在页面不在内存中时,才会引起缺页中断,因为页面大小为100个整数字,每次缺页中断调取100个整数字进入内存,刚好为数组的一列程序,所以当以上程序运行完毕时,共需要调取100列数据,共发生100次缺页中断。

  • 第15题:

    阅读以下程序,此程序的功能是【】。 include void main() { intn, i, j; for(i=100;i<9

    阅读以下程序,此程序的功能是【 】。

    include<iostream.h>

    void main()

    {

    int n, i, j;

    for(i=100;i<999; i+100)

    for(j=i/100:j<=99;j=j+10)

    {

    n=i+j;

    cout<<" "<<n;

    }

    cout<<"\n";

    }


    正确答案:求100到999的回文数
    求100到999的回文数

  • 第16题:

    下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,清填空。 main() {int i,j; for(i=0;( );i++) { j=i*10+9; if(j%3!=0)continue; printf("%d",j); } }


    正确答案:i10
    i10 解析:分析程序,当(i=0,1,2,…)时,“j=i*10+9”语句的运行结果是(9,39,69,99)个位数为9的所有整数;题中要求是100以内的整数,所以i10;“if(j%3!=0)continue;”语句的功能是当条件不能被3整除时,继续循环不执行操作,直到能被3整除时输出该数,即输出的数满足条件100以内能被3整除且个位数为9。

  • 第17题:

    请补充main函数,该函数的功能是:把1~100间的所有素数保存在数组aa中,然后输出这些素数并计算它们的和。

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

    请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    main()

    {

    int n, i, j, k, flag, sum;

    int aa [50];

    sum=O;

    k=O;

    clrscr ();

    for (i=2; i<100; i++)

    {

    【 】;

    for (j=2; j<i&&flag; j++)

    if (i%j==O)

    {

    【 】;

    }

    if (flag)

    {

    sum+=i;

    【 】;

    }

    }

    printf("\n*** prime number ***\n");

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

    {

    if (i%10==0)

    printf ("\n");

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

    }

    printf ("\nsum=%d", sum);

    }


    正确答案:flag=1 flag=0 aa[k+++]=i
    flag=1 flag=0 aa[k+++]=i 解析:第一空:由后面的if句可以看出,当nag为1时,当前数是素数,所以此处先假设当前数为素数,即置flag为1,再进行判断,如果不是素数,则再将fflag清零。第二空:如果一个数能被除了1和其自身之外的数整除,即余数为0,则这个数不是素数。如果当前数不是素数,则将flag清零。第三空:如果当前数是素数,则将它保存在数组bb中。

  • 第18题:

    下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数重(I+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out64.dat中(数值1不是素数)。

    注意:部分源程序已给出。

    请勿改动主函数main()和输出数据函数writeDAT()的内容。

    试题程序:

    include<stdio.h>

    int cnt,sum;

    int isPrime (int number)

    {

    int i,tag=l;

    if (number== 1 )

    return 0;

    for(i=2;tag && i<=number/2;i++)

    if (number%i==0) tag=0;

    return tag;

    }

    void countValue ( )

    {

    }

    void main ( )

    {

    cnt=sum=0;

    countValue ( );

    printf ("满足条件的整数的个数=%d\n", cnt);

    printf ("满足条件的整数的和值=%d\n", sum);

    writeDAT ( );

    }

    writeDAT ( )

    {

    FILE *fp;

    fp=fopen("out64.dat" , "w");

    fprintf (fp, "%d\n%d\n", cnt, sum);

    fclose (fp);

    }


    正确答案:void countValue ( ) { int icount=0xx[30]; int j k m; cnt=0; sum=0; for (i=2; i90; i++) /*找数的范围为100以内*/ if (isPrime (i)) /*如果该数为素数则将它存入数组xx中并统计个数*/ { xx [ count ]=i; count++; } for (i=0; icount; i++) /*如果数组xx中的素数加4和加10得到的数仍为素数*/ if (isPrime (xx [i] +4) &&isPrime (xx [i] +10) ) { cnt ++; /*统计满足条件的数的个数*/ sum+=xx [i]; /*将满足条件的数组xx中的数求和*/ ) }
    void countValue ( ) { int i,count=0,xx[30]; int j, k, m; cnt=0; sum=0; for (i=2; i90; i++) /*找数的范围为100以内*/ if (isPrime (i)) /*如果该数为素数,则将它存入数组xx中,并统计个数*/ { xx [ count ]=i; count++; } for (i=0; icount; i++) /*如果数组xx中的素数加4和加10得到的数仍为素数*/ if (isPrime (xx [i] +4) &&isPrime (xx [i] +10) ) { cnt ++; /*统计满足条件的数的个数*/ sum+=xx [i]; /*将满足条件的数组xx中的数求和*/ ) } 解析:本题考查的知识点如下:
    (1)循环结构与判断结构的嵌套使用。
    (2)判断结构中多个条件的布尔运算。
    题中要求判断在100以内,i,i+4,i+10都是素数的个数。因为i+10也必须在100以内,1不是素数,我们可以从2开始判断到89即可(90是偶数,明显不是素数)。可以先找出2到89之间素数的个数,再判断这些素数加4和加10后是否还是素数。加4是素数与加10是素数必须同时满足,所以两个条件间用“与”运算。

  • 第19题:

    程序test.c的功能是:计算100以内满足以下条件的所有整数i的个数cnt以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10小于100。请考生编写函数countvalue实现程序要求,最后调用函数wfiteDAT把结果cnt和sum输出到文件out.dat中。(数值l不是素数)


    正确答案:
    【审题关键句】100以内(含l00)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。
    【解题思路】
    ①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i的值加1,直到i<90。
    ②在for循环中,每执行一次循环则调用函数isPrime(该函数具体的算法已经在源程序中给出,直接用即可),对i、 i+4、i+10是否同时是素数进行判断,如果这三个数同时为素数,则计数变量cnt值加1,同将时将变量i的值累加到sum上。
    【参考答案】

  • 第20题:

    在窗体上画一个名称为Command1的命令按钮和一个名称为List1的列表框。如下图所示程序的功能是:单击命令按钮后,程序用“筛选法”求出1-100之间的全部素数。并将素数在列表框中显示出来。根据题意,填空处应选择

    Option Base 1 Dim a(100)As Integer Private Sub Command1_Click() n = 100 For i = 2 To Sqr(n) For j = i + 1 To n If j Mod i = 0 And a(j)<> 0 Then a(j)= 0 Next j Next i For i = 1 To n If a(i)<> 0# Then Next i End Sub Private Sub Form_Load () For i = 1 To 100 a (i)=i Next i End Sub

    A.List1.Text=Str(a(i))+ vbCrLf

    B.List1.Text=Str(a(i))+ vbCrLf

    C.List1.AddItem a(i)

    D.List1.AddItem=a(i)


    正确答案:C
    解析:程序的功能是:先将其下标值作为数组的初值,然后,用2去除它后面的每个数,如能被整除,就将其值赋0,再用3、4.....去除它后面的每个数,也是如能被整除,就将其值赋0,数组剩下的非0值就是素数。最后将其素数在List1列表框中显示出来。注意此题中的数组a是公共变量。向列表框添加内容时,选项C是正确的。

  • 第21题:

    若变量inti,intsum=0,要求程序段完成求1加到100的和的,能完成此操作的程序段不正确的是()

    • A、for(i=1;i<=100;i++)sum+=i;
    • B、for(i=1;i<=100;i++)sum=i;
    • C、for(i=1;i<=100;i++)sum=sum+i;
    • D、for(i=0;i<=100;i++)sum+=i;

    正确答案:B

  • 第22题:

    填空题
    下列程序的功能是:输出200以内的所有素数。请填空。 usingSystem; classProgram { publicboolsushu(intx) { k=Convert.ToInt32(Math.Sqrt(x)) for(i=2;i<=k;i++) if(x%i==0)returnfalse; (break); }publicstaticvoidMain(string[]args) { inti,j;for(i=3;i<=200;i=i+2) { if(())Console.WriteLine(“{0}”,i);

    正确答案: if %2=1
    解析: 暂无解析

  • 第23题:

    单选题
    若变量inti,intsum=0,要求程序段完成求1加到100的和的,能完成此操作的程序段不正确的是()
    A

    for(i=1;i<=100;i++)sum+=i;

    B

    for(i=1;i<=100;i++)sum=i;

    C

    for(i=1;i<=100;i++)sum=sum+i;

    D

    for(i=0;i<=100;i++)sum+=i;


    正确答案: D
    解析: 暂无解析