跪求一下c语言题目答案(我是真的没有财富值了呜呜。。。。)

一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)
1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。( )
2、int (*ptr) (),则ptr是一维数组的名字。( )
3、指针在任何情况下都可进行>, <, >=, <=, = =运算。( )
4、switch(c) 语句中c可以是int, long, char, float, unsigned int 类型。( )
5、#define print(x) printf(”the no, ”#x”,is ”)
二、填空题(共30分)
1、在windows下,写出运行结果,每空2分,共10分。
char str[ ]= ”Hello”; char *p=str; int n=10; sizeof(str)=( ) sizeof(p)=( ) sizeof(n)=( ) void func(char str[100]) { } sizeof(str)=( )
2、void setmemory(char **p, int num) { *p=(char *) malloc(num);} void test(void) { char *str=NULL; getmemory(&str,100); strcpy(str,”hello”); printf(str); }
运行test函数有什么结果?( )10分
3、设int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf(”%d,%d”,*ptr,*(++ptr)); ( ) 10分
二、编程题(第一小题20,第二小题30分)
1、 不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1;
2、 写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1

1、(T)这是个二维整形数组,列长度是2,行长度是2,数组从0开始计数,初始化的时候没赋值的系统自动赋值为0
2、(F)这是定义一个函数指针。每个函数名都是这个函数的首地址。int (*ptr)();表示的是ptr指针指向一个返回值为整型的函数,所以它是一个函数指针。
3、(F)当指针指向的不是同一类型的数据类型时,不能进行比较。ps:当是数组、链表的时候有很多关于指针的比较。
4、(F)switch语句中case常量必须是整型或者是字符型。
5、(T)这是用宏定义定义print()用来输出the no, ”#x”,is
二、1.6,4,4,4 2.hello 3.8,8
三、
1、int strcmp(char *source,char *dest)/*函数说明*/
{
int m,n,flag;
m=strlen(source);/*测个数组的长度*/
n=strlen(dest);
if(m!=n)
flag=-1;
else
{
int i=m;
int j,flag;
for(j=0;j<i;j++)
{
if(souce[j]!=dest[j])flag=-1;break;
}
}
if(j==i)flag=0;
return flag;
}
2、int fun(char *p)
{
int i,j,n;
if(p!=NULL)/*判断p是否为一指针*/
{
j=strlen(p)-1;
for(i=0;i<j;i++,j--)/*此循环是判断是否为回文*/
{
if(p[i]!=p[j])n=0;break;
}
if(i>=j)n=1;
}
else n=-1;/*如果p是空指针返回-1*/
return n;
}
终于完了····表达能力不是很好····希望你能看懂····追问

极为感谢!!!这是华为的笔试题!您太厉害了 我会向您学习的谢谢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-21
1. T
2. F (这是指向函数的指针)
3. T (指针的大小判断实际是地址整型运算)
4. F ( 必须是整型或char 。 float不可以)
5. ??? 这题目干嘛的?
填空。
1. sizeof(str) = ( 6 ) , sizeof( p ) = ( 4 ) , sizeof(n) = ( 4 ), sizeof(str) = ( 4 );
2. 输出 hello. ( 其实严格的说,getmemory是什么函数,上面明明是setmemory,题目都错了!)
3. 输出8 , 8
编程题不写了,网上多的是。
相似回答