閱讀下述程序,寫(xiě)出運(yùn)行結(jié)果。
#include
main()
{
int a,y;
a=10;
y=0;
do
{
a+=2;
y+=a;
printf("a=%d,y=%d\n",a,y);
if (y>20)
break;
} while (a=14);
printf("a=%d\n",a);
}
答案:
a=12 y=12
a=16 y=28
a=16
提示:首先第一次的結(jié)果不用說(shuō)了?需要的話,請(qǐng)先把C的書(shū)再讀一遍先!
a=12 y=12
接著大家要看仔細(xì),if(y>20) break;難點(diǎn)在此,意思是當(dāng)上面的Y>20時(shí)結(jié)束這一段,再去判斷While的條件,所以這里會(huì)接著加,a=12+2=14 y=14+12=26 ok!26>20,我們?nèi)ヅ袛鄔hile的條件吧,a=14,此時(shí)a就正好=14,再次循環(huán)·a=14+2=16 y=12+16=28,然后28>20跳出,a不等于14再次跳出,執(zhí)行最后一句輸出,a=16.
#include
main()
{
static int a[5][5]={
{1,2,3,4,0},
{2,3,4,0,6},
{3,0,1,7,5},
{0,0,2,4,1},
{8,4,3,2,7} };
int i,j;
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if (a[j]==0)
break;
printf("M",a[j]);
}
printf("\n");
}
答案:
1 2 3 4
2 3 4
3
8 4 3 2 7
個(gè)人解析下:
首先我們從for (j=0;j<5;j++)看起,往下是
{
if (a[j]==0)
break;
printf("M",a[j]);
}
提示: 把a(bǔ)[5][5]二維數(shù)組中的每列中從左至右第一個(gè)為零的數(shù)之前的數(shù)輸出!
for (i=0;i<5;i++) 就是5行
#include
#include
fun(char *w,int n)
{
char t,*sl,*s2;
s1=w;
s2=w+n-1;
while (s1 {
t=*s1++
*s1=*s2--
*s2=t;
}
}
main()
{
char *p;
p="1234567";
fun (p,strlen(p));
puts(p);
}
答案:1711717
提示: 主要是認(rèn)清楚S1=? S2=? 首先 S1=W,這S1存的是字符串W的首地址,而S2=W+N-1=P+7-1 OK,也就是W中最后一個(gè)字符的地址·
相關(guān)推薦:計(jì)算機(jī)軟考程序員備考:程序設(shè)計(jì)知識(shí)點(diǎn)匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |