12.9练习。
来源:互联网 发布:单片机控制方案 编辑:程序博客网 时间:2024/06/01 22:07
题目如下。结果均通过编译(dev)
1、:(1)分析程序, 写出输出结果?/* char *ptr; if ((ptr = (char *)malloc(0)) == NULL) puts("Got a null pointer"); else puts("Got a valid pointer"); */ //申请时,会返回一个有效的指针。这个可以通过 linux 的man手册查询malloc的使用方法。当使用malloc申请一个空间大小为0的空间的时候,编译器会返回一个默认的最小空间,空间的大小看编译器的默认设置。 (2) 分析程序, 写出输出结果?/*char * GetStr() { char *tmp; tmp = "123" return tmp; } void main() { printf("%s.\n", GetStr()); }*/ //编译器在使用完函数之后会释放函数的内存,让函数里边定义的一个指针成为野指针,所以即使你可以使用此方法调用成功并打印出‘123’,还是放弃这种形式的使用。尽量在main函数中使用字符串,或者函数中使用malloc申请空间(函数结束后不会被释放)。2、输入一个正整数,输出原数并逆序打印出各位数字。//例如:原数:123456 逆序:654321//逆序函数原型:int invers_int(int x)(需要用到递归实现)#include <stdio.h>#include <string.h>#define max 100char* invers_int(char *x){ int i = 0; char change; int len = strlen(x)-1; for(i=0; i<len/2; i++) { change = x[i]; x[i] = x[len-i]; x[len-i] = change;//感觉使用字符串比起整数方便很多。将字符串首尾交换可以得到最后的结果。 } return x;}int main(void){ char s[max]; printf("enter a number !\n"); scanf("%s", s); printf("x = %s.\n", invers_int(s)); return 0;}//下面来一个非字符串的形式。主要是因为用整形表达的数的范围实在是特别小。#include <stdio.h>#include <string.h>#define max 100int invers_int(int x){ int l = 0, s = 0; l = x; while(l) { s = s*10 + l%10; l = l / 10; } return s;}int main(void){ int s; printf("enter a number !\n"); scanf("%d", &s); printf("x = %d.\n", invers_int(s)); return 0;}3、按以下规律翻译密码:将每一个字母变成它后面的字母,例如,将A变成B,B变成C,…,Z变成A,非字母字符不变,“!”作为电文结束标志。#include <stdio.h>#include <string.h>#define max 100void change(char *s){ int i = 0; int len = strlen(s) ; for(i=0; i<len; i++) { if((s[i] >= 'a' && s[i] <= 'y' ) || (s[i] >= 'A' && s[i] <= 'Y' ))//根据题意添加控制条件 s[i] = s[i] + 1; else if(s[i] == 'z' || s[i] == 'Z')//将小z和大z单独分出。比较独特,减去与小a和大a的差距。 s[i] = s[i] - 25; }}int main(void){ char s[max]; int i = 0; for(i=0; i<max; i++) { scanf("%c", &s[i]); //一个一个输入输入到!时结束输入 if(s[i] == '!') break; } s[i] = '\0';// 在!号后面添加结束标志。 change(s);//调用加密函数 printf("s = %s.\n", s); return 0;}
阅读全文
0 0
- 12.9练习。
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- VS编译报错 error MSB6006: “cmd.exe” exited with code 1.
- 7.5
- 。。。
- Docker介绍
- JQuery 点击实现开关灯,改变CSS属性值
- 12.9练习。
- Moochine代码手札
- [二分 & 上下界网络流] BZOJ2406. 矩阵
- 物联网操作系统HelloX下一版本的开发方向
- netty源码分析(二十四)TCP粘包与拆包实例演示及分析
- CentOS 7 Linux 中Yum方式安装MySQL(咋个办呢 zgbn)
- Centos 7 从零搭建nginx+tomcat集群
- pytorch可视化工具visdom启动失败解决方法
- MySQL数据库使用——MySQL字段管理