当前位置:首页计算机类软件水平考试初级程序员->阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的

阅读以下说明、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;

}

【说明2】

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

【问题1】(8分)

请写出以上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 20

1 11

4 1 10

【问题2】

(1)const int size=10; 或 int const size=10;

(2)int* const ptr=&a;

【问题3】

static的作用:说明f足内部函数,只能在本文件中调用它。

const的作用:在函数f中不能修改数组元素的值,若有修改,编译时会报错。

本题考查C语言基础及应用。

【问题1】

sizeof是C语言提供的一个关键字,sizeof(x)用于计算为x分配的字节数,其结果与系统或编译器相关。若x是数组名时,用于计算整个数组所占用存储空间的字节数;若x是指针,则无论其指向的目标数据是什么类型,x所占用的存储空间大小都相同(在同一系统或编译环境中);若x是结构体变量或类型,则需要根据系统规定的对齐要求来计算为x所分配空间的字节数。

根据说明,系统为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,那么sizeof(int)、sizeof(unsigned int)是计算整型数据和无符号整型数据的存储空间大小,sizeof(arr)是计算数组arr的字节数,它们的值分别为4、4和20。

sizeof(char)计算一个字符数据所占用的字节数,根据说明应为1。sizeof(mystr)计算为字符数组mystr分配的空间大小,该数组的大小由字符串"JustAtest\n"决定,该字符串的长度为10,还有一个串尾结束标志字符'/0',因此sizeof(mystr)的值为11。

ptr是指向字符数组mystr的指针,显然sizeof(ptr)的结果为4。由于*ptr指向了一个字符数据,因此sizeof(*ptr)的结果为1,函数strlen(ptr)计算ptr所指字符串的长度,结果为10。

【问题2】

在C语言中,const关键字的一个作用是限定一个变量的值不能被改变,使用const可以在一定程度上提高程序的安全性和可靠性。

const int size=10; 或 int const size=10;

以上代码都可以定义一个“只读”型的整型常量size并将其值初始化为10。

当const用于修饰指针时,常见的情形如下:

(1)const修饰的是指针所指向的对象,该对象不可改变,指针变量可改变。

const int *p; //或 int const *p;

(2)const修饰的是指针,该指针变量不可改变,其指向的对象可改变。

int *const p;

(3)const修饰的是指针以及指针所指向的对象,都不可改变。

const int *const p;

【问题3】

关键字static用于修饰函数中的局部变量时,是通知编译器将该变量的存储空间安排在全局存储区,这样在下一次调用函数时还保留上一次对该变量的修改结果。

当一个源程序由多个源文件组成时,用static修饰的全局变量和函数,其作用域为当前文件,对其他源文件不可见,即它们不能被其他源文件引用或调用。

当函数的形参用const修饰时,在函数体内部不能被修改。

更新时间:2021-12-08 14:27

你可能感兴趣的试题

填空题

思科路由器的内存体系由多种存储设备组成,其中用来存放IOS引导程序的是(  ),运行时活动配置文件存放在(  )中。
问题1选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
问题2选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM

查看答案
填空题

电信运营商提供的ISDN服务有两种不同的接口,其中供小型企业和家庭使用的基本速率接口(BRI)可提供的最大数据速率为(  )。供大型企业使用的主速率接口(PRI)可提供的最大数据速率为(  )。
问题1选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
问题2选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s

查看答案
填空题

PGP (Pretty Good Privacy)是一种电子邮件加密软件包,它提供数据加密和数字签名两种服务,采用(  )进行身份认证,使用(  )(128位密钥)进行数据加密,使用(  )进行数据完整性验证。
问题1选项
A.RSA公钥证书
B.RSA私钥证书
C.Kerboros证书
D.DES私钥证书
问题2选项
A.IDEA
B.RSA
C.DES
D.Diffie-Hellman
问题3选项
A.HASH
B.MD5
C.三重DES
D.SHA-1

查看答案
填空题

边界网关协议BGP4被成为路径矢量协议,它传送的路由信息是由一个地址前缀后跟(  )组成,这种协议的优点是(  )。
问题1选项
A.一串IP地址
B.一串自治系统编号
C.一串路由器编号
D.一串子网地址
问题2选项
A.防止域间路由循环
B.可以及时更新路由
C.便于发现最短通路
D.考虑了多种路由度量因素

查看答案
填空题

某公司域名为pq.com,其POP服务器的域名为pop.pq.com,SMTP服务器的域名为smtp.pq.com,配置Foxmail邮件客户端时,在发送邮件服务器栏应该填写(  ),在接收邮件服务器栏应该填写(  )。
问题1选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
问题2选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com

查看答案
填空题

CDMA for cellular systems can be described as follows. As with FDMA, each cell is Allocated a frequency (  ),which is split into two parts; half for reverse (mobile unit to base station) and half for(  )(base station to mobile unit). For full-duplex(  ), a mobile unit uses both reverse and forward channels. Transmission is in the form of direct-sequence spread(  )which uses a chipping code to increase the data rate of the transmission, resulting in an increased signal bandwidth.Multiple access is provided by assigning(  )chipping codes to multiple users, so that the receiver can recover the transmission of an individual unit from multiple transmissions.
问题1选项
A.wave
B.signal
C.bandwidth
D.domain
问题2选项
A.forward
B.reverse
C.backward
D.ahead
问题3选项
A.connection
B.transmission
C.compromise
D.communication
问题4选项
A.structure
B.spectrum
C.stream
D.strategy
问题5选项
A.concurrent
B.orthogonal
C.higher
D.lower

查看答案
填空题

结构化布线系统分为六个子系统,其中水平子系统的作用是(  ),园区子系统的作用是(  )。
问题1选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
问题2选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连

查看答案
填空题

IPv6的可聚合全球单播地址前缀为(  ),任意播地址的组成是(  )。
问题1选项
A.010
B.011
C.001
D.100
问题2选项
A.子网前缀+全0
B.子网前缀+全1
C.链路本地地址前缀+全0
D.链路本地地址前缀+全1

查看答案
填空题

DNS服务器中的资源记录分成不同类型,其中指明区域主服务器和管理员邮件地址的是(  ),指明区域邮件服务器地址是(  )。
问题1选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
问题2选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录

查看答案
填空题

采用抓包工具截获的结果如下图所示,图中第1行记录显示的是(  ),该报文由(  )发出。
中级网络工程师,历年真题,2014年下半年(上午)《网络工程师》真题
问题1选项
A.TCP错误连接响应报文
B.TCP连接建立请求报文
C.TCP连接建立响应报文
D.Urgent紧急报文
问题2选项
A.Web客户端
B.Web服务器
C.DNS服务器
D.DNS客户端

查看答案