第1题 单选题
若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 ()
A. a <> 0
B. !a
C. a=0
D. a!=0
第2题 单选题 D
基础题
以下程序输出结果是
c
#include< stdio.h >
void main()
{
int m=5;
if (m++ > 5)
printf (“%d\n”,m);
else
printf (“%d\n”,m–);
}
A. 7
B. 6
C. 5
D. 4
B
中等题:卡点在于后置++,第一个if不满足,但是后置++后第二个满足,很多人就直接踩坑进去了。后置–是先运算再–,所以它是先打印的,打印也是一种运算。m最后会变成5,但是打印出来不会是5.
第3题 单选题
请读程序:
c
#include < stdio.h>
void main()
{
float x,y;
scanf(“%f”,&x);
if(x < 0.0)
y=0.0;
else if((x < 5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if( x < 10.0 )
y=1.0/x;
else
y=10.0;
printf(“%f\n”,y);
}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是
A. 0.000000
B.0.500000
B这里考的就是短路
第4题 单选题
执行下面语句后的输出为( )
c
int i= -1;
if (i <=0)
printf(“****\n”);
else
printf(“%%%%\n”);
A. ****
B. %%%%
C. %%%%C
D. 有语法错,不能执行
基础题,直接循环判断
第5题 单选题
为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与 () 组成配对关系。
A. 其上面距它最近的,并且没有其他else与其配对的if相配对
B. 在同一行上的if
C. 缩排位置相同的if
D. 在其之前未配对的if
基础题:纯概念背诵
但是如果它写成代码的话就要注意了
第6题 单选题
以下程序的输出结果是
c
#include<stdio.h>
void main()
{
int a= -1,b=1;
if( (++a <0) && !(b-- <=0) )
printf(“%d %d\n”,a,b);
else
printf(“%d %d\n”,b,a);
}
A. -1 1
B. 0 1
C. 1 0
D. 0 0
中等题:实际上就一个短路,前置++也不影响它
第7题 单选题
若变量都已经说明,则以下程序段输出为( )
c
a=10;b=50;c=30;
if (a > b)
a=b; b=c; c=a;
printf(“a=%db=%dc=%d\n”,a,b,c);
A. a=10 b=50 c=10
B. a=10 b=30 c=10
C. a=50 b=30 c=10
D. a=50 b=30 c=50
中等题:但是它的坑点在于if后面如果不用大括号,就只能接一个语句。
一行可以接多个语句,但是跟if的只有第一个。这个坑点和上一题有点像
第8题 单选题
若执行下面的程序从键盘输入3和4,则输出是______
c
#include<stdio.h>
void main()
{
int a,b,s;
scanf(“%d%d”,&a,&b);
s=a;
if(a < b)
s=b;
s=s*s;
printf(“%d\n”,s);
}
A. 14
B. 16
C. 18
D. 20
基础题
第9题 单选题
请读程序:
c
#include<stdio.h>
void main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
}
printf(“a=%d,b=%d\n”,a,b);
}
上面程序输出结果是
A. a=2,b=1
B. a=1,b=1
A它考的是break和穿透,break只是停掉当前的循环,但是外面的那个不会出去。
它还是会穿透到case2
第10题 单选题
若有定义: float w; int a, b; 则合法的switch语句是( )
A.
switch(w)
{ case 1.0: printf(“*\n”);
case2.0: printf(“**\n”);
}
B.
switch(a);
{ case 1 printf(“\n");
case 2 printf("\n”);
}
C.
switch(b)
{
case 1: printf(“\n");
case 2: printf("\n”);
}
D.
switch(a+b);
{
case 1: printf(“*\n”);
default: printf(“\n”);
case 2 }
中等题:考语法规则:switch只可以接整数,case后面要有:switch后面没有;
第11题 填空题
c
#include < stdio.h >
void main( )
{
int i=0,j=0,a=6;
if( ((++i > 0) || (j++ > 0)) )
a++;
printf(“i=%d,j=%d,a=%d”,i,j,a);
}
结果:________
第12题 填空题
请写出以下程序的输出结果——。
c
#include<stdio.h>
void main()
{
int a=100;
if(a>100)
printf(“%d\n”,a>100);
else
printf(“%d\n”,a<=100);
}
中等题:看你有没有反映过来,真为1,假为0
第13题 填空题
若 int i=10; ,则执行下列程序后,变量i的正确结果是——。
c
switch(i)
{
case 9: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
中等:default也会被穿透
第14题 填空题
下列程序段的输出结果是 ____________ 。
c
int n=‘c’;
switch(n++)
{
default: printf(“error”);break;
case ‘a’:case ‘A’:case ‘b’:case ‘B’:printf(“good”);break;
case ‘c’:case ‘C’:printf(“pass”);
case ‘d’:case ‘D’:printf(“warm”);
}
中等:还是从c开始穿透