C语言小练习4
来源:互联网 发布:手机淘宝怎么指纹支付 编辑:程序博客网 时间:2024/05/22 14:47
1、 读程序,写出你的分析步骤,得出结果。
typedef int (*FUNC1)(int);
typedef int (*FUNC2)(int *, int *, int *); //不懂(==!)
int inc(int a)
{
return (++a);//a自加1后返回
}
int multi(int *a, int *b, int *c)
{
return (*c=*a**b);//c的指向的值为a指向的值乘以b指向的值
}
void show(FUNC2 fun, int arg1, int *arg2)
{
FUNC1 p = inc; //不懂(==!)
int temp = p(arg1);//11
fun(&temp, &arg1, arg2);//
printf("%d\n", *arg2);//输出0
}
主程序:int a = 0; show(multi, 10, &a);
2、阅读一下程序,找出错误并更改。
PS:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
<所有头文件都已包含>
main()
{
char*src="hello,world";
char* dest=NULL;
int len=sizeof(src); //应用strlen()函数
dest=(char*)malloc(len);
char* s=src[len]; //下标从0开始,应为len-1
while(len--!=0)
dest++=s--; //应为*desk
printf("%s",dest); //应为&dest
return 0; //无返回值类型应去掉
}
3、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg”
//pStr是指向以''结尾的字符串的指针
//steps是要求移动的n
void LoopMove ( char * pStr, int steps )
{
//请填充...
int MAX_LEN=20;
char tmp[MAX_LEN];
int n=strlen(pStr);
int m=steps%n;
memcpy(tmp,&pStr[n-m],m);
memcpy(&pStr[n-m],pStr,n-m);
memcpy(pStr,tmp,m);
}
- C语言小练习4
- C语言小练习
- c语言小练习
- c语言小练习
- c语言小程序练习
- C语言编程小练习
- C语言排序小练习
- C语言小练习 1
- C语言小练习 2
- C语言小练习5
- c语言小练习6
- c语言小题目练习
- C语言小练习7
- C语言小练习8
- c c c 语言 小练习
- C语言-------------指针小程序的练习
- C语言统计字符小练习
- 学习C语言的一些小练习
- CoreOS 实战:剖析 etcd
- c390连接池配置
- 安卓webView开发使用及加载html标签乱码处理
- ionic 中获取经纬度 地址解析
- weblogic部署jar冲突解决
- C语言小练习4
- C语言的数组使用
- 比特币源码解析(19)
- (第一次写)n个数中最大公约数不为“1”的最大个数。
- 信息增益
- CBK发声世界发展论坛首脑峰会启动仪式
- Source Insight(vs2012,ultraedit) 中Tab键设置为4个空格代替
- 深度学习之pytjon的数据分析工具pandas
- 二维色素数组生成图片