C高级1.29作业

麦穗科技驱动笔试题

选择题((1)~(5)每小题4分,共 20分)

1.请选出以下程序的输出结果b

#include <stdio.h>

sub(int x, int y, int "z)

{*z=y-x)

Main{}(

int a,b,C:

sub(10,5,&a); sub(7,a,&b); sub(a,b,&C);

printf("%d,%d,%d\n",a,b,C);

}

A)5,2,3

  1. -5,-12,-7
  2. -5,-12,-17
  3. 5,-2,-7

2.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是a

A)pb=&xx;B)pb=x;C)*pb=&x;D)*pb=*x

若要用下面的程序片段使指针变量 p 指向一个存储整型变量的动态存储单元

3.d

int*p;

p=          malloc(sizeof(im)):

则应填入          

A)int B)intC(int)D)(int*)

4.若有以下定义和语句:a

int a[]={1,2,3,4,5,6,7,8,9,10},*p=a

则值为3的表达式是

  1. p+=2,*(p++)

B)p+=2,*++P

C)p+=3,*p++

D)p+=2,++*p

5.设有以下语句,其中不是对a 数组元素的正确引用的是:(其中0≤i≤10)d

int a[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A)a[p-a]B)(&a[i]) C)p[i])D)*(*(a+i))

二、问答及编程题((1)~(10)每小题8分,共80分)

1.有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果

要求要以数组A作为函数的入口.(建议用冒泡排序法)

7. 请问以下代码有什么问题:

char*s="AAA":

printf("%s",s);

s[0]=’B’

printf("%s",s);

有什么错?段错误,s是常量 不能改变内容

  1. void getmemory(char *p)

{

p=(char*)malloc(100);

strcpy(p,“hello world”);

}

int main( )

{

char*str=NULL;

getmemory(str);

printf( “%s/n”,str);

free(str);

return 0;

}会出现什么问题?段错误,函数传过去的是值不是地址,

  1. int main()

{

char a;

char*str=&a;

strcpy(str,"hello");

printf(str);

return 0;

}会出现什么问题?数组越界,向一个字符a,cpy一个字符串。

10. void GetMemory2(char **p, int num)

{

*p=(char*)malloc(num);

printf("*p=%p\n”*p)://-----------------地址1

}

void Test(void)

{

char*str = NULL;

GetMemory(&str, 100);

printf("str=%p\n”str);//-----------------地址2==地址1

strcpy(str, "hello");

printf(str);

}

请问运行 Test函数会有什么样的结果?第一个是堆空间的地址,第二个是hello。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值