#include
void main()
{ int a[10]={2,3,5,7,8,9,10,11,12,13},i,j,k,count;
count = 0;
for ( i=0; i<10; i++) { k=sqrt(a[i]); for ( j=2; j<=k; j++)
if (a[i] % j == 0) break; /************found************/
if(j>=k+1) count++;
}
/************found************/
printf(\
}
27.输出Fabonacci数列:1,1,2,3,5,8,??的
前20项的值,要求每行输出5个数。
#include \
void main()
{ long int f[20]={1,1};
int i;
/**************found************/ printf(\
for(i=2;i<20;i++)
{
f[i]=f[i-1]+f[i-2];
/**************found************/
if(i%5==0) printf(\printf(\
} }
28.求一维数组a中非素数之和。
例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17,
则程序的输出应为:Sum is: 54。
#include
void main()
{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s;
s = 0;
for ( i=0; i<12; i++)
{
k=sqrt(a[i]);
for ( j=2;j <= k; j++)
/************found************/
if (a[i]% j == 0)
break;
/************found************/
if( j<=k ) s += a[i];
}
printf(\
}
29.求两个正整数m,n之间的非素数之和(包含m和n)。 例如:如果数组m=2,n=20,则程序的输出应为:Sum is: 132。
#include
void main()
{ int m=2,n=20,i,j,k,sum; /************found************/
sum=0;
for ( i=m; i<=n; i++)
{ k=sqrt(i);
for (j=2;j <= k; j++) if (i % j == 0) break;
/************found************/
if(j<=k ) sum += i;
}
printf(\
}
30.将无符号八进制数字构成的字符串转换为十进制整数。
例如,输入的字符串为:556,则输出十进制整数366。
#include
void main()
{ char s[6]; int n=0,j=0; /************found************/
gets(s);
/************found************/
while(s[j]!=’\\0’) { n=n*8+s[j]-’0’;
j++; }
printf(\
}
31.计算1到M(M为100)之间的奇数之和及偶数之和。程序运行结果为: sum of
evens is 2550 sum of odds is 2500 #include
a=0;c=0;
/**************found************/
for(i=1;i<=M;i+=2)
{ a+=i;
/**************found************/
b=i+1; c+=b; }
printf(\printf(\
}
32.实现在N行M列的二维数组中,找出每一行上的最大值,且原数组值不变。 例
如:如果二维数组元素的值为:
1 5 7 4 2 6 4 3 8 2 3 1
时,程序的运行结果应为:The max value in line 0 is 7
The max value in line 1 is 6 The max value in line 2 is 8
#define M 4 #define N 3 void main() { int i,j,p,x[N]
={1,5,7,4,2,6,4,3,8,2,3,1}; /************found************/
for(i=0;i { p=0; for(j=0;j /************found************/ x[i][p]=x[i][j]; 或p=j; printf(\ } } 33.查找n在数组a中最后一次出现的位置。 例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0, 当n=5时,程序的输出结果为:5 is No.3 。 当n=10时,程序的输出结果应为:10 not found !。 #include { int a[10]={1,5,2,5,6,8,7,4,3,0}; int i,k,n,f=0; scanf(\for(i=0;i<10;i++) /************found************/ if(n==a[i]) { f=1; /************found************/ k=i; } if (f) printf(\else printf(\ } 33.查找n在数组a中最后一次出现的位置。 例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0, 当n=5时,程序的输出结果为:5 is No.3 。 当n=10时,程序的输出结果应为:10 not found !。 #include { int a[10]={1,5,2,5,6,8,7,4,3,0}; int i,k,n,f=0; scanf(\for(i=0;i<10;i++) /************found************/ if(n==a[i]) { f=1; /************found************/ k=i; } if (f) printf(\else printf(\ } 34.求两个正整数x,y的最小公倍数。 例如:如果x=24,y=36,程序的输出应为:min is : 72。 #include void main() { int x,y,t,i; printf(\ scanf(\ if(x > y) {t = x; x = y; y = t;} /************found************/ for ( i=y; i<=x*y ;i++) { if(i%x==0 && i%y==0 ) break; } /************found************/ printf(\ } 35.求两个正整数x,y的最大公约数和最小公倍数。 例如:如果x=24,y=36,程序的输出应为: max is : 12, min is : 72 。 #include void main() { int x,y,t,max,min,i,n1,n2; scanf(\ if(x > y) {t = x; x = y; y = t;} n1=x; n2=y; t = n2 % n1; /************found************/ while( t!=0) 或while(t) { n2 = n1 ; n1 = t ; t = n2 % n1; } /************found************/ max = n1 ; min = x * y / max ; printf(\printf(\ } 目录 目录 1 改错题 1 填空题 10 编程题 18 按住Ctrl键,点击某目录项,当前页面自动跳转至该目录项所在的页码 改错题 改错题答题要求: 程序中有两处错误,错误都在提示行:/***********found***********/的下面 一行,请考生注意。请改正程序中的错误,使它能得出正确的结果。 注意:程序中的其它地方请考生不要随意改动,不得增行或删行,也不得更改程 序的结构!(注:红色的为已改过的) 1、从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。 例如,当s中的数为:7654321时,t中的数为:7531。 源文件: #include { long s, t, sl=10; printf(\scanf(\ /************found************/ t = s ; while ( s > 0)