面试题目,看你能够做对几个!

gwenxia 2007-07-19 09:53:04
1.定义一个结构:
第一个数据项的取值范围为0~127;
第二个数据项占用1 bit 的长度;其取值范围为0/1;
第三个数据项占用1 bit 的长度;其取值为1;
第四个数据项占用1 bit 的长度;其取值为0;
第五个数据项占用1 bit 的长度;暂时保留使用;

2.找出下面程序的错误:
const int MAX = 500;
unsigned char Array[MAX];

for (int i=0; i<MAX; i++)

{
Array[i] = i;
printf("%d ", Array[i]);
}

3.使str的内容颠倒输出;
char str[]="I love China!";
char *p1 = Array;
int length = sizeof(str);
char *p2 =_____(1)____;
while (p1<p2)
{
_____(2)____
_____(3)____
_____(4)____
_____(5)____

}
printf("Str=%s",str);

4.输出结果:
void main()
{
int array[]={1,2,3,4,5};
int *ptr = array;
ptr++;
printf("%d,%d",*(ptr-1),*(array+1));
}

5.定义一个整形指针a,使数据0x1FFF存放的内存地址为0x55000;

6.编写一个函数,不利用第三个数据交换两个数据的值;

7.使整形变量的第4位为1,其余位不变;清除第四位,其余位不变;
...全文
1342 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
yy_msdn 2007-08-10
  • 打赏
  • 举报
回复
#include <stdio.h>

int main() {
char str[]="I love China!";
char *p1 = str;
int length = strlen(str);
char *p2 = p1 + length - 1;
while (p1<p2)
{
(*p1) ^= (*p2);
*p2 ^= *p1;
*p1 ^= *p2--;
p1++;
}
printf("Str=%s",str);

return 0;
}
makewater 2007-08-07
  • 打赏
  • 举报
回复
恩 我错了 确实是-2
sunwei19820504 2007-08-07
  • 打赏
  • 举报
回复
我要是没记错的话,一个字符串的长度应该是它的实际长度加1,因为字符串结尾系统会默认的加上一个结束符的。
sunwei19820504 2007-08-07
  • 打赏
  • 举报
回复
你可以上机试一下 char *p2 = p1+length-2;是正确的
makewater 2007-08-07
  • 打赏
  • 举报
回复
我是菜鸟 我想纠正一个错误 如果纠正的不对 请指正

就是第3题: 有些前辈写的是char *p2 = p1+length-2;
而有写前辈写的是char *p2 = p1+length;
小弟认为 应该是这样:char *p2 = p1+length-1;
haohuilai 2007-08-06
  • 打赏
  • 举报
回复
mark
wangjihong83 2007-08-06
  • 打赏
  • 举报
回复
贪心
cgrapefruit 2007-07-21
  • 打赏
  • 举报
回复
5.定义一个整形指针a,使数据0x1FFF存放的内存地址为0x55000;

int *a = 0x55000;
*a = 0x1FFF;

orc1984 2007-07-20
  • 打赏
  • 举报
回复
简单
kuangyedehuhuan 2007-07-20
  • 打赏
  • 举报
回复
6.编写一个函数,不利用第三个数据交换两个数据的值;

void swap(int & a, int & b)
{
a = a + b;
b = a - b;
a = a - b;
}

theendname 2007-07-19
  • 打赏
  • 举报
回复
6 7 同上
theendname 2007-07-19
  • 打赏
  • 举报
回复
5
int *pChar = (int *)VirtualAlloc((PVOID)(0x55000), 8, MEM_COMMIT, PAGE_READWRITE );
*pChar = 0x1FFF;
guxingfeiyu 2007-07-19
  • 打赏
  • 举报
回复
theendname(小楼一夜听风雨) ( ) 信誉:100 2007-07-19 10:42:21 得分: 0


class theRe{
BYTE firstNum;
bool seNum;
static const bool thrNum=1 ;
static const bool foNum =0;
byte fi;
} ;

=====
题意:
1.定义一个结构:
tianix 2007-07-19
  • 打赏
  • 举报
回复
3.
char str[]="I love China!";
char *p1 = str;
int length = sizeof(str);
char *p2 = p1+length-2;
while (p1<p2)
{
char temp = *p1;
*(p1++) = *p2;
*(p2--) = temp;
}
printf("Str=%s",str);
theendname 2007-07-19
  • 打赏
  • 举报
回复
4.输出结果:1.2
theendname 2007-07-19
  • 打赏
  • 举报
回复
3. char str[]="I love China!";
char *p1 = str;
int length = sizeof(str);
char *p2 = p1+length-2;
while (p1<p2)
{
char c;
c= *p1;
*p1++=*p2;
*p2--=c;
}
printf("Str=%s",str);
tianix 2007-07-19
  • 打赏
  • 举报
回复
6.
void swap(int &a,int & b)
{
a=a+b;
b=a-2*b;
a=(a-b)/2;
b=b+a;
}
neosu 2007-07-19
  • 打赏
  • 举报
回复
6.编写一个函数,不利用第三个数据交换两个数据的值;

void swap(int & a, int & b)
{
a = a + b;
b = a - b;
a = a - b;
}

没有考虑溢出
neosu 2007-07-19
  • 打赏
  • 举报
回复
2.

const int MAX = 500;
unsigned char Array[MAX];

用法有错误。如果MAX是宏则可以
theendname 2007-07-19
  • 打赏
  • 举报
回复
unsigned int Array[MAX];
加载更多回复(14)

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