二級(jí)(C語(yǔ)言程序設(shè)計(jì))上機(jī)題匯總

 

二級(jí)(C語(yǔ)言程序設(shè)計(jì))上機(jī)題匯總

一、程序調(diào)試題

(一)程序填空

練習(xí)一:

/*該程序功能:對(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;

for(x=2;x<=10;x++)

___if(max<f(x))max=f(x);___

printf("%f\n",max);

}

練習(xí)二:

/*該程序功能:輸入三個(gè)整數(shù),按由小到大的順序輸出這三個(gè)數(shù)。*/

#include<stdio.h>

voidswap(__int*pa,int*pb____)

{/*交換兩個(gè)數(shù)的位置*/

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

}

voidmain()

{

inta,b,c,temp;

scanf("%d%d%d",&a,&b,&c);

if(a>b)

swap(&a,&b);

if(b>c)

swap(&b,&c);

if(__a>b___)

swap(&a,&b);

printf("%d,%d,%d",a,b,c);

}

練習(xí)三:

/*該程序功能:將輸入的十進(jìn)制正整數(shù)n通過(guò)函數(shù)Dec2Bin轉(zhuǎn)換為二進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果輸出。*/

#include<stdio.h>

1

voidDec2Bin(intm)

{

intbin[32],j;

for(j=0;m!=0;j++)

{

bin[j]=__m%2___;

m=m/2;

}

for(;j!=0;j--)

printf("%d",);

}

voidmain()

{

intn;

scanf("%d",&n);

Dec2Bin(n);

}

練習(xí)四:

/*該程序功能:輸入數(shù)組x[7],調(diào)用函數(shù)f,去除數(shù)組中的負(fù)數(shù),輸出結(jié)果為:1

#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];

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

for(i=0;i<n;i++)printf("%5d",x[i]);

printf("\n");

}346*/

練習(xí)五:

/*該程序功能:輸出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++){

___s=1;___

2

for(j=2;___j<i___;j++)if(i%j==0)s+=j;

if(s==i)printf("%d\n",s);

}

}

練習(xí)六:

/*該程序功能:輸入整數(shù)n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。*/

#include<stdio.h>

voidmain()

{intm=0,t=1,n;

while(_while(!(t<=n&&t*2>=n)){

___t=t*2;___

m++;

}

printf("%d\n",m);

}

練習(xí)七:

/*該程序功能:函數(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++){

_for()a[j-1]=a[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");

}

練習(xí)八:

/*該程序功能:調(diào)用函數(shù)f,求二維數(shù)組a中全體元素的和.*/

#include<stdio.h>

floatf(_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;

3

}

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]=____;

printf("%.2f\n",f(b,3,4));

}

練習(xí)九:

/*該程序功能:求輸入的整數(shù)各位數(shù)字之和,如輸入234則輸出9,輸入-312則輸出6。*/#include<stdio.h>

#include<math.h>

voidmain()

{

intn,s=0;

scanf("%d",&n);

_____

while(n!=0){

____s+=n%10;____

n=n/10;

}

printf("%d\n",s);

}

練習(xí)十:

/*該程序功能:數(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)

return1;

else

returnf(n-1)+f(n-2);

}

練習(xí)十一:

/*該程序功能:輸入m,n(要求輸入均大于0,且m>=n),輸出它們的最大公約數(shù)*/#include<stdio.h>

4

voidmain()

{intm,n,k;

while(scanf("%d%d",&m,&n),for(k=n;n%k!=0||m%k!=0;k--);

printf("%d\n",k);

}練習(xí)十二:

/*程序功能:輸入一個(gè)整數(shù)后,輸出該數(shù)的位數(shù),如3114,則輸出4。*/

#include<stdio.h>

voidmain()

{intn,k=0;

scanf(“%d”,&n);

while(n!=0){

k++;n=n/10;

}

printf(“%d\n”,k);

}

練習(xí)十三:

/*程序功能:調(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*xx,當(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()

{floaty=a[0],t=1;inti;

for(i=1;i<n;i++){t=t*x;y=y+a[i]*t;}

}

練習(xí)十四:

/*程序功能:調(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]))strcpy(s+i,s+i+1);

5

二級(jí)(C語(yǔ)言程序設(shè)計(jì))上機(jī)題匯總.doc下載

else

}i++;

(二)程序修改

練習(xí)一:

/*該程序功能:運(yùn)行是輸入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>1改成n

s=s+n%10;

/********2******/

n=n%10;//n=n%10;改成n=n/10;

}

printf("%d\n",s);

}

練習(xí)二:

