2017.11.4 (c)
来源:互联网 发布:java单线程程序 编辑:程序博客网 时间:2024/05/05 17:13
1、读程序,写出你的分析步骤,得出结果
#include <stdio.h>typedef int (*FUNC1)(int); //宏定义一个函数指针func1typedef int (*FUNC2)(int *, int *, int *);//宏定义一个函数指针func2int inc(int a)//函数 inc{ return (++a);}int multi(int *a, int *b, int *c)//函数multi{ return (*c=*a**b);}void show(FUNC2 fun, int arg1, int *arg2)//函数 show{ FUNC1 p = inc; //定义一个函数指针p指向函数inc int temp = p(arg1); //定义变量接收inc函数的返回值 fun(&temp, &arg1, arg2); //调用fun指向的函数 printf("%d\n", *arg2); //打印指针变量指向的值}void main(){ int a = 0; show(multi, 10, &a);}
结果为110
分析步骤:
主函数
1.定义变量a并初始化为0;
2.调用函数show();
a.调用函数inc(),并将返回值11赋给temp;
b.调用函数multi(),*arg2=11*10;
c.打印出*arg2的值,110
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; }
#include <stdio.h>#include <malloc.h>#include<string.h>main(){ char*src="hello,world"; char*dest=NULL; int len=strlen(src); //1.将sizeof改成strlen ,并导入String的包,不然报错 sizeof是记录分配的内存大小,strlen是记录字符串的长度 dest=(char*)malloc(len+1);//2.len改为len+1,要为/0分配空间 char* s=&src[len-1]; //3.将len改成len-1,将指针指向字符串的最后一位 char*d=dest; //4.添加指针指向dest所创建的空内存 while (len--!=0) *d++=*s--; //5.添加* 将指针s指向的值一一赋给指针d所对应的空内存,这里是不是指针赋值而变量赋值 *d='\0'; //6.添加*d='\0'; 添加字符串结束标志避免输出字符串时乱码 printf("%s\n",dest); //free(dest); //7.释放内存 可有可无吧,主函数结束肯定释放啊 return 0; }
3、编写一个函数,作用是把一个char组成的字符串循环右移n个。
比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefg”//pStr是指向以''结尾的字符串的指针//steps是要求移动的nvoid LoopMove ( char * pStr, int steps ){ //请填充...}
#include <stdio.h>#include <string.h>void LoopMove(char *pStr, int steps){//填充://-------------------------------------------------- int n = strlen(pStr) - steps; char tmp[128]; memcpy(tmp, pStr+n, steps); //拷贝字符串 memcpy(pStr+steps, pStr, n); memcpy(pStr, tmp, steps); //合并得到结果//---------------------------------------------}int main(){ char str[] = "abcdefghi"; LoopMove(str, 2); printf("%s\n", str); return 0;}
阅读全文
0 0
- 2017.11.4 (c)
- C/C++(4)C调用C++方法
- C++(4)
- C.4
- c++(4)
- c+=4和c=c+4的区别。
- c+=4和c=c+4的区别
- 高质量C++/C编程指南[4]
- C/C++/C#面试题精选4
- C/C++/C#面试题(4)
- 【C++进阶】深入理解C/C++(4)
- C语言程序设计 第一章C语言概述.4
- 2017.11.19C练习
- 2017.11.18 C
- Accelerated C++<4-4>
- C函数库大全 4
- 二级C语言(4)
- C/C++进阶[4]
- 最新最全Angular4.x、Angular5.x、Angular6.x、Ionic3.x入门到实战视频教程
- JVM 指令集
- Spring Boot 引用本地jar包
- 搅动金融科技的人工智能,能否颠覆支付格局?
- 对对机如何连接美团,饿了么,百度外卖等自动接单(图文教程)
- 2017.11.4 (c)
- UE 实用技巧分享
- java 线程联合
- 基于网络爬虫的负面信息搜集系统
- 能与app竞争未来的小程序到底是什么?
- 8,数据挖掘环境搭建-IDEA MAVEN搭建Spark开发环境
- sublime text3在终端输出中文乱码
- JDK8中ArrayList源码分析
- TP5 模型