C语言基础练习(2)
来源:互联网 发布:喜仕隆石英石 知乎 编辑:程序博客网 时间:2024/06/13 18:28
1.读程序,写出你的分析步骤,得出结果。
typedef int (*FUNC1)(int);/定义函数类型,起名为FUNC1/typedef int (*FUNC2)(int *, int *, int *);/定义函数类型,并起名为FUNC2/int inc(int a){ return (++a);/返回到a+1/}int multi(int *a, int *b, int *c){ return (*c=*a**b);/返回到c(c=a*b)/}void show(FUNC2 fun, int arg1, int *arg2){ FUNC1 p = inc;/定义一个p函数,类型与FANC1相同,内容与inc函数相同。/ int temp = p(arg1);/定义一个int类型temp,它的数值为调用p函数的返回值,其中p参数是arg1=10,p功能与inc相同。/ fun(&temp, &arg1, arg2);/调用fun函数,三个参数为temp的地址,arg1的地址,arg2的地址。fun函数的类型是FUNC2,内容与multi相同。/ printf("%d\n", *arg2);/输出arg2的值,结果为110。/}主程序:int a = 0; show(multi, 10, &a);
2.阅读一下程序,找出错误并更改。
PS:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
<所有头文件都已包含>
main() { char*src="hello,world"; char* dest=NULL; int len=sizeof(src); dest=(char*)malloc(len); char* s=src[len]; while(len--!=0) dest++=s--; printf("%s",dest); return 0; }``````int main()//因为最后return0,所以加上返回值int{ char*src = "hello,world"; char* dest = NULL; int len = strlen(src);//获取字符串大小用strlen dest = (char*)malloc(len+1);//申请堆空间加上结束符的位置 char* s = &src[len-1];//s指向src的最后一个字符,位置在[len-1],指向一个地址,应加上取地址符 while (len-- != 0) *dest++ = *s--;//对指针对应的字母赋值 printf("%s", dest); free(dest);//申请的堆空间要释放 dest=NULL;//避免dest为野指针 return 0;}<div class="se-preview-section-delimiter"></div>```return 0;}
3.编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg”
//pStr是指向以''结尾的字符串的指针//steps是要求移动的nvoid LoopMove ( char * pStr`int steps ){//请填充...}
void LoopMove(char * pStr, int steps){ char string[100] = { 0 }; int len = strlen(pStr);//字符串的长度,不包括'\0' int n = len - steps;//n为从字符串开始到移动后结尾字符的长度 steps %= len;//对要求移动的数字取模 strcpy(string, pStr + n);//拷贝pStr的后steps位 memcpy(string + steps, pStr, n);//在srting后追加pStr的前n位 printf("%s\n\n",&string);}
阅读全文
0 0
- C语言基础练习(2)
- C语言基础练习2
- C语言基础 (练习)
- c语言基础练习
- C语言基础练习
- C语言基础练习篇(1)
- C语言基础练习(1)
- C语言基础练习(一)
- C语言基础练习(二)
- C语言基础练习(三)
- C语言基础练习(四)
- C语言基础练习1
- C语言基础练习3
- C语言基础练习4
- C语言基础练习5
- C语言基础练习6
- C语言基础练习7
- C语言基础练习8
- zookeeper-系列1-paxos与zab
- 坑
- cs快捷键
- Spring Boot 报错分析
- js常用方法
- C语言基础练习(2)
- 机器学习大神Bengio最新论文发布,专注RNN优化难题,将在NIPS提出新概念fraternal dropout
- DPDK(12):rte_mempool内存管理
- php扩展开发---区分系统加载epoll或者kqueue
- git搭配jenkins简单安装使用
- 二维数组中的指针加法计算 与 初始化
- Makefile相关的汇总
- html图片无缝循环移动
- SD--批量删除订单