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

上传人:b****6 文档编号:3009443 上传时间:2022-11-17 格式:DOCX 页数:27 大小:124.61KB
下载 相关 举报
C语言练习考研复习题.docx_第1页
第1页 / 共27页
C语言练习考研复习题.docx_第2页
第2页 / 共27页
C语言练习考研复习题.docx_第3页
第3页 / 共27页
C语言练习考研复习题.docx_第4页
第4页 / 共27页
C语言练习考研复习题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

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

《C语言练习考研复习题.docx》由会员分享,可在线阅读,更多相关《C语言练习考研复习题.docx(27页珍藏版)》请在冰豆网上搜索。

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

C语言练习考研复习题

1.编写一个程序将用户输入的正整数转化为对应的二进制数。

#include

#include

intmain()

{

intnum;

printf("请输入一个正整数:

");

scanf("%d",&num);

//异常输入直接结束

if(num<0)

{

printf("输入错误!

");

exit(0);

}

//将num和2进行取余运算,存储在数组中

inta[20],i=0;

while(num!

=0)

{

a[i]=num%2;

num=num/2;

i++;

}

//遍历输出数组

while(i>0)

{

printf("%d",a[--i]);

}

printf("\n");

return0;

}

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

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

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

#include

#include

intmain()

{

intnum;

printf("请输入一个正整数:

");

scanf("%d",&num);

//异常输入直接结束

if(num<0)

{

printf("输入错误!

");

exit(0);

}

intresult=0;

while(num!

=0)

{

result+=num%10;

num=num/10;

}

printf("%d\n",result);

return0;

}

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

#include

#include

intmain()

{

intnum;

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

");

scanf("%d",&num);

//异常输入直接结束

if(num<0||num==1)

{

printf("输入错误!

");

exit(0);

}

if(num==2)

{

printf("%d是素数。

\n",num);

exit(0);

}

boolflag=true;//默认判断是素数

for(inti=2;i

{

if(num%i==0)

{

flag=false;//发现了其他因子,不是素数

break;

}

}

if(flag==true)

{

printf("%d是素数。

\n",num);

}

else

{

printf("%d不是素数。

\n",num);

}

return0;

}

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

(难)

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

#include

#include

#include

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

{

s1_start=s2_start=0;

if(i

{

s1_start=len1-i;//每次开始匹配的起始位置

}

else

{

s2_start=i-len1;

}

curmax=0;

for(idx=0;(s1_start+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>max?

curmax:

max;

if(curmax>max)

{

max=curmax;

k=s1_start+idx-1;

}

}

//输出公共子串

chars[100];

for(i=0;i

{

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

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

}

s[i]='\0';

printf("最长公共子串为:

");

puts(s);

returnmax;

}

intmain(void)

{

charstr1[100],str2[100];

printf("请输入第一个字符串:

");

gets(str1);

printf("请输入第二个字符串:

");

gets(str2);

intlen=longest_common_substring(str1,str2);

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

%d\n",len);

return0;

}

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

#include

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

intmain()

{

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

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

");

scanf("%d%d%d",&year1,&month1,&day1);

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

");

scanf("%d%d%d",&year2,&month2,&day2);

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

printf("%d\n",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;i

{

if(isLeapYear(i))

{

result+=366;

}

else

{

result+=365;

}

}

if(isLeapYear(yerar1))

{

for(inti=month1+1;i<=12;i++)

{

result+=leapMonth[i-1];

}

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

}

if(isLeapYear(yerar1)==false)

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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