
计算导论与程序设计实验
20bupt
istdin
这个作者很懒,什么都没留下…
展开
-
设计函数 locatesubstr
设计函数 char *locatesubstr(char *str1,char *str2),查找str2指向的字符串在str1指向的字符串中首次出现的位置,返回指向该位置的指针。若str2指向的字符串不包含在str1指向的字符串中,则返回空指针NULL。 注意这里必须使用指针而不是数组下标来访问字符串。函数接口定义:函数接口如下:char *locatesubstr(char *str1,char *str2);在这里解释接口参数。例如:其中 str1 和 str2 都是用户传入的参数,其含义如原创 2021-01-21 17:22:40 · 46 阅读 · 0 评论 -
n*n蛇形矩阵
问题描述:蛇形矩阵是一个nn的矩阵,将整数1到nn按照蛇形的顺序装入一个 n*n 的蛇形矩阵中,如样例所示分别为5阶和10阶蛇形矩阵:输入与输出要求:输入一个整数n,代表蛇形矩阵的阶数,n的范围是1—100。输出蛇形矩阵。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。程序运行效果:Sample 1:51 3 4 10 112 5 9 12 196 8 13 18 207 14 17 21 2415 16 22 23 25Sample 2:101 3 4 10 11 21原创 2021-01-20 13:56:19 · 778 阅读 · 0 评论 -
实验10_5_指针数组初步
题解:实验10_5_指针数组初步已知一个总长度不超过10000的字符串,字符串中只包含大写字母“A—Z”、小写字母“a—z”和空格‘ ’。空格用于分割单词,空格的个数不超过1000个。你的任务是将字符串中用空格分隔的单词打印出来。 你要按照如下要求完成任务: 1.利用指针数组指向每个单词的开始位置。 2.把字符串中单词结束后的空格改为“\0”,然后使用指针数组将每个单词打印出来。 此题要求用函数完成。函数接口定义:函数原型如下:int getString( char * source , char原创 2021-01-24 10:16:33 · 710 阅读 · 0 评论 -
实验7-4 身份证号码最后一位
身份证编码规则如下:根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。顺序码(身份证第十五位到十七位)是县级公安机关所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:005的就是个男性,而且和他同年月日生的男性至少有两个,他们的后四位是001* 和003*原创 2021-01-17 15:16:47 · 768 阅读 · 0 评论 -
实验9_9_字符串加密
任意给定一个字符串,与两个编码表,要求对该字符串进行加密。字符串中只包含大写字母与小写字母。编码表是字母表的一个重新排列,第一个编码表为大写字母编码表,第二个编码表为小写字母编码表。例如:字母表为:(大写字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ)(小写字母表:abcdefghijklmnopqrstuvwxyz)编码表为:(大写字母编码表: JKLMQRYZABCISTNOPDGHXEFUVW)(小写字母编码表: bcljakfxpdqweozrsthiymnguv)编码原创 2021-01-17 15:26:53 · 456 阅读 · 0 评论 -
统计字符串出现的次数
题目描述:任意给定两个字符串str1与str2, str1与str2中可以包含任意字符。你的任务是统计字符串str2在str1中出现的次数。如字符串str1为“asasasbbbasbas”,str2为“as”,则统计结果为5。注意如果字符串str1为“aaaaa”,字符串str2为“aaa”,则统计结果为3。输入与输出要求:输入两个长度不超过100的字符串,以换行符结束。输出统计次数,占一行。程序运行效果:dhd dhdhdfg dhd dh zx67 dhd mklodhdh↙dhd↙6原创 2021-01-24 10:21:59 · 1700 阅读 · 0 评论 -
字符串比大小
问题描述:整数可以按照大小来排序,其实字符串也可进行排序。排序时需要比较字符串大小。字符串比较规则见Problem13中对于strcmp功能的描述。任意给定n个字符串,字符串中可以包含除换行符之外的任意字符。你的任务是将这n个字符串从小到大进行排序,然后输出。输入与输出要求:输入一个不超过200的整数n,代表待排序字符串的个数。然后输入n个字符串,每个字符串长度不会超过100,以换行符结束。输出排序后的n个字符串,每个字符串占一行。程序运行效果:Sample 1:5↙bbb↙zzzzzz↙原创 2021-01-17 22:34:08 · 351 阅读 · 0 评论 -
二维数组(二)
问题描述:任意给定一个n * m的矩阵,矩阵的行数为n,列数为m。你的任务是寻找该矩阵的鞍点。一个矩阵的鞍点即该位置上的元素在所在行上最大,在所在列上最小。有的矩阵也可能没有鞍点。不难证明,如果一个矩阵有鞍点,那么这个鞍点一定是唯一的。如果某个矩阵只有1行(1列),则默认该行上的所有元素满足列上最小(行上最大)的要求。例如矩阵M:1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20该矩阵的鞍点为M[0][4]=5,该数在第0行最大,在第4列最小。注:测试用例保原创 2021-01-17 17:30:34 · 653 阅读 · 0 评论 -
二维数组(一)
问题描述:任意给定一个n*n的矩阵,矩阵的行数与列数均为n。你的任务是通过行变换,使得矩阵每行元素的平均值按递增顺序排列。如果出现有的行平均值相同的情况,则按照原顺序输出。输入与输出要求:输入一个整数n代表矩阵的行数(列数),n的范围是1—100。然后输入n*n个整数,即此矩阵的元素。矩阵元素的绝对值不会超过1000000。输出经过行变换后的新矩阵。每行的每个元素用空格分隔,注意最后一个元素后为换行符。程序运行效果:Sample:3↙5 5 5↙3 3 3↙1 1 1↙1 1 13 3原创 2021-01-17 17:11:00 · 352 阅读 · 0 评论 -
选择排序
设计函数 void SelectSort(int a[],int n); 使用选择排序算法对数组a的前n个元素按照升序的方式排序。选择排序算法描述如下: 从a[0]到a[n-1]这段元素中找最小元素a[min],a[0]和a[min]交换;接着,从a[1]到a[n -1]这段元素中找最小元素a[min],a[1]和a[min]交换;依次类推,直到从a[n-2]到a[n -1]这段元素中找最小元素a[min],a[n-2]和a[min]交换。输入:首先输入一个整数n(1<n<=1000),代表原创 2021-01-17 16:13:49 · 321 阅读 · 0 评论 -
实验6-3 二分查找
实验6-3 二分查找设计函数 int BinarySearch(int a[],int n,int key);利用二分查找算法,在升序排列的数组a的前n个元素中查找值为key的数组元素的下标。如果数组a中存在整数key,则返回下标;否则返回-1。假设数组a中的元素互不相同。输入与输出要求:首先输入两个整数n,m,分别代表数组a中元素的个数与需要查找的整数的个数,n(0<n<=2000000)与m(0<m<=100000)。然后分别输入n个整数和m个整数,分别代表存放在数组中的原创 2021-01-17 15:00:10 · 76 阅读 · 0 评论 -
实验6_9 素数分解(递归实现)
题目描述:设计递归函数void void printFactor( int, int );打印出对n进行素数分解的结果。当执行void printFactor(60,1)时,打印效果为:60=223*5。关于素数分解的描述,见讲义。设计程序,已知一段数据范围[a,b],且a<=b,要求对其中的每一个数进行素数分解。你也可以设计其它辅助函数,如判断素数的函数isPrime(n)。输入与输出要求: 输入两个正整数a、b,代表所分解的区间,满足1<=a<=b<=100000,且原创 2021-01-17 13:01:07 · 2352 阅读 · 1 评论 -
实验6_4_二进制转十进制 实验6_5_二进制的位数
实验6_4_二进制转十进制设计递归函数int convert(int n);用于将二进制数n转换为十进制数并返回。输入与输出要求: 输入一个整数n,代表二进制数,其长度不大于10。输出转换后的十进制数,占一行。输入样例:101010输出样例:42思路:当n=0或n=1时,函数返回n,否则返回n%10+convert(n/10)*2 。代码实现:#include<stdio.h>int convert(int n);int main(){ int原创 2021-01-17 12:43:17 · 544 阅读 · 1 评论 -
实验5_11_设计函数isPerfect与printPerfect
问题描述:如果一个整数的各因子(包括1但不包括该整数本身)值之和等于该整数,则该整数称为“完全数”(perfect number)。例如,6是一个完全数,因为6=1+2+3。你的任务是设计函数isPerfect和printPerfect,判断并打印出区间[a,b](1<=a<b<=20000)内的所有完全数,并统计完全数的总个数。 isPerfect函数原型:int isPerfect(int n);用于判断正整数n是否为完全数,若是,则返回值为1,否则为0。 printPerfect函原创 2021-01-17 12:01:05 · 1145 阅读 · 1 评论