(06)以下程序输出的结果是(C)
main()
{inta=5,b=4c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
A)-1B)1
C)0D)无结果
(07)下面程序的输出结果是(A)
main()
{intn=0;
while(n++<=1)printf(“%d\t”,n);printf(“%d\n”,n);
}
A)123B)012
C)112D)122
(08)若要使程序的输出值为2,则应该从键盘给n输入的值是(B)
main()
{ints=0,a=1,n;
scanf(“%d”,&n);
do{s+=1;a=a-2;}
while(a!
=n);
printf(“%d\n”,s);
}
A)-1B)-3
C)-5D)0
(09)以下循环体的执行次数是(C)
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf(“%d\n”,i);
}
A)3B)2
C)1D)0
(10)以下程序的输出结果是(A)
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);}
printf(“$\n”);}
A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
(11)执行下面的程序后,变量k的值为(A)
intk=3,s[2];s[0]=k;k=s[1]*10;
A)不定值B)33
C)30D)10
(12)以下程序的输出结果是(D)
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;in[i]=n[i]+1;
printf(“%d\n”,n[k]);
}
A)不确定的值B)2
C)1D)0
(13)以下程序的输出结果是(B)
main()
{inti,k=5,a[10],p[3];
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf(“%d\n”,k);
}
A)20B)21C)22D)23
(14)以下各组选项中,均能正确定义二维实型数组s的选项是(D)
A)①floats[3][4];
②floats[][4];
③floats[3][]={{1},{0}};
B)①floats(3,4);
②floats[3][4];
③floats[][]={{0};{0}};
C)①floats[3][4];
②floats[3][];
③floats[][4];
D)①floats[3][4];
②floats[][4]={{0},{0}};
③floats[][4]={{0},{0},{0}};
(15)已有定义:
intx=3,y=4,z=5;则表达式!
(x+y)+z-1&&y+z/2的值是(C)
A)2B)0
C)1D)6
(16)以下程序的输出结果是(D)
voidf(intx,inty)
{intt;
if(x{t=x;x=y;y=t;}
main()
{inta=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf(“%d,%d,%d\n”,a,b,c);
}
A)3,4,5B)5,3,4C)5,4,3D)4,3,5
(17)对以下函数定义,若选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)
voidfun(intn,doublex){……}
A)fun(inty,doublem);B)k=fun(10,12.5);
C)fun(x,n);D)voidfun(n,x);
(18)以下程序的输出结果是(B)
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;printf(“%3.0f\n”,fun((int)fun(a+c,b),a-c));
}
A)编译出错B)9C)21D)9.0
(19)程序段如下,则正确的执行结果是last=(C)
intk=0;
while(k++<=2);printf(“last=%d\n”,k);
A)2B)3
C)4D)无结果
(20)假定int类型变量占用两个字节,若有定义:
intx[10]={0,2,4};则数组x在内存中所占字节数是(D)
A)3B)6
C)10D)20
三、1、根据下面的公式求y的值。
3x+1(x>10)
y=2x-5(10≥x≥5)
x+3(x<5)
#include“stdio.h”
main()
{floatx,y;
(1)scanf(“%f”,&x);
if(
(2)x>10)
(3)y=3*x+1;
else
if((4)x>=5)
(5)y=2*x-5;
else
y=x+3;
printf(“y=%f\n”,y);
}
2、打印下面的图形。
*
***
*****
*******
#include“stdio.h”
main()
{inti,j,k;
for(i=1;
(1)i<=4;i++)
{for(k=1;
(2)k<=4-i;k++)
(3)printf(“”);
for(j=1;(4)j<=2*i-1;j++)
printf(“*”);
(5)printf(“\n”);}
}
四、1、从键盘上输入10个整数,利用一维数组a[10]进行从小到大排序后依次打印出来。
main()
{inti,j,a[10];
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<9;i++)
{for(j=i+1;j<10;j++)if(a[i]>a[j]){a[i]=a[i]+a[j];a[j]=a[i]-a[j];a[i]=a[i]-a[j];}
printf(“%d”,a[i]);}
printf(“%d”,a[9]);}
2、一个班有20名同学,“网络编程语言”考试结束后产生20个成绩,求这门课程的总分、最高分及最低分。
要求:
输入数据和打印结果由主函数完成,计算总分、最高分及最低分由函数fun完成。
#include“stdio.h”
#defineN20
intsum=0,max=0,min=100;
voidfun(inta[N])
{inti;
for(i=0;i{sum=sum+a[i];
if(a[i]>max)
max=a[i];
if(a[i]min=a[i];}
}
main()
{ints[N],i;
for(i=0;iscanf(“%d”,&s[i]);
fun(s);
printf(“sum=%d,max=%d,min=%d\n”,sum,max,min);
}
B一、(01)已知:
intx=1,y=2,z;则执行:
z=x>y?
++x:
++y,z的值为(C)
A)1B)2C)3D)4
(02)以下选项中可作为C语言合法整数的是(C)
A)10110BB)0386
C)0XffaD)x2a2
(03)下列选项中,不能用作标识符的是(D)
A)_1234_B)_1_2C)int_2_D)2_int_
(04)C语言提供的合法的数据类型关键字是(D)
A)swicthB)cherC)CaseD)default
(05)设intx=1,y=1;表达式(!
x||y--)的值是(B)
A)0B)1
C)2D)-1
(06)设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,
则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(B)
A)1B)2
C)3D)4
(07)以下选项中,与k=n++完全等价的表达式是(A)
A)k=n,n=n+1
B)n=n+1,k=n
C)k=++n
D)k+=n+1
(08)若给定条件表达式(M)?
(a++):
(a--),则其中表达式M(C)
A)和(M==0)等价
B)和(M==1)等价
C)和(M!
=0)等价
D)和(M!
=1)等价
(09)若有定义:
inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)
A)1.4B)1
C)2.0D)2
(10)设有语句:
inta=3;则执行了语句a+=a-=a*a;后,变量a的值是(D)
A)3B)0
C)9D)-12
(11)有以下程序,程序运行后的输出结果是(D)
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
printf(“%d\n”,x);
}
A)3B)5
C)-1D)-2
(12)若变量已正确说明为float型,通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B)
A)10<回车>
22<回车>
33<回车>
B)10.0,22.0,33.0<回车>
C)10.0<回车>
22.033.0<回车>
D)1022<回车>
33<回车>
(13)以下程序的输出结果是(C)
main()
{intk=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
A)8,6B)8,3
C)6,4D)7,4
(14)C语言规定,调用一个函数时,实参和形参变量之间的数据传递是(B)
A)地址传递
B)值传递
C)由实参传给形参,并由形参传回来给实参
D)由用户指定传递方式
(15)为判断char型变量m是否是数字,可以使用表达式(B)
A)0<=m&m<=9B)’0’<=m&&m<=’9’C)’0’<=m&&m<=9
D)以上答案都是错误的。
(16)以下程序的输出结果是(B)
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf(“%d\n”,s);
}
A)6B)5
C)10D)12
(17)若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:
(A)
w= 1;
x = 2;
y= 3;
z=4;
m=(ww:
x;
m= (m m:
y;
m=(mm:
z;
A)1B)2C)3D)4
(18)以下描述中正确的是:
C
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后表达式值变为零("假")的操作
D)do-while循环中,根据情况可以省略while
(19)若有说明:
int a[3][4]; 则对a数组元素的正确引用是_C_。
A) a[2][4] B) a[1,3]
C) a[1+1][0] D) a
(2)
(1)
(20)C语言中的函数是(D)
A)可以嵌套定义
B)不可以嵌套调用
C)嵌套调用,但不能递归调用
D)嵌套调用和递归调用均可
二、(01)以下程序的输出结果是(B)
main()
{intx=5;
if(x++>5)printf(“%d\n”,x);
elseprintf(“%d\n”,x--);
}
A)7B)6
C)5D)4
(02)以下程序的输出结果是(B)
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)printf(“%d\n”,d);
elseif((c-1>=d)==1)printf(“%d\n”,d+1);
elseprintf(“%d\n”,d+2);
}
A)2B)3
C)4D)编译时有错,无结果
(03)有以下程序,程序运行后的输出结果是(C)
main()
{inta=7,b=8,*p,*q,*r;
p=&a;
q=&b;
r=p;
p=q;
q=r;printf(“%d,%d,%d,%d\n”,*p,*q,a,b);
}
A)8,7,8,7B)7,8,7,8C)8,7,7,8D)7,8,8,7
(04)以下程序的输出结果是(A)
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;}
printf(“a=%d,b=%d\n”,a,b);
}
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
(05)以下程序的输出结果是(C)
main()
{inta=2,b=1,c=2;
if(bif(b<0)c=0;
c++;b++;
printf(“b=%d,c=%d\n”,b,c);
}
A)b=1,c=2B)b=1,c=0C)b=2,c=3D)b=1,c=1
(06)以下程序的输出结果是(B)
main()
{intx=0,y=5,z=3;
while(z-->=0&&++x<5)y=y–1;
printf(“%d,%d,%d\n”,x,y,z);