一、写出下面程序运行的结果( )
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]) ;
三道题,每道题最好附带解释说明!谢谢!
步数 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