/*該程序功能:輸入m,n(要求輸入均大于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<nfor(k=m;k%n!=0;)

/********2********/

k=k+n;//k=k+n;改成k=k+m;

printf("%d\n",k);

6

}

練習(xí)三:

/*該程序功能:輸入n以及小于n個(gè)字符的字符串,將字符串中所有小寫字母改為相應(yīng)的大寫字母,輸出該字符串。*/

#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;或i<strlen(str);改成i<=strlen(str);

if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-('a'-'A');

puts(str);

}

練習(xí)四:

/*該程序功能:輸人1個(gè)字符串,按字母出現(xiàn)次序輸出其中所出現(xiàn)過(guò)的大寫英文字母。如運(yùn)行時(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;//y[i]==x[j]改成y[j]==x[i]

continue;改成break;

if(j==ny){y[ny]=x[i];ny++;}

}

/*****2*****/

for(i=0;i<26;i++)//i<26;改成i<ny;

printf("%c",y[i]);

printf("\n");

}

練習(xí)五:

/*程序功能:將一個(gè)char型數(shù)的高4位和低4位分離,分別輸出,如22(二進(jìn)制:00010110)輸出1,6*/

7

#include<stdio.h>

voidmain()

{

chara,b1,b2,c;

scanf("%d",&a);

/******1******/

b1=a<<4;/*b1存放高4位*///

c=~(~0<<4);

/******2******/

b2=a|c;/*b2存放低4位*///

printf("%d,%d",b1,b2);

}b1=a<<4;改成b1=a>>4;b2=a|c;改成b2=a&c;

練習(xí)六:

/*在考生目錄下的Paper子目錄下,有Modify.c文件,該文件中”/*****N*****/”的下一行中有錯(cuò)誤,請(qǐng)改正(注意:不得加行,減行,加句,減句,否則后果自負(fù))。該程序功能:輸入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;//t=-t*x/++i;改成t=-t*x/i++;

s+=t;

/*****2*****/

}while(fabs(t)>=eps)//少;

printf("%f\n",s);

}

練習(xí)七:

/*程序功能:輸入n,輸出n的所有質(zhì)數(shù)因子,(如n=13860,輸出2、2、3、3、5、7、11)。*/

#include<stdio.h>

voidmain()

{intn,i;

scanf(“%d”,&n);

/********1*******/

i=1;//i=1;改成i=2;

while(n>1)

if(n%i==0){

printf(“%d\t”,i);

8

n/=i;

}

else

/*******2********/

n--;//

}

練習(xí)八:

/*程序功能:輸入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=0;

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++){

/********2*******/

t=t*10+i;//t=t*10+i;改成t=t*10+1;

s=s+t;

}

s=s*a;

printf("%ld\n",s);

}

練習(xí)九:

程序功能:輸入n,再輸入n個(gè)點(diǎn)的平面坐標(biāo),然后輸出那些距離坐標(biāo)原點(diǎn)不超過(guò)5的點(diǎn)的坐標(biāo)值。

voidmain()

{charstr[80];

gets(str);f(str);puts(str);

}

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

voidmain()

{

inti,n;

/*****1*****/

structaxy{floatx,y;}a;//改為structaxy{floatx;floaty;}*a;

scanf("%d",&n);

a=(float*)malloc(n*2*sizeof(float));

for(i=0;i<n;i++)

9n--;改成i++;

/*****2*****/

scanf("%f%f",a[i].x,a[i].y);//

&a[i].y);

for(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);

}改為scanf("%f%f",&a[i].x,

練習(xí)十:

程序功能:分別統(tǒng)計(jì)字符串中所有英文字母中的各元音字母?jìng)(gè)數(shù)。

#include<stdio.h>

#include<ctype.h>

voidmain()

{chara[80];intn[5]={0},i;gets(a);

for(i=0;a[i]!='\0';i++)

/*****1*****/

switch(toupper(a[i])){//改為switch(tolower(a[i]))case'a':n[0]++;break;

case'e':n[1]++;break;

case'i':n[2]++;break;

case'o':n[3]++;break;

/*****2*****/

case'U':n[4]++;//改為case'u':n[4]++;

}

for(i=0;i<5;i++)printf("%d\n",n[i]);

練習(xí)十一:

/*考生的目錄Paper子目錄下,有Modify.c文件,該文件中/*****N*****/的下一行中請(qǐng)改正。該程序功能:運(yùn)行時(shí)輸入10個(gè)數(shù),然后分別輸出其中的最大,最小的值。*/#include<stdio.h>

voidmain()

{floatx,max,min;inti;

/********1*******/

for(i=0;i<=10;i++){//i<=10;改成i<10;

scanf("%f",&x);

/*******2********/

if(i=1){max=x;min=x;}//i=1改成i==0

if(x>max)max=x;

if(x<min)min=x;

}

printf("%f,%f\n",max,min);

}

10

二、程序設(shè)計(jì)題

練習(xí)一:

/*設(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”寫到考生目錄中Paper下目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{

FILE*p;

intx,y,x1,y1;floatz,z1;

/*考生在這里添加程序*/

p=fopen("design.dat","w");

z1=0;

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);

}

