C程序设计复习 printf(“y=%d,x=%d\\n”,y,x);
2.当执行以下程序段后,i的值是 5 、j的值是 4 、k的值是 5 。
int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0; for( ;a>b;++b)i++; while(a>++c) j++; do k++;while(a>d++);
3.以下程序段的输出结果 。
int k,m,n;n=10;m=1;k=1; while(k<=n) m*=2; printf(“%d\\n”,m); 4.以下程序的输出结果 -1 。
main()
{ int x=2;while(x--);printf(“%d\\n”,x);} 5.以下程序段的输出结果 10 。
int i=0,sum=1;do{ sum+=i++;}while(i<5);printf(“%d\\n”,sum); 6.有以下程序段:
s=1.0;for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf(“%f\\n”,s); 要使下面的程序段的功能与上面程序段的功能相同,请填空:
s=0.0;k=0; d=1.0 ;
do{ s=s+d; k++ ;d=1.0/(k*(k+1));}while( k<=n ); printf(“%f\\n”,s);
7.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空:
main()
{ float x,amax,amin; scanf(“%f”,&x);amax=x;amin=x; while( x<0 ) { if(x>amax)amax=x;
if( x a=10;y=0; do { a+=2;y+=a; printf(“a=%d,y=%d\\n”,a,y); if(y>50)break;}while(a=14); 9.下列程序段中,for循环的循环次数为 4 。 a=2;b=10;for(i=b;i<=a;i--,a++) printf(“=”,i); 10.以下程序段的输出结果 。 for(i=0;i<3;i++,i++) 第 17 页 共 43 页 C程序设计复习 { for(j=10;j>0;j--) { if((j+i)%2){ j--;printf(“*%d ”,j);continue;} --j;--j;printf(“%d ”,j);} printf(“\\n”);} ㈡.选择题: 1.以下程序段的输出结果是( D )。 A.9 B.1 C.11 D.10 int k,j,s; for(k=2;k<6;k++,k++){ s=1;for(j=k;j<6;j++) s+=j;} 2.以下程序段的输出结果是( C )。 A.12 B.15 C.20 D.25 int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j〈=19;j+=4〉m++; printf(“%d\\n”,m); 3.以下程序段的输出结果是(B )。 A.10 B.9 C.10 D.9 9 8 9 8 8 7 8 7 7 6 int n=10;while(n>7){ n--;printf(“%d\\n”,n);} 4.以下程序段的输出结果是( C )。 A.1 B.3 0 C.1 -2 D.死循环 int x=3;do { printf(“=”,x-=2);}while(!(--x)); 5.以下程序的输出结果是(C )。 A.15 B.14 C.不确定 D.0 main() { int i,sum;for(i=1;i<6;i++)sum+=sum;printf(“%d\\n”,sum);} 6.以下程序的输出结果是( B )。 A.741 B.852 C.963 D.875421 main(){ int y=10; for( ;y>0;y--)if(y%3==0){ printf(“%d”,--y);continue;} } 7.若x是int型变量,以下程序段的输出结果是( D )。 A.**3 B.##3 C.##3 D.**3##4 ##4 **4 **4##5 **5 **5 ##5 for(x=3;x<6;x++)printf((x%2)?(“**%d”) :(“##%d\\n”),x); 8.以下程序的输出结果是( C )。 第 18 页 共 43 页 C程序设计复习 A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ main() { int i; for(i=1;i<=5;i++) { if(i%2)printf(“*”);else continue; printf(“#”);} printf(“$\\n”); } 9.以下叙述正确的是( D )。 A.do_while语句构成的循环不能用其它语句构成的循环来代替。 B.do_while语句构成的循环只能用break语句退出。 C.用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。 D.用do_while语句构成循环时,只有在while后的表达式为零时结束循环。 10.以下程序的输出结果是( B )。 A.39 81 B.42 84 C.26 68 D.28 70 main() { int x,i; for(i=1;i<=100;i++) { x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d ”,x);} printf(“\\n”); } 11.对下面程序段描述正确的是( C )。 A.while循环执行了10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句只执行一次 int x=10;while(x=0)x=x-1; 12.以下关于for循环的正确描述是( D )。 A.for循环只能用于循环次数已确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 13.下列程序段中是死循环的是( C)。 A.int n=1;while(!n)n++; B.int n=1;do { n--;}while(n); C.int n=1;do { n++;}while(n); D.for(n=5;n<1;); 14.以下能正确计算1╳2╳3╳?╳10的程序段是( C )。 A.do { k=1;n=1;n=n*k;k++;}while(k<=10); B.do { k=1;n=0;n=n*k;k++;}while(k<=10); C.k=1;n=1;do { n=n*k;k++;}while(k<=10); D.k=1;n=0;do { n=n*k;k++;}while(k<=10); ㈢.程序设计题: 1.编写程序,求1-3+5-7+?-99+101的值。 第 19 页 共 43 页 C程序设计复习 2.求1+2+3+?+100的值。 3.把100~200之间的不能被3整除的数输出。 4.求Fibonacci数列前40个数。 5.打印100以内的所有素数。 第六章 函数 一.知识点 1.函数定义的一般形式:函数类型 函数名(形参类型 形参名,??) { 函数体 } 2.函数的参数:注意形参与实参在类型、个数上的一一对应关系。 3.函数值:函数的返回值,也就是函数类型,若函数无返回值,则为void; 4.函数的调用:注意调用的形式; 5.函数原型与对被调函数的声明,注意整型函数可以不用声明; 6.函数的嵌套调用: 7.函数的递归调用,要求能用递归编写求n!、1+2+??+n等问题的程序。 第 20 页 共 43 页