C语言重修复习资料(2016年4月答案) 下载本文

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 页