C语言程序设计现代方法(第二版)十二章编程题答案
作为一名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语言程序设计现代方法(第二版)十二章编程题答案相关推荐
- c语言程序设计现代方法第二版 第10章程序设计题3题,自己编写的一个程序
main.c文件 #include <stdio.h> //#include "lib.h" if there is a statement like this ,th ...
- C语言程序设计现代方法第二版,第10章课后编程习题
第一题 这题10.2中的pop函数没有用,在我的电脑里(vs2017)当把pop赋值给字符串时总是报错,尝试了各种办法都不行,提示是:char(*)()和char类型不兼容.求大神帮呀 #includ ...
- C语言程序设计-现代方法 第二版 第6.1小节 显示平方表
第6.1小节 显示平方表 //This is a comment //Author:King //Time:2020/12/5 //Reference:C Programming:A Modern A ...
- C语言程序设计-现代方法 第二版 第3.2.3小节 分数相加
第3.2.3小节 分数相加.举例说明scanf函数的模式匹配能力 ,本例程实现两个分数相加 //This is a comment //Author:King //Time:2020/12/4 //R ...
- C语言程序设计-现代方法 第二版 2.1小节 显示双关语
2.1小节代码 显示双关语. //This is a comment //Author:King //Time:2020/12/4 //Reference:C Programming:A Modern ...
- C语言程序设计-现代方法 第二版 第9.1 小节代码 显示双关语改进版
第9.1 小节代码 显示双关语改进版 //This is a comment //Author:King //Time:2020/12/6 //Reference:C Programming:A Mo ...
- 李航老师《统计学习方法》第二版第三章课后题答案
其他章节答案请参考我的汇总统计学习方法答案汇总,都是自己写的. 1.参照图3.1,在二维空间中给出实例点,画出 kkk 为1和2时的 kkk 近邻法构成的空间划分,并对其进行比较,体会 kkk 值的选 ...
- PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)
目录 PTA 浙大版<C语言程序设计(第4版)>题目集 参考答案(编程题) 本答案配套详解教程专栏 练习2-1 Programming in C is fun! (5 分) 练习2-3 输 ...
- 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第7章
<Android移动应用基础教程>(Android Studio)(第二版)黑马教程 课后题答案 第7章 一.判断题 1.对 2.对 3.对 4.错 5.对 二.选择题 1.C 2.B 3 ...
最新文章
- java 抛异常给上级_java异常处理机制(示例代码)
- 工具分享-自动生成正则表达式的各种代码,附带正则表达式介绍
- FPGA设计心得(1)真双口RAM使用及其仿真问题记录
- xshell突出显示集
- java读取 png_如何让java的ImageBuffer正确读取PNG文件?
- python高级应用_Python高级编程技巧
- [Java基础]List集合子类特点
- openstack中彻底删除计算节点的操作记录
- paip.DISCUZ道具开发指南-attilax总结-
- python表白程序-python告白程序
- 【Linux-网桥原理分析】
- hdu 校赛 油菜花王国
- 自动化办公神器!用Python批量识别发票并录入到Excel表格!可以讨财务女神开心了!
- 关闭Linux内核打印信息方法
- 著名平面设计师有哪些?你想成为他们嘛?
- 基于Plupload的图片压缩上传
- 对面向过程,对象,接口,切面的理解
- idea全局替换yml 报错:you have entered malformed replacement
- 国内几个免费的Git私有仓库
- javaweb学习心得-01(西部开源-秦疆随堂笔记)