練習(xí)二:

/*設(shè)計(jì)程序:計(jì)算多項(xiàng)式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+......的值,并將其值

以格式"%.6f"寫到考生目錄中Paper下目錄下的新建文件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};

/*考生在這里添加程序*/

y=y+a[0];

p=fopen("design.dat","w");

for(i=1;i<10;i++)

{t=t*x;

11

第11 / 20頁(yè)

y+=a[i]*sin(t);}

fprintf(p,"%.6f",y);

fclose(p);

}

練習(xí)三:

/*設(shè)計(jì)程序:計(jì)算多項(xiàng)式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并將其值一格式"%f"寫到考生目錄中Paper下目錄下的新建文件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++)

{t=t*x;

y+=a[i]*t;}

fprintf(p,"%f",y);

fclose(p);

}

練習(xí)四:

/*設(shè)計(jì)程序:累加a字符串各個(gè)字符的ASCII碼值,然后將累加和以形式“%d”寫到考生目錄中Paper下目錄下的新建文件design.dat中*/

#include<stdio.h>

voidmain()

{FILE*p;ints=0,i=0;

char*a="r235%^%34cdDW,.";

/*考生在這里添加程序*/

p=fopen("design.dat","w");

for(;a[i]!='\0';i++)

s+=a[i];

fprintf(p,"%d",s);

fclose(p);

}

練習(xí)五:

/*設(shè)計(jì)程序:尋找并輸出11到999之間的數(shù)m,它滿足m,m*m,m*m*m均為回文數(shù)。所謂回文數(shù)是指各位數(shù)字左右對(duì)稱,例如121,676,94249等。滿足上述條件的數(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>

12

#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;

}

voidmain()

{

FILE*p;longm;

p=fopen("design.dat","w");

for(m=11;m<1000;m++)

{

if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))

fprintf(p,"%ld",m);

}

fclose(p);

}

練習(xí)六:

/*設(shè)計(jì)程序:數(shù)列各項(xiàng)為1,1,2,3,5,8,13,21,…,求其前40項(xiàng)之和,并將求和的結(jié)果以格式“%d”寫到考生目錄下的新建文件design.dat中*/#include<stdio.h>

voidmain()

{FILE*p;longs=0,i,a[40];

/*考生在這里添加程序*/

p=fopen("design.dat","w");

for(i=0;i<40;i++)

{if(i==1||i==0)a[i]=1;

elsea[i]=a[i-2]+a[i-1];

}

for(i=0;i<40;i++)

s+=a[i];

fprintf(p,"%d",s);

fclose(p);

}

13

練習(xí)七:

/*設(shè)計(jì)程序:計(jì)算數(shù)列1,-1/3!,1/5!,-1/7!,1/9!,…的和至某項(xiàng)的絕對(duì)值小于1e-5時(shí)為止(該項(xiàng)不累加),將求和的結(jié)果以“%.6f”寫到考生目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;floats=1,t=1,i=3;

/*考生在這里添加代碼*/

p=fopen("design.dat","w");

do{

t=-t*i*(i-1);

s=s+1/t;

i+=2;

}while(fabs(1/t)>=1e-5);

fprintf(p,"%.6f",s);

fclose(p);

}

練習(xí)八:

/*設(shè)計(jì)程序:a,b,c為區(qū)間[1,100]的整數(shù),統(tǒng)計(jì)使等式c/(a*a+b*b)=1成立的所有解的個(gè)數(shù)

(若a=1,b=3,c=10是1個(gè)解,則a=3,b=1,c=10也是解)。*/

#include<stdio.h>

voidmain()

{FILE*p;intn=0,a,b,c;

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

for(a=1;a<=100;a++)

for(b=1;b<=100;b++)

for(c=1;c<=100;c++)

if(c/(a*a+b*b)==1)

n++;

fprintf(p,“%d”,n);

fclose(p);

}

練習(xí)九:

/*設(shè)計(jì)程序:在數(shù)組x的10個(gè)數(shù)中求平均值v,找出與v相差最小的數(shù)組元素并將其以格式“%.5f”寫到考生目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;inti;floatk=0;

14

floatx[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;

for(i=0;i<10;i++)v+=x[i];v=v/10;d=fabs(x[0]-v);

/*考生在這里添加代碼*/

