2008年下半年软件考试因故推迟了,这未尝不是一件好事,对于那些准备还不够充分的考生来说,现在正是查漏补缺的好时机,本站为您整理了考前练习题,希望对您有所帮助,祝您考出好成绩!
1.#include <stdio.h>
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("%4d",a[j]);
}
printf("\n");
}
答案:
1 2 3 4
2 3 4
3
8 4 3 2 7
个人解析下:
首先我们从for (j=0;j<5;j++)看起,往下是
{
if (a[j]==0)
break;
printf("%4d",a[j]);
}
examda提示: 把a[5][5]二维数组中的每列中从左至右第一个为零的数之前的数输出!
for (i=0;i<5;i++) 就是5行
2.#include <stdio.n>
#include <string.h>
fun(char *w,int n)
{
char t,*sl,*s2;
s1=w;
s2=w+n-1;
while (s1<s2)
{
t=*s1++
*s1=*s2--
*s2=t;
}
}
main()
{
char *p;
p="1234567";
fun (p,strlen(p));
puts(p);
}
答案:1711717
examda提示: 主要是认清楚S1=? S2=? 首先 S1=W,这S1存的是字符串W的首地址,而S2=W+N-1=P+7-1 OK,也就是W中最后一个字符的地址·
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/