(精品)上机考试常有算法(不含计算问题).ppt
《(精品)上机考试常有算法(不含计算问题).ppt》由会员分享,可在线阅读,更多相关《(精品)上机考试常有算法(不含计算问题).ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国二级C语言上机典型题型运用运用/和和%分离整数的各位分离整数的各位1:请编写函数:请编写函数fun,其功能是:将两个两位数的正整数,其功能是:将两个两位数的正整数a、b合并形成一个整数放在合并形成一个整数放在c中。合并的方式是:将中。合并的方式是:将a数的十位和数的十位和个位数依次放在个位数依次放在c数个位和十位上,数个位和十位上,b数的十位和个位数依次数的十位和个位数依次放在放在c数的百位和千位上。数的百位和千位上。例如,当例如,当a=16,b=35,调用该函数后,调用该函数后,c=5361。#includevoid fun(int a,int b,long*c)*c=(b%10)*10
2、00+(b/10)*100+(a%10)*10+a/10;2:数组:数组xxN保存着一组位数的无符号正整数,其元素的个数通过变量保存着一组位数的无符号正整数,其元素的个数通过变量num传入函数传入函数fun()。请补充函数。请补充函数fun(),该函数的功能是:从数组,该函数的功能是:从数组xx中找出中找出个位和百位的数字相等个位和百位的数字相等的所有无的所有无符号整数,结果保存在数组符号整数,结果保存在数组yy中,其个数由函数中,其个数由函数fun()返回。返回。例如:当例如:当xx8=135,78,72,32,222,424,333,141,541时,时,bb6=787,232,222,4
3、24,333,141。#include#define N 1000int fun(int xx,int bb,int num)int i,n=0;int g,b;for(i=0;i=0;-i)d=ci;printf(%c,bd);printf(n);4:请补充函数:请补充函数fun(),该函数的功能是:把一个,该函数的功能是:把一个整数转换成字符串整数转换成字符串,并倒序保存,并倒序保存在字符数组在字符数组str中。例如:当中。例如:当n=13572468时,时,str=86427531。#include#include#define N 80char strN;void fun(long i
4、nt n)int i=0;while(n0)stri=n%10+0;n/=10;i+;stri=0;数组特殊位置元素的确定数组特殊位置元素的确定1:下列程序定义了:下列程序定义了NN的二维数组,并在主函数中赋值。请编写函数的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能,函数的功能是:求出数组周边元素的平方和并作为函数值返回给主函数中的是:求出数组周边元素的平方和并作为函数值返回给主函数中的s。#define N 5int fun(int wN)int i,j,k=0;int s=0;for(i=0;iN;i+)for(j=0;jN;j+)if(i=0|i=N-1|j=0|j=N
5、-1)/*只要下标中有一个为只要下标中有一个为0或或N-1,则它一定是周边元素,则它一定是周边元素*/s=s+wij*wij;/*将周边元素求平方和将周边元素求平方和*/return s;/*返回周边元素的平方和返回周边元素的平方和*/2:下列程序定义了NN的二维数组,并在主函数中自动赋值。请编写函数fun(int aN,int n),该函数的功能是:使数字右(左)上半三角元素中的值乘以m。#define N 5int fun(int aN,int m)int i,j;for(i=0;iN;i+)for(j=i;jN;j+)aij=aij*m;最大公约数与最小公倍数最大公约数与最小公倍数1:请
6、请补补充充main函函数数,该该函函数数的的功功能能是是:输输入入两两个个正正整整数数m和和n,求这两个数的最大公约和最小公倍数。,求这两个数的最大公约和最小公倍数。(题盘题盘34-2 83-2)#include main()int a,b,n,m,t;printf(nInput two numbers:n);scanf(%d,%d,&n,&m);if(nm)a=m;b=n;elsea=n;b=m;while(b!=0)t=a%b;a=b;b=t;printf(greatest common divisor:%dn,a);printf(least common multiple:%dn,n*m
7、/a);判断素数判断素数1:请编写一个函数:请编写一个函数void fun(int m,int k,int xx),该函数的功能是:,该函数的功能是:将大于整数将大于整数m且紧靠且紧靠m的的k个非素数存入所指的数组中。个非素数存入所指的数组中。例如,若输入例如,若输入15,5,则应输出,则应输出16,18,20,21,22。void fun(int m,int k,int xx)int i,j,n;for(i=m+1,n=0;nk;i+)/*找大于找大于m的非素数,循环的非素数,循环k次,即找出紧靠次,即找出紧靠m的的k个非素数个非素数*/for(j=2;ji;j+)/*判断一个数是否为素数判
8、断一个数是否为素数*/if(i%j=0)xxn+=i;/*如果不是素数,放入数组如果不是素数,放入数组xx中中*/break;/*并跳出本层循环,判断下一个数并跳出本层循环,判断下一个数*/求串长(指针数组存储串)求串长(指针数组存储串)char a80;int n=0;while(an!=0)/*(an)或an!=0*/n+;/*n 即为串长*/char a80;int n=0;for(;an;n+);/*(an)或an!=0*/*n 即为串长*/求串长求串长(指针变量指向串)指针变量指向串)char*a;int n=0;gets(a);while(*a!=0)/*(*a)或*a!=0 */
9、n+;a+;/*n 即为串长*/char*a;int n=0;gets(a);for(;*a;a+)n+;/*a!=0或*a!=0*/*n 即为串长*/字符串逆序存放字符串逆序存放1:请补充函数:请补充函数fun(),该函数的功能是:把从主函数中输入的字符串,该函数的功能是:把从主函数中输入的字符串str2倒置后倒置后接在字符串接在字符串str1后面。后面。例如:例如:str1=How do,str2=?od uoy,结果输出:结果输出:How do you do?。#define N 40void fun(char*str1,char*str2)int i=0,j=0,k=0,n;char
10、ch;char*p1=str1;char*p2=str2;while(*(p1+i)i+;while(*(p2+j)j+;n=j-;for(;k=j/2;k+,j-)ch=*(p2+k);*(p2+k)=*(p2+j);*(p2+j)=ch;*(p2+n)=0;for(;*p2;i+)*(p1+i)=*p2+;*(p1+i)=0;2:补充函数:补充函数fun(char*s),该函数的功能是把字符串中的内容逆置。,该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为,则调用该函数后,串中的内容变为edcba。#in
11、clude#include#include#define N 81void fun(char*s)int i=0,n=strlen(s);char t;for(;in/2;i+)t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;字符串中特定字符或字符串的统计字符串中特定字符或字符串的统计1:请补充函数:请补充函数fun(),该函数的功能是:按,该函数的功能是:按0到到9统计一个字符串中的奇统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库中。注意:不能使用字符串库函数。函数。例如:输
12、入例如:输入x=112385713.456+0.909*bc,结果为:,结果为:13,32,52,71,92。#include#define N 1000void fun(char*tt,int num)int i,j;int bb10;char*p=tt;for(i=0;i=0&*p=9)bb*p-0+;p+;for(i=1,j=0;i10;i=i+2,j+)numj=bbi;2:str是全部由小写字母字符和空格字符组成的字符串,由是全部由小写字母字符和空格字符组成的字符串,由num传入字符传入字符串的长度。请补充函数串的长度。请补充函数fun(),该函数的功能是:统计字符串,该函数的功能是
13、:统计字符串str中的单词中的单词个数,结果由变量个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。开始不存在空格。例如:例如:str=how do you do,结果为:,结果为:num=4。#define N 80void fun(char*s,int*num)int i,n=0;for(i=0;i=a&si=z&(si+1=|si+1=0)n+;*num=n;3:请补充函数:请补充函数fun(),该函数可以统计一个长度为,该函数可以统计一个长度为n的字符串在另一个字符串的字符串在另一个字符串中出现的次数。例如,
14、假定输入的字符串为:中出现的次数。例如,假定输入的字符串为:asd ascasdfg asd as asd mlosd,子字符串为子字符串为asd,则应输出,则应输出4。20-3算法算法1:int fun(char*str,char*substr)int n;char*p,*r;n=0;while(*str)p=str;r=substr;while(*r)if(*r=*p)r+;p+;else break;if(*r=0)n+;str+;return n;算法算法2:(好理解)(好理解)int i=0,k=0,j=0,n;n=strlen(str);while(ipi)q=p+i;min=pi
15、;i+;while(qp)*q=*(q-1);q-;p0=min;循环左移算法循环左移算法1:请编写函数:请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有,该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要个整数,要求把下标从求把下标从0到到p(pn-1)的数组元素平移到数组的最后。的数组元素平移到数组的最后。例如,一维数组中的原始内容为例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为的值为3。移动后,一维数组中的内容应为。移动后,一维数组中的内容应为5,6,7,8,9,10,11,12,13,14,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 上机 考试 常有 算法 计算 问题
限制150内