C语言期末复习(平时练习答案)
[特别适用于千千万北航学子]
考试重点:(编程题)排序,选择与冒泡排序,,各种进制转换。。。。]
第二次大作业— 前驱、后继字符
1. 【问题描述】 从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。 【输入形式】 从键盘输入一个字符 【输出形式】 按两行输出: 第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开; 第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。 【输入样例】 b 【输出样例】 a b c 97 98 99 【样例说明】 输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出a b c;第二行输出对应的ASCII值97 98 99 【评分标准】 结果完全正确得20分,每个测试点4分。提交程序名为:。
【问题描述】 编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。 【输入形式】 从键盘输入三位的正整数。 【输出形式】 输出交换后的正整数值。 【输入样例】 356 【输出样例】 653 【样例说明】 从键盘输入的正整数值为
356,将该数的个位与百位互换,所得结果
为653.如果输入的正整数为300,则输出为3。 【评分标准】 结果完全正确得20分,每个测试点4分。提交程序名为:。
【问题描述】 从键盘输入三个整数,分别存入x,y,z三个整型变量中,计算并输出三个数的和以及平均值。 【输入形式】 从键盘输入三个整数,整数之间以空格隔开。 【输出形式】 在屏幕上分两行显示结果: 第一行为三个数的和,整数形式输出; 第二行为三个数的平均值,浮点数形式输出,小数点后保留两位小数。 【输入样例】 3 2 3 【输出样例】 8 【样例说明】 3、2、3的和为8,所以第一行输出8; 第二行输出3、2、3的平均值(保留两位小数)。 【评分标准】 结果完全正确得20分,每个测试点4分。提交程序名为:。
f\\n\【问题描述】给出一个不多于5位的正整数,要求: 1.求出它是几位数。 2.分别打印出每一位数字。 3.按照逆序打印出每一位数字。 【输入形式】控制台输入该正整数。 【输出形式】控制台分行输出输出结果。 【样例输入】1234 【样例输出】 4 1234 4321 【样例说明】1234位数为4,分别为1,2,3,4,逆序为4321 【评分标准】该题共有三个输出整数,完全正确得10分,每答错一个扣掉4分,直至得分为0。本题要求上传程序的源文件。所采用语言可以是C(.c)。主文件名设定为
出它是几位数。 2.分别打印出每一位数字。 3.按照逆序打印出每一位数字。 *【问题描述】 编程实现简易的计算器:读入两个整数运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值, 其中op可以是+,-,*,/。 【输入形式】 控制台输入运算数和运算符: 1.首先输入以空格分隔的两个整数,分别是data1和data2; 2.输入一个字符作为运算符op,op可以是’+’,’-’,’*’,’/’。 输入时,data1、data2、op之间各留有一个空格。具体格式见样例输入。 【输出形式】
控制台输出运算结果。作除法运算时,若能够整除,则输出为整数,否则输出结果小数点后应保留两位有效数字。 【样例输入】 23 5 * 【样例输出】 115 【样例说明】 输入中先后输入第一个运算数23,第二个运算数5,运算符’*’,要求对23和5进行乘法运算。计算结果为115。 【评分标准】 该题共20分,每个测试点4分。 本题要求上传程序的源文件。所采用语言可以是C(.c).即所上传的文件名为 f\ } return 0; }
找最大最小整数
1. 【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。 【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值 【样例输入】 5
89 62 96 74 52
【样例输出】96 52
【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。
【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:
矩形相交 2. 【问题描述】
平面上有两个矩形A和B,其位置是任意的。编程求出其相交部分(如图中阴影部分)的面积。(0≤a,b≤1000)
【输
入形式】
从标准输入读取两行以空格分隔的整数,格式如下: Ax1 Ay1 Ax2 Ay2 Bx1 By1 Bx2 By2
其中(x1,y1)和(x2,y2)为矩形对角线上端点的坐标。各坐标值均为整数,取值在0至1000之间。
【输出形式】
向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。在输出末尾要有一个回车符。 【输入样例】
0 0 2 2
1 1 3 4
【输出样例】 1
【评分标准】 结果完全正确得20分,每个测试点4分,提交程序文件名为。 [红色为采用答案
#include <>
#include <>
struct point { int x; int y; }A1,A2,B1,B2;
struct rect {
struct point p1;
struct point p2;
}R1,R2;
struct point makepoint(int x,int y);
struct rect makerect(struct point p1,struct point p2);
struct rect guifanrect(struct rect R);
#define max(A,B) ((A)>(B)?(A):(B)) #define min(A,B) ((A)>(B)?(B):(A))
main() {
int i,num1[4],num2[4],area;
for(i=0;i<4;i++)
scanf(\
for(i=0;i<4;i++)
scanf(\
R1 = makerect(A1 makepoint(num1[0],num1[1]), A2 = makepoint(num1[2],num1[3])); R2 = makerect(B1 makepoint(num2[0],num2[1]),
B2 = makepoint(num2[2],num2[3]));
R1 = guifanrect(R1);
R2 = guifanrect(R2);
if( <= || <= ||
>= || >= area = 0;
else
area = abs(max - min * abs(max - min printf(\ }
=
=
struct point makepoint(int x,int y) {
struct point temp; = x; = y; return temp; }
struct rect makerect(struct point p1,struct point p2) {
struct rect temp;
= p1;
= p2;
return temp;
}
struct rect guifanrect(struct rect r)
{
struct rect temp;
= min = min = max = max return temp; }
3. 【问题描述】编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】用户在第一行输入一个字符串,用户在第二行输入一个子串。
【输出形式】程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。 【样例输入】 I am a boy! a 【样例输出】 I m boy!
【样例说明】用户首先输入字符串I am a boy!,然后输出子串a,程序会寻找字符串中的子串删除它,最后 将删除后的结果输出:I#m##boy! #表示空格。
【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:。 #include <>
#include <>
char source_str[1024];
char del_str[1024];
char dest_str[1024];
int main( void )
{
char *pdest;
int result;
fgets(source_str, 1024, stdin); fgets(del_str, 1024, stdin);