if(【a%i==0】)
printf(",%d",i);
printf("\n");}
20.完成程序填空,实现求1+1/3+1/5+...之和,直到某一项的值小于10的-6次方时停止累加。
n【=1;】
while(1.0/n【>=1e-6】){
s=s+1.0/n;
【n=n+2;】}
21.完成程序填空,输出如下数阵:
1
121
12321
1234321
123454321
for(i=1;【i<=5】;i++){
for(k=1;【k<=10-i】;k++)
printf("");
for(j=1;【j<=2*i-1】;j++)
printf("%d",i-abs(i-j));
printf("\n");}
22.两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单,有人向队员打听比赛的名单。
a说他不和x比,c说他不和x、z比,请完成程序填空,实现找出三队赛手的名单。
chari,j,k;//i是a的对手,j是b的对手,k是c的对手
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{if(【i!
=j】)//a和b不能是同一个对手
【for】(k='x';k<='z';k++)
{if(i!
=k&&j!
=k)//a、b、c不能是同一个对手
{if(i!
='x'&&k!
='x'&&【k!
=’z’】)
printf("a-----%c\nb-----%c\nc-----%c\n",i,j,k);}
}
23.完成程序填空,实现打印下列的图形
123456789
23456789
3456789
456789
56789
6789
789
89
9
for(i=1;【i<=9】;i++)
{for(j=i;j<=9;【j++】)
printf("%2d",【j);】
24.在数组a中,存放着10个整型数据,数据是从下标0开始存放的,完成程序填空,实现顺序输出下标为奇数的各数组元素的值。
inti,a[10]={0,1,2,3,4,5,6,7,8,9【}】};
for(i=1;i<=9;【i=i+2】)
printf("%d",【a[i]】);
printf("\n");
25.完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。
scanf("%d",【&a[i]】);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
【a[i+1]=t;】
printf("thesortednumbers:
\n");
for(i=0;i<10;i++)
printf("%d",【a[i]】);
26.完成程序填空,实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。
例如153=13+53+33,故153是一个水仙花数。
for(n=100;【n<1000】;n++)
{a=n/100;
b=n/10-a*10;
c=n%10;
if(【a*a*a+b*b*b+c*c*c==n】)
{m[k]=n;
【k++;】}
}
27.有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。
while(find【==0】&&left<=right)a[i+1]=【a[i]】;for(i=N-1;i>=left;【i--】)
28.在字符数组str1[81]和str2[81]中分别存放着2个字符串,完成程序填空,实现将两个字符串连接起来构成一个新的字符串,并将新生成的字符串存放在字符数组str1[81]中(要求不用strcat函数)。
【gets】(str1);
for(i=0;str1[i]【!
=’\0’】;i++)
for(j=0;str2[j]!
='\0';j++,【i++】)
29.完成程序填空,进行两个字符串str1和str2的比较,若str1>str2,
输出一个正数;若str1=str2,输出0;若str1<str2,输出一个负数,
输出的数是两个字符的Ascii码值的差(要求不用strcmp函数)。
【gets】(str1);
for(i=0;str1[i]【==str2[i]】&&str1[i]!
='\0';i++)
printf("thecompareresultis:
%d\n",【x】);
30.完成程序填空,实现编程输出以下图案。
*****
*****
*****
*****
*****
for(i=0;【i<5】;i++)
for(j=1;j<=【i】;j++)
puts(【str】;
31.功能:
输出9*9口诀。
for(i=1;【?
】;i++)i<10
{for(j=1;j<10;【j++】)
{result=i*j;
printf("%d*%d=%-3d",i,j,【result】);}
32.功能:
将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。
小写字母的转换规则同样。
while((c=【getchar()】)!
='\n')
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))【c+=4】;
if((c>'Z'【&&】c<='Z'+4)||c>'z')c-=26;
33.功能:
输入一个学生的生日(年:
y0、月:
m0、日:
d0),并输入当前日期(年:
y1、月:
m1、日:
d1)。
求出该学生的年龄(实足年龄)。
【scanf】("%d,%d,%d",&y0,&m0,&d0);
if(m0【>】m1)age--;
if((m0【==】m1)&&(d0>d1))age--;
34.完成程序填空,实现求两数最小公倍数.
if(【i%m==0】)
if(i%n【==0】)
{printf("%d\n",i);【break】;}
二、程序设计
1.功能:
求1到w之间的奇数之和。
(w是大于等于100小于等于1000的整数)
longd,s=1;
while(n>0)
{d=n%10;
s*=d;
n/=10;
}
returns;
2.功能:
对某一正数的值保留2位小数,并对第三位进行四舍五入。
inti;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
3.功能:
产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求其中的最小值。
inti,j,s;
s=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(s>a[i][j])s=a[i][j];
return(s);
4.功能:
编写程序求无理数e的值并输出。
计算公式为:
e=1+1/1!
+1/2!
+1/3!
+......+1/n!
longintj;
inti,k;
floate,jc;
i=1;
e=0.0;
jc=1.0;
while(jc>=0.000001)
{
e=e+jc;
j=1;
for(k=1;k<=i;k++)
j=j*k;
jc=1.0/j;
i++;
}
returne;
5.功能:
对任意输入的x,用下式计算并输出y的值。
5x<10
y=0x=10
-5x>10
intm;
if(n<10)
m=5;
else
if(n==10)m=0;
elsem=-5;
returnm;
6.功能:
判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
intk,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!
=0);
if(s%5==0)k=1;
elsek=0;
return(k);
7.功能:
编写函数求3!
+6!
+9!
+12!
+15+18!
+21!
。
inti,j;
floatt,s=0;
for(i=3;i<=n;i=i+3)
{t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
return(s);
8.功能:
编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。
例如:
3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。
longints=0,t=0;
inti;
for(i=1;i<=n;i++)
{t=t+d;
s=s+t;
d=d*10;
}
returns;
9.给定N个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)
inti,k;
k=0;
for(i=1;iif(s[i]
return(k);
10.求一批数中最大值和最小值的积。
inti,max,min;
max=min=a[0];
for(i=1;iif(a[i]>max)max=a[i];
elseif(a[i]return(max*min);
11.从键盘上输入任意实数x,求出其所对应的函数值z=(x-4)的二次幂,z=x的八次幂(x>-4),z=4/(x*(x+1)(x>-10),z=|x|+20(其他).
floatz;
if(x>4)z=sqrt(x-4);
elseif(x-4)z=pow(x,8);
elseif(x>-10)z=4/(x*(x+1));
elsez=fabs(x)+20;
return(z);
12.求出N*M整形数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
.
intmax,i,j;
max=array[0][0];
Row=0;
Col=0;
for(i=0;i{for(j=0;jif(max{max=array[i][j];
Row=i;
Col=j;}
}
return(max);
13.求一个n位自然数的各位数字的积。
(n是小于10的自然数)
longd,s=1;
while(n>0)
{d=n%10;
s*=d;
n/=10;}
returns;
14.计算n门课程的平均值,计算结果作为函数值返回。
例如:
若有5门课程的成绩是:
92,76,69,58,88,则函数的值为76.599998
inti;
floaty=0;
for(i=0;iy+=a[i];
y=y/n;
returny;
15.求一批数中小于平均值的个数。
inti,sum=0,k=0;
floataverage;
for(i=0;isum=sum+a[i];
average=sum*1.0/n;
for(i=0;iif(average>a[i])k++;
return(k);
16.编写函数判断一个整数m的个位数字之和能否被7整除,可以被7整除则返回1,否则返回0.调用该函数找出100~200之间满足条件的所有数。
intk,s=0;
do
{s=s+m%10;
m=m/10;
}while(m!
=0);
if(s%7==0)k=1;
elsek=0;
return(k);
17.编写函数fun用比较法对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果。
intk,j,t;
for(k=0;kfor(j=k+1;jif(array[k]{t=array[k];
array[k]=array[j];
array[j]=t;}
18.将字符串中的小写字母转换为对应的大写字母,其他字符不变。
inti;
for(i=0;str[i]!
='\0';i++)
if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
19.求给定正整数m以内的素数之和。
inti,k,s=0;
for(i=2;i<=m;i++)
{for(k=2;k
if(i%k==0)break;
if(k==i)s=s+i;}
returns;
20.编写程序,实现矩阵(3行3列)的转置.
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;}
21.功能:
从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
intmin,i;
min=x[0];
for(i=1;i<10;i++)
{if(x[i]min=x[i];}
returnmin;
22.用do-while语句求1~100的累计和。
inti=1,sum=0;
do
{sum=sum+i;i++;}
while(i<=n);
returnsum;
23.调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输出判断结果。
请编写fun函数。
说明:
所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1+125+27。
inta,b,c;
a=n%10;
b=n/10%10;
c=n/100;
if(a*a*a+b*b*b+c*c*c==n)
return1;
elsereturn0;
24.功能:
判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
使用DOWHILE
intk,s=0;
do
{s=s+(w%10)*(w%10);w=w/10;}
while(w!
=0);
if(s%5==0)k=1;
elsek=0;
return(k);
25.功能:
求一个n位自然数的各位数字的积。
(n是小于10的自然数)
longd,s=1;
while(n>0)
{d=n%10;
s*=d;
n/=10;}
returns;
26.功能:
把20个随机数存入一个数组,然后输出该数组中的最大值。
inti,j=0;
for(i=0;iif(list[i]>list[j])
j=i;
returnj;
27.功能:
求一批数中小于平均值的数的个数。
inti,sum=0,k=0;
floataverage;
for(i=0;isum=sum+a[i];
average=sum*1.0/n;
for(i=0;iif(average>a[i])k++;
return(k);
28.功能:
编写函数求1~100中奇数的平方和。
结果为166650。
floats=0;inti,j;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
29.功能:
产生20个[30,120]上的随机整数放入二维数组