p=fopen("design.dat","w");

for(i=0;i<10;i++)

if(d>fabs(x[i]-v))

{d=fabs(x[i]-v);

k=x[i];}

fprintf(p,"%.5f",k);

fclose(p);

}

練習(xí)十:

/*設(shè)計(jì)程序:在正整數(shù)中找出1個(gè)最小的,被3,5,7,9除余數(shù)分別為1,3,5,7的數(shù),將該數(shù)以格式“%d”寫到考生的目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{/*考生在這里添加代碼*/

FILE*p;inti;

p=fopen(“design.dat”,”w”);

for(i=1;;i++)

if((i%3==1)&&(i%5==3)&&(i%7==5)&&(i%9==7))break;

fprintf(p,"%d",i);

fclose(p);

}

練習(xí)十一:

/*設(shè)計(jì)程序:將滿足條件pow(1.05,n)<1e6<pow(1.05,n+1)的n,pow(1.05,n)值以格式“%d,%.0f”寫到生目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{floaty=1.05;intn=1;FILE*p;

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

for(;pow(y,n)>1e6||pow(y,n+1)<1e6;n++);

fprintf(p,"%d,%.0f",n,pow(1.05,n));

fclose(p);

}

練習(xí)十二:

/*設(shè)計(jì)程序:計(jì)算2的平方根,3的平方根,…,10的平方根之和,要求計(jì)算結(jié)果具有小數(shù)點(diǎn)后10有效位數(shù),以“%.10f\n”寫到考生的目錄下的新建文件design.dat中*/

15

第15 / 20頁(yè)

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;

/*考生在這里添加代碼*/

floatx=0;inti;

p=fopen("design.dat","w");

for(i=2;i<=10;i++)

x+=sqrt(i);

fprintf(p,"%.10f",x);

fclose(p);

}

練習(xí)十三:

/*設(shè)計(jì)程序:將a數(shù)組的每1行均除以該行上絕對(duì)值最大的元素,然后將a數(shù)組寫到考生的目錄的新建文件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);

}

練習(xí)十四:

/*設(shè)計(jì)程序:x[i],y[i]分別表示平面上1個(gè)點(diǎn)的x,y坐標(biāo),求下列5點(diǎn)各點(diǎn)間距離總和,并將該數(shù)以格式“%.4f”寫到考生的目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;floats,x[5]={-1.5,2.1,6.3,3.2,-0.7};

16

floaty[5]={7,5.1,3.2,4.5,7.6};inti,j;

/*考生在這里添加代碼*/

p=fopen("design.dat","w");

s=0;

for(i=0;i<4;i++)

for(j=i+1;j<5;j++)

s+=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));

fprintf(p,"%.4f",s);

fclose(p);

}

練習(xí)十六:

/*設(shè)計(jì)程序:計(jì)算字符串s中每個(gè)字符的權(quán)重值,所謂權(quán)重值就是字符串中的位置值與該字符

的ASCII碼值的乘積。位置值從1開始依次遞增。將每個(gè)字符的權(quán)重值,以格式“%d”寫到考生的目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{

FILE*p;inti,w;

char*s="we45*&y3r#$1";

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

w=0;

for(i=1;s[i]!='\0';i++)

w+=s[i]*i;

fprintf(p,”%d”,w);

fclose(p);

}

練習(xí)十七:

/*程序設(shè)計(jì):在6至1000內(nèi)找出所有的合數(shù),用語(yǔ)句“fprintf(p,”%6d”,n);”輸出。說(shuō)明(某個(gè)數(shù)等于其諸因子之和,則該數(shù)為合數(shù):6=1+2+3,28=1+2+4+7+14,6,28都是合數(shù))*/

#include<stdio.h>

voidmain()

{FILE*p;intn,j,s;

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

for(n=6;n<=1000;n++){

s=0;

for(j=1;j<n;j++)

if(n%j==0)s+=j;

17

if(s==n)fprintf(p,"%d\n",n);

}

fclose(p);

}

練習(xí)十八:

/*程序設(shè)計(jì)題:統(tǒng)計(jì)滿足條件x*x+y*y+z*z==2000的所有解的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果以格式"%d"寫入到考生目錄下新建的文件design.dat。說(shuō)明:若a、b、c是1個(gè)解,則a、c、b也是1個(gè)解,等等。*/

#include<stdio.h>

voidmain()

