C语言练习考研复习题精编版Word文件下载.docx

上传人:b****1 文档编号:4188083 上传时间:2023-05-02 格式:DOCX 页数:31 大小:124.61KB
下载 相关 举报
C语言练习考研复习题精编版Word文件下载.docx_第1页
第1页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第2页
第2页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第3页
第3页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第4页
第4页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第5页
第5页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第6页
第6页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第7页
第7页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第8页
第8页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第9页
第9页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第10页
第10页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第11页
第11页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第12页
第12页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第13页
第13页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第14页
第14页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第15页
第15页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第16页
第16页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第17页
第17页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第18页
第18页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第19页
第19页 / 共31页
C语言练习考研复习题精编版Word文件下载.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言练习考研复习题精编版Word文件下载.docx

《C语言练习考研复习题精编版Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言练习考研复习题精编版Word文件下载.docx(31页珍藏版)》请在冰点文库上搜索。

C语言练习考研复习题精编版Word文件下载.docx

2.请写出你所了解的linux系统中常用的命令并解释其功能。

(1)pwd命令

该命令的英文解释为printworkingdirectory(打印工作目录)。

输入pwd命令,Linux会输出当前目录。

(2)cd命令

cd命令用来改变所在目录。

cd/转到根目录中

cd~转到/home/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命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。

catsnow.txt该命令显示文件snow.txt的内容,ctrl+D退出cat。

(5)grep命令

grep命令的最大功能是在一堆文件中查找一个特定的字符串。

grepmoneytest.txt

以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。

(6)touch命令

touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。

touchnewfile该命令创建一个名为newfile的空白文件。

(7)cp命令

cp命令用来拷贝文件,要复制文件,输入命令:

cp<

sourcefilename>

<

targetfilename>

cpt.txtDocument/t该命令将把文件t.txt复制到Document目录下,并命名为t。

3.编写一个程序计算任一输入数字的各位数字之和。

intresult=0;

result+=num%10;

num=num/10;

%d\n"

result);

4.编写一个程序判断用户输入任一正整数是否为素数。

请输入一个大于1正整数:

0||num==1)

if(num==2)

%d是素数。

num);

boolflag=true;

//默认判断是素数

for(inti=2;

i<

num;

i++)

if(num%i==0)

{

flag=false;

//发现了其他因子,不是素数

break;

}

if(flag==true)

else

%d不是素数。

5.编写一个程序求给定三个字符串的最长公共字串。

(难)

这里我只写了两个字符串的比较方法,三个字符串的意思是一样的。

string.h>

intlongest_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;

len;

s1_start=s2_start=0;

if(i<

len1)

s1_start=len1-i;

//每次开始匹配的起始位置

}

else

s2_start=i-len1;

curmax=0;

for(idx=0;

(s1_start+idx<

len1)&

&

(s2_start+idx<

len2);

idx++)

if(str1[s1_start+idx]==str2[s2_start+idx])

{

curmax++;

}

else//只要有一个不相等,就说明相等的公共字符断了,不连续了,

//要保存curmax与max中的最大值,并将curmax重置为0

//max=curmax>

max?

curmax:

max;

if(curmax>

max)

{

max=curmax;

k=s1_start+idx-1;

//保存连续子串长度增加时连续子串最后一个字符在str1字符串中的下标位置,

//便于输出公共连续子串

}

curmax=0;

//max=curmax>

if(curmax>

max=curmax;

k=s1_start+idx-1;

//输出公共子串

chars[100];

s[i]=str1[k-max+1+i];

//公共字串在str1中的下标起始位置为k-max+1,结束位置为k

}

s[i]='

\0'

;

最长公共子串为:

puts(s);

returnmax;

intmain(void)

charstr1[100],str2[100];

请输入第一个字符串:

gets(str1);

请输入第二个字符串:

gets(str2);

intlen=longest_common_substring(str1,str2);

最长公共连续子串的长度为:

len);

6.编写一个程序计算用户输入的起始时间到终止时间的天数。

boolisLeapYear(intyear);

intCalcDay(intyerar1,intmonth1,intday1,intyear2,intmonth2,intday2);

intleapMonth[12]={31,29,31,30,31,30,31,31,30,31,30,31};

intnormalMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};

intyear1,year2,month1,month2,day1,day2;

请输入第一个日期(年月日):

%d%d%d"

year1,&

month1,&

day1);

请输入第二个日期(年月日):

year2,&

month2,&

day2);

intsum=CalcDay(year1,month1,day1,year2,month2,day2);

sum);

//判断是否为闰年

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;

year2;

i++)//计算相差的整年

if(isLeapYear(i))

