C题库
-
【程序设计】
功能:根据整型形参
m
,计算如下公式的值:
y=sin(m)*10
。
【参考代码】
double
y=0;
y=sin(m)*10;
return(y);
功能:若
x
、
y
为奇数,求
x
到
y
之间的奇数和;若
x
、
y
为偶
数,则求
x
到
y
之间的偶数和。
< br>
【参考代码】
int
i,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
return s;
< br>功能:编写程序,实现矩阵(
3
行
3
列)的转置(即行列互换)
【参考代码】
int i,j,t;
for(i=0; i < 3; i++)
for(j=0; j < i; j++)
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t; }
功能:求一个四位数的各位数字的立方和。
【参考代码】
int d,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
return s;
功能:请编一个函数
void
fun(int tt[M][N],int pp[N])
,
tt
指向一个
M
行
N
列的二维数组,求出二维数组每列
中最小元素,并依次放入
pp
所指一维数组中。二维
数组中的数已在主函数中赋予。
【参考代码】
int i,j;
个字符按降序排列。 <
br>代表字符串 <
br>个 <
br>; fun
个
位自然数的各位数字的积。(
<
br>功能:编写函数求
功能:从低位开始取出长整型变量 个
for(j=0;j
{
pp[j]=tt[0][j];
for(i=1;i
if(tt[i][j]
pp[j]=tt[i][j];
}
功能:求一组数中大于平均值的数的个数。
【参考代码】
int i,k=0;
float s=0,ave;
for(i=0;i
s+=a[i];
ave=s/n;
printf(
for(i=0;i
if(a[i]>ave)k++;
return k;
题目:分别统计字符串中字母、数字、空格和其他字符出现的
次数(字符长度小于
80
)。
【参考代码】
int i;
for(i=0;c[i]!='0';i++)
if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z'))
a=a+1;
else if
(c[i]>='0'&&c[i]<='9')
num=num+1;
b=b+1;
else
other=other+1;
else if (c[i]==' ')
功能:能计算
从
1
开始到
n
的自然数中偶数的平方和,
n
由
键盘输入,并在
main
()
函数中输出。
【参考代码】
int sum,i;
sum =0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
功能:求一批数中小于平均值的数的个数。
【参考代码】
int
i,sum=0,k=0;
double average;
for(i=0;i
sum=sum+a[i];
average=sum*1.0/n;
for(i=0;i
if(average>a[i]) k++;
return(k);
功能:求出二维数组周边元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
【参考代码】
int s=0;
int i,j;
for(i=0;i
s=s+a[i][0]+a[i][N-1];
for(j=1;j
s=s+a[0][j]+a[M-1][j];
return s;
功能:将主函数中输入的字符串反序存放。
【参考代码】
int i,j;
char c;
for(i=0,j=n-1;i
/*
或者
for(i=0,j=n-1
;i
{c=*(str+i);
*(str+i)=*(str+j);
*(str+j)=c;
}
功能:求一批数中最大值和最小值的差。
【参考代码】
int
i,max,min;
max=min=a[0];
for(i=1;i
if(a[i]>max) max=a[i];
else
if(a[i]
return(max-
min);
功能:用
do-whi
le
语句求
1
~
100
的累计和。
【参考代码】
int i =1,
sum =0;
do
{
sum = sum + i;
i++;
}
while (
i <= n );
return sum;
功能:对长度为
7
个字符的字符串,除首、尾字符外,将其
余
5
【参考代码】
int i,j;
char t;
for(i=1;i
for(j=i+1;j
if(s[i]
{
t=s[i];s[i]=s[j];s[j]=t;}
功
能:编写函数
fun(str,i,n)
,从字符串
str
中删除第
i
个
p>
字符开始的连续
n
个字符(注意
:str[0]
的第一个字符)。
【参考代码】
while(str[i+n-1])
{
str[i-1]=str[i+n-1];
i++;
}
str[i-1]='0';
功能:用函数求
N
[10,60]
上的整数中能被
5
整除的最大
的数,如存在则返回这个最大值,如果不存在则
返回
0
。
【参考代码】
int i;
for(i=0;i
if(arr[i]%5==0 && arr[i]>m)
m=arr[i];
功能:判断整数
x
是否是同构数。若是同构数,函数返回
1
否则返回
p>
0
。
x
的值由主函
数从键盘读入,要求不大
于
100
。
【参考代码】
int k;
k=x*x;
if((k%10==x)||(k%100==x))
return 1;
else
return 0;
功能:编写函数判断一个整数
m
p>
的各位数字之和能否被
7
整除,
可以被
7
整除则返回
1
,否则返回
0
。调用该函数找出
100~200
之间满足条件的所有数。
【参考代码】
int k,s=0;
do
{s=s+m%10;
m=m/10;
}while(m!=0);
if(s%7==0)k=1;
else k=0;
return(k);
功能:编写函数
对主程序中用户输入的具有
10
个数据的数组
a
按由大到小排序,并在主程序中输出
排序结果。
【参考代码】
int
k,j,t;
for (k=0;k
for (j=k+1;j
if (array[k]
{
t=array[k];
array[k]=array[j];
array[j]=t;
}
功能:将两个两位数的
正整数
a
、
b
合并形成一个整数放在
c
中。合并的方式是:将
a
数的十位和个位数依次放
在
c
p>
数的百位和个位上,
b
数的十位和个位数依次放
在
c
数的十位和千位上。
【参考代码】
*c=a/10*100+a%10+b/10*10+b%10*1000;
功能:用函数将第
2
个串连接到第
1
个串之后,不允许使用
strcat
函数。
【参考代码】
int i,j;
for(i=0;c1[i]!='0';i++);
for(j=0;c2[j]!='0';j++)
c1[i+j]=c2[j];
c1[i+j]='0';
功能:产生
20
[30,120]
上的随机整数放入二维数组
a[5][4]
中
,
求其中的最小值。
【参考代码】
int i,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);
功能:
编写函数
fun
计算下列分段函数的值:
【参考代码】
float y;
if (x<0 && x!=-3.0)
y=x*x+x+6;
else if(x>=0 && x<10.0 &&
x!=2.0 && x!=3.0)
y=x*x-5*x+6;
else y=x*x-x-1;
return y;
功能:根据整型形参
m
,计算如下公式的值:
y=1/5+1/6
+
1/7
+
1/8<
/p>
+
1/9+1/10...
+
1/(m+5)
【参考代码】
double y=0;
int i;
for(i=0; i<=m; i++)
{y+=1.0/(i+5); }
return(y);
功能:对某
一正数的值保留
2
位小数,并对第三位进行四舍
五入。
【参考代码】
int i;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
功能:找出一批正整数中的最大的偶数。
【参考代码】
int
i,amax=-1;
for(i=0;i
if(a[i]%2==0)
if
(a[i]>amax) amax=a[i];
return
amax;
功能:编写函数
fun
求
s=1^k+2^k +3^k +
......+N^k
的值,
(
1
的
K
p>
次方到
N
的
K
p>
次方的累加和)。
【参考代码】
long
power,sum=0;
int i,j;
for(i=1;i<=n;i++)
{ power=i;
for(j=1;j
power *= i;
sum += power;
}
return sum;
功能:求一个
n
n
是小于
10
的
自然数)
【参考代码】
long
d,s=1;
while (n>0)
{d=n%10;
s*=d;
n/=10;
}
return s;
功能:对任意输入的
x
,用下式计算并输出
y
的值。
【参考代码】
int m;
if(n<0)
m=-1;
else
if(n==0)
m=0;
else m=1;
return m;
功能:在键盘上输入一个
3
行
3
列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积
,
并在
fun()
函数中输出。
【参考代码】
int sum;
int i,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return sum;
功能:从键盘上输入任意实数
,
p>
求出其所对应的函数值。
【参考代码】
double z;
if(x>10) z=exp(x);
else
if(x>-3) z=log(x+3);
else
z=sin(x)/(cos(x)+4);
return(z);
功能:求
x
到
y
之间的奇数和(包括
x
和
y)
。
【参考代码】
int i,s=0;
for(i=x;i<=y;i++)
if(i%2!=0)
s=s+i;
return s;
3!+6!+9!+12!+15!+18!+21!
。
【参考代码】
int i,j;
float t,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);
功能:删除
所有值为
y
的元素。数组元素中的值和
y
的值由
主函数通过键盘输入。
【参考代码】
int i,j;
for(i=0;i<*n;)
{
if(bb[i]==y)
{for(j=i;j<*n;j++)
bb[j]=bb[j+1];
*n=*n-1;
}
else
i++;
}
功能:统计出若干个学生的平均成绩、最高分以及得最高
分的人数。
【参考代码】
int
i;float sum=0,ave;
max=array[0];
for(i=0;i
{
if(max
sum=sum+array [i]; }
ave=sum/n;
for(i=0;i
if(array [i]==max) j++;
return(ave);
功能:编写函数
fun
将一个由四个数字组成的字符串转换
为每两个数字间有一个空格的形式输出。
【参考代码】
int i,len;
len=strlen(s);
for(i=len-1;i>0;i--)
{ s[2*i]=s[i];
s[2*i-1]=' ';
}
len=strlen(s);
s[len]='0';
功能:把
20
个随机数存入一个数组,然后输出该数组中的
最小值。其中确定最小值的下标的操作在
fun
函数中
实现,请给出该函数的定义。
【参考代码】
int
i,min=0;
for(i=1; i
if(list[min]>list[i])
min=i;
return min;
功能:调用函数
fun
判断一个三位数是否是
水仙花数
。
在
main
函数中从键盘输入一个三位数,并输
出判断结果。请编写
fun
函数。
【参考代码】
int
bw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)
return 1;
else return 0;
功能:找出一个大于给定整数且紧随这个整数的素数,并
作为函数值返回。
【参考代码】
int i,k;
for(i=n+1;;i++){
for(k=2;k
if(i%k==0)
break;
if(k==i)
return(i);
}
功能:编写程序求无理数
e
的值并输出。计算
公式为:
e=1+1/1!+1/2!+1/3!+......+1/n!
【参考代码】
long int
j;
int i,k;
double e,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++;
}
return e;
功能:求出
N
×
M
整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
【参考代码】
int
max,i,j;
max=array [0][0];
Row=0;
Col=0;
for(i=0;i
{for(j=0;j
if(max
{max=array [i][j];
Row=i;
Col=j;}
}
return(max);
<
/p>
功能:能计算从
1
开始到
n
的自然数的和,
n
由键盘输
入,
并在
main()
函数中输出。
【参考代码】
int sum,i;
sum =0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
功能:实现两个整数的交换。
【参考代码】
int t;
t=*a;*a=*b;*b=t;
s
中偶数位上的数,依次
构成一个新数放在
p>
t
中。
【参考代码】
long
sl=10;
s /= 10;
t
= s % 10;
while(s > 0)
{ s = s/100;
t =
s%10*sl + t;
sl = sl * 10;
}
功能:产生
20
[30,120]
上的随机整数放入二维数组
a[5][4]
中,求每行元素的和。
【参考代码】
int i,j;
for(i=0;i<5;i++)
{
b[i]=0;
for(j=0;j<4;j++)
b[i]=b[i]+a[i][j];
}
-
-
-
-
-
-
-
-