程序设计语言C复习 点后第二位数进行四舍五入,最后输出结果。
4.输入一个华氏温度,要求输出摄氏温度。公式为:c=5(f-32)/9。
第五章 选择结构程序设计
一.知识点
1.关系运算符、逻辑运算符、逻辑值的表示与含义;注意&&、||的运算规则。 2.三种if语句
3.选择结构的嵌套,注意if与else的配对; 4.条件运算符:?:
5.switch语句,注意其执行过程; 6.选择结构程序设计思想。
二.练习 ㈠.填空题:
1.C语言中用 1 表示逻辑值“真”,用 0 表示逻辑值“假”。
2.C语言中的关系运算符按优先级别是 > 、 >= 、 < 、 <= 、 == 、 != 。 3.C语言中的逻辑运算符按优先级别是 ! 、 && 、 || 。
4.C语言中的关系运算符和逻辑运算符的优先级别是 ! 、 > 、 >= 、 < 、 <= 、 == 、 != 、 && 、 || 。
5.C语言中逻辑运算符的 ! 优先级高于算术运算符。 6.将下列数学式改写成C语言的关系表达式或逻辑表达式: a=b或a
main() { int a=100;
if(a>100) printf(“%d\\n”,a>100); else printf(“%d\\n”,a<=100);} 8.若已知a=10、b=15、c=1、d=2、e=0,请分别给出下列表达式的运算结果: ⑴ a*b && c 1 ⑵ a+b>10 || a+b<0 1 ⑶ e 0 ⑷ c==b>e 1 ⑸ !a ⑽ (b==10) && (a==10) 0 ⑾ !0 || d && a==c+d 0 ⑿ (a+c==b)==(b+d==a) || (c=b+a)>(d=c+b) 1 9.当a=1、b=2、c=3时,执行以下if语句后,a= 3 、b= 1 、c= 1 。 if(a>c);b=a;a=c;c=b; 10.当a=1、b=2、c=3时,执行以下if语句后,a= 3 、b= 2 、c= 2 。 if(a>c)b=a;a=c;c=b; 11.当a=1、b=2、c=3时,执行以下if语句后,a= 1 、b= 2 、c= 2 。 if(a>c)b=a,a=c;c=b; 12.将以下两条if语句合并为一条if语句: if(a>b) {scanf(“%d”,&x);i++;} else {scanf(“%d”,&y); j++; if(a>b) scanf(“%d”,&x);else scanf(“%d”,&y); if(a<=b) i++;else j++; 13.将以下嵌套的if语句改写成不嵌套的if语句: if(w<0 || w>100) k=0; else k=1; if(w<0) k=0;else if(w<=100) k=1; else k=0; 14.以下程序判断输入的一个整数是否能被3或7整除,若能整除,输出“YES”,若不能整除,输出“NO”。请填空: #include printf(“Enter a int number:”);scanf(“%d”,&k); if( k%3==0||k%7==0 )printf(“YES\\n”);else printf(“NO\\n”);} 15.在switch语句中,当执行到break语句时,使流程 跳出switch结构 。 ㈡.选择题: 1.若给定条件表达式(M)?(a++):(a--),则和表达式M等价的表达式为( C )。 A.M==0 B.M==1 C.M!=0 D.M!=1 2.为表示关系x≥y≥z,应使用的C语言表达式是( A )。 A.(x>=y) && (y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) 3.以下程序的输出结果是( C )。 A.0 B.1 C.2 D.3 第 5 页 共 15 页 程序设计语言C复习 main() { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c+=1; printf(“%d\\n”,c); } 4.以下程序的输出结果是( A )。 A.1 B.2 C.3 D.4 main() { int w=4,x=3,y=2,z=1;printf(“%d\\n”,(w main() { int a,b,s;scanf(“%d %d”,&a,&b); s=a; if(a s*=s;printf(“%d\\n”,s); } 6.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式( D )。 A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式 7.下列程序段运行后,x的值是( D )。 A.14 B.4 C.15 D.3 ok1=1;ok2=2;ok3=3;x=15; if(!ok1) x--;else if(ok2) if(ok3)x=3;else x=4; 8.在C语言中,switch语句后一对圆括号中exp的类型( A )。 A.可以是任何类型 B.只能为int型 C.可以是整型或字符型 D.只能是整型或实型 9.以下各组运算符中,优先级最高的分别为(⑴B ⑵C ⑶C ⑷D )。 ⑴A.?: B.++ C.&& D.+= ⑵A.*= B.>= C.(类型) D., ⑶A.|| B.% C.! D.== 一.知识点 1.循环的概念,C实现循环的方法; 2.goto语句,注意标号的书写; 3.while语句,注意条件表达式的设计; 4.do??while语句,注意条件表达式的设计,及while之后的分号; 5.for语句,注意for中三个表达式的一般含义; 6.循环的嵌套; 7.break与continue语句,注意二者之间的区别; 8.循环结构程序设计思想 二.练习 ㈠.填空题: 1.以下程序段的输出结果 y=7,x=21 。 第 6 页 共 15 页 ⑷A.= B.!= C.*(乘) D.( ) 10.若a为整型变量,b为字符型变量,则以下正确的switch语句是( A )。 A.switch((int)x/10) B.switch(b) { case 1:a++;break; { case ‘\\042’;x=a/b;break; case 2:b++;break; case ‘6’;x=a*b;break; case 3:c++;break;} case ‘\\010’;x=a+c;break;} C.switch((int)x/10); D.switch(a/100+10) { case 0:a++;break; { case2 :x=a/b;break; default:b++;break; case6 :x=a*b;break; case 3+1:c++;break; case8 :x=a+c;break; case 3:d++;break;} case10 :x=a-c;break;} ㈢.程序设计题: 1.从键盘输入一个字母,若是大写字母,要求改用小写字母输出。 2.求ax2+bx+c=0的根。a、b、c由键盘输入,设b2-4ac>=0. 3.P104页5.3、5.5、5.8、5.9 第六章 循环控制 程序设计语言C复习 x=y=0;while(x<20)y++,x+=3; printf(“y=%d,x=%d\\n”,y,x); 2.当执行以下程序段后,i的值是 5 、j的值是 4 、k的值是 6 。 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() 0 { 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 ㈡.选择题: 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 页 共 15 页 printf(“\\namax=%f\\namin=%f\\n”,amax,amin); } 8.以下程序段的输出结果 a=12,y=12↙a=16,y=28↙a=16,y=44↙a=16,y=60 。 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循环的循环次数为 10 9 8 7 6 。 a=2;b=10;for(i=b;i<=a;i--,a++) printf(“=”,i); 10.以下程序段的输出结果 8 *6 *4 *2 *0↙ 8 *6 *4 *2 *0 。 for(i=0;i<3;i++,i++) { for(j=10;j>0;j--) { if((j+i)%2){ j--;printf(“*%d ”,j);continue;} --j;--j;printf(“%d ”,j);} printf(“\\n”);} 程序设计语言C复习 7 6 int n=10;while(n>7){ n--;printf(“%d\\n”,n);} 4.以下程序段的输出结果是( B )。 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.以下程序的输出结果是( A )。 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.以下程序的输出结果是( D )。 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的值。 2.求1+2+3+?+100的值。 3.把100~200之间的不能被3整除的数输出。 第 8 页 共 15 页

