ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:22.30KB ,
资源ID:8312908      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8312908.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言练习测试考研复习题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言练习测试考研复习题.docx

1、C语言练习测试考研复习题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转到/hom

2、e/user用户目录下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.

4、txt复制到Document目录下,并命名为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() intn

5、um; printf(请输入一个大于1正整数:); 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); else printf(%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;/每

7、次开始匹配的起始位置 else s2_start=i-len1; curmax=0; for(idx=0;(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

8、;imax;i+) si=str1k-max+1+i; /公共字串在str1中的下标起始位置为k-max+1,结束位置为k si=0; printf(最长公共子串为:); puts(s); returnmax;intmain(void) charstr1100,str2100; printf(请输入第一个字符串:); gets(str1); printf(请输入第二个字符串:); gets(str2); intlen=longest_common_substring(str1,str2); printf(最长公共连续子串的长度为:%dn,len); return0;6. 编写一个程序计算用户输

9、入的起始时间到终止时间的天数。#includeboolisLeapYear(intyear);intCalcDay(intyerar1,intmonth1,intday1,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

10、%d%d,&year1,&month1,&day1); printf(请输入第二个日期(年月日):); scanf(%d%d%d,&year2,&month2,&day2); 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,int

11、year2,intmonth2,intday2) intresult=0; if(yerar1!=year2) for(inti=yerar1+1;iyear2;i+)/计算相差的整年 if(isLeapYear(i) result+=366; else result+=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+)

