当前位置:IT认证>计算机二级

问题:

[单选] 下列程序的输出结果是(  )。
main()
(int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf(”%d%d%d\n”,i,j,k);
)

A . 1 2 3
B . 2 3 4
C . 2 2 3
D . 2 3 3

设变量已正确定义,则以下能正确计算f=n!的程序是(  )。 f=0;for(i=1;i<=n:i+十)f*=i;。 f=1for(i=1:i<n;i十+)f*=i;。 f=l:for(i=n;i>1;i十+)f*=i;。 f=1:for(i=n;j>=2;j--)f*=i;。 若有以下的定义:“int t[a][2];”,能正确表示t数组元素地址的表达式的是(  )。 &.t[3][2]。 t[3]。 t[1]。 t[2][2]。 下列程序:int fun(int x[],int n){  static int sum=0,i;for(i=0;i<n;H++)sum+=x[i];return  sum:main(){int a[]={1,2.3,4,5),b[]={6,7,8,9),s=0;s==fun(a,5)+fun(h,4),printf(”%d\n”.s);f程序执行后的输出结果是(  )。 45。 50。 60。 55。 有以下程序:#include<stdio.h>void WriteStr(char*fn.char*str){FILE*fpfp=fopen(fn,”w”);fputs(str,fp);fclose(fp);)main(){  WriteStr(”t1.dat”,”start”);WriteStr(”t1.dat”,”end”);)程序运行后,文件t1.dat中的内容是(  )。 start。 end。 starte nd。 endrt。 有以下程序:main(){  int x=102,y=012;printf(”%2d,%2d\n”,x,y);}执行后输出结果是(  )。 10,01。 02,12。 102,10。 02,10。 下列程序的输出结果是(  )。
main()
(int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf(”%d%d%d\n”,i,j,k);
)
参考答案:

  参考解析

D。【解析】本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“十十”出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加1。当逻辑与运算符“&&”两边的运算对象都为真时,逻辑表达的值才为真;当逻辑或运算符“||”只要一个值为l,值就为l。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时J的值等于3,所以表达式++j一3成立,即表达式的值为l;1与任何数都为进行或(||)运算,结果都为1,因此k一3的表达式i++是先运算后自加,因此运算时i为l,所以i十+一1成立,自加1后i一2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。

在线 客服