大学C语言程序设计试题.docx
- 文档编号:3814675
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:27
- 大小:19.70KB
大学C语言程序设计试题.docx
《大学C语言程序设计试题.docx》由会员分享,可在线阅读,更多相关《大学C语言程序设计试题.docx(27页珍藏版)》请在冰豆网上搜索。
大学C语言程序设计试题
1.题目:
编写函数fun求1!
+2!
+3!
+……+n!
的和,在
main函数中由键盘输入n值,并输出运算结果。
请
编写fun函数。
例如:
若n值为20,则结果为268040729。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include
longfun(intn)
{
/**********Program**********/
inti;
longf=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
returns;
/**********End**********/
}
main()
{
inti,n;
longintresult;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
yzj();
}
2.
【程序设计】
--------------------------------------------------
题目:
调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输出判
断结果。
请编写fun函数。
所谓"水仙花数"是指一
个3位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为153=13+53+33。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
intfun(intn)
{
/**********Program**********/
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;
/**********End**********/
}
main()
{
intn,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d是水仙花数\n",n);
else
printf("%d不是水仙花数\n",n);
yzj();
}
3.
题目:
编写函数fun求一个字符串的长度,在main函数中
输入字符串,并输出其长度。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
intfun(char*p1)
{
/**********Program**********/
char*p;
intn=0;
p=p1;
while(*p++)
n++;
returnn;
/**********End**********/
}
main()
{
char*p,a[20];
intlen;
p=a;
printf("pleaseinputastring:
\n");
gets(p);
len=fun(p);
printf("Thestring'slengthis:
%d\n",len);
yzj();
}
4.
题目:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写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); yzj(); } 5. #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); yzj(); } intfun(intn) { /**********Program**********/ inti; intj; j=1; for(i=2;i {if(n%i==0)j=0; } returnj; /**********End**********/ 6. 题目: 请编写一个函数fun,函数的功能是: 将主函数 中输入的字符串反序存放。 例如: 输入字符串"abcdefg",则应输出"gfedcba"。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include #include #defineN81 charfun(char*str,intn) { /**********Program**********/ inti,j; charc; for(i=0,j=n-1;i /*或者for(i=0,j=n-1;i {c=*(str+i); *(str+i)=*(str+j); *(str+j)=c;} /**********End**********/ } main() { chars[N]; intl; clrscr(); printf("inputastring: ");gets(s); l=strlen(s); fun(s,l); printf("Thenewstringis: ");puts(s); yzj(); } } 7. 题目: 请编写一个函数fun,函数的功能是: 统计出若干 个学生的平均成绩,最高分以及得最高分的人数。 例如,输入10名学生的成绩分别为92,87,68,56, 92,84,67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #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++; return(ave); /**********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); yzj(); } 8. 题目: 请编写一个函数fun,函数的功能是: 求出N×M整 型数组的最大元素及其所在的行坐标及列坐标(如 果最大元素不唯一,选择位置在最前面的一个)。 例如: 输入的数组为: 123 4156 12189 10112 求出的最大数为18,行坐标为2,列坐标为1。 ------------------------------------------------ 注意: 部分源程序给出如下。 请勿改动主函数 main和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。 ------------------------------------------------*/ #defineN4 #defineM3 #include intRow,Col; main() { inta[N][M],i,j,max,row,col; printf("inputaarray: "); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { for(j=0;j printf("%d",a[i][j]); printf("\n"); } max=fun(a); printf("max=%d,row=%d,col=%d",max,Row,Col); yzj(); } intfun(intarray[N][M]) { /**********Program**********/ 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); /**********End**********/ } 9.题目: 请编写一个函数fun,函数的功能是: 输入一个 字符串,过滤此串,只保留串中的字母字符,并 统计新生成串中包含的字母个数。 例如: 输入的字符串为ab234$df4,新生成的串 为abdf。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include #include #defineN80 main() { charstr[N]; ints; clrscr(); printf("inputastring: ");gets(str); printf("Theoriginalstringis: ");puts(str); s=fun(str); printf("Thenewstringis: ");puts(str); printf("Thereare%dcharinthenewstring.",s); yzj(); } fun(char*ptr) { /**********Program**********/ inti,j; for(i=0,j=0;*(ptr+i)! ='\0';i++) if(*(ptr+i)<='z'&&*(ptr+i)>='a'||*(ptr+i)<='Z'&&*(ptr+i)>='A') {*(ptr+j)=*(ptr+i); j++;} *(ptr+j)='\0'; return(j); /**********End**********/ } 10. 题目: 请编写函数fun,它的功能是: 判断m是否为素数 。 主函数的功能是: 求出100到200之间的素数的 个数。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" main() { intm,k=0; for(m=100;m<200;m++) if(fun(m)) { printf("%4d",m); k++; if(k%5==0) printf("\n"); } printf("k=%d\n",k); yzj(); } intfun(intm) { /**********Program**********/ inti,k=1; if(m<=1)k=0; for(i=2;i if(m%i==0)k=0; returnk; /**********End**********/ } 11. 题目: 编写函数fun,函数的功能是: 从字符串s中删除 指定的字符c。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" fun(chars[],charc) { /**********Program**********/ inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]! =c)s[k++]=s[i]; s[k]='\0'; /**********End**********/ } main() { staticcharstr[]="turbocandborlandc++"; charc='a'; fun(str,c); printf("str=%s\n",str); yzj(); } 12. 题目: 编写函数fun,函数的功能是: 求出二维数组周 边元素之和,作为函数值返回。 二维数组的值在 主函数中赋予。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #defineM4 #defineN5 #include"stdio.h" intfun(inta[M][N]) { /**********Program**********/ 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; /**********End**********/ } main() { inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; inty; y=fun(a); printf("s=%d\n",y); yzj(); } 13. 题目: 编写函数fun,函数的功能是: 求5行5列矩阵的 主、副对角线上元素之和。 注意,两条对角线 相交的元素只加一次。 例如: 主函数中给出的矩阵的两条对角线的和为45。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" #defineM5 intfun(inta[M][M]) { /**********Program**********/ 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; /**********End**********/ } main() { inta[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}}; inty; y=fun(a); printf("s=%d\n",y); yzj(); } 14. 题目: 编写函数fun,函数的功能是: 计算并输出给定 整数n的所有因子之和(不包括1与自身)。 规定 n的值不大于1000。 例如: n的值为855时,应输出704。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" intfun(intn) { /**********Program**********/ ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; /**********End**********/ } main() { printf("s=%d\n",fun(855)); yzj(); } 15: 题目: 编写函数fun,函数的功能是: 计算n门课程的平 均值,计算结果作为函数值返回。 例如,若有5门课程的成绩是: 92,76,69,58, 88,则函数的值为72.599998。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" floatfun(inta[],intn) { /**********Program**********/ inti; floaty=0; for(i=0;i y+=a[i]; y=y/n; returny; /**********End**********/ } main() { inta[]={92,76,69,58,88}; printf("y=%f\n",fun(a,5)); yzj(); } 16. 题目: 编写函数fun,函数的功能是: 求出菲波那契数 列的前一项与后一项之比的极限的近似值。 例如,当误差为0.0001时,函数值为0.618056。 -------------------------------------------------- 注意: 部分源程序给出如下。 请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include"stdio.h" #include"math.h" floatfun() { /**********Program**********/ inti,j; 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-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言程序设计 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)