永发信息网

高手帮忙详解C语言题。

答案:2  悬赏:0  手机版
解决时间 2021-08-10 17:10
  • 提问者网友:浩歌待明月
  • 2021-08-10 12:06

一、写出下面程序运行的结果(               )

main()

{int i, j ;

for(i=0 ; i<3 ; i++){

for(j=4 ; j>=0; j--){

if((j+i)%2){

j-- ;

printf("%d," , j) ;

continue ; }

--i ; j--;

printf("%d," , j)}

    }

  }

}

二、有下列程序程序:

main()

{char p[20]={'a' , 'b' , 'c'  , 'd'} , q[ ]="abc",r[ ]="abcde" ;

strcpy(p+strlen(q) , r) ; strcat(p,q) ;

printf("%d %d\n",sizeof(p) , strlen(p)) ; }

程序运行后输出结果是()

A 20  9       B 9  9        C  20  11       D11  11

三、下面程序段运行结果是(   )

char x[ ]="the teacher" ; int i=0 ;

while (x[++i]!='\0')  if (x[i-1]=='t') printf("%c",x[i]) ;

三道题,每道题最好附带解释说明!谢谢!

 

最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-08-10 12:21

步数   i   j  (i+j)%2    if条件 {    j--  printf(j)   continue    }    --i    j--    print(j)    
1    0  4    0    假,不执行if语句    -1    3    3
2    -1  2    1    真,执行if语句   1    1    j>0,继续进入内循环    
3    -1  0    1    真,执行if语句  -1    -1    j<0,不在进入内循环,返回外循环


.....    0  4   (以下无限循环,略过)


所以运行结果为:3,1,-1,3,1,-1,………………(3,1,-1无限循环)


---------------------------------------------------------------------------------------------------------


char p[20]={'a' , 'b' , 'c'  , 'd'} , q[ ]="abc",r[ ]="abcde" ;


strcpy(p+strlen(q) , r) ;    


strcat(p,q) ;    


printf("%d %d\n",sizeof(p) , strlen(p)) ;    


备注:strcpy(str1,str2)作用,把str2拷贝到str1;strcat(str1,str2)作用,把str2附加到str1后面;sizeof作用是得到p占多少bytes;strlen是得到字符串的长度。



所以结果为:C、20  11


---------------------------------------------------------------------------------------------------------


char x[ ]="the teacher" ;    //定义一个字符数组,并赋初值“the teacher”


 int i=0 ;    //定义一个变量i


while (x[++i]!='\0')  if (x[i-1]=='t') printf("%c",x[i]) ;    


备注:c语言中每个字符串后都隐藏的自动跟个'\0'表示字符串结束。



所以结果为:he

全部回答
  • 1楼网友:时间的尘埃
  • 2021-08-10 13:47
唉 你直接在C编译器上运行一次不就得了。感觉像考国家二级的吧?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