文明施工日常检查表:我想请教些问题,不胜感激

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 11:12:13
有以下的程序
#include<stdio.h>
int abc(int u,int v);
main()
{int a=24,b=16,c;
c=abc(a,b);
printf("%d\n",c);
}
int abc(int u,int v)
{int w;
while(v)
{w=u%v;u=v;v=w}
return u;
}
输出的结果是~答案是8啊。
怎么得出来的啊?这个程序什么意思啊
2以下的程序段输出的结果是~
char str[]="ABCD",*p;
p=str;
printf(%d\n", *(p+4));
答案是0,怎么得出来的啊????不懂char str[]="ABCD"什么意思?
3。以下程序的输出的结果是
#include <stdio.h> #include<string.h>
main()
{char w[] [10]={'ABCD","EFGH","IJKL","MNOP"};int k;
for (k=1;k<3;k++)
printf("%s\n",&w[k] [k]);
}
答案是 EGH
KL
什么意思?怎么得到的啊?

这些都是简单的C++程序啊,找个IDE(比如TC之类的)稍为跟踪一下,也很容易看懂的。

只简单说一下
1 求a与b的最大公约数;
2 p其实就是一个指向字符串str的第一个字符的指针,p+4也就是第5个字符了,但这个字符不存在,所以是#0,输出格式中%d把字符转换成对应的ASCII码,#0对应的就是0了;
3 好像后两个程序都是为了演示什么,没特别的意思,就是输出字符串w[1]的后3个字符和w[2]的后2个字符,&w[k]取得w[k]的地址,而w[k]这一个字符串类似于一个链表,w[k][k]指向了它后面的字符串,再加上格式串%s要求输出字符串,由此整个字符串的后半部分被输出。