试题二(共15分)阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。【说明1】设在

10 查阅

试题二(共15分)

阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。

【说明1】

设在某C系统中为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,sizeof(x)用于计算为x分配的字节数。

【C代码】

#include <stdio.h>

#include <string.h>

int main()

{ int arr[5]={10,20,30};

char mystr[]="JustAtest\n";

char *ptr= mystr;

printf("%d%d%d\n", sizeof(int),sizeof(unsigned int),sizeof(arr));

printf("%d%d\n",sizeof(char),sizeof(mystr));

printf("%d%d%d\n",sizeof(ptr),sizeof(*ptr),strlen(ptr));

return 0;

}

【问题1】(8分)

请写出以上C代码的运行结果。

【说明2】

const是C语言的一个关键字,可以用来定义“只读”型变量。

【问题2】(4分)

(1)请定义一个“只读”型的整型常量size,并将其值初始化为10;

(2)请定义一个指向整型变量a的指针ptr,使得ptr的值不能修改,而ptr所指向的目标变量的值可以修改(即可以通过ptr间接修改整型变量a的值)。

注:无需给出整型变量a的定义。

【问题3】(3分)

某C程序文件中定义的函数f如下所示,请简要说明其中static的作用,以及形参表“const int arr[]”中const的作用。

static int f(const int arr[])

{

/*函数体内的语句省略*/

}

参考答案:

【问题1】4 4 201 114 1 10【问题2】(1)const int size=10;或int const size=10,(2)int*const ptr=&a;【问题3】static的作用:说明f是内部函数(或局部函数),只能在本文件中调用它。const的作用:在函数f中不能修改数组元素的值,若修改,编译时会报错。

软考初级