作为一名C语言初学者,以下答案为随手练习笔记,均已通过编译器实现书上功能,如有错误之处欢迎指出。


1、
(a)

# include <cstdio>
# include <iostream># define N 30void reverse(char [], int);int main(void)
{int sign = N;char  a[N];//数组初始化printf("Enter a message: ");for (int i = 0; i < N; ++i)//将输入的字符存进数组{a[i] = getchar();if (a[i] == '\n'){sign = i;//标记存入字符的末尾break;}}reverse(a, sign);//反转存入的字符printf("Reversal is: ");for (int i = 0; i < sign; ++i)//打印字符{printf("%c", a[i]);}system("pause");return 0;
}void reverse(char a[], int sign)//反转字符函数定义
{int temp, i(0),j(sign-1);for (; i <j; ){temp = a[i];a[i] = a[j];a[j] = temp;++i;--j;}
}

(b)

# include <cstdio>
# include <iostream># define N 30char *p, *q;void reverse(char []);int main(void)
{char  a[N];//数组初始化printf("Enter a message: ");p = a;q = a;for (; p < p+N; ++p )//将输入的字符存进数组{*p = getchar();if (*p == '\n')break;}reverse(a);//反转存入的字符printf("Reversal is: ");for (p = a; p < q+1;++p)//打印字符{printf("%c", *p);}system("pause");return 0;
}void reverse(char a[])//反转字符函数定义
{int temp, i;i = p - q;for (; q < p; ){temp = *q;*q = *p;*p = temp;--p;++q;}p = q = a;q += i;
}

2、

# include <stdio.h>
# include <iostream>
# include <ctype.h># define N 30void reverse(char[], char[], int);
bool check(char[], char[], int);int main(void)
{int sign = N;char  a[N] = { 0 };//数组初始化char  b[N] = { 0 };printf("Enter a message: ");for (int i = 0; i < N; ++i)//将输入的字符存进数组{a[i] = getchar();if (a[i] == '\n'){sign = i;//标记存入字符的末尾break;}if (toupper(a[i]) < 'A' || toupper(a[i]) > 'Z')//检查字符是否为字母--i;}reverse(a, b, sign);//将a反转并存入bbool CHE = check(a, b, sign);if (CHE)printf("Palindrome\n");elseprintf("Not a palindrome\n");system("pause");return 0;
}void reverse(char a[], char b[], int sign)//反转字符函数定义
{int i(0), j(sign - 1);for (; i < sign; ++i){b[j] = a[i];--j;}
}bool check(char a[], char b[], int sign)
{int sum(0);for (int i = 0; i < sign; ++i){if (a[i] == b[i])++sum;}return ((sum == sign&& sign>0) ? true : false);
}

3、

# include <cstdio>
# include <iostream># define N 30int main(void)
{char  a[N];//数组初始化int i;printf("Enter a message: ");for ( i = 0 ; i <  N; ++i)//将输入的字符存进数组{*(a + i) = getchar();if (*(a + i) == '\n')break;}printf("Reversal is: ");for (; i >= 0; --i)//打印字符printf("%c", *(a + i));system("pause");return 0;
}

4

# include <cstdio>
# include <iostream>
# include <ctype.h># define N 30int main(void)
{char  a[N], b[N];//数组初始化int i, sign, same(0);printf("Enter a message: ");for ( i = 0 ; i <  N; ++i)//将输入的字符存进数组a{*(a + i) = getchar();if (*(a + i) == '\n')break;if (toupper(*(a+i)) < 'A' || toupper(*(a+i)) > 'Z')//检查字符是否为字母--i;}sign = i;//标记存入的字符个数for (int j = 0; j < sign; ++j)//倒转字符并存入b{*(b + j) = *(a + i-1);--i;}for (i = 0; i < sign; ++i){if (*(a + i) == *(b + i))++same;}if (same == sign && sign != 0)printf("Palindrome\n");elseprintf("Not a palindrome\n");system("pause");return 0;
}

