版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TOC\o"1-3"\h\z第二部份C程序設(shè)計(jì)上機(jī)操作題 2一、數(shù)列求和 2二、最大公約數(shù)、最小公倍數(shù) 6三、排序算法 7四、數(shù)組 8五、求整數(shù)n的各位數(shù)字及各數(shù)字之和 11六、平面上各點(diǎn)之間的距離 13七、數(shù)制轉(zhuǎn)換 16八、字符串解決 17九、最大值與最小值 23十、斐波那契(Fibonacci)數(shù)列 26十一、水仙花、完數(shù)、回文數(shù)與密切數(shù) 27十二、方程求根 29十三、回文數(shù)、因子、質(zhì)因子、素?cái)?shù) 32十三、其他算法 33
第二部份C程序設(shè)計(jì)上機(jī)操作題一、數(shù)列求和1、程序調(diào)試題試題一該程序功能:輸入x和正數(shù)eps,計(jì)算多項(xiàng)式1-x+x*x/2!-x*x*x/3!+...的和直到末項(xiàng)的絕對(duì)值小于eps為止。#include<stdio.h>#include<math.h>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)<eps);//<-->=printf("%f\n",s);}試題二該程序功能:運(yùn)營(yíng)時(shí)若輸入a、n分別為3、6,則輸出下列表達(dá)式的值:3+33+333+3333+33333+333333#include<stdio.h>voidmain(){inti,a,n;longt=0;/*********1*******/s=0;//s=0--longs=0scanf("%d%d",&a,&n);for(i=1;i<=n;i++){/*******2******/t=t*10+i;//i-1s=s+t;}s=s*a;printf("%ld\n",s);}2、程序填空題試題一程序功能:調(diào)用函數(shù)f計(jì)算代數(shù)多項(xiàng)式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x當(dāng)x=1.7時(shí)的值。#include<stdio.h>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<n;i++){t=t*x;y=y+a[i]*t;}2;//returny}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:計(jì)算多項(xiàng)式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……的值,并將其值以格式"%.6f"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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);}試題二計(jì)程序:計(jì)算多項(xiàng)式a0-a1*x+a2*x*x/2!-a3*x*x*x/3!+...的值,并將其以格式"%f"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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);}試題三設(shè)計(jì)程序:計(jì)算表達(dá)式1+2!+3!+...+12!的值,并將計(jì)算結(jié)果以格式"%ld"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中#include<stdio.h>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);}試題四設(shè)計(jì)程序:計(jì)算多項(xiàng)式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并將其值以格式"%f"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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);}試題五設(shè)計(jì)程序:計(jì)算2的平方根、3的平方根、...、10的的平方根之和,規(guī)定計(jì)算結(jié)果具有小數(shù)點(diǎn)后10位有效位數(shù),并以格式"%.10f\n"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat看到這里中??吹竭@里#include<stdio.h>#include<math.h>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);}試題六設(shè)計(jì)程序:數(shù)列第1項(xiàng)為81,此后各項(xiàng)均為它前1項(xiàng)的正平方根,記錄該數(shù)列前30項(xiàng)之和,并以格式"%.3f"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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);}試題七在數(shù)組a的10個(gè)數(shù)中求平均值v,將大于等于v的數(shù)組元素進(jìn)行求和,并將結(jié)果以格式"%.5f"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>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);}試題八設(shè)計(jì)程序:運(yùn)用公式π/4≈1-1/3+1/5-1/7+……公式計(jì)算π的近似值,直到某一項(xiàng)的絕對(duì)值小于1e-6為止。(π/4的結(jié)果不包含此項(xiàng))將結(jié)果以格式"%.6f"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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);}試題九計(jì)算數(shù)列1,-1/3!,1/5!,-1/7!的和至某項(xiàng)的絕對(duì)值小于1e-5為止(該項(xiàng)不累加),將結(jié)果以格式"%.6f"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design1.dat中。#include<stdio.h>#include<math.h>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);}二、最大公約數(shù)、最小公倍數(shù)1、程序調(diào)試題試題一該程序功能:輸入m、n(規(guī)定輸入數(shù)均大于0,且m>=n),輸出它們的最小公倍數(shù)。#include<stdio.h>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+mprintf("%d\n",k);}6/82、程序填空題試題一該程序功能:輸入m、n(規(guī)定輸入數(shù)均大于0),輸出它們的最大公約數(shù)。#include<stdio.h>voidmain(){intm,n,k;while(scanf("%d%d",&m,&n),_______1______);//?。╪>0&&m>0)for(____2____;n%k!=0||m%k!=0;k--);//k=m或k=nprintf("%d\n",k);}三、排序算法1、程序調(diào)試題該程序功能:用選擇法對(duì)10個(gè)整數(shù)按升序排序。#include<stdio.h>#defineN10voidmain(){inti,j,min,temp;inta[N]={5,4,3,2,1,9,8,7,6,0};printf("\nThearrayis:\n");/*輸出數(shù)組元素*/for(i=0;i<N;i++)printf("%5d",a[i]);for(i=0;i<N-1;i++)/*排序操作*/{min=i;for(j=i+1;j<N;j++)/******1******/if(a[min]<=a[j])min=j;//<=>/******2******/temp=a[min];a[min]=a[j];a[j]=temp;/*數(shù)據(jù)互換*/}//j--iprintf("\nThesortednumbers:\n");/*輸出排序結(jié)果*/for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}2、程序設(shè)計(jì)題該程序功能:用冒泡法對(duì)10個(gè)整數(shù)按升序排序。#include<stdio.h>#defineN10voidmain(){inti,j,min,temp;inta[N]={5,4,3,2,1,9,8,7,6,0};printf("\nThearrayis:\n");/*輸出數(shù)組元素*/for(i=0;i<N;i++)printf("%5d",a[i]);//for(i=0;i<N;i++)/*排序操作*/{for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}/*數(shù)據(jù)互換*/}printf("\nThesortednumbers:\n");/*輸出排序結(jié)果*/for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}四、數(shù)組1、程序填空題試題一該程序功能:輸入數(shù)組x[7],調(diào)用函數(shù)f,去除數(shù)組中的負(fù)數(shù),輸出結(jié)果為:1346#include<stdio.h>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<n;i++)printf("%5d",x[i]);printf("\n");}試題二該程序功能:函數(shù)f將數(shù)組循環(huán)左移k個(gè)元素,數(shù)組x[7]調(diào)用函數(shù)f后的輸出結(jié)果為:4567123#include<stdio.h>voidf(int*a,intn,intk){inti,j,t;for(i=0;i<k;i++){___1___;//t=a[0]for(_______2________)a[j-1]=a[j];//j=1;j<n;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");}試題三該程序功能:調(diào)用函數(shù)f,求二維數(shù)組a中全體元素之和。#include<stdio.h>floatf(_______1_______)//float*x[],intm,intn{floaty=0;inti,j;for(i=0;i<m;i++)for(j=0;j<n;j++)y=y+*(*(x+i)+j);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));}試題四求出數(shù)組a中相鄰兩個(gè)元素的和,并將這些和存放在數(shù)組a中,按每一行3個(gè)元素的形式輸出。(例如:b[1]=a[0]+a[1],b[2]=a[1]+a[2]……,b[9]=a[8]+a[9])#include<stdio.h>voidmain(){inta[10],b[10],i;printf("\nInput10numbers:");for(i=0;i<10;i++)/*數(shù)組輸入*/scanf("%d",&a[i]);for(i=1;i<10;i++)b[i]=_a[i-1]+a[i]_;/*計(jì)算b數(shù)組中的元素*/for(i=1;i<10;i++){printf("%3d",b[i]);if(_i%3==0_)printf("\n");/*每行打印3個(gè)數(shù)據(jù)*/}}2、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:將數(shù)組a的每1行均除以該行上的主對(duì)角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后將a數(shù)組寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中新建的文獻(xiàn)design.dat中。#include<stdio.h>voidmain(){floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};FILE*p;/****以下規(guī)定考生寫(xiě)的代碼****/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);}試題二設(shè)計(jì)程序:將數(shù)組a的每1行均除以該行上絕對(duì)值最大的元素,然后將a數(shù)組寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>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)<fabs(a[i][j])) 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);}試題三在整數(shù)數(shù)組a中找出偶數(shù)放到數(shù)b中,對(duì)數(shù)組b按從小到大的順序排序后發(fā)格式“%3d”每行3個(gè)數(shù)寫(xiě)入考生文獻(xiàn)夾中paper子文獻(xiàn)夾下的新建文獻(xiàn)design1.dat。#include<stdio.h>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<n-1;i++)for(j=0;j<n-1-i;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);}五、求整數(shù)n的各位數(shù)字及各數(shù)字之和1、程序調(diào)試題試題一該程序功能:運(yùn)營(yíng)時(shí)輸入整數(shù)n,輸出n各位數(shù)字之和(如n=1308則輸出12,n=-3204則輸出9)。#include<stdio.h>#include<math.h>voidmain(){intn,s=0;scanf("%d",&n);n=fabs(n);/********1*******/while(n>1){//n或n>0或n!=0s=s+n%10;/********2******/n=n%10;//%--/}printf("%d\n",s);}2、程序填空題試題一該程序功能:求輸入的整數(shù)各位數(shù)字之和,如輸入234則輸出9,輸入-312則輸出6。#include<stdio.h>#include<math.h>voidmain(){intn,s=0;scanf("%d",&n);______1______//n=fabs(n);while(n!=0){______2______//s=s+n%10n=n/10;}printf("%d\n",s);}試題二該程序功能:輸入1個(gè)整數(shù)后,輸出該數(shù)的位數(shù)(若輸入3214則輸出4,輸入-23156則輸出5)。#include<stdio.h>voidmain(){intn,k=0;scanf("%d",&n);while(_____1_____){//n或n!=0k++;_____2_____;//n=n/10}printf("%d\n",k);}試題三該程序功能:調(diào)用函數(shù)f,將1個(gè)整數(shù)首尾倒置,若程序輸入12345,則輸出54321;若程序輸入-34567,則輸出-76543。#include<stdio.h>#include<math.h>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_____//return-y;}voidmain(){printf("%ld\t",f(12345));printf("%ld\n",f(-34567));}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:選出5000以下符合條件的自然數(shù)。條件是:千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個(gè)位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個(gè)位數(shù)字與千位數(shù)字之差的10倍。計(jì)算并輸出這些四位自然數(shù)的個(gè)數(shù)cnt及這些數(shù)字的和sum到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>voidmain(){FILE*p;intcnt,sum;/*考生在這里添加代碼inti,q,b,s,g;cnt=0;sum=0;p=fopen(“design.dat”,”w”);for(i=1000;i<5000;i++){g=i%10;s=i%100/10;b=i%1000/100;q=i/1000;if(q+b==s+g&&q+b==(g-q)*10){cnt++;sum=sum+q+b+s+g;}}fprintf(p,"%d,%d",cnt,sum);fclose(p);}六、平面上各點(diǎn)之間的距離1、程序調(diào)試題試題一該程序功能:輸入n,再輸入n個(gè)點(diǎn)的平面坐標(biāo),然后輸出那些距離坐標(biāo)原點(diǎn)不超過(guò)5的點(diǎn)的坐標(biāo)值。#include<stdio.h>#include<math.h>#include<stdlib.h>voidmain(){inti,n;/*****1*****/structaxy{floatx,y;}a;//a--*ascanf("%d",&n);a=(float*)malloc(n*2*sizeof(float));//a=(structaxy*)malloc(n*2*sizeof(float));for(i=0;i<n;i++)/*****2*****/scanf("%f%f",a[i].x,a[i].y);//a[i].x.&a[i].xa[i].y.&a[i].yfor(i=0;i<n;i++)if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)printf("%f,%f\n",a[i].x,a[i].y);}2、程序填空題試題一在考生目錄下,有Modify.c程序,該程序中“N”是根據(jù)程序功能需要填充部分,請(qǐng)完畢程序填充(注意:不得加行、減行、加句、減句,否則后果自負(fù))該程序功能:輸入n和平面上n個(gè)點(diǎn)的坐標(biāo),計(jì)算各點(diǎn)間距離的總和。#include<stdio.h>#include<math.h>#definef(x1,y1,x2,y2)sqrt(pow(x2-x1,2)+pow(y2-y1,2))1//#include<stdlib.h>或#include<malloc.h>voidmain(){float*x,*y,s=0;inti,j,n;scanf(“%d”,&n);x=(float*)malloc(sizeof(float)*n*2);y=x+2;//(float*)malloc(sizeof(float)*n*2);for(i=0;i<n;i++)scanf(“%f%f”,x+i,y+i);for(i=0;i<n-1;i++)for(j=0;j<n;j++)s+=f(x[i],y[i],x[j],y[j]);printf(“%.2f\n”,s);}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:x[i],y[i]分別表達(dá)平面上一個(gè)點(diǎn)的坐標(biāo),求下列10個(gè)點(diǎn)與點(diǎn)(1.0,1.0)的距離的總和,并將結(jié)果以格式"%.6f"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>voidmain(){FILE*p;inti;floatx[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};floaty[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};floats=0.0;/****以下規(guī)定考生寫(xiě)的代碼****/p=fopen(“design.dat”,”w”);//以寫(xiě)方式打開(kāi)文獻(xiàn)for(i=0;i<10;i++)s=s+sqrt((x[i]-1)*(x[i]-1)+(y[i]-1)*(y[i]-1));//求與點(diǎn)(1.0,1.0)的距離之和fprintf(p,”%.6f”,s);//以%.6f的格式將和寫(xiě)到文獻(xiàn)fclose(p);}試題二設(shè)計(jì)程序:數(shù)組元素x[i]、y[i]表達(dá)平面上某點(diǎn)坐標(biāo),記錄所有各點(diǎn)間最短距離,并將其值以格式"%f"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>#definelen(x1,y1,x2,y2)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))voidmain(){FILE*p;inti,j;floatc,minc;floatx[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};floaty[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};minc=len(x[0],y[0],x[1],y[1]);/****以下規(guī)定考生寫(xiě)的代碼****/p=fopen(“design.dat”,”w”);for(i=0;i<10;i++)for(j=i+1;j<10;j++){c=len(x[i],y[i],x[j],y[j]);if(c<minc)minc=c;}fprintf(p,”%f”,minc);fclose(p);}試題三設(shè)計(jì)程序:數(shù)組元素x[i]、y[i]表達(dá)平面上某點(diǎn)坐標(biāo),記錄10個(gè)點(diǎn)中處在圓(x-1)*(x-1)+(y+0.5)*(y+0.5)=25內(nèi)的點(diǎn)數(shù)k,并將變量k的值以格式"%d"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>voidmain(){FILE*p;inti,k=0;floatx[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};floaty[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};//考生在這里添加代碼p=fopen("design.dat","w");for(i=0;i<10;i++)if((x[i]-1)*(x[i]-1)+(y[i]-0.5)*(y[i]-0.5)<25)k++;fprintf(p,"%d",k);fclose(p);}試題四程序設(shè)計(jì)題:考生目錄下有Design.c程序,請(qǐng)完畢以下功能:x[i],y[i]表達(dá)點(diǎn)d(i)的平面坐標(biāo),求d(0)至d(1)、d(1)至d(2)、……d(4)至d(0)的連線(xiàn)所構(gòu)成的邊形面積,并將所求面積以格式“%.4f”寫(xiě)到考生目錄下新建文獻(xiàn)design.dat。#include<stdio.h>#include<math.h>voidmain(){FILE8p;inti;floats,a,b,c,sdim=0;floatx[5]={-4.5,0.5,4.2,2.7,-3};floaty[5]={2.3,4.7,1.3,-2.5,-3.3};p=fopen(“design.dat”,“w”);//此處起規(guī)定考生自己編制程序for(i=1;i<4;i++){a=sqrt((x[0]-x[i])*(x[0]-x[i])+(y[0]-y[i])*(y[0]-y[i]));b=sqrt((x[i]-x[i+1])*(x[i]-x[i+1])+(y[i]-y[i+1])*(y[i]-y[i+1]));c=sqrt((x[0]-x[i+1])*(x[0]-x[i+1])+(y[0]-y[i+1])*(y[0]-y[i+1]));s=(a+b+c)/2;sdim+=sqrt(s*(s-a)*(s-b)*(s-c));}fprintf(p,“%.4f”,sdim);fclose(p);}七、數(shù)制轉(zhuǎn)換1、程序調(diào)試題試題一將輸入的十進(jìn)制整數(shù)n通過(guò)函數(shù)DtoH轉(zhuǎn)換為十六進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果以字符串形式輸出。例如:輸入十進(jìn)制數(shù)79,將輸出十六進(jìn)制4f。#include<stdio.h>#include<string.h>chartrans(intx){if(x<10)return'0'+x;/********1********/elsereturn'a'+x;//’a’+x’a’+x-10}intDtoH(intn,char*str){inti=0;while(n!=0){str[i]=trans(n%16);/********2********/n%=16;//%/i++;}returni-1;}voidmain(){inti,k,n;char*str;scanf("%d",&n);k=DtoH(n,str);for(i=0;i<=k;i++)printf("%c",str[k-i]);}2、程序填空題試題一該程序功能:將輸入的十進(jìn)制正整數(shù)n通過(guò)函數(shù)Dec2Bin轉(zhuǎn)換為二進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果輸出。#include<stdio.h>voidDec2Bin(intm){intbin[32],j;for(j=0;m!=0;j++){bin[j]=______1______;//m%2m=m/2;}for(;j!=0;j--)printf("%d",______2______);//bin[j-1]}voidmain(){intn;scanf("%d",&n);Dec2Bin(n);}試題二將輸入的十進(jìn)制整數(shù)n通過(guò)函數(shù)DtoH轉(zhuǎn)換為十六進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果以字符串形式輸出。例如:輸入十進(jìn)制數(shù)79,將輸出十六進(jìn)制4f。#include<stdio.h>#include<string.h>chartrans(intx){if(x<10)return'0'+x;else_____1______;//returnx+’a’-10;} intDtoH(intn,char*str){inti=0;while(n!=0){______2______;//str[i]=trans(n%10);n/=16;i++;}returni-1;}voidmain(){inti,k,n;char*str;scanf("%d",&n);k=DtoH(n,str);for(i=0;i<=k;i++)printf("%c",str[k-i]);}八、字符串解決1、程序調(diào)試題試題一該程序功能:輸入一個(gè)字符串,將組成字符串的所有非英文字母的字符刪除后輸出。例如:輸入"abc123+xyz.5",應(yīng)輸出"abcxyz"。#include<stdio.h>#include<string.h>voidmain(){charstr[256];inti,j,k=0,n;gets(str);n=strlen(str);for(i=0;i<n;i++)/********1********/ if(tolower(str[i])<'a'||tolower(str[i])>'z')//<’a’->=’a’>’z’<=’z’||-〉&& { /********2********/ str[n]=str[i];n++;//n--k }str[k]='\0';printf("%s\n",str);}試題二該程序功能:輸入1個(gè)字符串,按字母初次出現(xiàn)順序輸出其中所出現(xiàn)過(guò)的大寫(xiě)英文字母。*如運(yùn)營(yíng)時(shí)輸入字符串"FONTNAMEandFILENAME",應(yīng)輸出"FONTAMEIL"。#include<stdio.h>voidmain(){charx[80],y[26];inti,j,ny=0;gets(x);for(i=0;x[i]!='\0';i++)if(x[i]>='A'&&x[i]<='Z'){for(j=0;j<ny;j++)/*****1*****/if(y[i]==x[j])continue;//i-jcontinue--breakif(j==ny){y[ny]=x[i];ny++;}}/*****2*****/for(i=0;i<26;i++)//26nyprintf("%c",y[i]);printf("\n");}試題三該程序功能:將兩個(gè)字符串連接起來(lái)。#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\nInputthefirststring:");scanf("%s",s1);printf("\nInputthesecondstring:");scanf("%s",s2);while(s1[i]!='\0')/******1******/i+1;//i+1i++while(s2[j]!='\0')/******2******/s1[++i]=s2[++j];/*拼接字符到s1*/++ii++++jj++s1[i]='\0';printf("\nNewstring:%s",s1);}試題四該程序功能:用遞歸法將一個(gè)六位整數(shù)n轉(zhuǎn)換成字符串,例如輸入123456,應(yīng)輸出字符串"123456"。#include<stdio.h>voiditoa(longi,char*s){if(i==0)return;/******1******/*s='1'+i%10;//’1’’0’itoa(i/10,s-1);}voidmain(){longn;charstr[7]="";scanf("%ld",&n);/******2******/itoa(n,str+6);//str+6--str+5printf("%s",str);}試題五該程序功能:分別記錄字符串中所有英文字母中的各元音字母?jìng)€(gè)數(shù)。#include<stdio.h>#include<ctype.h>voidmain(){chara[81];intn[5]={0},i;gets(a);for(i=0;a[i]!='\0';i++)/*****1*****/switch(toupper(a[i])){//touppertolowercase'a':n[0]++;break;case'e':n[1]++;break;case'i':n[2]++;break;case'o':n[3]++;break;/*****2*****/case'U':n[4]++;//U--u}for(i=0;i<5;i++)printf("%d\n",n[i]);}試題六該程序功能:輸入一個(gè)字符串,將組成字符串的所有字符先按順序存放到字符串t中,再將字符串中的字符按逆序連接到字符串t*后面。例如:輸入"ABCD",則字符串t為"ABCDDCBA"。#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,sl;sl=strlen(s);for(i=0;i<sl;i++)t[i]=s[i];for(i=0;i<sl;i++)/********1********/t[sl+i]=s[sl-i];//t[sl+i]=s[sl-i];改為t[sl+i]=s[sl-i-1];/********2********/t[sl]="\0";//t[sl]="\0";改為t[sl+sl]='\0';}voidmain(){chars[100],t[100];scanf("%s",s);fun(s,t);printf("%s",t);}試題七/*該程序功能:輸入n以及小于n個(gè)字符的字符串,將字符串中所有小寫(xiě)字母改為相應(yīng)的大寫(xiě)字母,輸出該字符串。*/#include<stdio.h>#include<string.h>#include<stdlib.h>voidmain(){intn,i;/*****1*****/charstr;//charstr;char*str;scanf("%d\n",&n);str=(char*)malloc(n);gets(str);/*****2*****/for(i=1;i<strlen(str);i++)//i=1;i=0;if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-('a'-'A');puts(str);}2、程序填空題試題一該程序功能:分別記錄字符串中英文字母、數(shù)字和其他字符出現(xiàn)的次數(shù)。#include<stdio.h>#include<ctype.h>voidmain(){chara[80];intn[3]={0},i;gets(a);________1________//for(i=0;i<strlen(a);i++)或for(i=0;a[i];i++) {if(tolower(a[i])>='a'&&tolower(a[i])<='z')//*記錄字母?jìng)€(gè)數(shù)*/n[0]++; elseif(________2________)//*記錄數(shù)字個(gè)數(shù)*////(a[i]>='0'&&a[i]<='9') n[1]++; else n[2]++;}for(i=0;i<3;i++)printf("%d\n",n[i]);}試題二該程序功能:調(diào)用函數(shù)f,從字符串中刪除所有的數(shù)字字符。#include<stdio.h>#include<string.h>#include<ctype.h>voidf(char*s){inti=0;while(s[i]!='\0')if(isdigit(s[i]))____1____(s+i,s+i+1);//strcpy___2___i++;//else}voidmain(){charstr[80];gets(str);f(str);puts(str);}試題三該程序功能:調(diào)用函數(shù)f,將字符串中的所有字符逆序存放,然后輸出。例如,輸入字//符串為"123456",則程序的輸出結(jié)果為"654321"。#include<stdio.h>#include<string.h>voidmain(){chars[60],*f(char*);gets(s);printf("%s\n",f(s));}___1__f(char*x)//char*{chart;inti,n;_______2______//n=strlen(x);for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-1-i];x[n-1-i]=t;}returnx;}試題四在考生目錄下,有Modify.c程序,該程序中“N”是根據(jù)程序功能需要填充部分,請(qǐng)完畢程序填充(注意:不得加行、減行、加句、減句,否則后果自負(fù))。該程序功能:調(diào)用函數(shù)f,從字符串中刪除所有的數(shù)字字符。#include<stdio.h>#include<string.h>#include<ctype.h>voidf(char*s){inti=0;while(s[i]!=‘\0’)if(isdigit(s[I]))1(s+i,s+i+1);//strcpyelse2;//i++}voidmain(){charstr[80];gets(str);f(str);puts(str);}試題五該程序功能:函數(shù)find的功能是搜索the,若存在則返回個(gè)數(shù),否則返回0。#include<stdio.h>#include<string.h>intfind(char*str){char*fstr="the";inti=0,j,n=0;while(str[i]!='\0') { for(1)//j=0;j<3;j++ if(str[j+i]!=fstr[j])break; if(2)n++;//!fstr[j] i++; }returnn;}voidmain(){chara[80];gets(a);printf("%d",find(a));}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:計(jì)算字符串s中每個(gè)字符的權(quán)重值,所謂權(quán)重值就是字符在字符串中的位置值與該字符的ASCII碼值的乘積。位置值從1開(kāi)始依此遞增。將每個(gè)字符的權(quán)重值,以格式"%d"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>#include<math.h>voidmain(){FILE*p;inti,w;char*s="we45*&y3r#$1";//這里添加代碼p=fopen(“design.dat”,”w”);i=0;while(s[i]){w=s[i]*(i+1);fprintf(p,"%d",w);i++;}fclose(p);}試題二設(shè)計(jì)程序:累加a字符串中各個(gè)字符的ASCII碼值,然后將累加和以格式"%d"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>voidmain(){FILE*p;ints=0,i=0;char*a="r235%^%34cdDW,.";//考生在這里添加代碼p=fopen("design.dat","w");for(;a[i];i++)s=s+a[i];fprintf(p,"%d",s);fclose(p);}九、最大值與最小值1、程序調(diào)試題試題一該程序功能:運(yùn)營(yíng)時(shí)輸入10個(gè)數(shù),然后分別輸出其中的最大值、最小值。#include<stdio.h>voidmain(){floatx,max,min;/********1*******/for(inti=1;i<=10;i++){scanf("%f",&x);/*******2********/if(i==1){max=x;min=x;}if(x>max)max=x;if(x<min)min=x;}printf("%f,%f\n",max,min);}2、程序填空題試題一該程序功能:對(duì)x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。#include<stdio.h>#include<math.h>#definef(x)x*x-5*x+sin(x)voidmain(){intx;floatmax;______1______//max=f(1);for(x=2;x<=10;x++)______2______//if(max<f(x))max=f(x);printf("%f\n",max);}試題二該程序功能:調(diào)用函數(shù)f,求a數(shù)組中最大值與b數(shù)組中最小值之差。#include<stdio.h>floatf(float*x,intn,intflag){floaty;inti;1//y=x[0];for(i=1;i<n;i++)if(flag*x[i]>flag*y)y=x[i];returny;}voidmain(){floata[6]={3,5,9,4,2.5,1},b[5]={3,-2,6,9,1};printf(“%.2f\n”,f(a,6,1)2));//printf(“%.2f\n”,f(a,6,1)-f(b,5,-1));}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值為區(qū)間[1,6]的整數(shù),找出使z取最小值的x1、y1,并將x1、y1以格式"%d,%d"寫(xiě)入到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>voidmain(){FILE*p;floatf(floatx,floaty),min;intx,y,x1,y1;/****以下規(guī)定考生寫(xiě)的代碼****/p=fopen(“design.dat”,”w”);//以寫(xiě)方式打開(kāi)文獻(xiàn)min=f(1,1);x1=1;y1=1;for(x=1;x<=6;x++)//求區(qū)間[1,6]中的最小值for(y=1;y<=6;y++)if(min>f(x,y)){min=f(x,y);x1=x;y1=y;}fprintf(p,”%d,%d”,x,y);//將最小值以%d,%d的格式寫(xiě)到文獻(xiàn)fclose(p);}floatf(floatu,floatv){return(3.14*u-v)/(u+v);}試題二程序設(shè)計(jì)題:考生目錄下有Design.c程序,請(qǐng)完畢以下功能:對(duì)x=1,2,…,10,求函數(shù)f(x)=x-10*cos(x)-5*sin(x)的最大值,并將該數(shù)以格式“%.3f”寫(xiě)到考生目錄下新建文獻(xiàn)design.dat。#include<stdio.h>#include<math.h>voidmain(){FILE*p;floatf(float),max,x;//此處起規(guī)定考生自己編制程序p=fopen(“design.dat”,“w”);max=f(1);for(x=2;x<=10;x++)if(max<f(x))max=f(x);fprintf(p,“%.3f”,max);fclose(p);}floatf(floaty){y=y-10*cos(y)-5*sin(y);return(y);}試題三/*設(shè)計(jì)程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值區(qū)間為[0,10]的整數(shù),找出使z取最小值的x1,y1,并將x1,y1以格式“%d,%d”寫(xiě)到考生目錄中Paper下目錄下的新建文獻(xiàn)design.dat中*/#include<stdio.h>#include<math.h>voidmain(){FILE*p;intx,y,x1,y1;floatz,z1;/*考生在這里添加程序*/p=fopen("design.dat","w");z1=10*cos(0-4)+5*sin(0-2);for(x=0;x<=10;x++)for(y=0;y<=10;y++){z=10*cos(x-4)+5*sin(y-2);if(z<z1){z1=z;x1=x;y1=y;}}fprintf(p,"%d,%d",x1,y1);fclose(p);}十、斐波那契(Fibonacci)數(shù)列1、程序調(diào)試題2、程序填空題試題一/*該程序功能:數(shù)組的第1,2項(xiàng)均為1,此后各項(xiàng)值均為該項(xiàng)前二項(xiàng)之和。計(jì)算數(shù)組第30項(xiàng)的值。*/#include<stdio.h>__//longf(intn);voidmain(){printf("%ld\n",f(30));}longf(intn){if(_____)//n<2或n==0||n==1return1;elsereturnf(n-1)+f(n-2);}3、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:求斐波那契(Fibonacci)數(shù)列中大于t的最小的一個(gè)數(shù),結(jié)果由函數(shù)JSValue返回,其中斐波那契數(shù)列F(n)的定義為:*F(0)=0,F(1)=1*F(n)=F(N-1)+F(n-2)*分別計(jì)算當(dāng)t=1000和t=3000時(shí)的結(jié)果,將計(jì)算結(jié)果輸出到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>intJSValue(intt){/****以下規(guī)定考生寫(xiě)的代碼****/intf1=1,f2=1,f;f=f1+f2;while(f<=t){f1=f2;f2=f;f=f1+f2;}returnf;}voidmain(){FILE*p;p=fopen("design.dat","w");fprintf(p,"%d,%d",JSValue(1000),JSValue(3000));fclose(p);}試題二設(shè)計(jì)程序:數(shù)列各項(xiàng)為1,1,2,3,5,8,13,21,...,求其前40項(xiàng)之和,并將求和的結(jié)果以格式"%d"寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。#include<stdio.h>voidmain(){FILE*p;longs=0,i,a[40];//考生在這里添加代碼p=fopen(“design.dat”,”w”);a[0]=a[1]=1;for(i=2;i<40;i++)a[i]=a[i-1]+a[i-2];for(i=0;i<40;i++)s=s+a[i];fprintf(p,”%d”,s);fclose(p);}試題三設(shè)計(jì)程序:求斐波那契數(shù)列中的前40項(xiàng)之和(斐波那契數(shù)列的定義為后一項(xiàng)為前兩項(xiàng)之和),并將求和的結(jié)果以格式“%d“寫(xiě)入到考生文獻(xiàn)夾中子文獻(xiàn)夾下新建文獻(xiàn)desigen2.dat#include<stdio.h>voidmain(){FILE*p;longs=0,i,a[40];/**考生在這里添加代碼//程序同上*/}十一、水仙花、完數(shù)、回文數(shù)與密切數(shù)1、程序填空題試題一該程序功能:找出100~999之間所有的Armstrong數(shù)。所謂Armstrong數(shù)是指這個(gè)3位數(shù)各位上數(shù)字的立方和等于自身。例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong數(shù)。#include<stdio.h>#include<math.h>voidmain(){inti,a,b,c;for(i=100;i<=999;i++) { a=i/100; _______1_______//b=i%100/10或i/10%10 c=i%10; if(________2________)//i==a*a*a+b*b*b+c*c*c//或i=pow(a,3)+pow(b,3)+pow(c,3) printf("%disaArmstrongnumber!\n",i); }}試題二該程序功能:輸出6~1000之間的完數(shù)(1個(gè)數(shù)的因子和等于其自身的數(shù):6=1+2+3、28=1+2+4+7+14,則6、28都是完數(shù))。#include<stdio.h>voidmain(){inti,j,s;for(i=6;i<=1000;i++){_____1_____//s=1;for(j=2;____2_____;j++)if(i%j==0)s+=j;//j<=i/2或j<iif(s==i)printf("%d\n",s);}}2、程序設(shè)計(jì)題試題一設(shè)計(jì)程序:在6至5000內(nèi)找出所有的密切數(shù)對(duì),并將每對(duì)密切數(shù)用語(yǔ)句fprintf(p,"%6d,%6d\n",a,b);”寫(xiě)到考生目錄中Paper子目錄下的新建文獻(xiàn)design.dat中。說(shuō)明:若a、b為1對(duì)密切數(shù),則a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1對(duì)密切數(shù),284、220也是1對(duì)密切數(shù)。#include<stdio.h>voidmain(){FILE*p;inta,b,c,k;p=fopen("design.dat","w");*考生在這里添加代碼for(c=6;c<=5000;c++){a=c;b=1;for(k=2;k<a;k++)if(a%k==0) b=b+k;a=1;for(k=2;k<b;k++)if(b%k==0) a=a+k;if(c==a&&a!=b)fprintf(p,"%6d,%6d\n",a,b);}}試題二/*設(shè)計(jì)程序:尋找并輸出11到999之間的數(shù)m,它滿(mǎn)足m,m*m,m*m*m均為回文數(shù)。所謂回文數(shù)是指各位數(shù)字左右對(duì)稱(chēng),例如121,676,94249等。滿(mǎn)足上述條件的數(shù)如m=11,m^2=121,m^3=1331皆為回文數(shù)。請(qǐng)編制函數(shù)intJSValue(longm)實(shí)現(xiàn)此功能,假如是回文數(shù),則函數(shù)返回為1,反之則返回0。*/#include<stdio.h>#include<stdlib.h>#include<string.h>intJSValue(longm){/*考生在這里添加程序*/inta[10],i=0,n;while(m){a[i]=m%10;m=m/10;i++;}for(--i,n=i;i>n/2;i--)if(a[i]!=a[n-i])return0;return1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)樓室內(nèi)裝修協(xié)議模板
- 家庭護(hù)理保姆服務(wù)合同樣本
- 辦公空間色彩搭配合同范本
- 咖啡店店員招聘協(xié)議書(shū)
- 城市文化中心地暖工程承包合同
- 環(huán)境保護(hù)企業(yè)消防整改施工合同
- 化工廠彩鋼板翻新合同
- 勞動(dòng)報(bào)酬零花錢(qián)協(xié)議
- 消防工程發(fā)包合同
- 常州乒乓球館租賃合同
- GB/T 44143-2024科技人才評(píng)價(jià)規(guī)范
- 人文英語(yǔ)4寫(xiě)作
- 廣東佛山生育保險(xiǎn)待遇申請(qǐng)表
- 美術(shù)課堂教學(xué)評(píng)價(jià)標(biāo)準(zhǔn)及評(píng)分表
- 養(yǎng)護(hù)手冊(cè)橋梁管理
- 血栓彈力圖課件-PPT
- 校園一日安全巡查記錄表(共1頁(yè))
- 設(shè)備移交清單模板 (2)
- 江蘇省南通市2021屆新高考物理一模試卷含解析
- 高校科技成果轉(zhuǎn)化問(wèn)題與對(duì)策建議
- (完整版)公司企業(yè)HSE管理體系及制度
評(píng)論
0/150
提交評(píng)論