超星高级语言程序设计实验作业

实验05 指针及其在程序设计中的应用

注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流。

1.字符串长度

题目描述:编写程序实现:使用自编函数int strlen(char *str),求字符串str长度;并在主程序中调用。
输入:从键盘随机输入长度不超过256的字符串,字符串内可能包含若干空白字符。
输出:字符串的长度。
样例1:
输入:123 456
输出:8
样例2:
输入:A
输出:1

#include<stdio.h>
int strlen(char* ch) {int sum,i;for (i = 0; ch[i] != '\0'; i++);sum = i;return sum;
}
int main() {char a[256];int sum;gets_s(a);sum = strlen(a);printf("%d", sum);return 0;
}

很简单的求字符长度,判断结尾的\0就可以了

2.分类统计字符

题目描述:
编写程序实现:使用自编函数void count(char * str, int * upper, int *lower, int *space, int num, intother)统计给定字符串str中的大写字母、小写字母、空格、数组、其他字符的数目,并以指针参数传回主程序中的调用点,并输出。
输入:从键盘随机输入一个长度不超过256的字符串,字符串内可能包含若干空白字符。
输出:大写字母字符个数、小写字母字符个数、空格字符个数、数字字符个数和其他字符个数,数字间以一个西文空格间隔,最后一个数后无字符。
样例:
输入:
123  abc   ABC
输出:
3 3 5 3 0

#include<stdio.h>
//以下是判断行字符串长度的函数,也可以直接调用string.h中的strlen函数
int strlen(char* ch) {int sum, i;for (i = 0; ch[i] != '\0'; i++);sum = i;return sum;}
//以下是计数函数,通过指针将计数传递给main函数中的参数,从而返回多个值
void count(char* str, int* upper, int* lower, int* space, int* num, int* other) {int in; in = strlen(str);//记录该行有多少个字符int i;for ( i = 0; i < in; i++){if (str[i] >= 'A' && str[i] <= 'Z') *upper=*upper+1;if (str[i] >= 'a' && str[i] <= 'z') *lower=*lower+1;if (str[i] == ' ')*space=*space+1;if (str[i] >= '0' && str[i] <= '9')*num=*num+1;}*other = in - *upper - *lower - *space - *num;//计算其他字符
}
int main() {char str[256];gets_s(str);int upper=0, lower=0, space=0, num=0, other=0;count(str, &upper, &lower, &space, &num, &other);printf("%d %d %d %d %d", upper, lower, space, num, other);
}

3.排序二维数组

题目描述:编写程序对输入的二维整型矩阵进行递增排序。
输入:第一行输入两个正整数n和m (n, m<=50)分别对应矩阵的行数和列数。随后n行,每行输入m个整数,每个整数间以空格间隔。
输出:排序后的矩阵:共n行,每行m个整数,之间以一个西文空格间隔,每行最后一个数字后除必要的回车换行符无其它字符。
样例:
输入:
2 3
9 6 5
1 2 3
输出:
1 2 3
5 6 9
这道题可以有两种解法

方法一:
只定义一个一维数组

#include<stdio.h>
//以下是输入函数
void input(int a[], int n, int m) {int i;for (i = 0; i < n*m; i++) {scanf_s("%d", &a[i]);}}
//以下排序函数,我用了冒泡法排序
void putline(int a[],int n,int m) {int i, r, flag = 1;while (flag){flag = 0;for ( i = 0; i < n*m-1; i++){if (a[i]>a[i+1]){r = a[i]; a[i] = a[i + 1]; a[i + 1] = r;flag = 1;}}}
}
//以下是输出函数,控制输出结果使之成矩阵
void output(int a[],int n,int m) {int i, j;for ( i = 0; i < n; i++){for ( j = 0; j < m; j++){printf("%d", a[i * m + j]);if (j != m - 1)printf(" ");}if(i!=n-1)printf("\n");}
}
//主函数
int main() {int m, n,a[2500];scanf_s("%d%d", &n, &m);input(a, n, m);putline(a, n, m);output(a, n, m);return 0;
}

相信大家对一维数组和冒泡排序的使用已经很熟练了,就不多做介绍了