{FILE*p;intx,y,z,k=0;

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

for(x=-45;x<45;x++)

for(y=-45;y<45;y++)

for(z=-45;z<45;z++)

if(x*x+y*y+z*z==2000)k++;

fprintf(p,”%d”,k);

fclose(p);

}

練習(xí)十九:

/*程序設(shè)計(jì)題:數(shù)組元素x[i]、y[i]表示平面上某點(diǎn)坐標(biāo),統(tǒng)計(jì)所有各點(diǎn)間最短距離,并將其值以格式"%f"寫到考生目錄下新建文件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]);

/*考生在這里添加代碼*/

p=fopen("design.dat","w");

for(i=0;i<10;i++)

for(j=0;j<10;j++)

{c=len(x[i],y[i],x[j],y[j]);

if(i!=j&&minc>c)

minc=c;}

fprintf(p,"%f",minc);

fclose(p);

}

18

練習(xí)二十:

/*程序設(shè)計(jì)題:求Fibonacci數(shù)列中大于t的最小一個(gè)數(shù)結(jié)果由函數(shù)JSValue返回,F(xiàn)(n)定義為F(0)=0,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2),分別計(jì)算出當(dāng)t=1000和3000時(shí)的結(jié)果*/

#include<stdio.h>

intJSValue(intt)

{/*考生在這里添加代碼*/

intf1=0,f2=1,flag=0;

while(flag==0)

{f1=f1+f2;

f2=f2+f1;

if(t>=f1&&t<=f2)

{flag=1;

returnf2;}

}

}

voidmain()

{FILE*p;

p=fopen(“design.dat”,”w”);

fprintf(p,”%d,%d”,JSValue(1000),JSValue(3000));

fclose(p);

}

練習(xí)二十一:

/*設(shè)計(jì)程序:計(jì)算27的小于1.00001的2n次方根(27的2n-2次方根不小于1.00001),以格式%d寫到考生目錄下的新建文件design.dat中*/

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;floatx=27;intn=0;

/*考生在這里添加代碼*/

p=fopen(“design.dat”,”w”);

n=n+1;

for(;!((pow(x,1/(2*n))<1.00001)&&(pow(x,1/(2*n-2)))>1.00001);n++)

fprintf(p,"%d",n);

fclose(p);

}

練習(xí)二十二:

/*設(shè)計(jì)程序:選出5000以下符合條件的自然數(shù)。條件是:千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個(gè)位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個(gè)位數(shù)字與千位數(shù)字之差的10倍。計(jì)算并輸出這些四位自然數(shù)的個(gè)數(shù)cnt及這些數(shù)字的和sum到^^^*/

#include<stdio.h>

voidmain()

19

{

FILE*p;

intcnt,sum;

/*考生在這里添加代碼*/

inta[4],t,s,i;

cnt=0;sum=0;

p=fopen("design.dat","w");

for(t=1000;t<=5000;t++)

{s=t;i=0;

while(s)

{a[i]=s%10;

s=s/10;

i++;

}if(((a[3]+a[2])==(a[0]+a[1]))&&((a[2]+a[3])/(a[3]-a[0])==10)){cnt++;

sum+=t;

}

}

fprintf(p,"%d,%d",cnt,sum);

fclose(p);

}

20

久久建筑網(wǎng)brightonrobinsfc.com提供大量:建筑圖紙、施工方案、工程書籍、建筑論文、合同表格、標(biāo)準(zhǔn)規(guī)范、CAD圖紙等內(nèi)容。


TOP最近更新內(nèi)容

    南京理工大學(xué)考研計(jì)算機(jī)復(fù)試上機(jī)題目 2013 3月二級(jí)c無(wú)紙化題庫(kù) PS技術(shù) 在學(xué)校里 學(xué)三年 也學(xué)不到這么多x 富士康科技公司基礎(chǔ)IE培訓(xùn)--現(xiàn)場(chǎng)改善.ppt 語(yǔ)言學(xué)概論筆記 山東省威海市2011屆高三模擬考試(數(shù)學(xué)文) 德隆的資本運(yùn)作與行業(yè)整合 ANSYS工程結(jié)構(gòu)數(shù)值分析命令查詢表 建筑裝飾裝修工程施工質(zhì)量驗(yàn)收規(guī)范(GB5021 宋鴻兵語(yǔ)錄 郭碩鴻 電動(dòng)力學(xué) 梁凱恩 ——《福布斯導(dǎo)師商學(xué)院》精華 DLT 1080.4-2010 電力企業(yè)應(yīng)用集成 配電管 刑法的二十個(gè)鉆石考點(diǎn) 【阮齊林】 系統(tǒng)防雷方案