c语言程序设计题目及答案.docx
- 文档编号:4317569
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:59
- 大小:30.92KB
c语言程序设计题目及答案.docx
《c语言程序设计题目及答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计题目及答案.docx(59页珍藏版)》请在冰豆网上搜索。
c语言程序设计题目及答案
一、程序设计共113题
第1题题号:
319
#include"stdio.h"
voidwwjt();
intfun(intm)
{
inti,k=1;
if(m<=1)k=0;
for(i=2;i if(m%i==0)k=0; returnk; } 第2题题号: 351 ----------- 功能: 请编一个函数voidfun(inttt[M][N],intpp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。 二维 数组中的数已在主函数中赋予。 #include #include #defineM3 #defineN4 voidwwjt(); voidfun(inttt[M][N],intpp[N]) { inti,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j]>pp[j]) pp[j]=tt[i][j]; } 第3题题号: 375 功能: 从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x>10) z=log(x+3)(x>-3) z=sin(x)/((cos(x)+4) #include #include voidwwjt(); doubley(floatx) { doublez; if(x>10)z=exp(x); elseif(x>-3)z=log(x+3); elsez=sin(x)/(cos(x)+4); return(z); } 第4题题号: 334 功能: 求给定正整数n以内的素数之积。 (n<28) #include #include"conio.h" voidwwjt(); longfun(intn) { longi,k; longs=1; for(i=2;i<=n;i++) {for(k=2;k if(i%k==0)break; if(k==i)s=s*i; } returns; } 第5题题号: 333 功能: 计算并输出给定整数的所有因子之积(包括自身)。 规定这个整数的值不大于50。 #include #include"conio.h" voidwwjt(); longintfun(intn) { longs=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; returns; } 第6题题号: 50 功能: 求出菲波那契数列的前一项与后一项之比的极限的 近似值例如: 当误差为0.0001时,函数值为0.618056。 #include #include"math.h" voidwwjt(); floatfun() { floatf1=1,f2=1,f3; floatr1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); returnr1; } 第7题题号: 394 功能: 产生20个[30,120]上的随机整数放入二维数组 a[5][4]中,求其中的最小值。 #include"stdlib.h" #include voidwwjt(); intamin(inta[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); } 第8题题号: 337 功能: 将两个两位数的正整数a、b合并形成一个整数放在 c中。 合并的方式是: 将a数的十位和个位数依次放 在c数的百位和个位上,b数的十位和个位数依次放 在c数的十位和千位上。 例如: 当a=45,b=12。 调用该函数后,c=2415。 include voidwwjt(); voidfun(inta,intb,long*c) { *c=a/10*100+a%10+b/10*10+b%10*1000; } 第9题题号: 388 功能: 编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0。 调用该函数求出15~300之 间能同时被3和5整除的数的个数。 #include voidwwjt(); intsum(intn) { if(n%3==0&&n%5==0)return (1); return(0);} 第10题题号: 16 功能: 编写函数fun求1! +2! +3! +……+n! 的和,在main函 数中由键盘输入n值,并输出运算结果。 请编写fun 函数。 例如: 若n值为5,则结果为153。 #include voidwwjt(); longintfun(intn) { inti; floatf=1,s=0; for(i=1;i<=n;i++) {f=f*i; s=s+f;} returns; 第11题题号: 329 功能: 对某一正数的值保留2位小数,并对第三位进行四舍 五入。 #include #include"conio.h" voidwwjt(); doublefun(floath) { inti; i=(int)(h*1000)%10; if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0; 第12题题号: 410 功能: 编写函数fun将一个数组中的值按逆序存放,并在 main()函数中输出。 例如: 原来存顺序为8,6,5,4,1。 要求改为: 1,4,5,6,8。 #include #defineN5 voidwwjt(); intfun(intarr[],intn) { inti,t; for(i=0;i {t=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=t; } 第13题题号: 327 功能: 能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。 #include voidwwjt(); intfun(intn) { intsum,i; sum=0; for(i=1;i<=n;i++) {sum=sum+i;} return(sum); 第14题题号: 507 功能: 编写函数fun求一个字符串的长度,在main函数中 输入字符串,并输出其长度。 #include voidwwjt(); intfun(char*p1) { char*p; intn=0; p=p1; while(*p++) n++; returnn; 第15题题号: 44 功能: 求出二维数组周边元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 #defineM4 #defineN5 #include voidwwjt(); intfun(inta[M][N]) { ints=0; inti,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]; returns; 第16题题号: 364 功能: 求一个四位数的各位数字的立方和。 #include voidwwjt(); intfun(intn) { intd,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; 第17题题号: 339 功能: 判断整数x是否是同构数。 若是同构数,函数返回1; 否则返回0。 x的值由主函数从键盘读入,要求不大 于100。 说明: 所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。 例如: 输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。 #include voidwwjt(); intfun(intx) { intk; k=x*x; if((k%10==x)||(k%100==x)) return1; else return0; 第18题题号: 331 功能: 找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 #include #include"conio.h" voidwwjt(); intfun(intn) { inti,k; for(i=n+1;;i++){ for(k=2;k if(i%k==0) break; if(k==i) return(i); } 第19题题号: 317 功能: 求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如: 输入的数组为: 123 4156 12189 10112 求出的最大数为18,行坐标为2,列坐标为1。 #defineN4 #defineM3 #include voidwwjt(); intRow,Col; intfun(intarray[N][M]) { intmax,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); 第20题题号: 360 【程序设计】 功能: 把20个随机数存入一个数组,然后输出该数组中的 最大值。 #include #defineVSIZE20 voidwwjt(); intvector[VSIZE]; intfun(intlist[],intsize) { inti,max=0; for(i=1;i if(list[max] max=i; returnmax; 第21题题号: 355 功能: 对长度为8个字符的字符串,将8个字符按降序排列。 例如: 原来的字符串为CEAedcab,排序后输出为edcbaECA。 #include #include #include voidwwjt(); voidfun(char*s,intnum) { inti,j; chart; for(i=0;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} 第22题题号: 405 功能: 编写函数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 voidwwjt(); floatfun(floatx) { floaty; if(x<0&&x! =-3.0) y=x*x+x+6; elseif(x>=0&&x<10.0&&x! =2.0&&x! =3.0) y=x*x-5*x+6; elsey=x*x-x-1; returny; 第23题题号: 338 功能: 编写程序,实现矩阵(3行3列)的转置(即行列互换) 例如: 输入下面的矩阵: 100200300 400500600 700800900 程序输出: 100400700 200500800 300600900 #include voidwwjt(); intfun(intarray[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;} 第24题题号: 392 功能: 求一批数中最大值和最小值的积。 #defineN30 #include"stdlib.h" #include voidwwjt(); intmax_min(inta[],intn) { inti,max,min; max=min=a[0]; for(i=1;i if(a[i]>max)max=a[i]; elseif(a[i] return(max*min); 第25题题号: 407 功能: 编写函数fun求sum=d+dd+ddd+……+dd...d(n个d), 其中d为1-9的数字。 例如: 3+33+333+3333+33333(此时d=3,n=5),d和n在主函 数中输入。 #include voidwwjt(); longintfun(intd,intn) { longints=0,t=0; inti; for(i=1;i<=n;i++) {t=t+d; s=s+t; d=d*10; } returns; 第26题题号: 395 ----------------------------------------------- 功能: 求n阶方阵主、副对角线上的元素之积。 ------------------------------------------------*/ #defineN4 #include"stdlib.h" #include voidwwjt(); floatmul(intarr[][N]) { inti,j; floatt=1; for(i=0;i for(j=0;j if(i==j||i+j==N-1) t=t*arr[i][j]; return(t); 第27题题号: 42 功能: 从字符串s中删除指定的字符c。 #include voidwwjt(); fun(chars[],charc) { inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]! =c)s[k++]=s[i]; s[k]='\0'; 第28题题号: 311 功能: 计算n门课程的平均值,计算结果作为函数值返回。 例如: 若有5门课程的成绩是: 92,76,69,58,88, 则函数的值为76.600000。 #include voidwwjt(); floatfun(inta[],intn) { inti; floaty=0; for(i=0;i y+=a[i]; y=y/n; returny; 第29题题号: 348 功能: 从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如: 当s中的数为: 7654321时,t中的数为: 642。 #include voidwwjt(); longfun(longs,longt) { longsl=10; s/=10; t=s%10; while(s>0) {s=s/100; t=s%10*sl+t; sl=sl*10; ---------------------- 功能: 编写函数求3! +6! +9! +12! +15+18! +21! 。 #include voidwwjt(); floatsum(intn) { 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); 第31题题号: 397 功能: 编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意: str[0]代表字符串 的第一个字符)。 #include voidwwjt(); fun(charstr[],inti,intn) { while(str[i+n-1]) { str[i-1]=str[i+n-1]; i++; } str[i-1]='\0'; 第32题题号: 29 功能: 对任意输入的x,用下式计算并输出y的值。 5x<10 y=0x=10 -5x>10 #include voidwwjt(); intfun(intn) { 答案: intm; if(n<10) m=5; else if(n==10)m=0; elsem=-5; returnm; 或 intm; if(n>=10) if(n>10) m=-5; elsem=0; elsem=5; returnm; 第33题题号: 323 功能: 求1到w之间的奇数之和。 (w是大于等于100小于等 于1000的整数) #include #include"conio.h" voidwwjt(); longfun(intw) { longy=0; inti; for(i=1;i<=w;i++) if(i%2==1)y+=i; returny; 第34题题号: 312 功能: 调用函数fun判断一个三位数是否"水仙花数"。 在main函数中从键盘输入一个三位数,并输 出判断结果。 请编写fun函数。 说明: 所谓"水仙花数"是指一3位数,其各位数字立方和 等于该数本身。 例如: 153是一个水仙花数,因为153=1+125+27。 #include voidwwjt(); intfun(intn) { intbw,sw,gw; bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1; elsereturn0; 第35题题号: 378 功能: 编写函数用冒泡排序法对数组中的数据进行从小到 大的排序。 #include #include voidwwjt(); voidsort(inta[],intn) { inti,j,t; for(i=0;i for(j=0;j if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; } 第36题题号: 504 功能: 编写程序打印如图1所示图形。 * *** ***** ******* ***** *** * 要求: 要求使用abs()。 #include #include"math.h" voidwwjt(); voidfun(inti) { 答案: for(m=-i;m<=i;m++) { for(n=0;n for(n=0;n<7-2*abs(m);n++)printf("*"); printf("\n"); } 第37题题号: 342 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 #include voidwwjt(); main() { inti,j,s,a[3][3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } s=fun(a); printf("Sum=%d\n",s); wwjt(); } intfun(inta[3][3]) { intsum; inti,j; sum=0; for(i=0;i<3;i+=2) for(j=0;j<3;j++) sum=sum+a[i][j]; returnsum; 第38题题号: 382 功能: 给定n个数据,求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 #include voidwwjt(); intstation(ints[],intn) { inti,k; k=0; for(i=1;i if(s[i] return(k); 第39题题号: 62 功能: 求5行5列矩阵的主、副对角线上元素之和。 注意, 两条对角线相交的元素只加一次。 例如: 主函数中给出的矩阵的两条对角线的和为45。 #include #defineM5 voidwwjt(); intfun(inta[M][M]) { ints=0; inti,j; for(i=0;i s=s+a[i][i]+a[i][M-1-i]; s=s-a[(M-1)/2][(M-1)/2]; returns; 第40题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 题目 答案