新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器.docx
《新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器.docx》由会员分享,可在线阅读,更多相关《新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器.docx(64页珍藏版)》请在冰豆网上搜索。
新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器
C语言期末复习(平时练习答案)
[特别适用于千千万北航学子]
考试重点:
(编程题)排序,选择与冒泡排序,,各种进制转换。
。
。
。
]
第二次大作业—
前驱、后继字符
1.【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
【输入形式】从键盘输入一个字符【输出形式】按两行输出:
第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开;第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。
【输入样例】b【输出样例】abc979899【样例说明】输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出abc;第二行输出对应的ASCII值979899【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:
c0103.c。
//*从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
*//
#include
intmain()
{
charc="";
printf("Inputanumber:
");
scanf("%c",&c);//*从键盘输入一个字符*//
printf("%c%c%c\n",c-1,c,c+1);//*第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开*//
printf("%d%d%d",c-1,c,c+1);//*第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。
*//
return0;
}
当前编程题:
第二次大作业---数值变换2.【问题描述】编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。
【输入形式】从键盘输入三位的正整数。
【输出形式】输出交换后的正整数值。
【输入样例】356【输出样例】653【样例说明】从键盘输入的正整数值为356,将该数的个位与百位互换,所得结果为653.如果输入的正整数为300,则输出为3。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:
c0102.c。
//*编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。
*//
#include
voidmain()
{
inta,d,e,f,sum;//*定义变量*//
printf("请输入一个三位正整数,\n");
scanf("%d",&a);//*输入一个数*//
if(a>0)//*对输入的值的正负做判断*//
{
d=a/100;
e=(a-d*100)/10;
f=a%10;
sum=100*f+10*e+d;
printf("%d\n",sum);//*输出交换后的正整数值。
*//
}
else
printf("-1\n");//*如果输入的数不是三位正整数,则输出-1*//
}
当前编程题:
第二次大作业---计算平均值3.【问题描述】从键盘输入三个整数,分别存入x,y,z三个整型变量中,计算并输出三个数的和以及平均值。
【输入形式】从键盘输入三个整数,整数之间以空格隔开。
【输出形式】在屏幕上分两行显示结果:
第一行为三个数的和,整数形式输出;第二行为三个数的平均值,浮点数形式输出,小数点后保留两位小数。
【输入样例】323【输出样例】82.67【样例说明】3、2、3的和为8,所以第一行输出8;第二行输出3、2、3的平均值2.67(保留两位小数)。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:
c0101.c。
//*从键盘输入三个整数,分别存入x,y,z三个整型变量中,计算并输出三个数的和以及平均值*//
#include
intmain()
{
intx,y,z,sum;//*定义变量*//
floataverage;
scanf("%d%d%d",&x,&y,&z);//*从键盘输入三个整数,整数之间以空格隔开*//
sum=x+y+z;
average=(float)sum/3;//*第一行为三个数的和,整数形式输出;*//
printf("%d\n",sum);
printf("%.2f\n",average);//*第二行为三个数的平均值,浮点数形式输出,小数点后保留两位小数*//
return0;
}
当前编程题:
第二次大作业---正整数的打印4.【问题描述】给出一个不多于5位的正整数,要求:
1.求出它是几位数。
2.分别打印出每一位数字。
3.按照逆序打印出每一位数字。
【输入形式】控制台输入该正整数。
【输出形式】控制台分行输出输出结果。
【样例输入】1234【样例输出】412344321【样例说明】1234位数为4,分别为1,2,3,4,逆序为4321【评分标准】该题共有三个输出整数,完全正确得10分,每答错一个扣掉4分,直至得分为0。
本题要求上传程序的源文件。
所采用语言可以是C(.c)。
主文件名设定为intprint.c
//*给出一个不多于5位的正整数,要求:
1.求出它是几位数。
2.分别打印出每一位数字。
3.按照逆序打印出每一位数字。
*//
#include
voidmain()
{
longinta;
intn,b,c,d,e,f;
printf("\n请输入一个整数(0~99999):
");
scanf("%d",&a);
if(a>9999)
n=5;
else
if(a>999)
n=4;
else
if(a>99)
n=3;
else
if(a>9)
n=2;
else
n=1;
printf("\n这个数的位数=%d\n",n);
f=a/10000;
e=a%10000/1000;
d=a%10000%1000/100;
c=a%10000%1000%100/10;
b=a%10000%1000%100%10;
switch(n)
{
case5:
printf("%d%d%d%d%d\n",f,e,d,c,b);
printf("%d%d%d%d%d\n",b,c,d,e,f);break;
case4:
printf("%d%d%d%d\n",e,d,c,b);
printf("%d%d%d%d\n",b,c,d,e);break;
case3:
printf("%d%d%d\n",d,c,b);
printf("%d%d%d\n",b,c,d);break;
case2:
printf("%d%d\n",c,b);
printf("%d%d\n",b,c);
case1:
printf("%d\n",b);
printf("%d\n",b);
}
}
当前编程题:
第二次大作业---简易计算器5.【问题描述】编程实现简易的计算器:
读入两个整数运算数(data1和data2)及一个运算符(op),计算表达式data1opdata2的值,其中op可以是+,-,*,/。
【输入形式】控制台输入运算数和运算符:
1.首先输入以空格分隔的两个整数,分别是data1和data2;2.输入一个字符作为运算符op,op可以是’+’,’-’,’*’,’/’。
输入时,data1、data2、op之间各留有一个空格。
具体格式见样例输入。
【输出形式】控制台输出运算结果。
作除法运算时,若能够整除,则输出为整数,否则输出结果小数点后应保留两位有效数字。
【样例输入】235*【样例输出】115【样例说明】输入中先后输入第一个运算数23,第二个运算数5,运算符’*’,要求对23和5进行乘法运算。
计算结果为115。
【评分标准】该题共20分,每个测试点4分。
本题要求上传程序的源文件。
所采用语言可以是C(.c).即所上传的文件名为calculator.c
//*编程实现简易的计算器:
读入两个整数运算数(data1和data2)及一个运算符(op),计算表达式data1opdata2的值,其中op可以是+,-,*,/。
*//
#include
intmain()
{
intdata1,data2,c;//定义变量//
doubled;
charop;
scanf("%d%d%c",&data1,&data2,&op);//输入运算数和运算符//
if(op=='+')//进行判断//
{
c=data1+data2;
printf("%d",c);
}
else
if(op=='-')
{
c=data1-data2;
printf("%d",c);
}
else
if(op=='*')
{
c=data1*data2;
printf("%d",c);
}
else
if(op=='/')
{
d=(double)data1/data2;
printf("%.2f",d);
}
return0;
}
找最大最小整数
1.【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值
【样例输入】
5
8962967452
【样例输出】9652
【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。
输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:
getmaxandmin.c
矩形相交
2.【问题描述】
平面上有两个矩形A和B,其位置是任意的。
编程求出其相交部分(如图中阴影部分)的面积。
(0≤a,b≤1000)
【输入形式】
从标准输入读取两行以空格分隔的整数,格式如下:
Ax1Ay1Ax2Ay2
Bx1By1Bx2By2
其中(x1,y1)和(x2,y2)为矩形对角线上端点的坐标。
各坐标值均为整数,取值在0至1000之间。
【输出形式】
向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。
在输出末尾要有一个回车符。
【输入样例】
0022
1134
【输出样例】
1
【评分标准】
结果完全正确得20分,每个测试点4分,提交程序文件名为area.c。
[红色为采用答案
#include
#include