文章目录

  • 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相关推荐

  1. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises02

    文章目录 20201015-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises02 成信大-C语言程序设计上机作业-参考 **20201学期& ...

  2. 20201104-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises07

    文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises07 P702 P754 P112 P793 P744 2020 ...

  3. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises29

    文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises29 程序改错与填空要求 具体要求 具体题面 D1 D2 D3 ...

  4. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises26

    文章目录 20201022-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises26 P320 P321 P324 P325 20201022- ...

  5. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises03

    文章目录 20201015-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises03 P122 P708 P133 P135 P721 P735 ...

  6. 成信大2020C语言编程114,南京信息工程大学2020考研大纲822CC语言程序设计

    <南京信息工程大学2020考研大纲822CC语言程序设计>由会员分享,可在线阅读,更多相关<南京信息工程大学2020考研大纲822CC语言程序设计(8页珍藏版)>请在人人文库网 ...

  7. 成信大807程序综合设计2015-2022历年真题及答案【持续更新中】

    快速导航 2015年 一.填空题 二.程序改错题 三.分析程序题 四.算法设计及编程题 2016年 一.单项选择题 二.判断题 三.程序分析题 四.程序设计题 2017年 一.单项选择题 二.判断题 ...

  8. 成信大807常用函数复习

    快临近考试了,这里在带领大家复习一遍常用的函数库函数,考场上可以直接调用省去一大堆的推演代码时间 目录 #include//以下函数包含使用头文件 #include//以下函数包含使用头文件 真题函数 ...

  9. 成信大C语言D1,网络空间安全学院成功举办C语言程序设计大赛

    4月24日晚,在学院蔺冰老师的细心指导下,由网络空间安全学院科技实践部主办,生活纪检部与外联部协办的C语言程序设计大赛在第二实验楼6607教室举行. 随着主持人宣布--比赛正式开始,现场的工作人员以最 ...

  10. 成信大c语言答案P239.C,2011秋季江苏省计算机二级C语言试题与答案.doc

    2011秋季江苏省计算机二级C语言试题与答案 [本试卷的欠妥处]经过对2011秋江苏省C语言试卷仔细阅读和上机调试,本试卷卷面错误比2011春有较大改进.但还存在如下三处不足之处或命题欠妥处,有待改进 ...

最新文章

  1. linux忘记root密码的两种修改方法
  2. php和python哪个用了开发web好-php web与python web哪个好
  3. 报道称:Check Point正在洽谈收购CyberArk
  4. QString和string互相转换乱码处理
  5. 设计模式示例_责任链设计模式示例
  6. 解决Ubuntu系统终端运行python文件报错“ImportError/ModuleNotFoundError:No Module named xx”
  7. php课后答案 唐四薪_PHP课后小结 12.20
  8. python—如何处理文件中的缺失值
  9. 适合用于UI设计器/开发人员探索您或他人创建的UI的一款UI设计开发软件——QuickLens for Mac
  10. CRUD搬砖两三年了,怎么阅读Spring源码?
  11. SEO_关键词研究工具
  12. user后面的计算机名更改,更改电脑用户名(可更改C:\Users\用户名)
  13. Balanced MSE 使用指南
  14. 给LSTM网络训练的数据添加标签(三维数组的一维增加数据)
  15. 有偿调查问卷赚钱攻略
  16. 小白装系统(超详细)
  17. java实现微信小程序客服功能开发
  18. hive 读取 map的value
  19. C盘莫名其妙就满了怎么办?
  20. 基于camunda开源流程引擎如何实现会签及会签原理解析

热门文章

  1. TC软件详细设计文档(手机群控)
  2. 复制粘贴神器allow copy
  3. 酒店计算机应用例子,酒店管理系统_计算机应用专业毕业论文
  4. iOS最全学习资源汇总
  5. Verilog 语法合集
  6. 纠错码 - 海明码/汉明码
  7. 目前微型计算机硬件主要采用,目前使用的微型计算机硬件主要采用的电子器件是()。 A. 真空管 B. 晶体管 C. 大规模和超大规模集成电路...
  8. html+浏览器自动全屏,web 使网站在浏览器中全屏显示 fullscreen=yes
  9. 剧情系统实战,我们要做一个什么样的剧情系统
  10. 图像识别--利用百度API免费调用