C语言选择题题库2 下载本文

18.以下程序的运算结果是(D)

#include\“\\n%d\\n”,k

19.执行以下程序段后,变量a,b,c的值分别是(B) int x=10,y=9;int a,b,c;a=(--x==y++)?--x:++y;b=x++;c=y; A:a=9,b=9,c=9 B:a=8,b=8,c=10 C:a=9,b=10,c=9 D:a=1,b=11,c=10 20.下面程序运算结果是(B)

main(){int a=5,b=4,c=3,d=2;if(a>b>c)printf(“%d\\n”,d+1).;else if((c-1>=d)==1);else printf(“%d\\n”,d+2);}

A:2 B:3 C:4 D:编译时出错,无结果 21.下程序的输出结果是(C)

main(){int a=-1,b=1,k;if((++a<00&&!(b--<=0))printf(“%d\\n”,a,b);else printf(“%d\\n”,b,a);} A:-1 1 B:0 1 C:1 0 D:0 0 22.下面程序的输出结果是(C)

main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;elsey+1.0 printf(“%f\\n”,y);} A:0.000000 B:0.250000 C:0.500000 D:1.000000 23.下面程序输出结果是(C)

main(){int a=2,b=-1,c=2;if(a

A:a=2,b=1 B:a=1,b=1 C:a=1,b=0 D:a=2,b=2 25.下面程序的输出结果是(A) main(){int

a=15,b=21,m=0;switch(a%3);case0:m++,break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\\n”,m);} A:1 B:2 C:3 D:4 二、填空题

1.C语言提供三种逻辑运算符是&& || !

2.条件“22&&x<3||x<-10 3.设y为int型变量,请写出描述“y是奇数”的表达式y%2==1 4.设x,y,z为int型变量,请写出描述“x或y中有一个小于z” 的表达式:x

5.x,y,z均为int型变量,请写出描述“x,y和z中有两个位负数”的 表达式((x<0&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0)) 6.有int a=3,b=4,c=5;则下列表达式的值是(1)!(a+b+c-1&&b+c/2

7.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是 0。 8.若a=6,b=4,c=2,则表达式!(a-b+c-1&&b+c/2)的值是 1。 9.若a=2,b=4,则表达式!(x=a||(y=b&&0))的值是 0。 10.若a=1,b=4,c=3,则表达式!(a

12.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是 1。

13.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b&&(n=b>c)后,n的值是0,m的值是? 14.以下程序实现:输入三个整数,按从小到大的顺序进行输出。请填上正确的内容。#include “stdio.h”void main(){int x,y,z,c;scanf(“%d%d%d”,&x,&y,&z);if(y

15.以下程序对输入的一个小写字母,将字母循环后移5个位置输出。如‘a’变成‘f',‘w'变成‘b'。请填入正确的内容。 #include “stdio.h” void main (){char c;c=getchar();if(c>=‘a'&&c<='u'【1】else if (c>‘v'&&c<='z')【2】putchar}

【1】c=c+5 【2】c=c-21

16.以下程序实现输出x,y,z三个数中最大者。请填空。

#include “stdio.h” void main (){int x=4,y=6,z=7;int(【1】);if(【2】)u=x;else u=y;if(【3】)v=u;else v=z;printf(“v=%d”,v);} 【1】u,v【2】x>y【3】u>x

17.以下程序的功能是判断输入的年份是否闰年。请填空。 #include “stdio.h” void main (){int y,f;scanf(“%d”,&y);if(y@0==0)f=1;else if(【1】)f=1;else【2】;if(f)printf(“%d is”,y);elseprintf(“%d is not”,y);printf(“a leap year\\n”);} 【1】y%4==0&&y0!=0【2】f=0

18.输入某个职工的工资,根据不同档次扣除所得税,然后计算实发工资。扣税标准如下。 (1)若工资低于850元,则不扣税。

(2)若工资在850至1500之间,则扣税比例为1% (3)若工资在1500至2000之间,则扣税比例为1.5% (4)若工资大于2000之间,则扣税比例为2%

要求:输入工资为负数,则显示出错信息。请填上正确内容。

#include “stdio.h” void main (){foat gz,rfgz;printf(“plase input a float gz:\\n”);scanf(“%f”,&gz);printf(“gz is %7.2f\\n”,gz);if(gz<0) printf(“error input again!\\n”);else if(【1】)rfgz=gz;else if(【2】)rfgz=gz-gz*0.01;else if(【3】)(【4】);else【5】;if(gz>0)printf(“gz is %7.2f,rfgz is %7.2f.\\n”,gz,rfgz);} 【1】gz<850【2】(gz>=850)&&(gz<1500)【3】gz>=1500)&&(gz<2000)【4】rfgz=gz-gz*0.015【5】rfgz=gz-gz*0.020

3.3循环结构程序设计 一、选择题

1.下述循环的循环次数是(B) int k=2;while(k=0)printf(“%d”,k);k--;printf(“\\n”; A.无限次 B.0次 C.1次 D.2次 2.有以下程序段:

int k=0;while(k=1)k++;while循环执行的次数是(A)

A.无限次 B.有语法错误,不能执行 C.一次也不执行 D。执行一次 3.下述语句执行后,变量k的值是(B) int k=1;while(k++<10);

A.10 B.11 C.9 D.无限循环,值不定 4.有以下程序:

#includevoid main(){int n=10;while(n>7){n=n-1;printf(“%d”,n);}}以上程序输出的结果是(B)

A.1098 B.987 C.10987 D.9876 5.有以下程序

#includevoid main(){int k=5;while(--k)printf(“%d”,k-=3);}以上输出的结果是(A) A.1 B.2 C.4 D.死循环 6.读下面程序:

?#include“stdio.h”?#include“match.h”{float x,y,z;scanf(“%f,%f”,&x,&y);z=x/y;while(1){if (fabs(z)>1.0){x=y;y=z;z=x/y;}else break;}prinf(“%f”,y)}若运行时从键盘上输入“3.6,2.4”,则输出的结果是(B)

A:1.500000 B:1.600000 C:2.000000 D:2.400000

7.运行以下程序后,如果从键盘上输入china,则输出结果为(C) #include“stdio.h”void main (){int v1=0,v2=0;char ch;while((ch=getchar())!=‘#')switch(ch){case ‘a':default:v1++;case‘o':v2++;}printf(“%d,%d,”,v1,v2);} A.2,0 B.5,0 C.5,5 D.2,5

8.若执行下面程序时,输入“Adescriptor”,则以下程序的输出结果是(D) #include“stdio.h”void main(){charc;int v0=0,v1=0,v3=0;do switch(c=getchar()){case‘a':case‘A':case‘e':case‘E':case‘i':case‘I': case‘o':case‘O':case‘u':case‘U':v1++;

default:v0++;v2++;}while{c!=‘\\n');printf(“\\nvo=%d,v1=%d,v2=%d”,v0,v1,v2);} A.vo=7,v1=4,v2=7 B.vo=8,v1=4,v2=8 C.vo=11,v1=4,v2=11 D.vo=12,v1=4,v2=12 9.下述程序的输出的结果是(B)

#include“stdio.h”void main(){char c=‘A';int k=0;do{switch(c++){case‘A':k++;break;case‘B':k--;case‘C':k+=2;break case‘D':k%=2;continue;

case‘E':k*=10;break;default:k/=3;}k++;}while(c<‘G');printf(“k=%d”,k);} A:k=3 B:k=4 C:k=2 D:k=0 10.以下程序输出结果是(B)

#include“stdio.h”void main(){int x=3;do{printf(“%d\\n”,x-=2);}while(!(--x));} A.输出的是1 B。输出的是1和-2 C.输出的是3和0 D.是死循环 11.对于下面(1),(2)两个循环语句,(A)是正确的描述。 (1)while(1);(2)for(;;);

A.(1)(2)都是无限循环 B.(1)是无限循环,(2)错误 C.(1)循环一次,(2)错误 D.(1)(2)都错 12.对于下述for循环语句,下列说法正确的是(B) int i,k;for(i=0,k=-1;k=1;i++,k++)printf(“***”); A.判断循环结束的非法条件 B.是无限循环 C.只循环一次 D.一次也不循环 13.下述for语句的循环次数是(A)

int i,x;for(i=0,x=0;i<=9&&x!=876;i++)scanf(“%d”,&x);

A.最多循环10次 B。最多循环9次 C.无限循环 D.一次也不循环 14.若i,j已定义为int型,则以下程序段中内循环的总次数是(A) for (i=5;i;i--)for(j=0;j<4;j++)

A.20 B.24 C.25 D.30 15.下述循环语句是(C)

for(a=0,b=0;a<3&&b!=3;a++);

A.是无限循环 B.循环次数不定 C.循环3次 D.循环4次 16.以下循环体的执行次数是(C)

main(){int i,j ;for(i=0,j=1;i

17.以下程序的输出结果是(D)main(){int x=10,y=10,i;for(i=0;x>8;y++i)printf(“%d,%d”,x--,y);}

A.10,19,2 B.9,87,6 C.10,99,0 D.10,109,1 18.以下程序执行后,sum的值是(C).

#include“stdio.h”void main(){int i,sum;for(i=1;i<6;i++)sum+=i;printf(“%d\\n”,sum);} A.15 B.14 C.不确定 D.0

19.以下程序执行后,sum的值是(C)

#include“stdio.h”void main(){int a=0, i;for(i=1;i<5);i++){switch(i){case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}}printf(“%d\\n”,a);} A.31 B.13 C.10 D.20

20.若下述程序执行时按如下方式输入数据: abcdef<回车>则该程序的运行结果是(A) #include“stdio.h”void main(){int k;char c;for(k=0;k<=5;k++){c=getchar();putchar(c);}printf(“\\n”);} A.abcdef B.a C.a D.adcdef 21.以下程序的输出结果是(B)

#include “stdio.h” void main(){int k=0,m=0;int i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf(“k=%d,m=%d”,k,m);}

A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5 22.以下程序的输出结果是(C) #include“stdio.h”void main(){int x;for(x=1;x<=10;x++)if(++x%2==0)if(++x%3==0)if(++x%5==0)printf(“%d,”,x);} A.输出31,61,91 B.输出30,60,90 C.不输出任何内容 D.输出29,59,89 23.下述程序的输出结果是(D) #include“stdio.h”void main(){int x=3,y=6,z=0;while(x++!=(y-=1(){z++;if(y=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf(“%d\\n”,a);}

A.7 B.8 C.9 D.10

25.设x,y均为int型变量,则执行下面的循环后,y的值为(C)

for(y=1,x=1;y<=50;y++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;} A.2 B.4 C.6 D.8 26.以下程序的输出结果是(A)