导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能;这类习题的设计就是要引导读者逐步掌握编程的方法;本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力;在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率;
下面程序的功能是不用第三个变量,实现两个数的对调操作;
include <>
main
{ int a,b;c语言用递归函数求n的阶乘
scanf"%d%d",&a,&b;
printf"a=%d,b=%d\n",a,b;
a=
b=
a=
printf"a=%d,b=%d\n",a,b;
}
下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值;
include <>
double pilong n
{ double s=;
long i;
fori=1;i<=n;i++
s=s+
return
}
下面的程序的功能是求一维数组中的最小元素;
findminint s,int t,int k
{ int p;
forp=0,k=p;p<t;p++
ifsp<sk
}
main
{ int a10,i,k=&i;
fori=0;i<10;i++
scanf"%d",&ai;
findmina,10,k;
printf"%d,%d\n",k,ak;
}
下面程序的功能是计算1-3+5-7+ …… -99+101的值;
main
{ int i,t=1,s=0;
fori=1;i<=101;i+=2
{ t=t i;
s=s+t;
t>0t=-1:1;
}
printf"%d\n",s;
}
有以下程序段:
s=;
fork=1;k<=n;k++
s=s+kk+1;
printf"%f\n",s;
填空完成下述程序,使之与上述程序的功能完全相同;
s=;
k=0;
do
{ s=s+d;
d=kk+1;
}while
printf"%f\n",s;
下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入;
main
{ float x,amax,amin;
scanf"%f",&x;
amax=x;
amin=x;
while
{ ifx>amax amax=x;
if   amin=x
scanf"%f",&x;
}
printf"\namax=%f\namin=%f\n",amax,amin;
}
下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中;
funint x,int b
{ int k=0,r;
do
{ r=x%
bk++=r;
x/=
}whilex;
}
下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数;例如数字26,数位上数字的乘积12大于数字之和8;
main
{ int n,k=1,s=0,m;
forn=1;n<=100;n++
{ k=1;
s=0;
while  
{ k=m%10;
s+=m%10;
}
ifk>s
printf"%d",n;
}
}
下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数;
main
{ int i,j,k,count=0;
fori=1;i<=9;i++
forj=0;j<=9;j++
if   continue
else fork=0;k<=9;k++
if   count++
printf"%d",count;
}
下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数;
main
{ int i,j;
fori=0; ;i++
{ j=i10+6;
if   countinue
printf"%d",j;
}
}
下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数;
hcfint m,int n
{ int r;
ifm<n
{ r=m;
n=r;
}
r=m%n;
while
{ m=n;
n=r;
r=m%n;
}
}
下面程序的功能是使用冒泡法对输入的10个浮点数从小到大进行排序;排好序的10个数分两行输出;程序如下:
include <>
main
{
int i,j;
printf"Input 10 numbers please\n";
fori=0; ;i++ 
scanf"%f", &ai;
printf"\n";
fori=2; ;i++ 
forj=0; ;j++
if  
{ x=aj;
aj+1=x;
}
printf"The sorted 10 numbers;\n";
fori=0; ;i++ 
{ if  
printf"\n";
printf"%f\t",ai;
}
printf"\n";
}
下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和;
include ""
main
{ int i,a20,s,count;
s=count=0;
fori=0;i<20;i++
scanf"%d",
fori=0;i<20;i++
{ ifai<0
s+=ai;
count++;
}
printf"s=%d\t count=%d\n",s,count;
}
下面程序的功能是删除字符串s中的空格;
include <>
main
{ char s="Beijing ligong daxue";
int i,j;
fori=j=0;si='\0';i++
ifsi= ' '
else
sj= '\0';
printf"%s",s;
}
下面程序的功能是将字符串s中所有的字符'c'删除;请选择填空;
include<>
main
{ char s80;
int i,j;
getss;
fori=j=0;si= '\0';i++
ifsi= 'c'
sj= '\0';
putss;
}
下面程序的功能是输出两个字符串中对应相等的字符;请选择填空;
include <>
char x="programming";
char y="Fortran";
main
{ int i=0;
whilexi= '\0' && yi= '\0'
ifxi==yi
printf"%c",
else
i++;
}
下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已排好序;
include <>
main
{ char a20="cehiknqtw";
char s="fbla";
int i,k,j;
fork=0;sk= '\0';k++
{ j=0;
whilesk>=aj && aj= '\0'
j++;
for  
aj=sk;
}
putsa;
}
下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差;例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1;
include <>
main
{ char str1100,str2100,c;
int i,s;
printf"Enter string 1: "; getsstr1;
printf"Enter string 2: "; getsstr2;
i=0;
whilestr1i == str2i && str1i=  
i++
s=
printf"%d\n", s;
}
下面的函数expand在将字符串s复制到字符串t时, 将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符;
expandchar s,char t
{ int i,j;
fori=j=0;si= '\0';i++
switch si
{ case '\n': t   =
tj++ = 'n';
break;
case '\t': t   =
tj++ = 't';
break;
default: t   = si
break;
}
tj =
}
下面的函数indexchar s, char t检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置下标值,否则送回-1;
indexchar s, char t
{ int i,j,k;
fori=0;si= '\0';i++
{ forj=i,k=0; && sj==tk;j++,k++ ;
if  
return i
}
return-1;
}
n
下面程序的功能是计算S= k ;
k=0
long funint n
{ int i;
long s;
fori=1;i ;i++
s=i;
return
}
main
{ int k,n;
long s;
scanf"%d",&n;
s=
fork=0;k<=n;k++
s+=
printf"%ld\n",s;
}
下面程序的功能是显示具有n个元素的数组s中的最大元素;
define N 20
main
{ int i,aN;
fori=0;i<N;i++
scanf"%d",&ai;
printf"%d\n",
}
fmaxint s,int n
{ int k,p;
forp=0,k=p;p<n;p++
ifsp>sk
returnk;
}
下面程序的功能是由键盘输入n,求满足下述条件的x、y:
nx和ny的末3位数字相同,且x≠y,x、y、n均为自然数,并使x+y为最小;
include <>
pow3int n,int x
{ int i, last;
forlast=1,i=1;i<=x;i++
last=
returnlast;
}
main
{ int x,n,min,flag=1;
scanf"%d", &n;
formin=2;flag;min++
forx=1;x<min && flag;x++

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。