夯实c语言基础(2)
| 题干 | 执行以下程序段执行后的输出结果分别为(  b )、( a  )、(  a )、(  d )。 程序段一: int i=1,a=0; while(i<=10) { if(i%3==0) { a++;i++; } } printf("%d\n",a); 程序段二: int i=1,a=0; while(i<=10) { if(i%3==0) { a++; } i++; } printf("%d\n",a); 程序段三: int i=1,a=0; while(i<=10) { if(i%3==0) a++; i++; } printf("%d\n",a); 程序段四: int i=1,a=0; while(i<=10) { if(i%3==0); { a++; } i++; } printf("%d\n",a); A.3 B.死循环 C.9 D.10 注意体会四段程序的区别 | ||
| 题干 | 以下程序各行的输出结果依次为: 程序一: void main() { int a=3,b=4,c; if(a=b) c=1; else c=0; printf("%d\n",c);//( b ) printf("%d\n",a);//( d ) } 程序二: void main() { int a=3,b=4,c; if(a==b) c=1; else c=0; printf("%d\n",c);//( a ) printf("%d\n",a);//( c ) } A.0 B.1 C.3 D.4 | ||
| 题干 | 以下程序段 int a=7; double x=2.5,y=4.7,z; z=x+a%3*(int)(x+y)%2/4; printf("%f",z); 的显示结果为( b )。 A.1.500000 B.2.500000 C.3.500000 D.4.500000 | ||
| 题干 | 当把以下四个表达式用作if语句的条件表达式时(已知k>=0),有一个选项与其他三个选项含义不同,这个选项是(  d )。 A.k%2 B.k%2==1 C.(k%2)!=0 D.!k%2==1 | ||
| 题干 | 执行以下程序段后a,b,c的值分别为(  b )、( a  )、( d  )。 int i=1,a=0,b=0,c=1; while(i<=10)//循环执行次 { if(i%3==0) { a=a+i; b=b+1; c=c*i; } i++; } printf("%d,%d,%d\n",a,b,c); A.3 B.18 C.81 D.162 | ||
| 题干 | 以下程序段的输出结果为(  c )。 int k=5,n=0; while(k>0) { switch(k) { default:break; case 1:n+=k; case 2: case 3:n+=k; } k--; } printf("%d",n); A.5 B.6 C.7 D.8 | ||
| 题干 | 以下程序段的输出结果为( b  )。 int n=9; while(n>6) { n--; printf("%d",n); } A.987 B.876 C.8765 D.9876 | ||
| 题干 | 有以下两程序段 程序段一: int i=1; while(i<5)//循环执行( b )次 { printf("%d",i); i++; } printf("%d\n",i);//循环结束后i的值为( c ) 程序段二: int i=1; while(i<=5)//循环执行( c )次 { printf("%d",i); i++; } printf("%d\n",i);//循环结束后i的值为( d ) 注意体会两程序段的区别 A.3 B.4 C.5 D.6 | ||
| 题干 | 若有int  a=12; 则分别 执行a+=a;后a的值为( c )。 执行a+=a-=a;后a的值为( a)。 执行a+=a-=a*=a;后a的值为( a )。 A.0 B.12 C.24 D.144 | ||
| 题干 | 下列算术表达式中,不正确的是( d  )。 A.1/2 B.‘a’%7 C.‘a’-‘0’+25 D.(float)1%2 | ||
| 题干 | 下列C语言运算符中,优先级最低的是( d  )。 A.= B.+ C.* D., | ||
| 题干 | 已知int  x=5,y=0;以下语句执行后,y的值为(  b )。 if(x>2&&x<8) y=1; 已知int x=5,y=0;以下语句执行后,y的值为( a )。 if(8>x>2) y=1; A.0 B.1 C.2 D.3 | ||
| 题干 | 以下程序段的输出结果为( c  )。 int k=5; while(--k) printf("%d",k-=3); printf("%d",k); A.8 B.9 C.10 D.11 | ||
| 题干 | 在以下给出的表达式中,与if(E)中的(E)不等价的表达式是(  c )。 A.(!E==0) B.(E>0||E<0) C.(E==0) D.(E!=0) | ||
| 题干 | 以下程序各行的输出结果依次为: void main() { int a=3,b=4; printf("%d\n",a==b);//( a ) printf("%d\n",a=b);//( d ) } A.0 B.1 C.3 D.4 | ||
| 题干 | 以下程序段的输出i和s的结果分别为( d  )和(  a )。 int i=1,s=0; while(i<=10) { s++; i*=2; } printf("%d\n",i); printf("%d\n",s); A.4 B.5 C.15 D.16 | ||
| 题干 | 已知x=2,y=8,执行x*=y-2运算后,x的值为( d  )。 A.18 B.16 C.14 D.12 | ||
| 题干 | 以下语句中,功能与其他语句不同的是( d  )。 A.if(a) printf("%d\n",x); else printf("%d\n",y); B.if(a==0) printf("%d\n",y); else printf("%d\n",x); C.if(a!=0) printf("%d\n",x); else printf("%d\n",y); D.if(a==0) printf("%d\n",x); else printf("%d\n",y); | ||
| 题干 | 已知  int  x=10,y=20,z=30;  以下语句执行后,x、y、z  的结果是( c  )。 if(x>y) z=x;x=y;y=z; 已知 int x=10,y=20,z=30; 以下语句执行后,x、y、z 的结果是( a )。 if(x>y) {z=x;x=y;y=z;} A.x=10,y=20,z=30 B.x=20,y=30,z=10 C.x=20,y=30,z=30 D.x=20,y=30,z=20 注意体会两题的区别 | ||
| 题干 | 表达式  (int)3.6*3的值为(  b )。 A.10 B.9 C.10.8 D.18 | ||
| 题干 | 以下两程序段的输出结果分别为(  b )、( a  )。 程序段一: int a=12345,s=0,t=1; while(a!=0) { s=s*10+a%10; a=a/10; } printf("%d",s); 程序段二: int a=12345,s=0,t=1; while(a!=0) { s=s+a%10*t; a=a/10; t=t*10; } printf("%d",s); A.12345 B.54321 C.5 D.15 | ||
i++和++i的区别


| 题干 | 若有int  j,i=6;执行j=i++;后,变量i,j的值分别为(  b )、(  a )。 若有int j,i=6;执行j=++i;后,变量i,j的值分别为( b )、( b )。 A.6 B.7 C.8 D.9 | ||
| 题干 | 以下程序运行,输出的两个整数分别为(  c )、(  c )。 #include "stdio.h" void main() { int a,b; b=(a=3+2); printf("%d\n",a); printf("%d\n",b); } A.0 B.1 C.5 D.6 | ||
| 题干 | 以下选项中非法的表达式是(  d )。 A.0<=x<100 B.i=j==0 C.(char)(65+3) D.x+1=x+1 | ||
| 题干 | 有以下四程序段,执行的结果分别为:(  b )、( d  )、(  b )、(  a )。 //程序段一 int s=0,j=1,i=1; while(i<=4) { j=j*i; s=s+j; i++; } printf("%d",s); //程序段二 int s=0,j=1,i=1; while(i<=4) j=j*i; s=s+j; i++; printf("%d",s); //程序段三 int s=0,j=1,i; for(i=1;i<=4;i++) { j=j*i; s=s+j; } printf("%d",s); //程序段四 int s=0,j=1,i; for(i=1;i<=4;i++) j=j*i; s=s+j; printf("%d",s); 注意体会四段代码的异同 A.24 B.33 C.35 D.死循环 | ||