上机考试及题集.docx
- 文档编号:3162413
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:35
- 大小:34.13KB
上机考试及题集.docx
《上机考试及题集.docx》由会员分享,可在线阅读,更多相关《上机考试及题集.docx(35页珍藏版)》请在冰豆网上搜索。
上机考试及题集
1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输出加密及解密的字符串。
#include
intmain(){
chara[21],b,key;
printf("请输入字符串和密匙:
\n");
scanf("%s%c",&a,&b);
inti;
for(i=0;a[i]!
=0;i++);
a[i]=a[i]^b;
printf("加密后:
\n");
for(i=0;a[i]!
=0;i++)
printf("%c",a[i]);
printf("\n请输入密码:
\n");
scanf("%s",&key);
for(i=0;a[i]!
=0;i++)
a[i]=a[i]^key;
for(i=0;a[i]!
=0;i++)
printf("%c",a[i]);
}
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。
(提示:
对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。
#include
intmain(){
intyear,month;
intn;
printf("请输入年份:
\n");
scanf("%d",&year);
printf("请输入月份:
\n");
scanf("%d",&month);
if(month<1||month>12)
printf("不存在的月份!
");
else{
if(month==2){
if(year%4==0&&year%100!
=0||year%400==0)
n=29;
else
n=28;
}
elseif(month==4||month==6||month==9||month==11)
n=30;
else
n=31;
printf("这个月有%d天",n);
}
}
3.某大桥按不同型号征收车辆过桥费:
自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。
编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。
(提示:
可以用整数对不同型号的车辆进行编码)
#include
voidmain(){
inti,x;
printf("请选择车型:
1自行车2摩托车3小汽车4大客车5货车5货柜车\n");
scanf("%d",&i);
switch(i){
case1:
x=0;break;
case2:
x=2;break;
case3:
x=5;break;
case4:
x=8;break;
case5:
x=12;
}
printf("该车应交的过桥费是%d元",x);
}
4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Verygood”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“NoPass”。
#include
voidmain(){
intx;
printf("请输入一位同学的成绩\n");
scanf("%d",&x);
if(x>=0&&x<=100){
if(x<60)
printf("NoPass\n");
if(x>=60&&x<=69)
printf("Pass\n");
if(x>=70&&x<=79)
printf("Good\n");
if(x>=80&&x<=89)
printf("Verygood\n");
if(x>=90&&x<=100)
printf("Excellent\n");
}elseprintf("输入错误\n");
}
5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。
编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。
#include
voidmain(){
intx,y;
floati,j;
printf("请输入订票张数\n");
scanf("%d",&x);
printf("请输入单张机票票价\n");
scanf("%d",&y);
if(x<10){
i=0.10;
j=0.90*x*y;
}if(x>=10&&x<20){
i=0.15;
j=0.85*x*y;
}if(x>=20&&x<30){
i=0.30;
j=0.70*x*y;
}if(x>=30){
i=0.45;
j=0.55*x*y;
}printf("您享受的折扣是%0.2f",i);
printf("您需要花费%0.2f元",j);
}
6.用户输入一个整数流(输入1000表示数据输入结束),如
411306-51-17-12190100
编写程序统计输入流中-1、0和+1的个数。
#include
intmain(){
ints,yi=0,ling=0,fuyi=0;
printf("输入你的整数流(输入1000以结束):
\n");
scanf("%d",&s);
while(s!
=1000){
if(s==1)
yi=yi+1;
elseif(s==0)
ling=ling+1;
elseif(s==-1)
fuyi=fuyi+1;
scanf("%d",&s);
}
printf("数字1的个数:
%d\n",yi);
printf("数字0的个数:
%d\n",ling);
printf("数字-1的个数:
%d\n",fuyi);
}
7.编写一个程序,求一个自然数中含有多少个2的因子。
如,6含1个2的因子,8含3个2的因子,11不含2的因子。
(提示,程序应检查用户输入的合法性)。
#include
intmain(){
intu,g=0,h;
printf("输入一个自然数:
\n");
scanf("%d",&u);
if(u<=0)
printf("亲,是自然数呦");
else{
h=u;
while(u%2==0){
g=g+1;
u=u/2;
}
printf("自然数%d有%d个2的因子",h,g);
}
}
8.编写一个程序解决爱因斯坦台阶问题:
有人走以台阶,若以每步走2级则最后剩1级;若每步走3级则最后剩2级;若以每步走4级则最后剩3级;若以每步走5级则最后剩4级;若以每步走6级则最后剩5级;若以每步走7级则最后刚好不剩。
问台阶共有几级?
#include
voidmain(){
intx=10;
while(!
(x%7==0&&(x-5)%6==0&&(x-4)%5==0&&(x-3)%4==0&&(x-2)%3==0&&(x-1)%2==0))
x=x+1;
printf("%d\n",x);
}
9.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?
#include
main(){
intc,v,b;
for(c=0;c<=20;c++)
for(v=0;v<=33;v++)
for(b=0;b<=33;b++)
if(c+v+3*b==100)
if(5*c+3*v+b==100){
printf("公鸡有%d只\n",c);
printf("母鸡有%d只\n",v);
printf("小鸡有%d只\n\n",3*b);
}
}
10.编程实现解决下述问题的算法:
一位顾客在购物时,如果买4个苹果剩下4角钱.如果买5个苹果则缺5角钱,请问,该顾客带了多少钱?
多少钱可以买一个苹果?
#include
main(){
intprice,wallet=5,yuan,jiao;
while((4*price+4)!
=(5*price-5)){
price++;
}
wallet=4*price+4;
yuan=wallet/10;
jiao=wallet-10*yuan;
printf("该顾客带了%d元%d角钱\n"
"一个苹果%d角钱\n",yuan,jiao,price);
}
11.编写程序.计算100之内可以被13整除的自然数之和。
#include
main(){
intk,sum=0;
for(k=12;k<100;k++)
if(k%13==0)
sum=sum+k;
printf("100之内可以被13整除的自然数之和为:
\n%d",sum);
}
12.键盘输入m和n(10 #include main(){ intn,m,p,r=0,flage,f; printf("输入n(10<=n<32000): \n"); scanf("%d",&n); printf("输入m(n \n"); scanf("%d",&m); for(p=n;p<=m;p++){ flage=true; for(f=2;f if(p%f==0) flage=false; if(flage){ r++; printf("%d",p); } if(r==8){ printf("\n"); r=0; } } } 13.编写程序打印乘法口诀表。 #include voidmain(){ inti,j; for(i=1;i<10;i++){ printf("%4d",i); for(j=1;j<=i;j++) printf("%4d",i*j); printf("\n");} printf("%4c",'*'); for(i=1;i<10;i++) printf("%4d",i); printf("\n"); } 14.编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。 算法如下: 步骤1: 如果p 步骤2: 令r是p/q的余数。 步骤3: 如果r=0,则令g=q并终止; 否则令p=q,q=r并转向步骤2 #include voidmain(){ intp,q,r=1,g,m; printf("请输入两个正整数: \n"); scanf("%d%d",&p,&q); if(p m=p; p=q; q=m;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 考试