浙江省计算机二级C语言上机题库.docx
- 文档编号:29834803
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:66
- 大小:34.36KB
浙江省计算机二级C语言上机题库.docx
《浙江省计算机二级C语言上机题库.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级C语言上机题库.docx(66页珍藏版)》请在冰豆网上搜索。
浙江省计算机二级C语言上机题库
第二部份C程序设计上机操作题2
一、数列求和2
二、最大公约数、最小公倍数6
三、排序算法7
四、数组8
五、求整数n的各位数字及各数字之和11
六、平面上各点之间的距离13
七、数制转换16
八、字符串处理17
九、最大值与最小值23
十、斐波那契(Fibonacci)数列26
十一、水仙花、完数、回文数与亲密数27
十二、方程求根29
十三、回文数、因子、质因子、素数32
十三、其他算法33
第二部份C程序设计上机操作题
一、数列求和
1、程序调试题
试题一
该程序功能:
输入x和正数eps,计算多项式1-x+x*x/2!
-x*x*x/3!
+...的和直到末项的绝对值小于eps为止。
#include
#include
voidmain()
{floatx,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/*****1*****/
t=-t*x/++i;//++i--i++
s+=t;
/*****2*****/
}while(fabs(t)
printf("%f\n",s);
}
试题二
该程序功能:
运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include
voidmain()
{inti,a,n;longt=0;
/*********1*******/
s=0;//s=0--longs=0
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
/*******2******/
t=t*10+i;//i-1
s=s+t;
}
s=s*a;
printf("%ld\n",s);
}
2、程序填空题
试题一
程序功能:
调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。
#include
floatf(float,float*,int);
voidmain()
{floatb[5]={1.1,2.2,3.3,4.4,5.5};
printf(“%f\n”,f(1.7,b,5));
}
floatf
(1)//floatf(floatx,floata[],intn)
{floaty=a[0],t=1;inti;
for(i=1;i 2;//returny } 3、程序设计题 试题一 设计程序: 计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……的值,并将其值以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() { FILE*p; inti;floatx=2.345,t=1.0,y=0.0; floata[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9}; //*考生在这里添加代码 p=fopen(“design.dat”,”w”); y=a[0]; for(i=1;i<10;i++) { t=t*x; y=y+a[i]*sin(t); } fprintf(p,”%.6f”,y); fclose(p); } 试题二 计程序: 计算多项式a0-a1*x+a2*x*x/2! -a3*x*x*x/3! +...的值,并将其以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() {FILE*p;inti;floatx=1.279,t,y; floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; //考生在这里添加代码 p=fopen(“design.dat”,”w”); t=1; y=a[0]; for(i=1;i<10;i++) {t=-t*x/i; y=y+a[i]*t; } fprintf(p,"%f",y); fclose(p); } 试题三 设计程序: 计算表达式1+2! +3! +...+12! 的值,并将计算结果以格式"%ld"写入到考生目录中Paper子目录下的新建文件design.dat中 #include voidmain() {FILE*p;longs=1,k=1;inti; //考生在这里添加代码 p=fopen("design.dat","w"); for(i=2;i<=12;i++) {k=i*k; s=s+k; } fprintf(p,"%ld",s); fclose(p); } 试题四 设计程序: 计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() {FILE*p;inti;floatx=1.279,t=1,y=0; floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; //考生在这里添加代码 p=fopen("design.dat","w"); for(i=0;i<10;i++) {y=y+t*a[i]; t=t*x; } fprintf(p,"%f",y); fclose(p); } 试题五 设计程序: 计算2的平方根、3的平方根、...、10的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() {FILE*p; //考生在这里添加代码 inti; floats=0; p=fopen("design.dat","w"); for(i=2;i<=10;i++) s=s+sqrt(i); fprintf(p,"%.10f",s); fclose(p); } 试题六 设计程序: 数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() {FILE*p;floats=0,a=81,i; //考生在这里添加代码 p=fopen("design.dat","w"); for(i=1;i<=30;i++) {s=s+a; a=sqrt(a); } fprintf(p,"%.3f",s); fclose(p); } 试题七 在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。 #include voidmain() {FILE*p; inti; floata[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0; //考生在这里添加代码 p=fopen("design.dat","w"); for(i=0;i<10;i++) v=v+a[i]/10; sum=0; for(i=0;i<10;i++) if(a[i]>v) sum=sum+a[i]; fprintf(p,"%.5f",sum); fclose(p); } 试题八 设计程序: 利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。 (π/4的结果不包含此项)将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() { FILE*fp; floatn=1,t=1,pi=0; inti; //考生在这里添加代码 fp=fopen("design.dat","w"); while(1.0/t>=1e-6) {pi=pi+n*1.0/t; t=t+2; n=-n; } pi=pi*4; fprintf(fp,"%.6f",pi); fclose(fp); } 试题九 计算数列1,-1/3! ,1/5! ,-1/7! 的和至某项的绝对值小于1e-5为止(该项不累加),将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design1.dat中。 #include #include voidmain() {FILE*p;floats=1,t=1,i=3; //考生在这里添加代码 p=fopen("d: \\design1.txt","w"); t=-t*(i-1)*i; while(fabs(1/t)>=1e-5) {s+=1/t; i=i+2; t=-t*(i-1)*i; } fprintf(p,"%.6",s); fclose(p); } 二、最大公约数、最小公倍数 1、程序调试题 试题一 该程序功能: 输入m、n(要求输入数均大于0,且m>=n),输出它们的最小公倍数。 #include voidmain() {intm,n,k; /********1*********/ while(scanf("%d%d",&m,&n),m<0&&n<0); //m<0&&n<0-! (m>0&&n>0&&m>=n) for(k=m;k%n! =0;) /********2********/ k=k+n;//改为: k=k+m printf("%d\n",k); } 6/8 2、程序填空题 试题一 该程序功能: 输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include voidmain() {intm,n,k; while(scanf("%d%d",&m,&n),_______1______);//! (n>0&&m>0) for(____2____;n%k! =0||m%k! =0;k--);//k=m或k=n printf("%d\n",k); } 三、排序算法 1、程序调试题 该程序功能: 用选择法对10个整数按升序排序。 #include #defineN10 voidmain() { inti,j,min,temp; inta[N]={5,4,3,2,1,9,8,7,6,0}; printf("\nThearrayis: \n");/*输出数组元素*/ for(i=0;i printf("%5d",a[i]); for(i=0;i { min=i; for(j=i+1;j /******1******/ if(a[min]<=a[j])min=j;//<=----> /******2******/ temp=a[min];a[min]=a[j];a[j]=temp;/*数据交换*/ }//j--i printf("\nThesortednumbers: \n");/*输出排序结果*/ for(i=0;i printf("%5d",a[i]); printf("\n"); } 2、程序设计题 该程序功能: 用冒泡法对10个整数按升序排序。 #include #defineN10 voidmain() { inti,j,min,temp; inta[N]={5,4,3,2,1,9,8,7,6,0}; printf("\nThearrayis: \n");/*输出数组元素*/ for(i=0;i printf("%5d",a[i]); // for(i=0;i { for(j=0;j if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;}/*数据交换*/ } printf("\nThesortednumbers: \n");/*输出排序结果*/ for(i=0;i printf("%5d",a[i]); printf("\n"); } 四、数组 1、程序填空题 试题一 该程序功能: 输入数组x[7],调用函数f,去除数组中的负数,输出结果为: 1346 #include voidf(int*a,int*m) {inti,j; for(i=0;i<*m;i++) if(a[i]<0){ for(j=i--;j<*m-1;j++)a[j]=a[j+1]; _____1_____;//(*m)-- } } voidmain() {inti,n=7,x[7]={1,-2,3,4,-5,6,-7}; _______2_______;//f(x,&n) for(i=0;i printf("\n"); } 试题二 该程序功能: 函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为: 4567123 #include voidf(int*a,intn,intk) {inti,j,t; for(i=0;i ___1___;//t=a[0] for(_______2________)a[j-1]=a[j];//j=1;j a[n-1]=t; } } voidmain() {inti,x[7]={1,2,3,4,5,6,7}; f(x,7,3); for(i=0;i<7;i++)printf("%5d",x[i]);printf("\n"); } 试题三 该程序功能: 调用函数f,求二维数组a中全体元素之和。 #include floatf(_______1_______)//float*x[],intm,intn {floaty=0;inti,j; for(i=0;i returny; } voidmain() {floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3]; inti; for(i=0;i<3;i++)b[i]=___2___;//*(a+i) printf("%.2f\n",f(b,3,4)); } 试题四 求出数组a中相邻两个元素的和,并将这些和存放在数组a中,按每一行3个元素的形式输出。 (例如: b[1]=a[0]+a[1],b[2]=a[1]+a[2]……,b[9]=a[8]+a[9]) #include voidmain() { inta[10],b[10],i; printf("\nInput10numbers: "); for(i=0;i<10;i++)/*数组输入*/ scanf("%d",&a[i]); for(i=1;i<10;i++) b[i]=_a[i-1]+a[i]_;/*计算b数组中的元素*/ for(i=1;i<10;i++) { printf("%3d",b[i]); if(_i%3==0_)printf("\n");/*每行打印3个数据*/ } } 2、程序设计题 试题一 设计程序: 将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。 #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p; /****以下要求考生写的代码****/ floattemp; inti,j; p=fopen(“design.dat”,”w”); for(i=0;i<3;i++) {temp=a[i][i[; for(j=0;j<3;j++) fprintf(p,"%5.1f",a[i][j]/temp); fprintf(p,"\n"); } fclose(p); } 试题二 设计程序: 将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。 #include #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p;floatx;inti,j; //考生在这里添加代码 for(i=0;i<3;i++) { x=a[i][0]; for(j=0;j<3;j++) if(fabs(x) x=a[i][j]; for(j=0;j<3;j++) a[i][j]=a[i][j]/x; } p=fopen("design.dat","w"); for(i=0;i<3;i++){ for(j=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 试题三 在整数数组a中找出偶数放到数b中,对数组b按从小到大的顺序排序后发格式“%3d”每行3个数写入考生文件夹中paper子文件夹下的新建文件design1.dat。 #include voidmain() {FILE*p; inti,j,temp,n=0; inta[10]={7,6,20,3,14,88,53,62,10,29},b[10]; //考生在这里添加代码 p=fopen("design1","w"); for(i=0;i<10;i++) if(a[i]%2==0)b[n++]=a[i]; for(i=0;i for(j=0;j if(b[j]>b[j+1]) {temp=b[j]; b[j]=b[j+1]; b[j+1]=temp; } for(i=1;i<=n;i++) if(i%3==0)fprintf(p,"%3d\n",b[i-1]); elsefprintf(p,"%3d",b[i-1]); fclose(p); } 五、求整数n的各位数字及各数字之和 1、程序调试题 试题一 该程序功能: 运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。 #include #include voidmain() {intn,s=0; scanf("%d",&n); n=fabs(n); /********1*******/ while(n>1){//n或n>0或n! =0 s=s+n%10; /********2******/ n=n%10;//%--/ } printf("%d\n",s); } 2、程序填空题 试题一 该程序功能: 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include #include voidmain() { intn,s=0; scanf("%d",&n); ______1______//n=fabs(n); while(n! =0){ ______2______//s=s+n%10 n=n/10; } printf("%d\n",s); } 试题二 该程序功能: 输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156 则输出5)。 #include voidmain() {intn,k=0; scanf("%d",&n); while(_____1_____){//n或n! =0 k++; _____2_____;//n=n/10 } printf("%d\n",k); } 试题三 该程序功能: 调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321; 若程序输入-34567,则输出-76543。 #include #include longf(longn) {longm,y=0;m=fabs(n); while(m! =0){ y=y*10+m%10; ____1____//m=m/10; } if(n>=0)returny; else_____2_____//retu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江省 计算机 二级 语言 上机 题库