20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises19
文章目录
- 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises19
- P820
- P813
- P311
- P743
- P750
- P771
20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises19
整体上,对于字符串,大家要有足够的印象:
- 字符串常量可以直接用双引号给出来
- 而字符串本身如果需要内存来装它,则一定是用字符数组来完成,用字符数组是最直接简单的方式,但不够灵活
- 或者是主动使用malloc来分配相应的字符型内存空间【以后会讨到】
对于字符中的整体操作,有两种方式
- 使用scanf输入,使用%s方式整体输入,但不能有空格,制表,或是回车符,因为遇到这三种字符,输入就结束了
- 使用gets输入,遇到回车结束
- 所以:如果输入的串里,包含了空格,制表,则只能使用gets来输入。
- 当然,也可以使用循环的方式,使用scanf的%c逐个字符的一个一个的输入,这样子,空格也可以输入到相应的数组中去
- 可以使用长度控制
- 可以使用结束符控制
- 可以使用异常结束来控制【不符合软件工程要求,但可以做到】
对于函数,现在要求掌握
- 函数返回值
- 函数命名
- 函数入口参数
- 函数声明
- 函数体实现
- 函数调用
函数是C的思维方式,也是顶级的处理问题的思维方式:
- 自顶向下,逐步求精
- 模块化,复用
- 入口参数化,通用
- 入口防御性检测,可靠
- 对函数做单元测试,形成库函数
- 对函数做专门的注释,形成文档,专利化
P820
下载的源代码是:
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
______________________________int main(void)
{int n;long int Fn;printf("Please input a number: ");scanf("%d", &n);______________________________ /* userCode(<50字符): 调用函数计算f(n) */printf("\nf(%d) = %ld\n", n, Fn);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改过后的代码是:
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
long int myfun(int n);int main(void)
{int n;long int Fn;printf("Please input a number: ");scanf("%d", &n);Fn = myfun(n); /* userCode(<50字符): 调用函数计算f(n) */printf("\nf(%d) = %ld\n", n, Fn);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
long int myfun(int n)
{if (n==1){return 1;}else if (n>1){return 2 * myfun(n / 2) + n;}else{return 0;}}
P813
下载的源代码是:
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
______________________________int main(void)
{int n;double fn;printf("Input n (13>=n>=2): ");scanf("%d", &n);______________________________ /* userCode(<50字符): 调用函数计算fn */printf("\nf(%d)=%.0f\n", n, fn);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改过后的代码是:
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
double myfun(int n);int main(void)
{int n;double fn;printf("Input n (13>=n>=2): ");scanf("%d", &n);fn = myfun(n); /* userCode(<50字符): 调用函数计算fn */printf("\nf(%d)=%.0f\n", n, fn);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
double myfun(int n)
{if (n==0){return 0;} else if (n==1){return 1;} else if (n==2){return 2;} else{return myfun(n - 1) * 2 + myfun(n - 2) * myfun(n - 3);}}
P311
/**编写一程序P311.C实现以下功能①从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。
注意,这两个字符串最长均可达到127个字符、最短均可为0个字符。②将字符串s2插入字符串s1中,插入方法为:s2的第i个字符插入到原s1的第i个字符后,
如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的s1后。
提示,合并时可使用中间数组。例如:s1输入为"123456789",S2输入为"abcdefghijk",则输出的s1为:1a2b3c4d5e6f7g8h9ijk③在屏幕上输出新生成的s1。
编程可用素材:
printf("Please input string1:");
printf("Please input string2:");
printf("\nstring1:...\n");程序的运行效果应类似地如图1所示,其中的123456789和abcdefghijk是从键盘输入的内容。图1 程序运行效果示例
*/
#include <stdio.h>
#define N 127int main(int argc, char const *argv[])
{int i;int j;char str1[N], str2[N];char newStr[N * 2];printf("Please input string1:");gets(str1);printf("Please input string2:");gets(str2);for (i = 0, j = 0; str1[i] != '\0' && str2[i] != '\0'; i++){newStr[j++] = str1[i];newStr[j++] = str2[i];}while (str2[i] != '\0'){newStr[j++] = str2[i++];}while (str1[i] != '\0'){newStr[j++] = str1[i++];}newStr[j] = '\0';printf("\nstring1:%s\n", newStr);return 0;
}
P743
/**
编写一程序P743.C实现以下功能从键盘输入一行可带空格的字符串(约定:字符数≤127字节),按逆序输出该字符串。
注意,程序中不能使用库函数strrev或使用同名的变量、函数、单词。
编程可用素材:
printf("Input a string: ");
printf("\nThe result is: ");程序的运行效果应类似地如图1所示,图1中的abc xyz是从键盘输入的内容。
Input a string: abc xyzThe result is: zyx cba
*/
#include <stdio.h>
#include <string.h>#define N 127int main(int argc, char const *argv[])
{int i;char str[N];printf("Input a string: ");gets(str);printf("\nThe result is: ");for (i = (int)strlen(str); i>= 0 ; i--){putchar(str[i]);}return 0;
}
P750
/**
编写一程序P750.C实现以下功能输入字符串s(约定:字符数≤100字节),将字符串s中所有字符‘*’删除,并将修改后的字符串显示出来。编程可用素材:
printf("Please input a string: ");
printf("\nThe result is: ");程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
Please input a string: *dgjk* %&* *df78dg 88**The result is: dgjk %& df78dg 88
*/
#include<stdio.h>#define N 100int main(int argc, char const *argv[])
{int i,j;char str[N];char strNew[N];printf("Please input a string: ");gets(str);// remove star alphafor ( i = 0,j=0; str[i]!='\0'; i++){if (str[i]!='*'){strNew[j++] = str[i];}}strNew[j] = '\0';printf("\nThe result is: %s", strNew);return 0;
}
P771
/**编写一程序P771.C实现以下功能编程在一个已知的字符串(约定:字符数≤127字节)中查找最长单词,输出最长单词的长度。注意事项:(1)只考虑输入的字符串中仅含空格和其它可见字符,仅用空格用来分隔不同单词。(2)字符串中可能只有1个单词。(3)字符串中可能1个单词都没有,此时最长单词的长度为0。(4)编程可用素材:printf("please input a string:\n");printf("\nmax_length of the string is: %d\n");程序的运行效果应类似地如图1所示,图1中的hello welcome to chengdu-CUIT是从键盘输入的内容。*/
#include <stdio.h>#define N 127int main(int argc, char const *argv[])
{int i, j;int oldLength = 0;int length;char str[N];printf("please input a string:\n");gets(str);for (i = 0; str[i] != '\0'; i++){if (str[i] != ' '){length = 0;for (j = i; str[j] != ' ' && str[j]!='\0'; j++) // 开始求长度{length++;}if (oldLength<length) // 记录最长的串长度{oldLength = length;}i = j;}}printf("\nmax_length of the string is: %d\n",oldLength);return 0;
}
20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises19相关推荐
- 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises02
文章目录 20201015-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises02 成信大-C语言程序设计上机作业-参考 **20201学期& ...
- 20201104-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises07
文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises07 P702 P754 P112 P793 P744 2020 ...
- 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises29
文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises29 程序改错与填空要求 具体要求 具体题面 D1 D2 D3 ...
- 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises26
文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises26 P320 P321 P324 P325 20201022- ...
- 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises03
文章目录 20201015-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises03 P122 P708 P133 P135 P721 P735 ...
- 成信大2020C语言编程114,南京信息工程大学2020考研大纲822CC语言程序设计
<南京信息工程大学2020考研大纲822CC语言程序设计>由会员分享,可在线阅读,更多相关<南京信息工程大学2020考研大纲822CC语言程序设计(8页珍藏版)>请在人人文库网 ...
- 成信大807程序综合设计2015-2022历年真题及答案【持续更新中】
快速导航 2015年 一.填空题 二.程序改错题 三.分析程序题 四.算法设计及编程题 2016年 一.单项选择题 二.判断题 三.程序分析题 四.程序设计题 2017年 一.单项选择题 二.判断题 ...
- 成信大807常用函数复习
快临近考试了,这里在带领大家复习一遍常用的函数库函数,考场上可以直接调用省去一大堆的推演代码时间 目录 #include//以下函数包含使用头文件 #include//以下函数包含使用头文件 真题函数 ...
- 成信大C语言D1,网络空间安全学院成功举办C语言程序设计大赛
4月24日晚,在学院蔺冰老师的细心指导下,由网络空间安全学院科技实践部主办,生活纪检部与外联部协办的C语言程序设计大赛在第二实验楼6607教室举行. 随着主持人宣布--比赛正式开始,现场的工作人员以最 ...
- 成信大c语言答案P239.C,2011秋季江苏省计算机二级C语言试题与答案.doc
2011秋季江苏省计算机二级C语言试题与答案 [本试卷的欠妥处]经过对2011秋江苏省C语言试卷仔细阅读和上机调试,本试卷卷面错误比2011春有较大改进.但还存在如下三处不足之处或命题欠妥处,有待改进 ...
最新文章
- linux忘记root密码的两种修改方法
- php和python哪个用了开发web好-php web与python web哪个好
- 报道称:Check Point正在洽谈收购CyberArk
- QString和string互相转换乱码处理
- 设计模式示例_责任链设计模式示例
- 解决Ubuntu系统终端运行python文件报错“ImportError/ModuleNotFoundError:No Module named xx”
- php课后答案 唐四薪_PHP课后小结 12.20
- python—如何处理文件中的缺失值
- 适合用于UI设计器/开发人员探索您或他人创建的UI的一款UI设计开发软件——QuickLens for Mac
- CRUD搬砖两三年了,怎么阅读Spring源码?
- SEO_关键词研究工具
- user后面的计算机名更改,更改电脑用户名(可更改C:\Users\用户名)
- Balanced MSE 使用指南
- 给LSTM网络训练的数据添加标签(三维数组的一维增加数据)
- 有偿调查问卷赚钱攻略
- 小白装系统(超详细)
- java实现微信小程序客服功能开发
- hive 读取 map的value
- C盘莫名其妙就满了怎么办?
- 基于camunda开源流程引擎如何实现会签及会签原理解析
热门文章
- TC软件详细设计文档(手机群控)
- 复制粘贴神器allow copy
- 酒店计算机应用例子,酒店管理系统_计算机应用专业毕业论文
- iOS最全学习资源汇总
- Verilog 语法合集
- 纠错码 - 海明码/汉明码
- 目前微型计算机硬件主要采用,目前使用的微型计算机硬件主要采用的电子器件是()。 A. 真空管 B. 晶体管 C. 大规模和超大规模集成电路...
- html+浏览器自动全屏,web 使网站在浏览器中全屏显示 fullscreen=yes
- 剧情系统实战,我们要做一个什么样的剧情系统
- 图像识别--利用百度API免费调用