文档库 最新最全的文档下载
当前位置:文档库 › C语言练习测试考研复习题

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

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

精心整理

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

#include

#include

intmain()

{

intnum;

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

scanf("%d",&num);

//异常输入直接结束

{

}

// {

}

// {

}

}

2. (1该命令的英文解释为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

3.

{

//

{

}

{

}

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;//默认判断是素数

{

}

{

}

{

}

}

5.

{

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

//

//

}

//

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

{

}

//

{

{

}

}

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;

}

}

else

{

if(isLeapYear(yerar1))

{

if(month1!=month2)

{

for(inti=month1;i

{

result+=normalMonth[i];

}

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

}

else

{

result+=day2-day1;

}

}

else

{

if(month1!=month2)

{

}

}

7.

{

printf("该圆锥的体积为:%lf\n",v);

return0;

}

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

#include

#include

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

{

inti,j,flag=-1;

for(i=0;i<=(strlen(a)-strlen(b));i++)

{

flag=i;

for(j=0;j

if(b[j]!=a[i+j])

break;

if(j==strlen(b))

returnflag;

}

return-1;

}

intmain()

{

chara[50],b[50];

{

}

{

}

}

9.

#include

#defineCalc(x)x/2

intmain()

{

inta;

printf("请输入一个整数:");

scanf("%d",&a);

printf("%d运算后的结果是:%d\n",a,Calc(a));

printf("\n");

longb;

printf("请输入一个长整数:");

scanf("%ld",&b);

printf("%ld运算后的结果是:%ld\n",b,Calc(b));

printf("\n");

floatc;

printf("请输入一个浮点数:");

scanf("%f",&c);

printf("%f运算后的结果是:%f\n",c,Calc(c));

printf("\n");

doubled;

printf("请输入一个浮点数:");

scanf("%lf",&d);

printf("%lf运算后的结果是:%lf\n",d,Calc(d));

}

10.

{

{

}

//

{

}

}

//求平均分

doubleaverage,sum=0;

for(inti=0;i<50;i++)

{

sum+=score[i];

}

average=sum/50;

printf("最高分:%lf\n",max);

printf("最低分:%lf\n",min);

printf("平均分:%lf\n",average);

return0;

}

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

#include

boolisPrime(intnum);

intExchange(intnum);

intmain()

{

for(inti=11;i<99;i++)

{

if(isPrime(i)&&isPrime(Exchange(i)))

}

}

//

{

{

}

}

//

{

if(num%10!=0)//排除20,30,40.....

{

intgewei=num%10;//个位

intshiwei=num/10;//十位

num=gewei*10+shiwei;//个位和十位交换

}

returnnum;

}

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

#include

#include

#include

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

intmain()

{

chara[20],b[20];

gets_s(a);

gets_s(b);

char*c=Link(a,b);

for(inti=0;i

{

printf("%c",c[i]);

}

}

{

{

}

{

}

}

13.

{

gets_s(a);

Copy(a,b);

puts(b);

return0;

}

voidCopy(char*a,char*b)

{

inti;

for(i=0;i

{

b[i]=a[i];

}

b[i]='\0';

}

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

#include

intmain()

{

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

inttemp,i,j;

//选择排序,重要

for(i=0;i<9;i++)

{

}

{

}

}

15.

1.

(1

(2)

执行、存数等控制命令,以保证正确完成程序所要求的功能。与运算器一起成为CPU。

(3)存储器:(分为内存和外存)是计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最终结果。

(4)输入、输出设备:是计算机和外界进行信息交换的桥梁。程序、数据及现场信息要通过输入设备输入给计算机;计算机的处理结果要通过输出设备输出,以便用户使用。常用的输入设备有:键盘、鼠标、扫描仪等;常用的输出设备有:显示器、打印机、绘图仪等。

2.(1)计算机硬件系统:到目前为止,计算机仍沿用由冯.诺依曼首先提出的基于总线的计算机硬件系统。其基本设计思

想为:a.以二进制形式表示指令和数据b.程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行c.由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。

(2)计算机软件系统:所谓软件,就是为了管理、维护计算机以及为完成用户的某种特定任务而编写的各种程序的总和。计算机的工作就是运行程序,通过逐条的从存储器中取出程序中的指令并执行指令所规定的操作而实现某种特定的功能。微型计算机的软件包括系统软件和用户(应用)软件。

16.编写一个程序求出两个字符串:s[]="ThisisCprogrammingtext";t[]="ThisisatextforCprogramming";

包含的最长的相同的单词。(区分大小写)

说明:

自左向右顺序扫描字符串s,逐个找出单词(单词开始位置和单词长度),当该单词的长度比已找到的单词更长时,就从头到尾扫描字符串t。在从t字符串中找出与该字符串长度相等、字符相同的单词后,记录下该单词的和的长度,并回到s,在其中找出下一个更长的单词。上述寻找过程直到字符串s扫描结束,最后输出找到的单词。

#include

#include

voidmaxword(char*s,char*t);

intmain()

{

chars[]="ThisisCprogrammingtext";

}

{

{

cht=temp[j];

temp[j]='\0';

if(strcmp(s,temp)==0)

{

maxlen=i;

res=s;

found=1;

}

temp[j]=cht;

}

temp=&temp[j];

}

s[i]=chs;

}

s=&s[i];

}

if(maxlen==0)

printf("没有相同的单词.\n");

else

{

chs=res[maxlen];

res[maxlen]='\0';

printf("%s\n",res);

}

}

17.

{

{

}

}

18.

{

intposition;

boolflag=false;//是否查找到的标志

printf("请输入字符串:");

gets_s(a);

printf("请输入要查找的字符:");

scanf("%c",&b);

for(inti=0;i

{

if(a[i]==b)

{

flag=true;//找到

position=i+1;

printf("%c是%s字符串的第%d个字符。\n",b,a,position);

}

}

if(flag==false)//没找到

{

printf("未查找到该字符!\n");

}

return0;

}

19.编写一个程序将用户输入的由字符和非字符字符串中的数字提取出来,例如输入“asd123rt456fg789”,

得到的数是123,456,789.

{

{

}

}

20.

#include

intmain()

{

chara[100];

gets_s(a);

printf("加密后:");

for(inti=0;i

{

a[i]+=5;

printf("%c",a[i]);

}

printf("\n");

printf("解密后:");

for(inti=0;i

{

a[i]-=5;

printf("%c",a[i]);

}

printf("\n");

return0;

}

21.你是否熟悉Unix或者Linux操作系统,指出它们与Windows系统的差异。(这个是百度的)

最显着的区别是,Linux重视开源,所有系统可以是完全自行构建的系统,而Windows系统、UNIX系统是不开源的,有专门

UNIX

相关文档