程序填空题和编程题x.docx
《程序填空题和编程题x.docx》由会员分享,可在线阅读,更多相关《程序填空题和编程题x.docx(18页珍藏版)》请在冰豆网上搜索。
程序填空题和编程题x
66.已知程序段:
inta;a=97;printf(”%c",a);则执行后输出的结呆为(注:
已知字母a的ASCII值为97)
答案:
a
67.已知程序段:
intx=5,n=25%5;x+=n;则执行后x的值为
标准答案:
5
68.0x568是用几进制表示的整数(八进制整数由数字0开头,十六进制整数由数字0加字母x或X开头)
已知程序段:
inta;floatb;b=3.4;a=(int)b;则执行后a的值为
标准答案:
3
70.若自定义函数要求返回一个值,则应在该函数体中有一条
标准答案:
return
67.24L表示一个什么类型的整数
标准答案:
long
70.已知程序段:
inta=0,b=2;printf(”%d”,a*b/5);则执行后输出的结果为0
程序填空题
编程求:
1+1+3+++100o
#include
intmain()
{
1i,sum=0;
i=l;
while
(2)
{
sum=3
4;
printf(nl+2+3+……+100的和为%d°\n:
_5_);
return0;
}
1.int;2.i<=100;3.sum+i;4.i++;5.sum
输入不大于5位的正整数,输出该数为几位数。
#include(stdio.h)
intmain()
{
intnumber©
printf(n请输入一个不人于5位的正整数:
J;scanf(J:
l_;_2_);
if
elseif(number)elseif(number)elseif(number)elseif(number)
(number)=0&&number<=9)
=10&&number<=99)=200&&number<=999)=1000&&number<=9999)
d=1;
d=2;
d=3;
d=4;
=10000&&number<=99999)d=5;
If(_4—)printf(“输入的数字有误o\nw);elseprintf(“该数是%4位数。
\nv,_5_);
return0;
}
1%d2&number3else4d==05d
编写自定义函数intdays(intyearjntmonthjntday),主函数中用户输入年月日,调用该函数,该函数返回第几天,在主函数中输出。
#include
intmain()
{
intdays(intyeacintmonth,intday);
intymd;
printf("请输入年月日(如:
2015.6.1):
scanf(,l%d.%d.%d"/&y/&m〃&d);
printf("%d年&d月&d日是%d年的第%d天。
\n",_1_,_2_,_3_,year,days(year;month,day));
return0;
}
intdays(intyearjntmonthjntday)
{
intmonthday[13]={0,31,28,3130,31,30,31,31,30,31,30,31};
inttotaldays=0;〃用来保存从year年1月1口开始,到month月day口的总天数inti;
for(i=l;itotaldays+=month[i];
totaldays+=_4_;
if((year%4==0&&year%100!
=011year%400==0)&&(month==2&&day==2911month>2))
totaldays++;
return_5_;
}
1year2month3day4day5totaldays
74•给定程序的功能是:
计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如当score二{10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below二{10,20,30,40}。
#include
#include
intfun(intscore[],intm,intbelow[])
{
intitj=0;
floataver=0.0;
for(i=0;iaver+=score[i];
aver/=m;
for(i=0;iif(score[i]below[j++]=score[i];
returnj;
}
intmain()
{
intitn,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90};
n=fun(score,9,below);
printf(H\nBelowtheaveragescoreare:
H);
for(i=0;iprintf("%d",_below[i]);
75.编写C语言程序,输出以下信息。
*宣**穴)|(宣**穴*穴*宣**穴*穴*宣**穴)|(宣4(*穴*穴4()4(
欢迎你进入C语言的天地!
答案:
#includemain()
iDic*******************^************^n“)・
printf(u欢迎你进入C语言的天地!
\nH);
iDic*******************^************^n“)・
6•有一个函数:
xrx
y=卜2x・l
l3x-11x^IO
编写程序,用户输入X,程序输出y值(x、y均为float型,结果保留2位小数)。
参考答案:
#include
main()
{
floatx,y;
printf(Hinputx11);
scanf(“%f”,&x);
if(xy=x;
elseif(x>=l&&x<10)
y=-2*x-l;
else
y=3*x-ll;
printf「y=%・2化y);
}
71•把100-200中不能被3整除的数输出。
#include
intmain()
{
lintn;
for(n=2_100_n<=3_200_;n++)
if(4n%3!
=0)printf(,,%d,,z5_n_;
printf(“\n“);
return0;
}
写一个函数voidcount(charstr[],intnum[]),统计由实参传来的字符串中字母、数字、空格和其他字符的个数,主函数中由用户输入字符串,调用此函数后,在主函数中输出统计数字。
#include
#include
intmain()
{
voidcountfcharstr[],intnum[]);
charstr[80];//存放用户输入的字符串
intnum[4]={0};//num[0]~num[3]分别存放字母、数字、空格和其他字符的个数printf("请输入一串字符:
\n“);
gets(str);
count(str,num);
primf("字母:
%d个\n数字:
%d个\n空格:
%d个\n其他:
%d个
\n,,/num[0]/num[l]/num[2],num[3]);
return0;
}
voidcount(chars[]Jntn[])
{
inti;
for(i=0;s[i]!
=_"\(Y_i++)
if('a'<=s[i]&&s[i]<=,z'||'A'<=s[i]&&s[i]<='Z')
—n[0]_++;
elseif(_©<=s[i]&&s[i]<=,9'_)n[l]++;
elseif(s[i]==/z)_n[2]_++;
elsen[3]_++;
return0;
}
73•给定程序的功能是:
将n个人员的考试成绩进行分段统计,考试成绩放在数组a中,各分段的人数存到数组b中:
成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[l],成绩为80到89的人数存到b[2],成绩为90到99的人数存到b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中。
例如,当数组a中的数据是:
93、85、77、68、59、43、94、75、98。
调用该函数后,数组b中存放的数据应是:
I、2、I、3、0、2。
#include
voidfun(inta[],intb[]_,intn)
inti;
for(i=0;i<6;i++)
b[i]=0;
for(i=0;iif(a[i]<60)
b[5]++;
else
b[(a[i]-60)/10]++;
}
intmain()
inti,a[100]={93,85,77,6&59,43,94,75,98},b[6];fun(a,b9);
printf(”theresultis:
”);for(i=0;i<6;i++)prin廿(”%d”,_b[i]—);printfCV);
}(5分)
74•下面程序的功能是显示具有n个元素的数组s中的最大元素。
include
#defineN20
intfmax(inta[]_intn)
{
intk,p;
for(p=0,k=p;pif(s[p]>s[k])
k=p—;
returnk;
}
intmain()
{
intiza[N];
for(i=0_iscanf(“%d“,—&a[i]_);
printf("%d\n,,/_a[fmax(a,n)]_);
return0;
}(5分)
75.编写一个C语言应用程序,其功能是显示以下图形。
#
##
###
####
#include
main()
{
printf(,,#\n,');
printf("##\n");
printf(,,###\n,');
printf(”####\rT);
printf(,,#####\nH);
printf(“\n“);
}
76•用户输入分钟(正整数),程序输出换算后的小时和分钟。
例如:
用户输入310,程序输
出:
5小时10分钟:
(5分)
#include
main()
{
int
scanf(z/%d;&a);
h=a/60;
m=a%60;
printf("%d分钟是%d小时%d分钟\n”ah,m);
}
〃以下程序将数组a中的数据按逆序存放,请填空
#include
#defineM8
intmain()
{
intalMjJjX
for(i=0;iscanff”%d”,&a[i]);〃填空
i=0;
j=M-l;//填空
while(i{
t=*(a+i);
*(a+i)=*(a+j);//填空
*(a+j)=t;//填空
i++;
for(i=0;i{
printfC%3(T「(a+i));〃填空
1•编程题目:
#includemain()
{
floatx,y;printfC'inputx:
11);scanf(“%f”,&x);
if(x{
y=x;
y=-2*x-l;
else//(x>=10){y=3*x-ll;
}
printf(”y=%6・2化y);
}
〃程序填空
2.用户输入3个数,按由小到人顺序输出
#include
main()
{
intabc,temp;
printf(Hinputabc:
");
scanf(,,%d/%dz%d,,/&a,&b/&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("由小到大输出三个数为:
%d/%d/%d\n,,/a,b/c);
〃程序填空
〃3•输入两个数,将较小的数输出观教材65页.
#include
main()
{
intabmin;printf(Hinputazb:
n);
scanf(,,%d/%d,,,&a/&b);
if(a>=b)
{
min=b;
}
else
min=a;
//min=a>b?
b:
a;
printf(,,min=%d\n'^min);
}
〃4.输入用户3个整数,输出其中最大的数.编程题
#include
main()
{
intabc,temp;
printf(Hinputabc:
");
scanf(,,%d,%dz%d,,/&a,&b/&c);
if(a<=b)
{
temp=a;
a=b;
b=temp;
}
if(a<=c)
{
temp=a;
a=c;
c=temp;
}
if(b<=c)
{
temp=b;
b=c;
c=temp;
printf(H三数中最大值为:
%d\n%);
〃5•输入一个字符,若该字符是人写字母贝J转换为小写字母输出,否则原样输出•程序填空渗看教材46页
#include
main()
{
charch;
printf("输入一个字符:
”);
scanf(l,%c,,/&ch);
if(ch>='A'&&ch<='Z‘)
{
ch二ch+32;
}
printf(,,%c\n,,/ch);
}
〃6.输入1-7中的任意一个数字,程序输出周一到周口的英语单词.程序填空题
#include
main()
{
intday;
printf("输入第几天:
”);
scanf(”%cT&day);
switch(day)
{
casel:
printf("星期一\n”);
break;
case2:
printf("星期二\n");
break;
case3:
printf("星期三\n");
break;
case4:
printf("星期四\n");
break;
case5:
printf("星期五\n");
break;
case6:
printf("星期六n");
break;
case7:
printf("星期□\n");
break;
default:
printf(Hinputerror!
\nH);
〃编写函数,计算某两个自然数之间所有自然数之和
#include
intmain()
{
intadd_m2n(intmjntn);〃第一个空
intm,nj;
printf("本程序计算自然数m-n之和,请输入m和n:
");
scanf(,,%d%d,,/&m/&n);
printf("从%d到%d的自然数之和为%d\n",mzn/add_m2n(m,n));//最后面连续三个空
}
intadd_m2n(intm」ntn)
{
intLsum^temp;
if(m>n)
{
temp=m;
m二n;
n二temp;
}
for(i=m;i<二n;i++)
sum+=i;〃本题i为空
returnsum;
算术运算与表达式程序题
从键盘任意输入一个3位数,编辑计算并输出它的逆序数(忽略整数前的正负号)。
例如,输入-123,则忽略负号,由123分离出百位1、十位2、个位3,然后计算3*100+2*10+1,并输出321。
程序答案:
#include
#include
MainO
{
intx,b0,bl,b2,y;
printf(4'inputx:
”);
scanf(“%d”,&x);
x=(int)fabs(x);
b2=x/100;
bl=(x-b2*100)/10;
b0=x%10;
y=b2+bl*10+b0*100;
printf("尸%d\n”,y);
设银行定期存款的年利率rate为2.25%,已知存款期为□年,存款本金为capital元,试编程计算并输出11年后的本利之和deposit
程序答案:
#include
#include
MainO
{
intn;
doublerate;
doublecapital;
doubledeposit;
printf(“Pleaseenterrate,yeai;capital:
^);
scanf("%lf,%d,%lf;&rate,&n,&capital);
deposit=capital*pow(1+rate,n);
printf(“deposit=%f\n”、deposit);
〃输入20个数,统计非负数的个数/i十算非负数的和.
#include
intmain()
inti,a[20]/s/count;
s=count=0;
for(i=0;i<20;i++)〃填空i<20scanff"%d”,&a[i]);〃填空&a[i]
for(i=0;i<20;i++)
{
if(a[i]<0);
else〃填空
{
s+=a[i];〃填空a[i]
count++;
}
printf(,,s=%d/count=%d,,/s/count);//填空s=%d,count=%d