超星高级语言程序设计实验作业 实验05 指针及其在程序设计中的应用相关推荐

  1. 超星高级语言程序设计实验作业 (实验04 数组及其在程序设计中的应用)(二)

    超星高级语言程序设计实验作业 实验04 数组及其在程序设计中的应用(二) 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 7.检验矩阵重复元素 题目描述:编写程序判断任意 ...

  2. 北京电大c语言实验作业二,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...

    大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc C语言实验报告实验1-1:helloworld程序:源代码:#includemain(){printf("hellowor ...

  3. 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...

    『易坊知识库摘要_兰州大学|兰州大学C语言程序设计课程作业( 五 )』34.用户未作答标准答案exp04. 以下叙述中正确的是 在程序的一行上可以出现多个有效的预处理命令行使用带参的宏时,参数的类型应 ...

  4. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验05 指针及其在程序设计中的应用(2021级)

    目录 1.字符串长度 2. 合法标识符 3.分类统计字符 4. 字符串部分删除 5. 排序二维数组 1.字符串长度 题目编号:Exp05-Basic01,GJBook3-07-06 题目名称:字符串长 ...

  5. 吉林大学 超星慕课 高级语言程序设计 实验05 指针及其在程序设计中的应用(2022级)

    本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1.题目名称:字符串长度 题目描述:编写程序实现:使用自编函数int strlen(char *str),求字符串str长度: ...

  6. 吉林大学超星慕课平台——高级语言程序设计 实验05 指针及其在程序设计中的应用(2022级)

    一. 程序题(共5题,100分) 1. (程序题) 题目编号:Exp05-Basic01,GJBook3-07-06 题目名称:字符串长度 题目描述:编写程序实现:使用自编函数int strlen(c ...

  7. 实验05 指针及其在程序设计中的应用(2021级)

    1. (排序二维数组) 题目编号:Exp05-Basic03,GJBook3例-07-01 题目名称:排序二维数组 题目描述:编写程序对输入的二维整型矩阵进行递增排序. 输入:第一行输入两个正整数n和 ...

  8. python代写学生作业_CS1026A留学生作业代做、代写Python实验作业、代做Python程序设计作业、代写Computer Organization作业...

    CS1026A留学生作业代做.代写Python实验作业.代做Python程序设计作业.代写Computer Organization作业 日期:2019-05-31 11:23 University ...

  9. 物联网控制原理与技术--基于Matlab/PID控制仿真的应用(超详细/设计/实验/作业/练习)

    目录 课程名:物联网控制原理与技术 内容/作用:设计/实验/作业/练习 学习:PID控制仿真 一.前言 二.环境与设备 三.原理 四.内容 五.结果与分析 课程名:物联网控制原理与技术 内容/作用:设 ...

最新文章

  1. R语言ggplot2可视化:可视化堆叠的直方图、在bin中的每个分组部分添加数值标签、使用position_stack函数设置
  2. .NET MVC-去掉验证
  3. mysql5.7导入数据的权限问题
  4. 一步一步写算法(之 算法总结)【转】
  5. day10作用域与闭包
  6. 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)
  7. 066 模块的搜索路径
  8. 答题小程序/刷题微信小程序/考试小程序2.0版本(新增代理,团购,题目导入,数据导出等功能,THINKPHP后台)
  9. html5在线加密,HTML技巧——加密网页
  10. java冻结jsp首行_如何实现表格的首行冻结2
  11. 英语不规则动词变化表
  12. 阿里腾讯裁员、最高30%?计算机行业前景到底如何...
  13. android常用词汇带音标,高中那个背英语单词的APP好3500乱序带音标_背单词安卓软件...
  14. 简单暴力的排序方式:直接排序
  15. html cache control 设置,关于 浏览器 Cache-Control 不能设置问题。
  16. 主成分分析(R语言)
  17. BIOS开启Fast Boot后导致开机时键盘无法使用,无法进入BIOS
  18. 计算机系统中必不可少的系统软件是哪个,计算机系统中必不可少的软件
  19. kafka计算机专业读法_计算机专业有哪些行之有效的学习方法?
  20. [VBA]EXCEL同工作簿中多工作表合并VBA代码

热门文章

  1. 【附源码】计算机毕业设计SSM网上求职招聘系统
  2. UI设计师都能做什么,UI设计都有哪几个职业方向
  3. js当中mouseover和mouseout多次触发(非冒泡)
  4. video自动循环播放设置
  5. 2010-2019考研英语二 阅读真题+答案
  6. leetcode 1129. 颜色交替的最短路径【BSF方法图解-python3实现过程详解】
  7. MySQL中有inserted表吗_使用 inserted 和 deleted 表
  8. openglshader实现虚拟场景_基于OpenGL的雨雪场景仿真
  9. Sakura 文字颜色的编辑
  10. “对使用非SDK接口的限制”的适配实战