C语言练习考研复习题.docx
《C语言练习考研复习题.docx》由会员分享,可在线阅读,更多相关《C语言练习考研复习题.docx(8页珍藏版)》请在冰豆网上搜索。
C语言练习考研复习题
文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
C语言练习考研复习题
1.编写一个程序将用户输入的正整数转化为对应的二进制数。
#include<>
#include<>
intmain()
{
intnum;
printf("请输入一个正整数:
");
scanf("%d",&num);
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;
}
2.编写一个程序实现一个整数、长整数、浮点数和双精度浮点数除以2的计算,要求所有类型的数除以2只用一个函数。
#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));
printf("\n");
return0;
}
3.编写一个程序从键盘输入50个学生的成绩,并求出最高分、最低分、平均分。
#include<>
intmain()
{
doublescore[50];
for(inti=0;i<50;i++)
{
scanf("%lf",&score[i]);
}
...
{
intgewei=num%10;#include<>
intmain()
{
inta[10]={2,4,6,5,1,8,7,9,0,3};
inttemp,i,j;
算机由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。
(1)运算器:
又称算术逻辑单元,用来进行算术或逻辑运算以及移位循环等操作。
(2)控制器:
又称控制单元,是全机的指挥控制中心。
它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。
与运算器一起成为CPU。
(3)存储器:
(分为内存和外存)是计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最终结果。
(4)输入、输出设备:
是计算机和外界进行信息交换的桥梁。
程序、数据及现场信息要通过输入设备输入给计算机;计算机的处理结果要通过输出设备输出,以便用户使用。
常用的输入设备有:
键盘、鼠标、扫描仪等;常用的输出设备有:
显示器、打印机、绘图仪等。
2.
(1)计算机硬件系统:
到目前为止,计算机仍沿用由冯.诺依曼首先提出的基于总线的计算机硬件系统。
其基本设计思想为:
a.以二进制形式表示指令和数据b.程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行c.由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。
(2)计算机软件系统:
所谓软件,就是为了管理、维护计算机以及为完成用户的某种特定任务而编写的各种程序的总和。
计算机的工作就是运行程序,通过逐条的从存储器中取出程序中的指令并执行指令所规定的操作而实现某种特定的功能。
微型计算机的软件包括系统软件和用户(应用)软件。
4.编写一个程序求出两个字符串:
s[]="ThisisCprogrammingtext";t[]="ThisisatextforCprogramming";
包含的最长的相同的单词。
(区分大小写)
说明:
自左向右顺序扫描字符串s,逐个找出单词(单词开始位置和单词长度),当该单词的长度比已找到的单词更长时,就从头到尾扫描字符串t。
在从t字符串中找出与该字符串长度相等、字符相同的单词后,记录下该单词的和的长度,并回到s,在其中找出下一个更长的单词。
上述寻找过程直到字符串s扫描结束,最后输出找到的单词。
#include<>
#include<>
voidmaxword(char*s,char*t);
intmain()
{
chars[]="ThisisCprogrammingtext";
chart[]="ThisisatextforCprogramming";
maxword(s,t);
return0;
}
voidmaxword(char*s,char*t)
{
char*res,*temp,chs,cht;
inti,j,found,maxlen=0;
while(*s!
='\0')
{
while(*s=='')s++;
for(i=0;s[i]!
=''&&s[i]!
='\0';i++);
if(i>maxlen)
{
chs=s[i];
s[i]='\0';
temp=t;
found=0;
while(*temp!
='\0'&&!
found)
{
while(*temp=='')temp++;
for(j=0;temp[j]!
=''&&temp[j]!
='\0';j++);
if(j==i)
{
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);
res[maxlen]=chs;
}
}
5.编写一个计算字符串长度的程序。
#include<>
#include<>
intmain()
{
chara[100];
gets_s(a);
intlength;
for(inti=0;a[i]!
='\0';i++)
{
length=i+1;
}
printf("%d\n",length);
return0;
}
6.编写求一个字符在字符串中位置的程序。
#include<>
#include<>
intmain()
{
chara[100],b;
intposition;
boolflag=false;#include<>
#include<>
intmain()
{
chara[100];
gets(a);
inti=0,j=0;
for(i=0;i{
if(a[i]>=48&&a[i]<=57)//查找到一个数字
{
for(j=i;a[j]>=48&&a[j]<=57;j++)//判断下一位是不是数字
{
printf("%c",a[j]);
}
i=j;//找到了这个数字,i要移到这个数后面的字符
printf("");
}
}
return0;
}
7.编写一个程序将用户输入的字符串进行加密和解密。
说明:
这里的加密方式是将字符对应的Ascll码后移五位。
#include<>
#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;
}
8.你是否熟悉Unix或者Linux操作系统,指出它们与Windows系统的差异。
(这个是XX的)
最显着的区别是,Linux重视开源,所有系统可以是完全自行构建的系统,而Windows系统、UNIX系统是不开源的,有专门团队维护、升级。
UNIX更侧重于客户端-服务器类型的大型远程连网应用,比如你要用UNIX,需要通过登录远方的服务器主机才能使用;Windows侧重单机运行,由于有微软的技术支持和服务,界面统一、操作也统一,缺点是要受强制升级的影响,开发无法自主,必须借助微软提供的开发包,对于系统是否安全无法控制,这也是政府机关不选用Win8的原因之一;Linux可以完全自主,自己可实现保证没有软件后门,免费,开源,充满活力,比前两个更适合嵌入式系统(比如手机)。