1。打印如下图案,共19行,只能有一个for循环(程序已经提供)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*
main()
{
int i;
char str[20]={' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ', ' ',' ','\0'};
for(i=0;i<19;i++)
{
if(i<10)
{
str[9+i]='*';
str[9-i]='*';
printf("%s\n",str);
}
else
{
str[i-10]=' ';
str[28-i]=' ';
printf("%s\n",str);
}
}
}
2.
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
求fun(10)的输出结果 1/2/5/10S
3。
#define f1(n) (n)*(n)
int i=5;
int k=0;
k=f1(i++);
printf("%d %d",i,k);
输出结果: 7/25
4。下面那个for循环是无限循环
for(int i=010;i==10;i+=0)
for(int i=10;(i++^--i)==0;i+=0)
还有几个忘了
5.Email relay 和Email access分别用了什么协议?(其他还有很多,略)
6。in a mobile phone,软件运行期,stack data 存在于
a.rom,b.flash c.eeprom d.ram e.none of the above
7.
int i;
int x=0x12345678;
unsigned char *p=(unsigned char *)&x;
for(i=0;i<sizeof(x);i++)
printf("%2x",*(p+i));
在80x86pc机器上运行结果
Sun Sparc Unix上运行结果
8.
char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} };
for(int i=0;i<12;i++)
printf("%d ",_______);
空格处填上合适的语句,顺序打印出a中的数字
9。void fun(char *a,char *b)
{
a=b;
(*a)++;
}
void main()
{
char s1='A',s2='b';
char *p1=&s1;
char *p2=&s2;
fun(p1,p2);
printf("%c%c",s1,s2);
输出结果:Ac
10。写一个strstr()函数
原型
const char *strstr(const char *src, const char *needle);
输入src, 寻找里面是否有子串needle
const char * _strstr(const char *src, const char *needle)
{
const char *p1, *p2;
p1 = src;
p2 = needle;
while (*src != '\0' && *needle != '\0')
{
if (*src++ != *needle++) {
needle = p2;
src = ++p1; //从下一个字符开始搜索needle
}
}
if (*needle == '\0')
return p1;
return NULL;
}