C语言上机操作题Word文档下载推荐.docx
《C语言上机操作题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言上机操作题Word文档下载推荐.docx(37页珍藏版)》请在冰点文库上搜索。
![C语言上机操作题Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/fd9e5242-e1c8-460c-8eb8-591dac68063e/fd9e5242-e1c8-460c-8eb8-591dac68063e1.gif)
信息。
例如:
7是素数,8不是素数。
请编写fun函数。
素数是
仅能被1和自身整除的数
-------------------------------------------------*/
intm,flag;
inputaninteger:
%d"
m);
flag=fun(m);
if(flag)
%disaprime.\n"
m);
else
%disnotaprime.\n"
}
intfun(intn)
inti,j;
j=1;
for(i=2;
{if(n%i==0)j=0;
returnj;
题目三
用辗转相除法求两个整数的最大公约数。
#include<
stdio.h>
intgcd(intn,intm)
intr,t;
if(n<
m){t=n;
n=m;
m=t}
r=n%m;
while(r!
=0)
{n=m;
m=r;
r=n%m}
returnm;
intn,m,result;
%d%d"
n,&
result=gcd(n,m);
thegcdis%d\n"
result);
题目四
求1到100之间的偶数之积。
doublefun(intm)
doubley=1;
m;
if(i%2==0)y*=i;
returny;
ji=%f\n"
fun(100));
题目五
求一批数中小于平均值的数的个数。
intaverage_num(inta[],intn)
sum=0;
k=0;
floataverage;
for(i=0;
sum=sum+a[i];
average=sum*1.0/n;
if(average>
a[i])k++;
returnk;
intn,a[100],i,num;
a[i]);
num=average_num(a,n);
thenumis:
%d\n"
num);
题目六
编写函数fun(str,i,n),从字符串str中删除第i个
字符开始的连续n个字符(注意:
str[0]代表字符串
的第一个字符)。
charstr[81];
inti,n;
请输入字符串str的值:
\n"
%s"
str);
你输入的字符串str是:
%s\n"
请输入删除位置i和待删字符个数n的值:
i,&
while(i+n-1>
strlen(str))
{
删除位置i和待删字符个数n的值错!
请重新输入i和n的值\n"
fun(str,i,n);
删除后的字符串str是:
fun(charstr[],inti,intn)
while(str[i+n-1)
str[i-1]=str[i+n-1];
i++;
str[i-1]='
\0'
;
题目七
统计出若干个学生的平均成绩,最高分以及得最高
分的人数。
输入10名学生的成绩分别为92,87,68,56,92,
84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
floatMax=0;
intJ=0;
floatfun(floatarray[],intn)
floatsum=0,ave;
Max=array[0];
{if(Max<
array[i])Max=array[i];
sum=sum+array[i];
ave=sum/n;
if(array[i]=Max)J++;
returnave;
main()
floata[10],ave;
inti=0;
10;
%f"
ave=fun(a,10);
ave=%f\n"
ave);
max=%f\n"
Max);
Total:
J);
题目八
编写程序,实现矩阵(3行3列)的转置(即行列互换)
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
intfun(intarray[3][3])
/**********Program**********/
inti,j,t;
3;
for(j=0;
j<
i;
j++)
{t=array[i][j]
array[i][j]=array[j][i]
array[j][i]=t;
}
main()
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;
i<
3;
i++)
for(j=0;
j<
j++)
%7d"
array[i][j]);
}
fun(array);
Convertedarray:
{
题目九
用函数实现字符串的复制,不允许用strcpy()函数。
voidcopy(charstr1[],charstr2[])
str1[i]!
='
str2[i]=str1[i];
str2[i]='
voidcopy();
charc1[40],c2[40];
gets(c1);
copy(c1,c2);
puts(c2);
题目十
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
intfun(intx[],intn)
intmin,i;
min=x[0];
{if(x[i]<
min)min=x[i];
returnmin;
inta[10],i,min;
%3d"
a[i]);
min=fun(a,10);
min);
题目十一
计算出k以内最大的10个能被13或17整除的自然数之
和。
(k〈3000)。
#include"
conio.h"
intfun(intk)
inta=0,b=0,j;
while((k>
2)&
&
(b<
10))
{if((k%13==0)||(k%7==0))
{a=a+k;
b++;
k--;
returna;
intm;
Enterm:
"
&
\nTheresultis%d\n"
fun(m));
题目十二
判断一个整数w的各位数字平方之和能否被5整除,
可以被5整除则返回1,否则返回0。
intfun(intw)
intk,s=o;
do
{s=s+(w%10)*(w%10);
w=w/10;
while(w!
=0);
if(s%5==0)k=1;
elsek=0;
return(k);
题目十三【程序设计】
--------------------------------------------------
从低位开始取出长整型变量s奇数位上的数,依次
构成一个新数放在t中。
当s中的数为:
7654321时,t中的数为:
7531。
longfun(longs,longt)
longs1=10;
t=s%10;
while(s>
0)
{s=s/100;
t=s%10*s1+t;
s1=s1*10;
returnt;
longs,t,m;
\nPleaseenters:
%ld"
s);
m=fun(s,t);
Theresultis:
%ld\n"
m);
题目十四
求大于lim(lim小于100的整数)并且小于100的所
有素数并放在aa数组中,该函数返回所求出素数的
个数。
conio.h>
#defineMAX100
intfun(intlim,intaa[MAX])
intn=0;
for(i=lim;
=100;
for(j=2;
j++)
if(i%j==0)break;
if(j==i)aa[n++]=i;
returnn;
intlimit,i,sum;
intaa[MAX];
PleaseInputaInteger:
limit);
sum=fun(limit,aa);
sum;
i++){
if(i%10==0&
i!
=0)printf("
%5d"
aa[i]);
题目十五
求一批数中最大值和最小值的差。
intmax_min(inta[],intn)
inti,max,min;
max=min=a[0];
if(a[i]>
max)max=a[i];
elseif(a[i]<
min)min=a[i];
return(max-min);
#defineN30
stdlib.h"
inta[N],i,k;
N;
a[i]=rand()%(51)+10;
if((i+1)%5==0)printf("
k=max_min(a,N);
theresultis:
k);
题目十六
从低位开始取出长整型变量s中偶数位上的数,依次
642。
longsl=10;
s/=10;
t=s%10*sl+t;
sl=sl*10;
/**********End**********/
题目十七
编写函数fun计算下列分段函数的值:
x^2+x+6x<
0且x≠-3
f(x)=x^2-5x+60≤x<
10且x≠2及x≠3
x^2-x-1其它
floatfun(floatx)
floaty;
if(x<
0&
x!
=-3.0)
y=x*x+x+6;
elseif(x>
=0&
=2.0&
=3.0)
y=x*x-5*x+6;
slsey=x*x-x-1;
floatx,f;
Inputx="
x);
f=fun(x);
x=%f,f(x)=%f\n"
x,f);
题目十八
编写函数用冒泡排序法对数组中的数据进行从小到
大的排序。
#include<
stdlib.h>
voidsort(inta[],intn)
intj,i,t;
n-1;
=n-1-i;
if(a[j]>
a[j+1])
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
inta[16],i;
16;
a[i]=rand()%(30)+15;
\n-------------------\n"
sort(a,16);
题目:
用函数求一个N阶方阵右下三角元素的和(包括副
对角线上的元素)。
#defineN3
intsum(inta[][N])
inti,j,k=0;
for(j=N-1-i;
k=k+a[i][j];
inta[N][N],i,j;
a[i][j]=rand()%(10)+10;
a[i][j]);
===================\n"
sum=%5d\n"
sum(a));
题目二十
根据整型形参m,计算如下公式的值:
y=sin(m)*10。
若m=9,则应输出:
4.121185
#inc