result+=366;

else

result+=365;

if(isLeapYear(yerar1))

for(inti=month1+1;

=12;

result+=leapMonth[i-1];

result+=leapMonth[month1-1]-day1;

if(isLeapYear(yerar1)==false)

result+=normalMonth[i-1];

result+=normalMonth[month1-1]-day1;

if(isLeapYear(year2))

for(inti=1;

month2;

i++)

result+=day2;

if(isLeapYear(year2)==false)

if(month1!

=month2)

for(inti=month1;

month2-1;

result+=normalMonth[i];

result+=day2+normalMonth[month1-1]-day1;

result+=day2-day1;

else

returnresult;

7.编写一个程序从键盘输入圆锥体的半径r和高度h,并计算体积。

doubler,h;

请输入圆锥的半径:

%lf"

r);

请输入圆锥的高度:

h);

doublev=r*h/3;

该圆锥的体积为:

%lf\n"

v);

8.编写一个判定一个字符串是否为另一个字符串子字符串的程序。

intcmpsubstr(chara[50],charb[50])

inti,j,flag=-1;

=(strlen(a)-strlen(b));

flag=i;

for(j=0;

j<

strlen(b);

j++)

if(b[j]!

=a[i+j])

break;

if(j==strlen(b))

returnflag;

return-1;

 

chara[50],b[50];

intn;

输入字符串a:

gets(a);

输入字符串b:

gets(b);

if(strlen(a)>

=strlen(b))

n=cmpsubstr(a,b);

if(n!

=-1)

printf("

b是a的子串,位置从a[%d]开始.\n"

n);

b不是a的子串"

n=cmpsubstr(b,a);

a是b的子串,位置从b[%d]开始.\n"

a不是b的子串"

9.编写一个程序实现一个整数、长整数、浮点数和双精度浮点数除以2的计算,要求所有类型的数除以2只用一个函数。

#defineCalc(x)x/2

inta;

请输入一个整数:

a);

%d运算后的结果是:

a,Calc(a));

longb;

请输入一个长整数:

%ld"

b);

%ld运算后的结果是:

%ld\n"

b,Calc(b));

floatc;

请输入一个浮点数:

%f"

c);

%f运算后的结果是:

%f\n"

c,Calc(c));

doubled;

d);

%lf运算后的结果是:

d,Calc(d));

10.编写一个程序从键盘输入50个学生的成绩,并求出最高分、最低分、平均分。

doublescore[50];

for(inti=0;

50;

scanf("

score[i]);

//求最高分和最低分

doublemax=score[0];

doublemin=score[0];

for(inti=1;

if(max<

score[i])

max=score[i];

if(min>

min=score[i];

//求平均分

doubleaverage,sum=0;

sum+=score[i];

average=sum/50;

最高分:

max);

最低分:

min);

平均分:

average);

11.一个素数,当它的数字位置对换后仍为素数,这样的数称为绝对素数,设计一个算法,求出所有的两位数的绝对素数。

boolisPrime(intnum);

intExchange(intnum);

for(inti=11;

99;

if(isPrime(i)&

isPrime(Exchange(i)))

%d"

i);

//判断一个数是否为质数

boolisPrime(intnum)

flag=false;

returnflag;

//求出对换后num的值

intExchange(intnum)

if(num%10!

=0)//排除20,30,40.....

intgewei=num%10;

//个位

intshiwei=num/10;

//十位

num=gewei*10+shiwei;

//个位和十位交换

returnnum;

12.编写一个C程序实现两个字符串的前后连接和后前连接。

char*Link(char*a,char*b);

chara[20],b[20];

gets_s(a);

gets_s(b);

char*c=Link(a,b);

strlen(c);

%c"

c[i]);

char*Link(char*a,char*b)

unsignedi,j;

char*c;

c=(char*)malloc(strlen(a)+strlen(b)-1);

//为指针c动态分配内存

=strlen(a)-1;

c[i]=a[i];

for(j=0;

=strlen(b);

j++,i++)

c[i]=b[j];

returnc;

13.编写一个复制字符串的程序。

voidCopy(char*a,char*b);

Copy(a,b);

puts(b);

voidCopy(char*a,char*b)

inti;

strlen(a);

b[i]=a[i];

b[i]='

14.编写一个程序逆序(从大到小)重新放置数组a中的元素,a[10]={2,4,6,5,1,8,7,9,0,3}.

inta[10]={2,4,6,5,1,8,7,9,0,3};

inttemp,i,j;

//选择排序,重要

9;

for(j=i+1;

10;

if(a[i]<

a[j])

temp=a[i];

a[i]=a[j];

a[j]=temp;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2