2022年计算机二级C语言上机题型总结.docx

上传人:H****o 文档编号:58173850 上传时间:2022-11-07 格式:DOCX 页数:33 大小:42.40KB
返回 下载 相关 举报
2022年计算机二级C语言上机题型总结.docx_第1页
第1页 / 共33页
2022年计算机二级C语言上机题型总结.docx_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《2022年计算机二级C语言上机题型总结.docx》由会员分享,可在线阅读,更多相关《2022年计算机二级C语言上机题型总结.docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 运算机二级 C语言上机题型总结一)“*” 问题1、将字符串中的前导 *号全部删除,中间和后面的 * 号不删除;void funchar *a char *p=a; while*p= =* p+; for ; *p.=0;p+,a+ *a=*p; *a=0; 2、只删中间 *int i; fori=0;ai= =* ;i+ for ;hp;h+ if*h.=* ai+=*h; for ;*p;p+ ai+=*p; ai= 0;3、只删尾 *名师归纳总结 - - - - - - -第 1 页,共 18 页精选学习资料 - - - - - - - -

2、 - while*a.=0 a+; a-; while*a= =* a-; *a+1= 0;4、只留前 *int i , j=0; fori=0;a=* ;i+;j=i; for ;a;i+ ifa.=*aj+=ai; aj= 0;5、只留中间 *int i,j=0; fori=h;in-e;i+ aj+=ai; aj= 0;6、只留尾 *char *t=a; 名师归纳总结 - - - - - - -第 2 页,共 18 页精选学习资料 - - - - - - - - - for ; tn个,删余外的 * ;* 个数n while*p ai=*p+k-n; i+;p+ ai= 0; 名师归纳总

3、结 - - - - - - -第 3 页,共 18 页精选学习资料 - - - - - - - - - (二)移动问题1、如一维数组中有n 个整数,要求把下标从p 到 n-1 (p=n-1)的元素平移到数组前面;int i,j,t; fori=p;i=0;j- wj+1=wj; w0=t; 2、把下标从 0 到 p(p=n-1)的元素平移到数组最终;int i,j,t; fori=0;i=p;i+ t=w0; forj=1;jn;j+ wj-1=wj; wj-1=t; 3、把字符串 str 中的字符向前移动,原先第 串中;ch=str0; fori=0;stri+1;i+ 1 个字符放串尾,结

4、果仍储存在原名师归纳总结 - - - - - - -第 4 页,共 18 页精选学习资料 - - - - - - - - - stri=stri+1; stri=ch; 4、移动字符串中的内容,把第1 到第 m个字符平移到串后,把第m+1到后移到前;void funchar *w, int m int i, j; char t; fori=1,i=m;i+ t=w0; forj=1;wj.=0;j+ wj-1=wj; wj-1=t; (三)排序法 1、冒泡法 fori=1;in;i+ forj=0;jaj+1 t=aj;aj=aj+1;aj+1=aj; 2、挑选法名师归纳总结 - - - -

5、- - -第 5 页,共 18 页精选学习资料 - - - - - - - - - fori=0;in-1;i+ p=i; forj=i+1;jaj p=j; ifp.=i t=ai;ai=ap;ap=t; 3、插入法 fori=1;it&j=0;j- aj+1=aj; aj+1=t; (四) Fibonacci 问题 1、求 Fibonacci 数列中小于 t 的最大的一个数,结果由函数返回;int funint t int a=1,b=1,c=0,i; do 名师归纳总结 - - - - - - -第 6 页,共 18 页精选学习资料 - - - - - - - - - c=a+b; a=

6、b; b=c; whilect; c=a; return c; n 项的值;2、用递归算法运算数列中第 long funint g swichg case 0:return 0; switchg case1:case2:return 1; returnfung-1+fung-2; 五 素数问题 1、将大于整数 m且紧靠 m的 k 个非素数存入所指的数组中;void funint m,int k,int xx int i,j,n; fori=m+1,n=0;nk;i+ 名师归纳总结 - - - - - - -第 7 页,共 18 页精选学习资料 - - - - - - - - - forj=2;

7、ji;j+ ifi%j= =0 xxn+=i; break; 2、小于或等于 lim 的全部素数放在 aa 数组中,该函数返回所求出的素数个数;int funint lim, int aaMAX int i,j,k=0; fori=2;i=lim;i+ forj=2;j=i aak+=i; return k; 3、将全部大于 1 小于整数 m的非素数存入 xx 数组中,个数通过 k 传回;void funint m,int *k,int xx int i,j,n=0; fori=4;im;i+ forj=2;ji;j+ 名师归纳总结 - - - - - - -第 8 页,共 18 页精选学习资

8、料 - - - - - - - - - ifi%j= =0 break; ifji xxn+=i; *k=n; 或 int i, j,t,n=0; fori=2;im;i+ t=1; forj=2;ji;j+ ifi%j=0 t=0;break; ift=1 xxn+=I; *k=n; (六)删除相同数 int funint a,int n int i, j=1; fori=1;in;i+ ifaj-1.=ai aj+=ai; return j; 或名师归纳总结 - - - - - - -第 9 页,共 18 页精选学习资料 - - - - - - - - - int i,t,j=0; t=a