C语言程序设计现代方法(第二版)十二章编程题答案相关推荐

  1. c语言程序设计现代方法第二版 第10章程序设计题3题,自己编写的一个程序

    main.c文件 #include <stdio.h> //#include "lib.h" if there is a statement like this ,th ...

  2. C语言程序设计现代方法第二版,第10章课后编程习题

    第一题 这题10.2中的pop函数没有用,在我的电脑里(vs2017)当把pop赋值给字符串时总是报错,尝试了各种办法都不行,提示是:char(*)()和char类型不兼容.求大神帮呀 #includ ...

  3. C语言程序设计-现代方法 第二版 第6.1小节 显示平方表

    第6.1小节 显示平方表 //This is a comment //Author:King //Time:2020/12/5 //Reference:C Programming:A Modern A ...

  4. C语言程序设计-现代方法 第二版 第3.2.3小节 分数相加

    第3.2.3小节 分数相加.举例说明scanf函数的模式匹配能力 ,本例程实现两个分数相加 //This is a comment //Author:King //Time:2020/12/4 //R ...

  5. C语言程序设计-现代方法 第二版 2.1小节 显示双关语

    2.1小节代码 显示双关语. //This is a comment //Author:King //Time:2020/12/4 //Reference:C Programming:A Modern ...

  6. C语言程序设计-现代方法 第二版 第9.1 小节代码 显示双关语改进版

    第9.1 小节代码 显示双关语改进版 //This is a comment //Author:King //Time:2020/12/6 //Reference:C Programming:A Mo ...

  7. 李航老师《统计学习方法》第二版第三章课后题答案

    其他章节答案请参考我的汇总统计学习方法答案汇总,都是自己写的. 1.参照图3.1,在二维空间中给出实例点,画出 kkk 为1和2时的 kkk 近邻法构成的空间划分,并对其进行比较,体会 kkk 值的选 ...

  8. PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)

    目录 PTA 浙大版<C语言程序设计(第4版)>题目集 参考答案(编程题) 本答案配套详解教程专栏 练习2-1 Programming in C is fun! (5 分) 练习2-3 输 ...

  9. 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第7章

    <Android移动应用基础教程>(Android Studio)(第二版)黑马教程 课后题答案 第7章 一.判断题 1.对 2.对 3.对 4.错 5.对 二.选择题 1.C 2.B 3 ...

最新文章

  1. java 抛异常给上级_java异常处理机制(示例代码)
  2. 工具分享-自动生成正则表达式的各种代码,附带正则表达式介绍
  3. FPGA设计心得(1)真双口RAM使用及其仿真问题记录
  4. xshell突出显示集
  5. java读取 png_如何让java的ImageBuffer正确读取PNG文件?
  6. python高级应用_Python高级编程技巧
  7. [Java基础]List集合子类特点
  8. openstack中彻底删除计算节点的操作记录
  9. paip.DISCUZ道具开发指南-attilax总结-
  10. python表白程序-python告白程序
  11. 【Linux-网桥原理分析】
  12. hdu 校赛 油菜花王国
  13. 自动化办公神器!用Python批量识别发票并录入到Excel表格!可以讨财务女神开心了!
  14. 关闭Linux内核打印信息方法
  15. 著名平面设计师有哪些?你想成为他们嘛?
  16. 基于Plupload的图片压缩上传
  17. 对面向过程,对象,接口,切面的理解
  18. idea全局替换yml 报错:you have entered malformed replacement
  19. 国内几个免费的Git私有仓库
  20. javaweb学习心得-01(西部开源-秦疆随堂笔记)

热门文章

  1. 使用get-pip.py 安装python2 的pip
  2. element ui字段_ui备忘单下拉字段
  3. 单反相机的传奇—佳能单反50年辉煌之路(连载十)
  4. 最近收集的一些酷炫的UI界面设计
  5. docker重启参数--restart=always的作用
  6. 图解Pandas,数据结构介绍 | 图文第1篇
  7. Xilinx FPGA器件的速度等级
  8. NOVA温控器参数笔记(十)(故障代码)
  9. 公钥基础设施 PKI 技术与应用发展
  10. MySql 如何查询某一天内的数据