新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器Word格式.docx
- 文档编号:17356420
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:64
- 大小:146.62KB
新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器Word格式.docx
《新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器Word格式.docx》由会员分享,可在线阅读,更多相关《新C语言期末复习经典练习题+知识点总结+模拟考题三位一体完胜c语言考期必备神器Word格式.docx(64页珍藏版)》请在冰豆网上搜索。
【输入样例】356【输出样例】653【样例说明】从键盘输入的正整数值为356,将该数的个位与百位互换,所得结果为653.如果输入的正整数为300,则输出为3。
【评分标准】结果完全正确得20分,每个测试点4分。
c0102.c。
//*编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。
*//
#include<
voidmain()
{
inta,d,e,f,sum;
//*定义变量*//
请输入一个三位正整数,\n"
%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
-1\n"
//*如果输入的数不是三位正整数,则输出-1*//
当前编程题:
第二次大作业---计算平均值3.【问题描述】从键盘输入三个整数,分别存入x,y,z三个整型变量中,计算并输出三个数的和以及平均值。
【输入形式】从键盘输入三个整数,整数之间以空格隔开。
【输出形式】在屏幕上分两行显示结果:
第一行为三个数的和,整数形式输出;
第二行为三个数的平均值,浮点数形式输出,小数点后保留两位小数。
【输入样例】323【输出样例】82.67【样例说明】3、2、3的和为8,所以第一行输出8;
第二行输出3、2、3的平均值2.67(保留两位小数)。
c0101.c。
//*从键盘输入三个整数,分别存入x,y,z三个整型变量中,计算并输出三个数的和以及平均值*//
intx,y,z,sum;
floataverage;
%d%d%d"
x,&
y,&
z);
//*从键盘输入三个整数,整数之间以空格隔开*//
sum=x+y+z;
average=(float)sum/3;
//*第一行为三个数的和,整数形式输出;
%.2f\n"
average);
//*第二行为三个数的平均值,浮点数形式输出,小数点后保留两位小数*//
第二次大作业---正整数的打印4.【问题描述】给出一个不多于5位的正整数,要求:
1.求出它是几位数。
2.分别打印出每一位数字。
3.按照逆序打印出每一位数字。
【输入形式】控制台输入该正整数。
【输出形式】控制台分行输出输出结果。
【样例输入】1234【样例输出】412344321【样例说明】1234位数为4,分别为1,2,3,4,逆序为4321【评分标准】该题共有三个输出整数,完全正确得10分,每答错一个扣掉4分,直至得分为0。
本题要求上传程序的源文件。
所采用语言可以是C(.c)。
主文件名设定为intprint.c
//*给出一个不多于5位的正整数,要求:
longinta;
intn,b,c,d,e,f;
\n请输入一个整数(0~99999):
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);
b,c,d,e,f);
break;
case4:
%d%d%d%d\n"
e,d,c,b);
b,c,d,e);
case3:
%d%d%d\n"
d,c,b);
b,c,d);
case2:
%d%d\n"
c,b);
b,c);
case1:
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
//*编程实现简易的计算器:
intdata1,data2,c;
//定义变量//
doubled;
charop;
%d%d%c"
data1,&
data2,&
op);
//输入运算数和运算符//
if(op=='
+'
)//进行判断//
{
c=data1+data2;
c);
}
if(op=='
-'
)
{
c=data1-data2;
printf("
}
if(op=='
*'
)
c=data1*data2;
}
else
if(op=='
/'
{
d=(double)data1/data2;
%.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。
[红色为采用答案
stdlib.h>
structpoint{
intx;
inty;
}A1,A2,B1,B2;
structrect{
structpointp1;
structpointp2;
}R1,R2;
structpointmakepoint(intx,inty);
structrectmakerect(structpointp1,structpointp2);
structrectguifanrect(structrectR);
#definemax(A,B)((A)>
(B)?
(A):
(B))
#definemin(A,B)((A)>
(B):
(A))
main()
inti,num1[4],num2[4],area;
for(i=0;
i<
4;
i++)
num1[i]);
num2[i]);
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(R1.p2.x<
=R2.p1.x||R1.p2.y<
=R2.p1.y||
R1.p1.x>
=R2.p2.x||R1.p1.y>
=R2.p2.y)
area=0;
area=abs(max(R1.p1.x,R2.p1.x)-min(R1.p2.x,R2.p2.x))*
abs(max(R1.p1.y,R2.p1.y)-min(R1.p2.y,R2.p2.y));
area);
structpointmakepoint(intx,inty)
structpointtemp;
temp.x=x;
temp.y=y;
returntemp;
structrectmakerect(structpointp1,structpointp2)
structrecttemp;
temp.p1=p1;
temp.p2=p2;
structrectguifanrect(structrectr)
temp.p1.x=min(r.p1.x,r.p2.x);
temp.p1.y=min(r.p1.y,r.p2.y);
temp.p2.x=max(r.p1.x,r.p2.x);
temp.p2.y=max(r.p1.y,r.p2.y);
3.【问题描述】编写一个程序,当在一个字符串中出现子串时就删除它。
【输入形式】用户在第一行输入一个字符串,用户在第二行输入一个子串。
【输出形式】程序在下一行输出删除其中所有子串后的字符串。
如果字符串不包含子串则输出原字符串本身。
Iamaboy!
a
【样例输出】
Imboy!
【样例说明】用户首先输入字符串Iamaboy!
然后输出子串a,程序会寻找字符串中的子串删除它,最后将删除后的结果输出:
I#m##boy!
#表示空格。
delsubstring.c。
string.h>
charsource_str[1024];
chardel_str[1024];
chardest_str[1024];
intmain(void)
char*pdest;
intresult;
fgets(source_str,1024,stdin);
fgets(del_str,1024,stdin);
source_str[strlen(source_str)-1]='
\0'
del_str[strlen(del_str)-1]='
pdest=strstr(source_str,del_str);
result=0;
while(pdest!
=NULL){
strncat(dest_str,&
source_str[result],(int)(pdest-&
source_str[result]));
result+=(int)(pdest-&
source_str[result])+strlen(del_str);
pdest=strstr(&
source_str[result],del_str);
if(result<
strlen(source_str)){
source_str[result],strlen(source_str)-result);
%s\n"
dest_str);
4.【问题描述】
编写一个函数char*str_bin(char*str1,char*str2),str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重复。
在main函数中测试该函数:
从键盘输入两个有序字符串,然后调用该函数,最后输出合并后的结果。
分行从键盘输入两个有序字符串(不超过100个字符)
输出合并后的有序字符串
【输入样例】
aceg
bdfh
abcdefgh
【样例说明】
输入两个有序字符串aceg和bdfh,输出合并后的有序字符串abcdefgh
结果完全正确得20分,每个测试点4分,提交程序文件名为combine.c。
char*str_bin(char*str1,char*str2)
staticcharstr[100];
inti=0;
while(*str1&
&
*str2)
if(*str1<
str[i++]=*str1++;
str[i++]=*str2++;
if(*str1)
while(str[i++]=*str1++);
while(str[i++]=*str2++);
returnstr;
intmain(){
chara[100];
charb[100];
%s\n%s"
a,&
b);
printf("
str_bin(a,b));
作业四
填空题
#题目
1.已知:
inta=2,b=7;
计算下列表达式的值:
a=4,b=1,a>
b?
++a:
++b;
选择题
chara=’a’;
floatb=2.3;
doublec=41;
intd;
则执行语句d=a+b+c;
后变量d的数据类型为A
(A)int(B)char(C)float(D)double
2.字符串“\ta\017bc”的长度(不包括结束符)是C
(A)9
(B)5
(C)6
(D)7
3.设整型变量x和y的值均为7,则表达式“x/(y-4)”的值是C
A.3
B.-3
C.2
D.1
4.题目内容:
有输入语句:
inta,b,c;
a=%d,b=%d,c=%d"
&
a,&
b,&
为使变量a的值为1,b的值为3,c的值为2,
从键盘输入数据的正确形式应当是(注:
#表示空格)D
(A)132<
回车>
(B)1,3,2<
(C)a=1#b=3#c=2<
(D)a=1,b=3,c=2<
编程题
作业四---反弹
1.【问题描述】
已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。
编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。
从键盘输入整数n和m,以空格隔开。
输出两行:
第一行输出总路程,保留小数点后两位;
第二行输出第m次落地后反弹的高度,保留小数点后两位。
403
65.00
0.63
结果完全正确得20分,每个测试点4分,提交程序文件high.c。
---日期天数转换
2.【问题描述】编写一个程序,用户输入日期,计算该日期是这一年的第几天。
【输入形式】用户在第一行输入一个日期(年月日,中间以空格分割)
【输出形式】程序在下一行输出一个整数
【样例输入】2006221
【样例输出】52
【样例说明】用户以年月日的格式输入,中间以空格分割,程序计算出该天是输入年份的第几天并输出该天数。
另外还需要判断这一年是否为闰年。
datetoday.c
structtian
intyear;
intmonth;
intday;
};
intdays(intyear,intmonth,intday)
ints=0,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&
year%100!
=0||year%400==0)a[2]=29;
for(i=1;
month;
i++)s+=a[i];
s=s+day;
returns;
intk=0;
structtiana;
a.year,&
a.month,&
a.day);
k=days(a.year,a.month,a.day);
k);
第五次走也
填空题
intk=4,a=3,b=2,c=1;
则表达式“k<
a?
k:
c<
b?
c:
a”的值为1
2.已知:
charx=’A’,y=’B’;
执行“(x=’B’)||(y=’C’)”的运算后,变量x,y的值分别为(答案用逗号隔开)
'
B'
'
3.已知:
inta=5,b=6,w=1,x=2,y=3,z=4;
执行语句“(a=w>
x)&
(b=y>
z)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 经典 练习题 知识点 总结 模拟 考题 三位一体 完胜 考期 必备 神器
链接地址:https://www.bdocx.com/doc/17356420.html