第一道: i=1时,判断i++<4就相当于i<4,i=i+1中间省略,当i=4的时候,判断i++<4相当于i<4,i=i+1,因为条件不成立,所以退出循环,但是i已经执行自加了,所以i=5,所以要注意的是i=i+1并不是必须i<4这个条件成立的时候才执行的
第二道:i='A',判断i<'I',成立执行第一个printf,但因为没有加括号,for的作用域只有一行,所以第二个printf不会被执行,所以输出a;第二次循环,第三次,直到每四次,i++,i++过后,i='I',所以不执行了,所以最后输出的是一个换行,楼主可以在这段程序代码后面加一句printf("");如果接在aceg后面,那就是我说错了反之则是对的
第三道:这个程序的实质是这样的,求所有50以内的5和3的最小公倍数的和也就是15,30,45,加起来等于90,再加上s本身等于1,所以等于91,因为只有等于5和3的倍数的时候,条件!(i%5)&&!(i%3)才会成立也就是说i%5==0并且i%3==0的时候条件才成立
DA1 DB„ABCDEFGHI‟
应该是:
DA1 DB "ABCDEFGHI" ;吧,就是定义A-I这7个字符计算机中,'A'的ASCII码值是41H,'1'的ASCII码值31H,
所以SUB AL,10H,就是把'A'变成'1';
而BCDEFGHI这8个字符,都是依次比前一个字符大1(按字每表顺序),'23456789'也是这样。
所以依次sub 10h后,就变成了'123456789'。
数组是从0开始的 循环中i和j最大应该是25,而且你的两个for循环中间加printf("%c",a[i]; 那个是做什么用的啊?改后是这样的 你对照下
#include <stdioh>
void main()
{
char a[]="abcdefghijklmnopqrtuvwxyz";
int i,j;
for(i=25;i>=0;i--)
{
for(j=0;j<=25-i;j++)
printf("%c",a[j]);
printf("\n");
}
}
#include <stdioh>
#include <stringh>
int main()
{
char a[10] = "abcde",b[8]= "fghi";
strcpy(a+3,b+1);
printf("%s %d ",a,strlen(a));
}
abcghi 6
a=a[0]
b=a[1]
c=a[2]
d=a[3]
e=a[4]
\0 = a[5]
f=b[0]
g=b[1]
h=b[2]
i=b[3]
\0=b[4]
strcpy(a+3,b+1);
a[0]+3 = b[0]+1 =>a[3] = b[1]=>
a=a[0]
b=a[1]
c=a[2]
d=a[3] => g=b[1]
e=a[4] => h=b[2]
\0 = a[5] => i=b[3]
=a[6] => \0=b[4]
strlen("abcghi") =6
# include <stdioh>
main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<2i+1;j++)
{
printf("%c",65+j);
}
printf("\n");
}
}
应该能看得懂吧,不懂再追问~~
以上就是关于3道c语言问题 求过程(最好详细点,谢谢)全部的内容,包括:3道c语言问题 求过程(最好详细点,谢谢)、汇编程序,急!、请大家给我指正一下这个C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)