9、0; fori=1;in;i+ ift=ai ; else aj+=t; t=ai; aj+=t; return j; (七)统计字符个数,单词个数;1、按0到9统计一个字符串中的奇数数字字符各自显现的次数,结果保存在数组 num中;void funchar *tt, int num int i, j; int bb10; char *p=tt; fori=0;i=0&*p=9 bb*p- 0+; p+; fori=1,j=0;i10;i=i+2,j+ numj=bbi; 2、str 全部由小写字母和空格字符组成的字符串,词个数;void funchar *s, int *num int I,

10、 n=0; fori=0;i=a&ssi= z&si+1= =| 0 n+; *num=n; 3、从a到z统计一个字符串中全部字母字符各自显现的次数,结果存在数组 alf 中;void fun char *tt, int alf int i; char *p=tt; fori=0;i= A&*p= a&*p=z alf*p- p+; 4、str 字符序列由字符 0 和 1 组成;查找 0 字符连续显现的最长长度,如有几 个 0 字符长度相同,只记录最终 1 个 0 字符串相关信息,通过 m和 k 返回最长 0 字符长度和其下标;void funchar *str, int *m, int *k

11、 int i, j=0; int bbN; char *p=str; *m=0; *k=0; fori=0;iN;i+ bbi=0; i=0; while*p+i 名师归纳总结 if*p+i=0第 12 页,共 18 页- - - - - - -精选学习资料 - - - - - - - - - bbj+;i+; else j+;i+; if*m=bbj *m=bbj; *k=i-1; 5、统计在 tt 字符串中”a” 到”z” 26 个字母各自显现的次数,并依次放在pp所指数组中;void fun char *tt,int pp int i; fori=0;i=a&*tt= pp*tt-a+;

12、 6、统计一个长度为 n 的字符串在另一个字符串中显现的次数;int funchar *str, char *substr int n; char *p,*r; 名师归纳总结 - - - - - - -第 13 页,共 18 页精选学习资料 - - - - - - - - - n=0; while*str p=str; r=substr; while*r if*r=*p r+;p+; else break; if*r=0 n+; str+; return n; 7、求出 ss 所指字符串中指定字符的个数,并返回此值;int fun char *ss, char c int i=0; for ;

13、*ss.=0;ss+ if*ss=c i+; return i; 名师归纳总结 - - - - - - -第 14 页,共 18 页精选学习资料 - - - - - - - - - 8、统计一个长度为 2 的字符串在另一个字符串中显现的次数;int fun char *str, char *substr int i,j=0; fori=0;stri+1.=0;i+ ifstri=substr0&stri+1=substr1 j+; return j; (八)进制转换1、把 str 字符串转换成任意进制的数;int funchar *str, int x, int y int sum; int

14、i=0; char *p=str; fori=0;iN;i+ xxi=0; sum=*p-0;p+; while*p sum=sum*x+*p- 0;p+; i=0; x :原进制; y:要转换成的进制;名师归纳总结 - - - - - - -第 15 页,共 18 页精选学习资料 - - - - - - - - - whilesum.=0 xxi=sum%y; sum=sum/y; i+; return i; 注:(1)0将 x 转换成 10 进制: sum=sum*x+*p-0;(2)将 10 进制转换成 y: sum%y 得到 y 进制数的最低位;制数的次低位;sum/y 得到 y 进2

15、、str 字符串由和1组成;转换成十进制数;int funchar *str int n; char *p=str; n=*p- 0;p+; while*p n=n*2+*p- 0; p+; return n; 名师归纳总结 - - - - - - -第 16 页,共 18 页精选学习资料 - - - - - - - - - (九)比较字符串长度1、比较两个字符串的长度,函数返回较短的字符串;char *funchar *s, char *t int i,j; fori=0;si.=0;i+;forj=0;tj.=0;j+; ifi=j return s; else return t; 2、从

16、传入的 num个字符中找出最长的一个字符串,通过形参指针 max传回该串 地址;funchar *a81, int num,char *max int i=0; max=a0; fori=0;inum;i+ ifstrlenmaxstrlenai max=ai; return max; (十)最大公约数,最小公倍数名师归纳总结 - - - - - - -第 17 页,共 18 页精选学习资料 - - - - - - - - - 1、int funint a, int b int r,t; ifab t=a;a=b;b=t; r=a%b; whiler.=0 a=b; b=r; r=a%b returnb; 2、输入两整数 m和 n,求最大公约数,最小公倍数;whileb.=0 t=a%b; a=b; b=t; printf“ %d” , ” %d” ,a, n*m/a;注:名师归纳总结 (1)最大公约数:如 b/a 的非零余数能整除a;第 18 页,共 18 页(2)最小公倍数:两数乘积除以最大公约数;- - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