c语言题库.docx
- 文档编号:9680982
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:23
- 大小:20.80KB
c语言题库.docx
《c语言题库.docx》由会员分享,可在线阅读,更多相关《c语言题库.docx(23页珍藏版)》请在冰豆网上搜索。
c语言题库
功能:
调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。
请编写fun函数。
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;
功能:
产生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);
功能:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
intmin,i;
min=x[0];
for(i=1;i {if(x[i] returnmin; 功能: 从键盘输入一个大于3的整数,调用函数fun判断 其是否素数,然后在main函数中输出相应的结论 信息。 例如: 7是素数,8不是素数。 请编写fun函数。 素数是 仅能被1和自身整除的数 答案: inti; intj; j=1; for(i=2;i {if(n%i==0)j=0; } returnj; 功能: 用do-while语句求1~100的累计和。 答案: inti=1,sum=0; do {sum=sum+i; i++; }while(i<=n); returnsum; 功能: 求1到100之间的偶数之积。 答案: doubley=1; inti; for(i=1;i<=m;i++) if(i%2==0)y*=i; returny; 功能: 根据整型形参m,计算如下公式的值: y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5) 例如: 若m=9,则应输出: 1.168229 答案: doubley=0; inti; for(i=0;i<=m;i++) {y+=1.0/(i+5);} return(y); 功能: 从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x>10) z=log(x+3)(x>-3) z=sin(x)/((cos(x)+4) ------------------------------------------------*/ 答案: ---------------------- doublez; if(x>10)z=exp(x); elseif(x>-3)z=log(x+3); elsez=sin(x)/(cos(x)+4); return(z); 功能: 编写函数求表达式的和(n的值由主函数输入)。 1-1/2+1/3-1/4+......+1/m 例如: 当n=20时,表达式的值为0.668771。 floats=0; inti,k=1; for(i=1;i<=n;i++) {s=s+k*1.0/i; k=-k; } return(s); 功能: 能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。 答案: ---------------------- intsum,i; sum=0; for(i=1;i<=n;i++) {sum=sum+i;} return(sum); 功能: 把20个随机数存入一个数组,然后输出该数组中的 最大值。 答案: inti,max=0; for(i=1;i if(list[max] max=i; returnmax; 功能: 根据整型形参m,计算如下公式的值: y=1/2+1/4+ 1/6+...+1/2m。 例如: 若m=9,则应输出: 1.414484 答案: doubley=0; inti; for(i=1;i<=m;i++) {y+=1.0/(2*i);} return(y); 功能: 编写函数fun计算下列分段函数的值: x^2+x+6x<0且x≠-3 f(x)=x^2-5x+60≤x<10且x≠2及x≠3 x^2-x-1其它 答案: 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; 功能: 编写函数fun将一个数组中的值按逆序存放,并在 main()函数中输出。 例如: 原来存顺序为8,6,5,4,1。 要求改为: 1,4,5,6,8。 nti,t; for(i=0;i {t=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=t; 功能: 求一个给定字符串中的字母的个数。 答案: inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') k++; returnk; 功能: 编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0。 调用该函数求出15~300之 间能同时被3和5整除的数的个数。 答案: if(n%3==0&&n%5==0)return (1); return(0); 功能: 求1到w之间的奇数之和。 (w是大于等于100小于等 于1000的整数) 答案: longy=0; inti; for(i=1;i<=w;i++) if(i%2==1)y+=i; returny; 功能: 求k! (k〈13),所求阶乘的值作为函数值返回。 (要求使用递归) 答案: if(k>0) return(k*fun(k-1)); elseif(k==0) return1L; 功能: 能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。 (n是偶数) 答案: intsum,i; sum=0; for(i=2;i<=n;i=i+2) { sum=sum+i*i;} return(sum); 功能: 计算n门课程的平均值,计算结果作为函数值返回。 例如: 若有5门课程的成绩是: 92,76,69,58,88, 则函数的值为76.599998。 答案: inti; floaty=0; for(i=0;i y+=a[i]; y=y/n; returny; 功能: 编写函数求1~100中奇数的平方和。 结果为166650。 答案: floats=0; inti,j; for(i=1;i<=n;i=i+2) s=s+i*i; return(s); 功能: 将主函数中输入的字符串反序存放。 答案: inti,j; charc; for(i=0,j=n-1;i *(str+i)=*(str+j); *(str+j)=c;} 功能: 编写函数用冒泡排序法对数组中的数据进行从小到 大的排序。 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; 功能: 求出二维数组周边元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 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; 功能: 编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0。 调用该函数求出15~300之 间能同时被3和5整除的数的个数。 If(n%3==0&&n%5==0) Return(0); 功能: 计算并输出给定整数n的所有因子之和(不包括1与 自身)。 注意: n的值不大于1000。 例如: n的值为855时,应输出704。 Ints=0,I; For(i=2;i If(n%i==0)s=s+I; Returns; 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 float Intsum; IntI,j; Sum=0; For(i=0;i<3;i+=2) For(j=0;j<3;j++) Sum=sum+a[i][j]; Returnsum; 功能: 计算n门课程的平均值,计算结果作为函数值返回。 例如: 若有5门课程的成绩是: 92,76,69,58,88, 则函数的值为76.599998。 IntI; Floaty=0; For(i=0;i Y+=a[i]; Y=y/n; Returny; 功能: 用函数求fibonacci数列前n项的和。 说明: fibonacci数列为数列的第一项值为1,第二项值也 为1,从第三项开始,每一项均为其前面相邻两项 的和。 例如: 当n=28时,运行结果: 832039 Longf,k=f1+f2; IntI; For(i=3;i<=28;i++) { f=f1+f2; K=k+f; F1=f2; F2=f; } Return(k); 功能: 对长度为8个字符的字符串,将8个字符按降序排列。 例如: 原来的字符串为CEAedcab,排序后输出为edcbaECA。 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;} 功能: 根据整型形参m,计算如下公式的值: y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5) 例如: 若m=9,则应输出: 1.168229 Doubley=0; IntI; For(i=0;i<=m;i++) {y+=1.0/(i+5);} Return(y); 功能: 给定n个数据,求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。 答案: inti,k; k=0; for(i=1;i if(s[i]>s[k])k=i; return(k+1); 第2题(10.0分)题号: 321 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出。 inti,j; sum=1; for(i=0;i<3;i++) sum=sum*a[i][i]; returnsum; 功能: 计算出k以内最大的10个能被13或17整除的自然数之和。 (k〈3000)。 答案: inta=0,b=0,j; while((k>=2)&&(b<10)) {if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } returna; 功能: 编写函数判断一个整数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); 第5题(10.0分)题号: 367 功能: 求一组数中大于平均值的数的个数。 例如: 给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 答案: inti,k=0; floats=0,ave; for(i=0;i s+=a[i]; ave=s/n; printf("%f",ave); for(i=0;i if(a[i]>ave)k++; returnk; 功能: 统计出若干个学生的平均成绩,最高分以及得最高 分的人数。 例如: 输入10名学生的成绩分别为92,87,68,56,92, 84,67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。 答案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++; return(ave); 功能: 请编一个函数voidfun(inttt[M][N],intpp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。 二维 数组中的数已在主函数中赋予。 答案: inti,j; for(j=0;j {pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j];} 功能: 编写程序求无理数e的值并输出。 计算公式为: e=1+1/1! +1/2! +1/3! +......+1/n! 当1/n! <0.000001时e=2.718282。 答案: 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; 功能: 编写函数fun求s=1^k+2^k+3^k+......+N^k的值, (1的K次方到N的K次方的累加和)。 答案: longpower,sum=0; inti,j; for(i=1;i<=n;i++) {power=i; for(j=1;j power*=i; sum+=power; } returnsum; 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 答案: intsum; inti,j; sum=0; for(i=0;i<3;i+=2) for(j=0;j<3;j++) sum=sum+a[i][j]; returnsum; 功能: 用函数求fibonacci数列前n项的和。 说明: fibonacci数列为数列的第一项值为1,第二项值也 为1,从第三项开始,每一项均为其前面相邻两项 的和。 答案: longf,k=f1+f2; inti; for(i=3;i<=28;i++) {f=f1+f2; k=k+f; f1=f2; f2=f;} return(k); 功能: 求一批数中最大值和最小值的差。 答案: inti,max,min; max=min=a[0]; for(i=1;i if(a[i]>max)max=a[i]; elseif(a[i] return(max-min); 功能: 找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 答案: inti,k; for(i=n+1;;i++){ for(k=2;k if(i%k==0) break; if(k==i) return(i);} 功能: 将字符串中的大写字母转换为对应的小写字母, 其它字符不变。 答案: inti; for(i=0;str[i]! ='\0';i++) if(str[i]>='A'&&str[i]<='Z')str[i]=str[i]+32; 功能: 判断一个整数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); 功能: 将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 答案: inti; for(i=0;str[i]! ='\0';i++) if(str[i]>='a'&&str[i]<='z') str[i]=str[i]-32; 功能: 求5行5列矩阵的主、副对角线上元素之和。 注意, 两条对角线相交的元素只加一次。 例如: 主函数中给出的矩阵的两条对角线的和为45。 答案: 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; 功能: 用函数将第2个串连接到第1个串之后,不允许使用 strcat函数。 答案: inti,j; for(i=0;c1[i]! ='\0';i++); for(j=0;c2[j]! ='\0';j++) c1[i+j]=c2[j]; c1[i+j]='\0'; 功能: 求一个四位数的各位数字的立方和 答案: intd,k,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; 功能: 求给定正整数n以内的素数之积。 (n<28) 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; 功能: 求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如: 输入的数组为: 123 4156 12189 10112 求出的最大数为18,行坐标为2,列坐标为1。 答案: 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); 功能: 给定n个数据,求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 答案: inti,k; k=0; for(i=1;i if(s[i] return(k); 功能: 编写函数fun其功能是: 根据整型形参m,计算如下 公式的值: y=1/2! +1/4! +...+1/m! (m是偶数) 答案: doubley=0.0; inti,j; doubles=1; for(i=2;i<=m;i+=2) { for(j=i-1;j<=i;j++) s=s*j; y=y+1.0/s; } returny; 功能: 用函数求N个[10,60]上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。 答案: inti; for(i=0;i if(arr[i]%5==0&&arr[i]>m) m=arr[i]; 功能: 求一个n位自然数的各位数字的积。 (n是小于10的自然数) 答案: longd,s=1; while(n>0) {d=n%10; s*=d; n/=10;} returns; 功能: 求一分数序列2/1,3/2,5/3,8/5,13/8,21/13… 的前n项之和。 说明: 每一分数的分母是前两项的分母之和,每一分数的 分子是前两项的分子之和 inti; floatf1=1,f2=1,f3,s=0; for(i=1;i<=n;i++) {f3=f1+f2; f1=f2; f2=f3; s=s+f2/f1; } returns; 功能: 求一批数中最大值和最小值的积。 inti,max,min; max=min=a[0]; for(i=1;i if(a[i]>max)max=a[i]; elseif(a[i] return(max*min); 功能: 对长度为7个字符的字符串,除首、尾字符外,将其 余5个字符按降序排列。 例如: 原来的字符串为CEAedca,排序后输出为CedcEAa。 答案: inti,j; chart; for(i=1;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} 功能: 若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。 答案: inti,s=0; for(i=x;i<=y;i+=2) s=s+i; returns; 功能: 从字符串s中删除指定的字符c。 答案: inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]! =c)s[k++]=s[i]; s[k]='\0'; 功能: 计算并输出给定整数n的所有因子之和(不包括1与 自身)。 注意: n的值不大于1000。 答案: ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; 功能: 求出二维数组周边元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 答案: ints=0; inti,j; for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库