以下c语言程序题是怎么做的啊?

[复制链接]
查看11 | 回复1 | 2011-5-1 02:00:03 | 显示全部楼层 |阅读模式
1#includestdio.h
voidmain()
{inta=4,b=5,c=0,d;
d=!a
printf(\"%d\\n\",d);
}
简述程序的过程!
2.#includestdio.h
voidmain()
{
inti=0,a=0;
while(i20)
{
for(;;)/*是什么意思?*/
{
if((i)==0)break;
elsei--;
}
i=11;a=i;
}
printf(\"%d\\n\",a);
}
该程序是怎样的?
#includestdio.h
voidmain()
{
inta[3][3],*p,i;
p=
for(i=0;i9;i)
p=i;
for(i=0;i3;i)
printf(\"%d\",a[1]);
}
完全不懂,帮忙解释哈!告诉其过程!
回复

使用道具 举报

千问 | 2011-5-1 02:00:03 | 显示全部楼层
第一题主要考的是各种运算符之间的优先级别优先级顺序!||

#includestdio.h
voidmain()
{inta=4,b=5,c=0,d;
d=!a
printf(\"%d\\n\",d);
}
//这段程序相当于
#includestdio.h
voidmain()
{inta=4,b=5,c=0,d;
d=(!a)
printf(\"%d\\n\",d);
}
//也可以理解为
1#includestdio.h
voidmain()
{inta=4,b=5,c=0,d,e;
d=!a;//d=!a=0
e=!b;//e=!b=0;
d=d//d=d
e=!c;//e=!c=1;
d=d||e;//d=d||e=1;

printf(\"%d\\n\",d);
}
第二题主要考的是循环语句whilefor以及中断语句break的用法。
#includestdio.h
voidmain()
{
inti=0,a=0;
while(i20)
{
for(;;)/*相当于while(1);死循环)*/
{
if((i)==0)break;
elsei--;
}
i=11;a=i;
}
printf(\"%d\\n\",a);

}
/*
这个程序的执行步骤如下

(1)当i=0时a=0;
while(i20)//i20进入while循环
{
for(;;)//此处为死循环必训进入for循环
{
if((i)==0)//由于i=0,(0除以10的余数为0)所以执行break语句;
跳出for循环
break;
elsei--;//不执行此条语句,已经跳出for循环
}
i=11;//i=i11=011=11;
a=i;//a=ai=011=11;
}

(2)此时i=11a=11;
while(i20)//i=1120进入while循环
{
for(;;)//此处为死循环必训进入for循环
{
if((i)==0)//由于i=1,(1除以10的余数为0)
所以不执行break语句执行else语句
break;
elsei--;//执行此条语句i=i-1=10;
}
i=11;
a=i;
}
(3)此时i=10,a=11由于在for语句中没有执行break语句,所谓不能跳出for循环,所以此时继续执行for循环;
while(i20)//不执行此条语句
{
for(;;)//此处为死循环必训进入for循环
{
if((i)==0)//由于i=0,(10除以10的余数为0)
所以执行break语句;跳出for循环
break;
elsei--;//不执行此条语句,已经跳出for循环;
}
i=11;//i=i11=1011=21;
a=i;//a=ai=2111=32;
}
(4)此时i=21,a=32由于在for语句中没有执行break语句,所谓不能跳出for循环,所以此时继续执行for循环;
while(i20)//i=2120了不满足while(i20)的条件
所以不进入while循环直接执行printf(\"%d\\n\",a);//输出语句
{
。。。。。。。。
。。。。。。。。。
。。。。。。。。
}
printf(\"%d\\n\",a);//输出语句程序结束
*/
第三题
#includestdio.h
voidmain()
{
inta[3][3],*p,i;//定义了一个二维数组一个指针和一个整数变量;
好比是有某男a,某女p。并且某男a有自己的大房子,
房子有三层,每层都有三个房间
p=//将数组的首地址赋予指针,好比是某男a娶了某女P,
某女p也住进了某男a的大房子了;
for(i=0;i9;i)//for循环为为指针赋值,因为指针与数组的地址相同,
其实也是给数组赋值。
好比是某女a住进了大房子之后要布置房间
(因为某男和某女住在同一个楼里,所以也就是在某男的房间),
向9个房间了放不同的东西,一层(a【0】【】)的三个房间放0、1、2;
二层(a【1】【】)的三个房间放3、4、5;
三层(a【2】【】)的三个房间放6、7、8;
p=i;
for(i=0;i3;i)//for循环输出数组的内容
好比是看看第二层楼的三个房间里都放了些什么?是3、4、5
printf(\"%d\",a[1]);//

}
/*这道题主要考的是数组和指针的关系,楼主可以在网上搜一下相关的资料,有很多的。
*/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行