C语言练习测试考研复习题(共16页).doc





《C语言练习测试考研复习题(共16页).doc》由会员分享,可在线阅读,更多相关《C语言练习测试考研复习题(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上1. 编写一个程序将用户输入的正整数转化为对应的二进制数。#include#includeintmain()intnum;printf(请输入一个正整数:);scanf(%d,&num);/异常输入直接结束if(num0)printf(%d,a-i);printf(n);return0;2. 请写出你所了解的linux系统中常用的命令并解释其功能。(1)pwd命令该命令的英文解释为printworkingdirectory(打印工作目录)。输入pwd命令,Linux会输出当前目录。(2)cd命令cd命令用来改变所在目录。cd/转到根目录中cd转到/home/user用
2、户目录下cd/usr转到根目录下的usr目录中-绝对路径cdtest转到当前目录下的test子目录中-相对路径(3)ls命令ls命令用来查看目录的内容。选项含义-a列举目录中的全部文件,包括隐藏文件-l列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等-f列举的文件显示文件类型-r逆向,从后向前地列举目录中内容-R递归,该选项递归地列举当前目录下所有子目录内的内容-s大小,按文件大小排序-h以人类可读的方式显示文件的大小,如用K、M、G作单位ls-lexamples.doc列举文件examples.doc的所有信息(4)cat命令cat命令可以用来合并文件,也可以用来在
3、屏幕上显示整个文件的内容。catsnow.txt该命令显示文件snow.txt的内容,ctrl+D退出cat。(5)grep命令grep命令的最大功能是在一堆文件中查找一个特定的字符串。grepmoneytest.txt以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。(6)touch命令touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。touchnewfile该命令创建一个名为newfile的空白文件。(7)cp命令cp命令用来拷贝文件,要复制文件,输入命令:cpcpt.txtDocument/t该命令将把文件t.txt复制到D
4、ocument目录下,并命名为t。3. 编写一个程序计算任一输入数字的各位数字之和。#include#includeintmain()intnum;printf(请输入一个正整数:);scanf(%d,&num);/异常输入直接结束if(num0)printf(输入错误!);exit(0);intresult=0;while(num!=0)result+=num%10;num=num/10;printf(%dn,result);return0;4. 编写一个程序判断用户输入任一正整数是否为素数。#include#includeintmain()intnum;printf(请输入一个大于1正整数
5、:);scanf(%d,&num);/异常输入直接结束if(num0|num=1)printf(输入错误!);exit(0);if(num=2)printf(%d是素数。n,num);exit(0);boolflag=true;/默认判断是素数for(inti=2;inum;i+)if(num%i=0)flag=false;/发现了其他因子,不是素数break;if(flag=true)printf(%d是素数。n,num);elseprintf(%d不是素数。n,num);return0;5. 编写一个程序求给定三个字符串的最长公共字串。(难)这里我只写了两个字符串的比较方法,三个字符串的意
6、思是一样的。#include#include#includeintlongest_common_substring(char*str1,char*str2)inti,k,len1,len2,len,s1_start,s2_start,idx,curmax,max;len1=strlen(str1);len2=strlen(str2);len=len1+len2;max=0;for(i=0;ilen;i+)s1_start=s2_start=0;if(ilen1)s1_start=len1-i;/每次开始匹配的起始位置elses2_start=i-len1;curmax=0;for(idx=0;
7、(s1_start+idxlen1)&(s2_start+idxmax?curmax:max;if(curmaxmax)max=curmax;k=s1_start+idx-1;/保存连续子串长度增加时连续子串最后一个字符在str1字符串中的下标位置,/便于输出公共连续子串curmax=0;/max=curmaxmax?curmax:max;if(curmaxmax)max=curmax;k=s1_start+idx-1;/输出公共子串chars100;for(i=0;imax;i+)si=str1k-max+1+i;/公共字串在str1中的下标起始位置为k-max+1,结束位置为ksi=0;p
8、rintf(最长公共子串为:);puts(s);returnmax;intmain(void)charstr1100,str2100;printf(请输入第一个字符串:);gets(str1);printf(请输入第二个字符串:);gets(str2);intlen=longest_common_substring(str1,str2);printf(最长公共连续子串的长度为:%dn,len);return0;6. 编写一个程序计算用户输入的起始时间到终止时间的天数。#includeboolisLeapYear(intyear);intCalcDay(intyerar1,intmonth1,i
9、ntday1,intyear2,intmonth2,intday2);intleapMonth12=31,29,31,30,31,30,31,31,30,31,30,31;intnormalMonth12=31,28,31,30,31,30,31,31,30,31,30,31;intmain()intyear1,year2,month1,month2,day1,day2;printf(请输入第一个日期(年月日):);scanf(%d%d%d,&year1,&month1,&day1);printf(请输入第二个日期(年月日):);scanf(%d%d%d,&year2,&month2,&day
10、2);intsum=CalcDay(year1,month1,day1,year2,month2,day2);printf(%dn,sum);return0;/判断是否为闰年boolisLeapYear(intyear)if(year%4=0&year%100!=0|year%400=0)returntrue;returnfalse;intCalcDay(intyerar1,intmonth1,intday1,intyear2,intmonth2,intday2)intresult=0;if(yerar1!=year2)for(inti=yerar1+1;iyear2;i+)/计算相差的整年i
11、f(isLeapYear(i)result+=366;elseresult+=365;if(isLeapYear(yerar1)for(inti=month1+1;i=12;i+)result+=leapMonthi-1;result+=leapMonthmonth1-1-day1;if(isLeapYear(yerar1)=false)for(inti=month1+1;i=12;i+)result+=normalMonthi-1;result+=normalMonthmonth1-1-day1;if(isLeapYear(year2)for(inti=1;imonth2;i+)result
12、+=leapMonthi-1;result+=day2;if(isLeapYear(year2)=false)for(inti=1;imonth2;i+)result+=normalMonthi-1;result+=day2;elseif(isLeapYear(yerar1)if(month1!=month2)for(inti=month1;imonth2-1;i+)result+=normalMonthi;result+=day2+normalMonthmonth1-1-day1;elseresult+=day2-day1;elseif(month1!=month2)for(inti=mon
13、th1;imonth2-1;i+)result+=normalMonthi;result+=day2+normalMonthmonth1-1-day1;elseresult+=day2-day1;returnresult;7. 编写一个程序从键盘输入圆锥体的半径r和高度h,并计算体积。#includeintmain()doubler,h;printf(请输入圆锥的半径:);scanf(%lf,&r);printf(请输入圆锥的高度:);scanf(%lf,&h);doublev=r*h/3;printf(该圆锥的体积为:%lfn,v);return0;8. 编写一个判定一个字符串是否为另一个字
14、符串子字符串的程序。#include#includeintcmpsubstr(chara50,charb50)inti,j,flag=-1;for(i=0;i=(strlen(a)-strlen(b);i+)flag=i;for(j=0;j=strlen(b)n=cmpsubstr(a,b);if(n!=-1)printf(b是a的子串,位置从a%d开始.n,n);elseprintf(b不是a的子串);elsen=cmpsubstr(b,a);if(n!=-1)printf(a是b的子串,位置从b%d开始.n,n);elseprintf(a不是b的子串);return0;9. 编写一个程序实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习 测试 考研 复习题 16

限制150内