搜题
网友您好,请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
提问人:网友yzhello 发布时间:2022-01-06
[主观题]

以下代码中的两个sizeof用法有问题吗?

void UpperCase(char str[] ) // 将str 中的小

写字母转换成大写字母

{

for(size_t i=0; i

if('a'<=str[i] && str[i]<='z' )

str[i] -= ('a'-'A' );

}

char str[] = "aBcDe";

cout $amp;sizeof(str)/sizeof(str[0]) $amp;UpperCase(str );

cout $amp;

简答题官方参考答案 (由简答题聘请的专业题库老师提供的解答)
查看官方参考答案
更多“以下代码中的两个sizeof用法有问题吗?”相关的问题
第1题
以下代码中的两个sizeof用法有问题吗?void UpperCase(char str[] ) // 将str 中的小写字母转

以下代码中的两个sizeof用法有问题吗?

void UpperCase(char str[] ) // 将str 中的小

写字母转换成大写字母

{

for(size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )

if('a'<=str[i] && str[i]<='z' )

str[i] -= ('a'-'A' );

}

char str[] = "aBcDe";

cout << "str 字符长度为: " <<

sizeof(str)/sizeof(str[0]) << endl;

UpperCase(str );

cout << str << endl;

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

试题二(共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[])

{

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

}

点击查看答案
第3题
阅读以下说明和C语言代码,回答问题1至问题5,将解答填入答题纸的对应栏内。[说明] 在实模式存储管

阅读以下说明和C语言代码,回答问题1至问题5,将解答填入答题纸的对应栏内。

[说明]

在实模式存储管理方案下,嵌入式系统的内存地址空间的布局一般可以分为五个段:代码段(text)、数据段(data)、bss段(bss)、堆(heap)和栈(stack)。

图16-4为一段例程。

1: include

2: unsigned char gvCh;

3: unsigned short gvShort;

4: unsigned int gvInt = 0x12345678;

5: unsigned long gvLong = 0x87654321;

6: void main(void)

7: {

8: unsigned char array[lO],*p;

9: p = malloc(lO*sizeof(char));

10: while (1);

代码段、数据段和bss段的大小是在什么时候确定的?

点击查看答案
第4题
用传统流程图表示求解以下问题的算法,且用N-S图和伪代码表示算法。(1)有两个瓶子A和B,分别盛放

用传统流程图表示求解以下问题的算法,且用N-S图和伪代码表示算法。

(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。

(2)依次将10个数输入,要求将其中最大的数输出。

(3)有3个数a,b,c,要求按大小顺序把它们输出。

(4)求1+2+3+...+100。

(5)判断一个数n能否同时被3和5整除。

(6)将100~200的素数输出。

(7)求两个数m和n的最大公约数。

(8)求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个相等的实根。

点击查看答案
第5题
以下代码段的结果是: int i=10; long long t = sizeof();
点击查看答案
第6题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 采用归并排序
对n个元素进行递增排序时,首先将n个元素的数组分成各含n/2个元素的两个子数组,然后用归并排序对两个子数组进行递归排序,最后合并两个已经排好序的子数组得到排序结果。 下面的C代码是对上述归并算法的实现,其中的常量和变量说明如下: arr:待排序数组 p,q,r:一个子数组的位置从p到q,另一个子数组的位置从q+1到r begin,end:待排序数组的起止位置 left,right:临时存放待合并的两个子数组 n1,n2:两个子数组的长度 i,j,k:循环变量 mid:临时变量 【C代码】

inciude<stdio.h> inciude<stdlib.h> define MAX 65536 void merge(int arr[],int p,int q,int r) { int *left, *right; int n1,n2,i,j,k; n1=q-p+1; n2=r-q; if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } if((right=(int*)malloc((n2+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } for(i=0;i<n1;i++){ left[i]=arr[p+i]; } left[i]=MAX; for(i=0; i<n2; i++){ right[i]=arr[q+i+1] } right[i]=MAX; i=0; j=0; for(k=p; (1) ; k++) { if(left[i]> right[j]) { (2) ; j++; }else { arr[k]=left[i]; i++; } } } void mergeSort(int arr[],int begin,int end){ int mid; if((3) ){ mid=(begin+end)/2; mergeSort(arr,begin,mid); (4) ; merge(arr,begin,mid,end); } }

【问题1】 根据以上说明和C代码,填充1-4。 【问题2】 根据题干说明和以上C代码,算法采用了(5)算法设计策略。 分析时间复杂度时,列出其递归式位(6),解出渐进时间复杂度为(7)(用O符号表示)。空间复杂度为(8)(用O符号表示)。 【问题3】 两个长度分别为n1和n2的已经排好序的子数组进行归并,根据上述C代码,则元素之间比较次数为(9)。

点击查看答案
第7题
以下代码段的结果是: int i=10; long long t = sizeof(i++); printf("%d", i);
点击查看答案
第8题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 函数diff的功能是:根据两个由

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求13中的所有整数都是L1,并且不是 L2中的整数,还要求L3中的所有整数都两两不等。

【函数】

include < malloc. h >

typedef struct node {

int d;

struct node * next

} Node;

void diff(Node *A,Node * B,Node * * r)

{

int lastnum;

Node * p;

*r = NULL;

if(! A) return;

while((1))

if(A->d < B ->d)

{

lastnum =A -> d;

p= (Node * ) malloc(sizeof(Node) );

p->d = lastnum;

p->next= *r;(2);

do

A = A -> next;

while((3));

}

else if(A->d > B->d)

B=B- >next;

else {

(4);

lastnum=A -> d;

while (A && A->d = = lastnum) A=A-> next;

}

while(A)

{

lastnum=A->d;

p=(Node * ) malloc(sizeof(Node) );

p-> d = lastnum;

(5);

*r=p;

while (A && A->d = = lastnum) A=A->next;

}

}

点击查看答案
第9题
阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。 【说明】 有两个进程(编号分别为0和1)需

阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。

【说明】

有两个进程(编号分别为0和1)需要访问同一个共享资源。为了解决竞争条件(race condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个进程访问该共享资源。以下【C代码1】给出了一种实现方法。

【C代码1】

int flag[2]; /+flag数组,初始化为FALSE*/

Enter_Critical_Section(int my_task_id, int other_task_id)

{ while (flag[other_task_id]==TRUE); /*空循环语句*/

flag[my_task_id]=TRUE;

}

Exit_Critical_Section(int my_task_id, int other_task_id)

{ flag[my_task_id]=FALSE;

}

当一个进程要访问临界资源时,就可以调用【C代码1】给出的这两个函数。【C代码2】给出了进程0的一个例子。

【C代码2】

Enter_Critical_Section(0,1);

……使用这个资源……

Exit_Critical_Section(0,1);

……做其他的事情……

什么是临界资源(critical resource)?请用100字以内的文字简要说明。

点击查看答案
第10题
论述题: 1.关于尿素循环,回答以下问题 1)尿素循环是哪位科学家,哪一年发现的? 2)尿素循环的反应
场所和细胞定位。 3)参与尿素循环的氨基酸有哪几个?他们都能用于蛋白质的生物合成吗? 4)尿素分子中两个N原子,分别来自哪里? 5)途径中的关键酶 2.关于一碳基团,回答下列问题。 1)什么是一碳基团?举例说明 2)一碳基团是如何转运的? 3)参与一碳基团合成的氨基酸有哪几个? 4)一碳基团的主要生理功能。 3.肝脏中的氨甲酰磷酸合成酶I和II,比较他们的异同。

点击查看答案
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注简答题 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注简答题 -
请用微信扫码测试
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

简答题
下载APP
关注公众号
TOP