A. 1B. 1 -2C.30D.死循环6.若有以下程序:#include<stdio.h>int main (void){int x,i;for(i=1;i<=100;i++)(x=i)1f(++x%2==0)if(++x%3==0)if(++x87==0)printf("sd",x)return 0;则程序的输出结果是Vo万次A.2870B. 42 84C. 26 68D.39 817.若有以下程序:出版#include <stdio.h>int main (void)(int i,j;for(i=3;i>=l;i--)(for(j=l;j<=2;j++)printf("d",i+j);printf("In");return O;则程序的输出结果是_0A. 43B. 45C.23D.2325343434234345238.若有以下程序:c#include <stdio.h>语int main(void)言程(char b,c;序int i;设b='al;计C-"AN:训for(i=0;i<6;i++)练(if (i%2)教putchar(b+i);程44
elseputchar(c+i);1return O;则程序的输出结果是A.abcdefB.ABCDEFC.aBcDeFD.AbCdEf三、填空题1.循环条件可以是枚举型和指针型的表时,达式。而且,当表达式的值为时,看作真;当表达式的值为看作假。,a的值为2.若有inta=6;,则执行语句b=-a++;之后b的值为3.表达式a=3a++,++a,a+3,a*5的值为4.若有inta=6,b=16;,则执行b-=a+3;之后b的值为5.在for语句中,当循环条件表达式缺省时,可看作循环条件永远为6.do-while循环的循环体最少执行次。四、读程序写结果1.#include<stdio.hintmain(void)(int i;for(i=0;i<10;i++);printf("gd\n",i);return 0;2.#include<stdio.h>int main(void)(int i,j;for(i=0,j=0;i<2,j<3;i++,j++)第printf("d,%din",i,j);5return 0;章3.循#include <stdio.h>环int main (void)结(int i,j;构程(for(i=0;i<2:i++)序【for(j=0:j<3;j++)设printf("d,edin",i,j);计145
printf("*****ln");1return O;4.#include <stdio.h>int main(void)(int i,k,j;for(i=l;i<=5;i++)(for(k=1;k<=5-ik++)printf("");for(j=l;j<=2*i-l;j++)printf("sc","o'+i);printf("In");1return O;五、改错题1.程序功能:从键盘输入20个数,求其中的最大数。#include <stdio.h>int main(void)(int x,max,i;printf("请输人20个整数:In");for(i=l;i<=20;i++)(scanf("&d",&x);if(x>max)max=x;1printf("最大数=%d\n",max);return 0;2.程序功能:判断正整数m是否为素数c#include <stdio.h>语int main(void)言{int m,i;程printf("请输人一个大于1的正整数:")序设scanf("d",&m);计for(i=2;i<m;i++)训(if(mi==0)练printf("%d不是素数\n",m);教1程46
printf("%d是素数\n",m);return O;3.程序功能:求斐波那契数列的前30项。该数列的变化规律是:前两项都是1,从第三项开始的每一项等于其前面两项之和(限定不能增加变量定义)。#include<stdio.h>int main(void)(long fl,f2;int i;f1=l;f2=1;printf("gl6ldgl6ld",fl.f2)for(i=2:i<=30:i++)(f1=f1+f2;printf("g16ld",f1);1return O;1六、补足程序1.程序功能:从键盘输入一个正整数,按照从低位到高位的顺序将其每一位数分离之后输出。#include <stdio.h>int main(void)(longa;short r;printf("请输人一个正整数:");scanf("%ld",&a);printf("分离之后的结果:In")while((l))(r=(2);printf("gdn",r);an(3);第15章return O;2.程序功能:从键盘输入一个非最简分数,将其约分为最简分数。循环#include<stdio.h>结int main(void)构inta,b,m,n,r;程printf("请以a/b的形式输人一个分数:"):库scanf("%d/%d",&a,&b);设m=(1);计47
n=(2);/*循环条件总为真*while(1)(3)(r=if(r==0)/*余数为0时终止循环*】break;(4)/*以上一次的除数作为新的被除数*/m=n=(5)/*以上一次的余数作为新的除数*1/*分子除以最大公约数*a=(6);b=(7)/*分子除以最大公约数*printf("约分之后的分数=%d/%dln",a,b);return 0;3.程序功能:求出100000以内的所有完数。如果一个正整数的真因子之和与其本身恰好相等,则称其为完数。#include <stdio.h>int main (void)(int m,s,i;for(m=l:m<=100000;m++)(s=0;for(i=l;(1):i++)/*求出m的所有真因子之和*tif((2)))(3)_;1if(s=-m)printf("%d是完数.In",m);return 0;4.程序功能:从键盘输人一行字符,其中包含数字和其他字符,将其中的数字按先后顺序构成一个整数,并求出其常用对数。#include<stdio.h>#include <math.h>int main(void)(charch;cint x=0;语double y;言printf("请输人一行字符:In"):程while((1)/*先赋值后判断*/!=n')序(if(ch>="0'&&ch<="9")设(2)/*ch-0将数字字符转化为对应整数*X=计刘(3)y=练printf("得到的整数=%dn其常用对数=%fin",x,y);教return 0;程48