main() { int i, j; for(i=0; ______________; i++) { j=i*10+6; if( ________ ) continue; printf(\ } } 答案: i<10,j%3!=0 12、 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include < stdio.h > #include < string.h > main() { char a[]=\ int i, j, k; k=strlen(a); for(i=0; i < =k-2; i+=2) for(j=i+2; j < =k; _______________ ) if( _______________ 答案: j+=2 a[i]>a[j] 13、 读入一个1到9的数a,求s=a+aa+aaa+?+aa?a(共20项)。请对下述程 序填空,其中temp保存当前处理项aa?a。(每个空分别以序号标注,如:(1) ____) #include < stdio.h > main() { int I; long a,s,temp; s=temp=0; printf(\number(1-9)\scanf((1)____); s=a; for (I=1;(2)____;(3)____) 答案: \, i<20, i++,a+a*10 , temp 14、 下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存人数组b,并按每行3个元素 输出数组b。请填空。 #include main() {int a[10],b[10],i; for(i=0;_________;i++) scanf(”%d”,&a[i]); for(i=1;__________;i++) b[i]=a[i]-a[i-1]; for(i=1;i<10;i++) {printf(”%3d”,b 答案: i<10 i<10 i%3==0 15、 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #include #include main() {char a[]=”clanguage”,t; int i,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j if(___________) {t=a[i];a[i]=a
答案: i+=2 a[ij>a[j]
16、 阅读以下程序并填空,该程序是求阶乘的累加和。 S=0!+1!+2!+?+n! #include
long f(int n) {
int i: long s;
s=________;
for(i=1;i<=n;i++) s=________; return s; }
main() {
long s; int k,n; scanf(”%
答案: 1 s*i 0 f(k)
程序设计题:(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)
1、 编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。
答案: main() {
int i,num=0;
for(i=100;i < =200;i++) {
if((i%3==2)&&(i%5==3)) num=num+1; }
printf(\}
本题答案:6 2、 回文数是指正读和反读都一样的正整数。例如3773等都是回文数。求出[1000,9999]以内的回文数是6的倍数的最大回文数。 答案: main()
{
int a1,b1,a2,b2,i,hwm; for(i=1000;i < =9999;i++) {
a1=i/1000;
b1=i/100-a1*10;
b2=i/10-a1*100-b1*10; a2=i;
if((a1==a2)&&(b1==b2)&&(i%6==0)) hwm=i; }
printf(\所求的最大回文数为%d\}
参考答案: 3、 编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。该数是一个完全平方数,第1、2位数字之和为12,第3、4位数字之积为24。
答案: #include< math.h > main()
{ int n= 0;
int a,b,c,d,e,m;
for(m=32;m < =99;m++) {
e=m*m;
a=e/1000; /*a为千位*/
b=(e00)/100; /*b为百位*/ c=((e00)0)/10; /*