实验五

1. 实验任务1 此部分书写内容: task1_1.c程序源码,和,运⾏结果截图

 

 

⽤⽂字回答问题:

1. 函数 find_min_max 实现的功能是?

找到数组中的最大值和最小值

2. "指针变量在使⽤之前必须指向确定的地址"。执⾏到line45时,指针变量pmin、pmax分别指向什 么?

主函数中最小值和最大值的地址

task1_2.c程序源码,和,运⾏结果

 

⽤⽂字回答问题:

1. 函数 find_max 的功能是(返回的是什么)?

数组中的最大值的地址

2. 把函数 find_max 的实现写成以下代码,可以吗?如果不可以,请给出你的理由。

可以

  1. 实验任务2

此部分书写内容:

task2_1.c源码,及,运⾏测试截图

回答问题:

问题1:数组s1的⼤⼩是多少? sizeof(s1) 计算的是什么? strlen(s1) 统计的是什么?

23,数组内存大小,字符数量

问题2:line7代码,能否替换成以下写法?如果不能,写出原因。

不能,在 C 语言中,对于字符数组,只有在定义时才能直接用字符串字面量进行初始化赋值。

问题3:line19-21执⾏后,字符数组s1和s2中的内容是否交换?

交换了

 

2task2_2.c源码,及,运⾏测试截图

 

回答问题:

问题1:指针变量s1中存放的是什么? sizeof(s1) 计算的是什么? strlen(s1) 统计的是什么?

问题2:line6代码能否替换成下⾯的写法?对⽐task2_1.c中的line6, ⽤⽂字说明⼆者的语义区别。

可以,task2.1中是定义并初始化字符数组,数组有自己的存储空间,task2.2中是定义指针变量并使其指向字符串常量,指针只存储字符串常量的首地址

问题3:line20-line21,交换的是什么?字符串常量"Learning makes me happy"和字符串常量"Learning

makes me sleepy"在内存中有没有交换?

交换的是s1和s2的值,字符串常量没有交换

3. 实验任务3
此部分书写内容:
task3.c源码,及,运⾏测试截图
回答问题
int (*ptr)[4]; 中,标识符ptr表⽰的语义是什么?指针变量
int *ptr[4]; 中,标识符ptr表⽰的语义是什么?数组
4. 实验任务4
此部分书写内容:
task4.c源码,及,运⾏结果截图
 

回答问题
1. 函数 replace 的功能是?将字符中的old-char替换成new-char
2. line24, 圆括号⾥循环条件可以改写成 *str != '\0' 吗?可以
 
5. 实验任务5
此部分书写内容:
补充完整的task5.c源码,及,运⾏结果截图

 

回答问题
去掉main函数line18 getchar(); ,重新编译、运⾏,此时多组输⼊时,结果有什么不同?line18在这⾥
起到的作⽤是什么?
第二次输入字符串后会直接进行截断处理;这行的作用是清除缓冲区的回车
 
6. 实验任务6
此部分书写内容:
补⾜后完整源代码task6.c,及,运⾏测试截图

 

 

 

 

 

 

7. 实验任务7
此部分书写内容:
补⾜后完整源代码task7.c,及,运⾏测试截图

8. 实验任务8
此部分书写内容:
修改后的task8.c源码,及,在命令⾏运⾏测试截图

 

 

 

 

 

 

 

 

posted on 2025-05-18 00:16  chiwawa0412  阅读(20)  评论(0)    收藏  举报