等比数列的第一项a=1, 公比q=2, 下面程序段计算前n项和小于100的最大n。程序划线处应填 int main (void){ int a, q, n, sum; a=1; q=2; for (n=sum=0; sum<100; n++) { sum += a; a *= q; } ____________; printf ("n=%dn", n); return 0; }
A.空行
B.n -= 2;
C.n--;
D.n++;
第1题:
有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序执行后的输出结果是
A.45
B.50
C.60
D.55
第2题:
下面程序的输出结果是( )。 public class Sun { public static void main(String args[ ]) { int n=4 ,sum=0; while (n>0) { sum+=n; n--; } System.out.println("sum is "+sum); } }
A.sum is 10
B.sum is 4
C.10
D.4
第3题:
下面程序段的输出结果是 public class Test{ public static void main(String args[]){ int n=5,sum=O; while(n>0){ sum+=n; --n; } System.out.println("sum is "+Sum); } }
A.sum is 14
B.sum is 15
C.sum is 10
D.sum is 5
第4题:
下面程序段的输出结果是 public class Test{ public static void main(String args[]){ int n=5,sum=0; while(n>0){ sum+=n; --n; } System.out.println("sum is"+sum); } }
A.sum is 14
B.sum is 15
C.sum is 10
D.sum is 5
第5题:
有以下程序:
#inClude <stdlib.h>
struct NODE{
int num;
struct NODE *next;
};
main()
{ Struct N00E *p,*q,*r;
int sum;0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(Sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf("%d\n",sum);
}
执行后的输出结果是
A.3
B.4
C.5
D.6
第6题:
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1
共有7种划分。这种划分的程序如下所示。
【程序】
include <stdio.h>
int n[1000],m,k;
void output sum()
{
int j;
for(j=0;n[j]!=0;j++)
printf("%d\t",n[j]);
printf("\n");
}
void sum(int i)
if(m-n[i]<n[i])
{ m=m-n[i];
(1)
i++;
n[i+1]=0;
}
else
{
(2)
m-=n[i];
i++;
}
if(m!=n[i])
sum(i);
else
output_sum();
if(n[i]>1)
{
n[i]--;
(3)
}
else
{
while((n[i]==1)&&(i>O))
{
i--;
(4)
}
if(i!=0)
{
(5)
sum(i);
}
}
}
void main()
{
int i;
scanf("%d",&n[0]);
m=k=n[0];
for(i=1;i<=k;i++)
n[i]=0;
while(n[0]!=1)
{
n[0]--;
i=0;
sum(0);
m=k;
}
}
第7题:
以下程序运行后的输出结果是【 】。
struct NODE
{int num;struct NODE *next;
};
main()
{struct NODE s[3]={{1,'\0'},{2,'\0'},{3,'0'}},*p,*q,*r;
int sum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=s; q=p->next; r=q->next;
sum+=q->next->num; sum+=r->next->next->num;
printf("%d\n",sum);
}
第8题:
有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n); } void f(int*p,int*q) {p=p+1; *q=*q+1;) 程序运行后的输出结果是______。
A.1,3
B.2,3
C.1,4
D.1,2
第9题:
有以下程序
include<stdio.h>
int*f(int*p,int*q);
main( )
{int m=1,n=2,*r=&m;
r=f(r,&n);printf(”%d\n”,*r);
}
int-f(int*P,int*q)
(return(*p>*q)?p:q;)
程序运行后的输出结果是______。
第10题:
下面的程序中定义了两个方法求自然数1~100的和。具体如下:int suml(int n);利用循环求1~n的和,int sum2(int n);利用递归方法求和1~n的和;在main()方法中调用这两个方法求1~100的和并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。
public class Sum{
public static void main(String args[])
{
//1.调用suml(int n),求1~100的和
System.out.println("1~100的和:"+sum1(100));
//2,调用sum2(int n),求1~100的和
System.out.println("1~100的和:"+sum2(100));
}
static int suml(int n)
{
int result=0;
for(int i=1;i<=n;i++)
________________
retrun result;
}
static int sum2(int n)
{
if(______________)
return 1;
else
_____________
}
}
第11题:
下列程序的功能是:找出所有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);
}
第12题:
有以下程序
#inGlude<stdlib.h>
struct NODE {
int num;
struct NODE *next;
}
main()
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(struct NODE));
r=(stnlct NODE*)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
执行后输出结果是
A.3
B.4
C.5
D.6
第13题:
( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum ( int n ) {
if ( n==0 )
return 0;
else
return n+sum ( n-1 ) ;
}
在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
第14题:
●下列程序运行后输出的数据是(51)。
int sum(int n)
{
int p=1;
int s=0;
int i=0;
for(i=1;i﹤=n;i++) s+=(p*=i);
retum s;
}
main()
{
printf((“sum(5)=%d\n”,sum(5));
}
(51) A.sum(5)=151
B.sum(5)=152
C.sum(5)=153
D.sum(5)=155
第15题:
以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是( )。 public class Sun{ public static void main(String args[]){ int n=1: double term,sum=1.0: do{ n=__; term=1.0/n; sum=sum+term; } while(term>=0.00001); System.out.println(n); System.out.println(sum); } }
A.2n
B.2n+1
C.2*n
D.2*n+1
第16题:
请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。
注意:部分源程序已存在文件test10_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。
文件test10_2.cpp的内容如下:
include<iostream.h>
inline long sum(int n)
{
}
void main()
{
int n;
cout<<"输入n:";
cin>>n;
cout<<"结果为:"<<sum(n)<<endl;
}
第17题:
以下C程序的运行结果为______。main(){ int i=1,sum=0; loop:if(i<=10) { sum+=i; i++; goto loop; } printf("sum=%d\n",sum);}
A.sum=10
B.sum=55
C.sum=100
D.sum=88
第18题:
在C语言中,下面这段代码输出值为( )。 main( ) { int n, sum=0; for(n=1;n<=100;n++) sum+=n; printf("sum=%d\n",sum); }
A.0
B.100
C.5050
D.5151
第19题:
下列程序的功能是:找出所有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);
}
第20题:
下列程序的输出结果是( )。 public class Test { public static void main (String[] args) { int n=5,sum=0; while (n>0) { sum+=n; --n; } System.out.println("Sum is"+sum); } }
A.sum is 14
B.sum is 15
C.sum is 10
D.sum is 5
第21题:
以下程序通过函数sunFun求。这里f(x)=x2+1
main( )
{ printf("The sum=%d\n",SunFun(10)); }
SunFun(int n)
{ int x,s=0;
for(x=0;x<=n;x++) s+=F(【 】);
return s;
}
F( int x)
{ return 【 】);}
第22题:
下列程序的输出结果是______。 #define A 100 main() { int i=0,sum=0; do{ if(i==(i/2)*2) continue; sum+=i; }while(++i<A) ; printf("%d\n",sum);
A.2500
B.2050
C.4
D.0
第23题:
有以下程序: #include <stdio.h> int fun(int x[], int n) { static int sum =0,i; for(i=0;i<n;i ++ )sum + =x[i]; return sum;{ int a[] ={1,2,3,4,5},b[]={6,7,8,9},s=0; s = fun(a,5) + fun(b,4) ;printf( "%d \n",s);程序执行后的输出结果是( )。
A.45
B.50
C.60
D.55
第24题:
试题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答案:
void countvalue()
{
int i;
for(i=2;i<=90;i++)
if(isPrime(i) && isPrime(i+4) && isPrime(i+10))
{
cnt++;
sum+=i;
}
} }
试题1分析:
该程序属于按条件查找数字的题目,考核的知识点为:(1)素数的判定;(2)统计个数并求和。
本题的解题思路是:题目要求的筛选范围是“所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也在100以内)”,由于最小的素数是2,且i+10要在100以内(含100),所以筛选的范围是2~90。
题目要求的筛选条件是“满足i、i+4、i+10都是素数的整数i”。在答题之前,应先通读题目已给出的源程序,在我们要实现的函数countvalue()之前给出一个在题目中从未提及的函数isPrime()。仔细分析这个函数的代码不难发现,它实现了从2~number/2内寻找能整除number的数,如果找到就使变量tag为0,此时循环条件将不成了,最终返回0,如果找不到,变量tag为1,返回1.这段代码实现的是判断一个数是够是素数。所以在函数中对筛选条件可以简化为if(isPrime(i) && isPrime(i+4) && isPrime(i+10))。
程序的流程是:调用countvalue()函数对数据进行处理,最后由writeDAT()函数将结果写入文件out.dat中。
在countvalue()函数中,For循环的功能是判断i、i+4、i+10是否都为素数,若在素数则将i累加到sum中,同时个数cnt加1,函数结束。