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