12、result+=normalMonthi-1; result+=normalMonthmonth1-1-day1; if(isLeapYear(year2) for(inti=1;imonth2;i+) result+=leapMonthi-1; result+=day2; if(isLeapYear(year2)=false) for(inti=1;imonth2;i+) result+=normalMonthi-1; result+=day2; else if(isLeapYear(yerar1) if(month1!=month2) for(inti=month1;imonth2-1;i

13、+) result+=normalMonthi; result+=day2+normalMonthmonth1-1-day1; else result+=day2-day1; else if(month1!=month2) for(inti=month1;imonth2-1;i+) result+=normalMonthi; result+=day2+normalMonthmonth1-1-day1; else result+=day2-day1; returnresult;7. 编写一个程序从键盘输入圆锥体的半径r和高度h,并计算体积。#includeintmain() doubler,h;

14、 printf(请输入圆锥的半径:); scanf(%lf,&r); printf(请输入圆锥的高度:); scanf(%lf,&h); doublev=r*h/3; printf(该圆锥的体积为:%lfn,v); return0;8. 编写一个判定一个字符串是否为另一个字符串子字符串的程序。#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)

15、printf(b是a的子串,位置从a%d开始.n,n); else printf(b不是a的子串); else n=cmpsubstr(b,a); if(n!=-1) printf(a是b的子串,位置从b%d开始.n,n); else printf(a不是b的子串); return0;9. 编写一个程序实现一个整数、长整数、浮点数和双精度浮点数除以2的计算,要求所有类型的数除以2只用一个函数。#include#defineCalc(x)x/2intmain() inta; printf(请输入一个整数:); scanf(%d,&a); printf(%d运算后的结果是:%dn,a,Calc(a

16、); printf(n); longb; printf(请输入一个长整数:); scanf(%ld,&b); printf(%ld运算后的结果是:%ldn,b,Calc(b); printf(n); floatc; printf(请输入一个浮点数:); scanf(%f,&c); printf(%f运算后的结果是:%fn,c,Calc(c); printf(n); doubled; printf(请输入一个浮点数:); scanf(%lf,&d); printf(%lf运算后的结果是:%lfn,d,Calc(d); printf(n); return0;10. 编写一个程序从键盘输入50个学生

17、的成绩,并求出最高分、最低分、平均分。#includeintmain() doublescore50; for(inti=0;i50;i+) scanf(%lf,&scorei); /求最高分和最低分 doublemax=score0; doublemin=score0; for(inti=1;i50;i+) if(maxscorei) min=scorei; /求平均分 doubleaverage,sum=0; for(inti=0;i50;i+) sum+=scorei; average=sum/50; printf(最高分:%lfn,max); printf(最低分:%lfn,min);

18、 printf(平均分:%lfn,average); return0;11. 一个素数,当它的数字位置对换后仍为素数,这样的数称为绝对素数,设计一个算法,求出所有的两位数的绝对素数。#includeboolisPrime(intnum);intExchange(intnum);intmain() for(inti=11;i99;i+) if(isPrime(i)&isPrime(Exchange(i) printf(%d,i); printf(n);return0;/判断一个数是否为质数boolisPrime(intnum) boolflag=true;/默认判断是素数 for(inti=2;

19、inum;i+) if(num%i=0) flag=false;/发现了其他因子,不是素数 break; returnflag;/求出对换后num的值intExchange(intnum) if(num%10!=0)/排除20,30,40. intgewei=num%10;/个位 intshiwei=num/10;/十位 num=gewei*10+shiwei;/个位和十位交换 returnnum;12. 编写一个C程序实现两个字符串的前后连接和后前连接。#include#include#includechar*Link(char*a,char*b);intmain() chara20,b20

20、; gets_s(a); gets_s(b); char*c=Link(a,b); for(inti=0;istrlen(c);i+) printf(%c,ci); return0;char*Link(char*a,char*b) unsignedi,j; char*c; c=(char*)malloc(strlen(a)+strlen(b)-1);/为指针c动态分配内存 for(i=0;i=strlen(a)-1;i+) ci=ai; for(j=0;j=strlen(b);j+,i+) ci=bj; returnc;13. 编写一个复制字符串的程序。#include#includevoid

21、Copy(char*a,char*b);intmain() chara20,b20; gets_s(a); Copy(a,b); puts(b); return0;voidCopy(char*a,char*b) inti; for(i=0;istrlen(a);i+) bi=ai; bi=0;14. 编写一个程序逆序(从大到小)重新放置数组a中的元素,a10=2,4,6,5,1,8,7,9,0,3.#includeintmain() inta10=2,4,6,5,1,8,7,9,0,3; inttemp,i,j; /选择排序,重要 for(i=0;i9;i+) for(j=i+1;j10;j+

22、) if(aiaj) temp=ai; ai=aj; aj=temp; printf(降序:n); for(i=0;i10;i+) printf(%d,ai); printf(n); return0;15. 写出计算机的结构并说出功能。(这道题不会,XX搜的)1.计算机由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。(1)运算器:又称算术逻辑单元,用来进行算术或逻辑运算以及移位循环等操作。(2)控制器:又称控制单元,是全机的指挥控制中心。它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。与运算器一起成为C

23、PU。(3)存储器:(分为内存和外存)是计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最终结果。(4)输入、输出设备:是计算机和外界进行信息交换的桥梁。程序、数据及现场信息要通过输入设备输入给计算机;计算机的处理结果要通过输出设备输出,以便用户使用。常用的输入设备有:键盘、鼠标、扫描仪等;常用的输出设备有:显示器、打印机、绘图仪等。2.(1)计算机硬件系统:到目前为止,计算机仍沿用由冯.诺依曼首先提出的基于总线的计算机硬件系统。其基本设计思想为:a.以二进制形式表示指令和数据b.程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行c.由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。(2)计算机软件系统:所谓软件,就是为了管理、维护计算机以及为完成用户的某种特定任务而编写的各种程序的总和。计算机的工作就是运行程序,通过逐条的从存储器中取出程序中的指令并执行指令所规定的操作而实现某种特定的功能。微型计算机的软件包括系统软件和用户(应用)软件。16. 编写一个程序求出两个字符串:s=ThisisCprogrammingtext;t=ThisisatextforCprogramming;包含的最长的相同的单词。(区分大小写)说明:自左向右顺序扫描字符串s,逐个找出单词(单

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1