化工上機(jī)考試題_第1頁
化工上機(jī)考試題_第2頁
化工上機(jī)考試題_第3頁
化工上機(jī)考試題_第4頁
化工上機(jī)考試題_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1.輸入一個(gè)華氏溫度,輸出攝氏溫度。公式為:C=5(F-32)/9

要求:輸出要有文字說明;能夠?qū)Χ鄠€(gè)華氏溫度進(jìn)行計(jì)算。

#include<stdio.h>

voidmain()

{intc,f;

scanf("%d",&f);

c=5.0*(f-32)/9;

printf("c=%d\n”,c);

)

2.編寫一個(gè)程序完成下述計(jì)算:

x(x<1)

y=12x-l(1<x<10)

3x-ll(x>10)

include<stdio.h>

{floatx,y;

scanf(〃%d〃,&x);

if(x<l)y=x;

elseif(x>=l&&x<=10)y=2*x-l;

elseif(x>10)y=3*x-ll;

printf(%d",y);

)

3.給定一個(gè)不多于5位的正整數(shù),要求:①求它是幾位數(shù);②分別打印出每一位數(shù)字。

tfinclude<stdio.h>

voidmain()

{

lf(x<10)

N=l;

Elseif(x<100)

N=2;

Elseif(x<1000)

N=3;

Elseif(x<10000)

N=4;

Elsen=5;

intn,a,b,c,d;

scanf("%d",&n);

a=n/1000;

b=(n-a*1000)/100;

c=(n-a*1000-b*100)/10;

d=(n-a*1000-b*100-c*10);

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

)

5

4.輸入4個(gè)整數(shù),按從小到大的順序輸出。

include<stdio.h>

voidmain()

{floata,b,c,d,t;

printf("input4geshu:\nH);

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

if(a>=b){t=a;a=b;b=t;}

if(a>=c){t=a;a=c;c=t;}

if(a>=d){t=a;a=d;d=t;}

if(b>=c){t=b;b=c;c=t;}

if(b>=d){t=b;b=d;d=t;}

if(c>=d){t=c;c=d;d=t;}

printf(”%f,%f,%f,%f”,ad);

)

5.輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)。

//include<stdio.h>

Voidmain()

{intm,n,r;

Printf(z/lnputm,np);

Scanf(,z%d%d,,,&m,&n):

lf(m<n)

{r=m;m=n;n=r;}

R=m%n;

While(r!=0)

{m=n;n=r;r=m%n;}

Printf(/Zn=%d\n\n)

)

學(xué)號(hào):姓名:成績:

6.輸入兩個(gè)正整數(shù)m和n,求其最小公倍數(shù)。

#include<stdio.h>

Voidmain()

{intm,n,r;p

Printf(/Zlnputm,n;〃);

Scanf(zz%d%d,,,&m,&n):

P=m*n;

lf(m<n)

{r=m;m=n;n=r;}

R=m%n;

While(r!=O)

{m=n;n=r;r=m%n;}

Printf(zzn=%d\n,,,n);

Printf("p=%d\n,,,p/n);

)

學(xué)號(hào):姓名:成績:

7.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。

#include<stdio.h>

voidmain()

(

charc;

inti=OJ=O,k=O;

printf("shuruyihangzifu:\n");

while((c=getchar())!=,\n/)

(

if((c>=W)&&(c<=/Z,)|I(c>=,a,)&&(c<=,z,))

i++;

elseif((c>='0')&&(c<='9'))

J++;

else

k++;

}

z/

printf(zimugesu=%d,shuzigeshu=%d,qitageshu=%do

)

8.求n!

#include<stdio.h>

intf(intx)

(

intm;

if(x==O||x==l)

m=l;

else

m=x*f(x-l);

return(m);

}

voidmain()

(

intn,y;

printf("input:n\n");

scanf("%d";&n);

y=f(n);

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

}

100

9.求X"

n=()

#include<stdio.h>

voidmain()

(

inti,sum=0;

for(i=l;i<=100;i++)

sum=sum+i;

printf("%d",sum);

)

20

10.求2”!

n=\

include<stdio.h>

voidmain()

(

floatn,s=0,t=l;

for(n=l;n<=20;n++)

(

t*=n;

s+=t;

)

printf("l+2!+3!...+20!=%e\n",s);

)

學(xué)號(hào):姓名:成績:

11.打印水仙花數(shù)。所謂水仙花數(shù)指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。

Sinclude<stdio.h>

voidmain()

inti,j,k,n;

printf("'waterflower'numberis:");

for(n=100;n<1000;n++)

(

i=n/100;

j=n/10%10;

k=n%10;

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf("%-5d",n);

)

)

printf("\n");

)

23581321

12.求一分?jǐn)?shù)序列:

#include<stdio.h>

voidmain()

(

floatfl,f2,sum,temp;

inti;

fl=2;

f2=l;

sum=0.0;

for(i=l;i<=20;i++)

(

sum+=fl/f2;

temp=fl;

fl=fl+f2;

f2=temp;

)

printf("thesumis:%f\n",sum);

)

13.小猴吃桃。小猴第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,又多吃了一個(gè);第二天又吃了剩下

的一半零一個(gè),到第十天,只剩一個(gè)桃子。問第一天共摘了多少個(gè)桃子。

include<stdio.h>

voidmain()

intday,xlzx2;

day=9;

x2=l;

while(day>0)

{xl=(x2+l)*2;

x2=xl;

day-;

}

printf("thetotalis%d\n",xl);

)

14.用牛頓迭代法求方程在1.0附近的根。

2x3-4x2+3x-6=0

學(xué)號(hào):姓名:成績:

15.用二分法求方程附近的根。

2%3-4%24-3x-6=0

學(xué)號(hào):姓名:成績:

16.打印出以下圖形:

*

***

*****

*******

*********

#include<stdio.h>

voidmain()

(

inti,j;

for(i=l;i<=5;i++)

(

forO=l;j<=(5-i);j++)

print""");

for(j=l;j<=(2*i-l);j++)

printf("*");

printf(Anw);

)

}

17.打印出以下圖形:

*********

*******

*****

***

*

#include<stdio.h>

voidmain()

{inti,j;

for(i=5;i>=l;i-)

{for(j=l;j<=6-i;j++)

printf("");

for(j=l;j<=2*i-l;j++)

printf("*");

printf("\n");

)

)

18.求100以內(nèi)的素?cái)?shù)。(不能使用數(shù)組)

#include<stdio.h>

voidmain()

(

int

for(i=l;i<100;i++)

(

for(j=l,n=0;j<=i;j++)

if(i%j==O)

n=n+l;

if(n==2)

printf("%d",i);

)

printf(Qn");

)

19.用篩法求100以內(nèi)的素?cái)?shù)。

#include<stdio.h>

^include"math.h"

SdefineN101

main()

inti,j,line,a[N];

for(i=2;i<N;i++)a[i]=i;

for(i=2;i<sqrt(N);i++)

for(j=i+l;j<N;j++)

(

if(a[i]!=O&&a[j]!=O)

if(a[j]%a[i]==O)

a[j]=O;}

printf("\n");

for(i=2,line=0;i<N;i++)

(

if(a[i]!=O)

{printf("%5d",a[i]);

line++;}

if(line==10)

{printf("\n");

line=O;}

)

)

20.用選擇法對(duì)10個(gè)整數(shù)排序。

include<stdio.h>

#defineN10

voidmain()

{inti,j,min,tem,a[N];

printf("pleaseinputtennum:\n");

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

(

printf("a[%d]=,,,i);

scanf("%d",&a[i]);}

printf("\n");

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

printf("%5d",a[i]);

printf("\n");

for(i=0;i<N-l;i++)

{min=i;

for(j=i+l;j<N;j++)

if(a[min]>a[j])min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

}

printf("Aftersorted\n");

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

printf(H%5d",a[i]);

)

21.用冒泡法對(duì)10個(gè)整數(shù)排序。

#include<stdio.h>

voidmain()

(

int就10]Jjt;

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

(

scanf("%d”,&a[i]);

)

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

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

if(a[j]>a[j+l])

{t=a[j];a[j]=a[j+l];a[j+l]=t;}

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

printf("%d

printf(Qn〃);

)

22.用選擇法對(duì)20個(gè)整數(shù)排序。

include<stdio.h>

#defineN20

voidmain()

{intij,min,temza[N];

printf("pleaseinputtennum:\n");

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

(

printf("a[%d]=",i);

scanf("%d",&a[i]);}

printf("\n");

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

printf("%5d",a[i]);

printf(H\n");

for(i=0;i<N-l;i++)

{min=i;

for(j=i+l;j<N;j++)

if(a[min]>a[j])min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

)

printf("Aftersorted\n");

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

printf(n%5d",a[i]);

)

23.用冒泡法對(duì)20個(gè)整數(shù)排序。

#include<stdio.h>

voidmain()

(

int

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

(

scanf("%d”,&a[i]);

)

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

for(j=0;j<=(20-i);j++)

if(a[j]>aU+l])

{t=a[j];a[j]=a[j+l];a[j+l]=t;}

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

printf("%d

printf("\n〃);

)

學(xué)號(hào):姓名:成績:

24.求一個(gè)3x3矩陣對(duì)角線元素之和。

//include<stdio.h>

voidmain()

(

floata[3][3]zsum=0;

inti,j;

printf("pleaseinputrectangleelement:\n");

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

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

scanf("%f",&a[i][j]);

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

sum=sum+a[i][i];

printf("duijiaoxianheis%6.2f",sum);

)

25.求一個(gè)4x4矩陣對(duì)角線元素之和。

/include<stdio.h>

voidmain()

{

floata[4][4],sum=0;

inti,j;

printf("pleaseinputrectangleelement:\n");

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

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

scanf("%f"/&a[i][j]);

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

sum=sum+a[i][i];

printf("duijiaoxianheis%6.2f",sum);

)

26.求一個(gè)3x3矩陣外邊元素之和。

學(xué)號(hào):姓名:成績:

27.求一個(gè)4x4矩陣外邊元素之和。

學(xué)號(hào):姓名:成績:

28.有一個(gè)已排好序的數(shù)組,現(xiàn)輸入一個(gè)數(shù),要求按原來順序?qū)⑺迦霐?shù)組中。

include<stdio.h>

voidmain()

{staticinta[5]={l,4,5,6,7};

inti,t,b;

scanf(“%d”,&b);

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

{t=a[i];a[i]=b;b=t;}

printf(”%d”,a[i]);

printf("%d",b);

)

29.將一個(gè)數(shù)組中的值按逆序重新存放。

#include<stdio.h>

#defineN

main()

{inta[N]J,temp;

printf("qingshuru

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

scanf("%d",&a[i]);

for(i=0;i<N/2;i++)

{temp=a[i];

a[i]=a[N-i+l];

a[N-i+l]=temp;}

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

printf("%4d",a[i]);

printf("\n");

)

30.輸出楊輝三角形。

Sinclude<stdio.h>

Voidmain()

{intij;

inta[n][n];

printf("\n");

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

{a[i][0]=l;

a[i][i]=l;}

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

for(j=l;j<i;j++)

a[i][j]=a[i-l]D-l]+a[i-l]O];

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

{for(j=0;j<=i;j++)

printf("%5d",a[i][j]);

printf("\n");

)

)

學(xué)號(hào):姓名:成績:

31.有20個(gè)數(shù)按從小到大的順序排列,輸入一個(gè)數(shù),用折半查找法找出該數(shù)。

#include<stdio.h>

#defineN20

voidmain()

{inti,j,number,top,bott,mid,loca,a[N],flag=l,sign=l;

charc;

printf("Enterdata:\n");

scanf("%d",&a[O]);

i=l;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-l])

i++;

else

printf("Enterthisdataagain:");

}

printf("\n");

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

printf("%4d",a[i]);

printf("\n");

while(flag)

{printf(Hlnputnumbertolookfor:");

scanf("%d",&number);

loca=0;

top=0;

bott=N-l;

if{(number<a[O])||(number>a[N-l]))

loca=-l;

while((sign==l)&&(top<=bott))

{mid=(bott+top)/2;

if(number==a[mid])

{loca=mid;

,

printf("Find%d,itspositionis%d\n'/numberjoca+l);

sign=0;

}

elseif(number<a[mid])

bott=mid-l;

else

top=mid+l;

}

if(sign==l||loca==-l)

printf("%disnotfound.\n",number);

printf("Continueornot(Y/N)?");

scanf("%c",&c);

if(c=='N'||c=='n')

flag=O;

)

)

32.有一篇文章,共有3行文字,每行有80個(gè)字符。要求分別統(tǒng)計(jì)其中英文字母、數(shù)字、空格

及其它字符的個(gè)數(shù)。

學(xué)號(hào):姓名:成績:

33.有一篇文章,共有3行文字,每行有80個(gè)字符。要求分別統(tǒng)計(jì)其中英文大寫字母、小寫字

母、數(shù)字、空格及其它字符的個(gè)數(shù)。

include<stdio.h>

intmain()

{inti,j,upp,low,dig,spa,oth;

chartext[3][80];

upp=low=dig=spa=oth=0;

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

{printf(Hpleaseinputline%d:\n",i+l);

gets(text[i]);

for(j=0;j<80&&text[i][j]!=,\0';j++)

{if(text[i][j]>='A,&&text[i][j]<='Z')

upp++;

elseif(text[i][j]>=,a,&&text[i][j]<-z')

low++;

elseif(text[i][j]>='0'&&text[i][j]<='9')

dig++;

elseif(text[i][j]=='')

spa++;

else

oth++;

)

)

printf("\nuppercase:%d\n",upp);

printf("lowercase:%d\n",low);

printf("digit:%d\n",dig);

printf("space:%d\n",spa);

printf("other:%d\n",oth);

return0;

}

34.編寫一個(gè)程序,將兩個(gè)字符串連接起來,不能用strcat函數(shù)。

include<stdio.h>

voidmain()

{inti,j;

charstrl[5]/str2[5],str3[ll];

gets(strl);

gets(str2);

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

str3[i]=strl[i];

for(j=0;str2[j]l=>\0';j++)

str3[j+i]=str2[j];

printf("%s\n%s\n%s\n",strl,str2,str3);

)

35.編寫一個(gè)程序,將兩個(gè)字符串連接起來,不能用strcat函數(shù)。

學(xué)號(hào):姓名:成績:

36.編寫一個(gè)程序,比較兩個(gè)字符串的大小,不能用strcmp函數(shù)。

#include<stdio.h>

voidmain()

{charsl[5],s2[5];

inti,flag=O;

gets(sl);

gets(s2);

for(i=0;sl[i]!='\0,&&s2[i]!=,\0';i++)

{if(sl[i]>s2[i])

{flag=l;break;}

elseif(sl[i]<s2[i])

{flag=2;break;}

)

if(sl[i]!='\O')

{flag=l;}

if(s2[i]!='\0')

{flag=2;}

printf("s%disbiggest\n",flag);

)

37.編寫一個(gè)程序,將一個(gè)字符串復(fù)制到另一個(gè)字符數(shù)組中,不能用strcpy函數(shù)。

#include<stdio.h>

voidmain()

{inti,j,t;

charsl[ll],s2[5];

gets(sl);

gets(s2);

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

{if(sl=='\O')break;}

printf("%d",i);

forQ=i;j<i+5;j++)

{sl[i]=t;

s2[j]=sl[i];

s2[j]=t;

)

printf("%s%s",sl,s2);

)

38.編寫一個(gè)程序,求一個(gè)字符串的長度,不能用strlen函數(shù)。

^include<stdio.h>

voidmain()

{inti,sum=0;

chara[7];

gets(a);

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

{sum=sum+i;}

printf("%d",sum);

)

39.求1---1---------1—H—要求n從鍵盤輸入。

357n

#include<stdio.h>

voidmain()

{inti=-l,n;

floatj,s;

scanf("%d",&n);

for(j=l;1.0/j>1.0/(l+n*2);j=j+2.0)

{i=-i;

s+=i*l,O/j;}

printf("%f",s);

)

學(xué)號(hào):姓名:成績:

40.寫一個(gè)判斷素?cái)?shù)的函數(shù),在主函數(shù)中輸入一個(gè)整數(shù),輸出是否素?cái)?shù)的信息。

voidmain()

intij;

scanf(“%d”,&i);

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

if(i==((int)(i/j))*j)break;

if(j>=i)

printf("%dyes\n",i);

elseprintf("%dno\n,,J);

)

41.求方程ax2+hx+c=0的根。

#include<stdio.h>

#include<math.h>

voidmain()

(

float

printf("input:a,b,c\n");

scanf("%f,%f,%匕&a,&b,&c);

n=-b/(2*a);

m=b*b-4*a*c;

if(m>0)

(

t=sqrt(m);

//

printf(Xi=%fX2=%f\n”,n+t,n-t);

}

elseif(m==0)

a/,

printf(Xi=X2=%f\n/n);

else

(

t=sqrt(-m);

printf(aXi=%f+%fiX2=%f?%fi\n”,n,t,n,t);

}

)

42.寫一個(gè)函數(shù),輸入一個(gè)4位數(shù)字,要求輸出這四個(gè)數(shù)字字符,但每兩個(gè)數(shù)字間有一個(gè)空格。

include<stdio.h>

voidmain()

{

intn,a,b,c,d;

scanf("%d",&n);

a=n/1000;

b=(n-a*1000)/100;

c=(n-a*1000-b*100)/10;

d=(n-a*1000-b*100-c*10);

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

)

43.輸入若干學(xué)生5門課的成績,用函數(shù)計(jì)算每個(gè)學(xué)生的平均成績。

#include<stdio.h>

intav(inta[10][5]Jntb)

(

inti,s=O;

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

s+=a[b][i];

s=s/5;

returns;

)

intav2(inta[10][5]Jntb)

(

inti,s=O;

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

s+=a[i][b];

returns/10;

)

intmaxfinta[][5],int*pl,int*p2)

(

ints,i,j;

s=a[O][O];

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

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

if(a[i][j]>s)

s=a[i][j],*pl=i,*p2=j;

returns;

學(xué)號(hào):姓名:成績:

44.輸入若干學(xué)生5門課的成績,用函數(shù)計(jì)算每門課的平均成績。

include<stdio.h>

floataver(floata[5])

{inti;

floataver=0;

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

{aver=aver+a[i]/5;}

return(aver);

)

voidmain()

{intj;

floatv,s[5];

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

scanf("%f",&s[j]);

printf("\n");

v=aver(s);

printf("%f",v);

)

2

45.輸入若干學(xué)生5門課的成績,用函數(shù)計(jì)算每門課的平均分方差:-Vx,2-

n

fun(){

inti,ii,d[10][5],max=0,sum=0,b[2];

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

for(ii=0;ii<5;ii++)

scanfC%d*,&d[i][ii]);

printf(^AverageStudents:\n〃);

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

for(ii=0;ii<5;ii++){

if(d[i][ii]>max)max=d[i][ii];

sum+=d[i][ii];

)

printf(z,NO.%d%d\n”,i,sum/5);

sum=0;

printf(^AverageSubjects:\n〃);

for(ii=0;ii<5;ii++){

for(i=0;i<10:i++){sum+=d[i][ii];if(d[i][ii]==max){b[0]=i;b[l]=ii;)}

printfCSB.%d%d\n”,ii,sum/10);

sum=0;

)

printf("Highest:NO.%dGRADE.%d\b[0],b[l]);

intmain(void){

fun();

getch();

return0;

)

學(xué)號(hào):姓名:成績:

46.用遞歸法求n!。

#include<stdio.h>

voidmain()

(

intn;

longy;

longfac(intn);

printf(Hinputyige>0deshu:\n");

scanf("%d",&n);

y=fac(n);

printf("n!=%ld",y);

)

longfac(intn)

{longf;

if(n==0,n==l)f=l;

elsef=fac(n-l)*n;

return(f);

)

47.用遞歸法求1+2+3+……+100o

include<stdio.h>

voidmain()

{intsum=0,l;

for(i=l;i<=100;i++)

sum=sum+l;

Printf(〃%d〃,sum);

)

學(xué)號(hào):姓名:成績:

48.寫一個(gè)交換值的函數(shù),在主函數(shù)中輸入2個(gè)整數(shù),并輸出。

include<stdio.h>

voidswap(inta,intb)

{inttemp;

temp=a;

a=b;

b=temp;

)

main()

{intx=7,y=ll;

swap(x,y);

printf("x=%d,y=%d",x/y);

)

49.輸入4個(gè)字符串,按由小到大的順序輸出。

#include<stdio.h>

#include<stdlib.h>

intbb(constvoid*a,constvoid*b)

{return(*(constchar*)a-*(constchar*)b);

)

intmain(void)

{chara[5];

inti;

for(i=0;i<5;i++)a[i]=getchar();

qsort(a,5,sizeof(char),bb);

for(i=0;i<5;i++)putchar(a[i]);

return0;

學(xué)號(hào):姓名:成績:

50.打印輸出斐波那契數(shù)列的前60項(xiàng)。

include<iostream>

intmain()

(

intal=0,a2=1,i;

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

(

cout?al?endl;

inttemp=a2;

a2+=al;

al=temp;

)

return0;

)

51.定義一個(gè)結(jié)構(gòu)體變量,計(jì)算該日在本年中是第幾天。

include<stdio.h>

intleap_year(intyear)

{

if(year%4!=0||year%100==0&&year%400!=0)

return0;

else

return1;

)

main()

{

structday

(

intyear;

intmonth;

intdate;

);

structdaytoday;

intdays_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,days=0;

printf("Year:n);

scanf("%d”,&today.year);

printf("Month:");

scanf("%d",&today.month);

printf(nDate:");

scanf("%d",&today.date);

if(leap_year(today.year))

days_of__month[l]=29;

for(i=0;i<today.month-l;i++)

days+=days_of_month[i];

days+=today.date;

printf("%d/%disthe%d(th)daysin%d.\n",today.month,today.date,days,today.year);

)

52.用函數(shù)實(shí)現(xiàn)輸入一個(gè)年月日,計(jì)算該日在本年中是第幾天。

include<stdio.h>

main()

intday,month,year,sum,leap;

printf("\npleaseinputyear,month,day\n");

scanf(”%d,%d,%d”,&year,&month,&day);

switch(month)

(

casel:sum=O;break;

case2:sum=31;break;

case3:sum=59;break;

case4:sum=90;break;

case5:sum=120;break;

case6:sum=151;break;

case7:sum=181;break;

case8:sum=212;break;

case9:sum=243;break;

case10:sum=273;break;

casell:sum=304;break;

case12:sum=334;break;

default:printf("dataerror");break;

)

sum=sum+day;

if(year%400==011(year%4==0&&year%100!=0))

leap=l;

else

leap=0;

if(leap==l&&month>2)

sum++;

printf("ltisthe%dthday.",sum);}

學(xué)號(hào):姓名:成績:

53.編寫一個(gè)print函數(shù),輸出一個(gè)數(shù)組,該數(shù)組中有6個(gè)學(xué)生的數(shù)據(jù)記錄,每個(gè)記錄包括num、

name.score[3],用主函數(shù)輸入這些記錄,用print函數(shù)輸出這些記錄。

#include<stdio.h>

structstudent

(

intnum⑹;〃書上答案是6,我把它改成5也可以,到底用5好還是6好(按照底卜i+1應(yīng)該是6,但為什么5也對(duì))

charname[20]

;intscore[4];

〃書上答案是4,我把它改成3也可以,到底用3好還是4好(按照底下j+1應(yīng)該是4,但為什么3也對(duì))}stu[5];

voidmain()

voidprintfstructstudentstu[6]);

inti,j;

for(i=0;i<5;

i++)

(

printf("請(qǐng)輸入第%d個(gè)學(xué)生的數(shù)據(jù):

printff'No.:");

scanf("%d",&stu[i].num);

printf("姓名門;

scanf("%s",stu[i].name);

for(j=0;j<3;

j++){printf("分?jǐn)?shù)%出”戶1);

scanf("%d",&stu[i].score[j]);

)

printf(n\n");

}

print(stu);

)

學(xué)號(hào):姓名:成績:

54.編寫一個(gè)enter函數(shù),輸入一個(gè)數(shù)組,該數(shù)組中有6個(gè)學(xué)生的數(shù)據(jù)記錄,每個(gè)記錄包括num、

name、score[3],用主函數(shù)輸出這些記錄。

#include<stdio.h>

structstudent

(

intnum⑹;〃書上答案是6,我把它改成5也可以,到底用5好還是6好(按照底下i+l應(yīng)該是6,但為什么5也對(duì))

charname[20]

;intscore[4];

〃書上答案是4,我把它改成3也可以,到底用3好還是4好(按照底下j+1應(yīng)該是4,但為什么3也對(duì))}stu[5];

voidmain()

(

voidprintfstructstudentstu[6]);

intij;

for(i=0;i<5;

i++)

(

printf("請(qǐng)輸入第%d個(gè)學(xué)生的數(shù)據(jù):\n”,i+l);

printff'No.:");

scanf("%d",&stu[i].num);

printf("姓名巧;

scanf("%s",stu[i].name);

for(j=0;j<3;

j++){printf(“分?jǐn)?shù)%出”"1);

scanf("%d",&stu[i].score[j]);

)

printffXn");

}

print(stu);

)

學(xué)號(hào):姓名:成績:

55.編寫一個(gè)函數(shù)getbits,從一個(gè)字中取出某幾位(即該幾位保留原值,其余取0)。函數(shù)調(diào)用

形式:getbits(valueznl,n2)ovalue為字?jǐn)?shù)據(jù),nl為欲取出的起始位,n2為欲取出的結(jié)束位。

main()

{unsingnedinta;

intnl,n2;

printf(/zinputanoctalnumber:");

scanf("%o〃,&a);

printf(/zinputnl,n2:〃);

scanf("%d,%d〃,&nL&n2);

printf("result:%o\n”,getbits(a,nl-Ln2));

)

getbits(unsignedvalue,intnl,n2)

{unsignedintz;

z=~0;

z=(z?nl)&(z?(16-n2);

return(z);;

}學(xué)號(hào):姓名:成績:

56.寫一個(gè)函數(shù),對(duì)一個(gè)16位的二進(jìn)制數(shù)取出它的奇數(shù)位(即從左邊開始的第1、3、...15位)。

#include<iostream>

#include<string>

usingnamespacestd;

stringextracter(intnumber)

stringbit;

for(inti=0;i<16;i+=2)

(

//1:0000,0000,0000,0001

if((1?i)&number)

bit.insert(0,"1M);

else

bit.insert(0,"0");

)

returnbit;

)

intmain()

{

stringbit;

//38566:1001,0110,1010,0110

//打出:0110,0010

bit=extracter(38566);

cout?bit;

}

學(xué)號(hào):姓名:成績:

57.寫一個(gè)函數(shù),對(duì)一個(gè)16位的二進(jìn)制數(shù)取出它的偶數(shù)位(即從左邊開始的第0、2、...14位)。

#include<stdio.h>

intmainO

{unsignedgetbits(unsigned);

unsignedinta;

printf(/z\nlnputanoctalnumber:*);

scanf&a);

printf("resultgetbits(a));

)

unsignedgetbits(unsignedvalue)

{inti,j,m,n;

unsignedintz,a,q;

z=0;

for(i=l;i<=15;i++)

{q=l;

for(j=l;j<=(16-i-l)/2;j++)

q=q*2;

a=value?(16~2);

a=a?15;

a=a?15;

z=z+a*q;

}

return(z);

)

58.設(shè)計(jì)一個(gè)函數(shù),使給出一個(gè)數(shù)的原碼,能得到該數(shù)的補(bǔ)碼。

include<stdio.h>

include<stdlib.h>

voidmain()

{

longn=1000;

charbuf[100];

ltoa(n,buf,2);

printf("yuanma:\n%s\n\n",buf);

n=~n+l;

ltoa(n,buf,2);

printf("buma:\n%s\n"zbuf);

)

學(xué)號(hào):姓名:成績:

59.從鍵盤輸入一個(gè)字符串,將其中小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個(gè)磁盤文件中

保存。

#include<stdio.h>

voidmain()

(

charc;

printf(inputzifuchuan:\n");

while(c=getchar()!=,\n,)

{if((c>=/a,)&&(c<=/z,))

c=c+32;

else

c=c;

)

printf("%c\n",c);

)

學(xué)號(hào):姓名:成績:

60.從鍵盤輸入一組學(xué)生m門功課的成績和學(xué)號(hào),然后輸出到一個(gè)磁盤文件中保存。

#include<stdio.h>

#include<stdlib.h>

#defineN2

#defineM2

structstudent{intID;

charname[20];

floatscore[M];

floatave;}stu[N];

voidmain()

(

FILE*fp=NULL;

intij;

charch;

floatsum=0.0;

',

fp=fopen("stud.txt",wb");

if(fp==NULL)

(

printf("Cannotopenthisfile\n");

exit(0);

)

for(i=0;i<N;i-H-)

{printf("PleaseEnter%dthstudent'sNameIDScoresof%dThis:\n",i+l,M);scanf("%s%d

H

/stu[i].name,&stu[i].ID);

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

{scanf("%f",&stu[i].score[j]);

sum+=stu[i].score[j];

)

ch=getchar();

stu[i].ave=sum/M;/**/

fwrite(&stu[i],sizeof(structstudent),l,fp);

)

fclose(fp);

fp=fopen("stud.txt"/"rb");

if(fp==NULL)

{printf("Cannotopenthisfile\n");

exit(0);)

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

{fread(&stu[i]/sizeof(structstudent),l,fp);

printf("%-10d%?10s,stu[i].ID,stu[i].name);

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

{

printf("%6.2f”,stu[i].score[j]);

)

printf(“%6.2f\n“,stu[i].ave);

}

fclose(fp);

}學(xué)號(hào):姓名:成績:

61.寫一個(gè)函數(shù),使一個(gè)二進(jìn)制整數(shù)的低4位改為L

intfun(intn)

{

inti=0,x[100],number=0,num=l;

Do

(

if(n%2==0)

{x[i]=0;

n=n/2;

)

else

{x[i]=l;

n=(n-l)/2;

)

i++;

}

while(n!=0);

forfintj=(i-l);

j>=6;

j-)

{if(i<=6)break;

if(x[j]==l){for(intk=0;

k<(i-l);k++)num=num*2;

number=number+num;

)

)

returnnumber;

}學(xué)號(hào):姓名:成績:

62.寫一個(gè)函數(shù),使一個(gè)二進(jìn)制整數(shù)的低4位翻轉(zhuǎn)。

學(xué)號(hào):姓名:成績:

63.編寫一個(gè)C語言程序,測試下列各表達(dá)式:i,j,i++J++,++i,++j,i+++++j

voidmain()

{inti=lintj=l;

,,,

printf('i=%d/j=%d\n/i,j);

printf("i+l=%d/j+l=%d\n"zi+1,j+1);

i=l;

j=l;

,

printf('i++=%d/j++=%d\n"zj++,j++);

i=l;

j=l;

printf("++i=%d/++j=%d\n",++i,++j);

學(xué)號(hào):姓名:成績:

64.編寫一個(gè)求0~1000間的全部偶數(shù)之和的程序。

include<stdio.h>

voidmain()

{longi,sum=0;

for(i=0;i<=1000;i+=2)

{sum=sum+i;}

printf("%ld",sum);

)

65.編寫一個(gè)求0~1000間的全部奇數(shù)之和的程序。

include<stdio.h>

voidmain()

{longi,sum=0;

for(i=l;i<=1000;i+=2)

{sum=sum+i;}

printf("%ld",sum);

)

66.若有一頭小母牛,從第四年開始每年生一頭母牛,第n年時(shí)有多少頭母牛。

intmain()

intn;

longa=1,b=1,c=1,temp;

cout?"pleaseinputavalue:\n";

cin?n;

for(inti=4;iv=n;i++)

(

temp=a+c;a=b;b=c;c=temp;

)

cout?c?endl;

return0;

)

學(xué)號(hào):姓名:成績:

67.有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問大、中、小馬各

多少?

include<stdio.h>

voidmain()

{inti,j,k;

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

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

{k=100-i-j;

if(k%2==0)

if(i*3+j*2+k/2==100)

printf("\ni=%d,j=%d,k=%d",i,j,k);

)

)

68.用100元錢,買100只雞,公雞5元1只,母雞3元1只,小雞1元3只,問公雞、母雞、

小雞各多少?

^include<stdio.h>

voidmain()

{inti,j,k;

for(i=l;i<20;i++)

for(j=l;j<33;j++)

{k=100-i-j;

if(k%3==0)

if(i*5+j*3+k/3==100)

printf("\ni=%dj=%d;k=%d",i,j,k);

)

)

69.36塊磚,36人搬,男人搬3塊,女人搬2塊,小孩2人抬1塊,男人、女人、小孩各若干?

#include<stdio.h>

voidmain()

{inti,j,k;

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

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

{k=36-i-j;

if(k%2==0)

if(i*3+j*2+k/2==36)

printf("\ni=%d,j=%d,k=%d",i,j,k);

)

)

70.有一行字符,要求將每個(gè)單詞的第一個(gè)字母改成大寫字母。

include<stdio.h>

voidmain()

{chars[12];

printf("Pleaseastring:");

gets(s);

s[0]=s[0]-32;

puts(s);

)

71.寫一個(gè)函數(shù),將一個(gè)一維數(shù)組的頭尾顛倒。

#include<stdio.h>

intdz(inta[5])

{inti,j,temp;

for(i=l;i<=5;i++)

for(j=5;j>=l;j++)

a[i]=temp;

a[i]=a[j];

temp=a[j];

returna[j];

)

voidmain()

{ints[5];

inti;

for(i=l;i<=5;i++)

scanf("%d",&s[i]);

printf("%d",dz(s));

)

72.求1+21+2?+…+263

#include<stdio.h>

#include<math.h>

voidmain()

{longs=0,i;

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

{s=s+pow(2,i);}

primf(“%ld”,s);

)

73.有n個(gè)國家的名字,要求按字母先后順序排列輸出。

#include<stdio.h>

#include<string.h>

voidmain()

(

charname[5][15],temp[15];

inti,j;

printf(〃請(qǐng)輸入國家名:\n〃);

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

gets(name[i]);

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

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

if(strcmp(name[i],name[j+1])>0)

(

strcpy(temp,name[j]);

strcpy(name[j],nameEj+1]);

strcpy(name[j+1],temp);

printf("國家名排序后為:\n");

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

printf(〃/s\n〃,name[i]);

)

學(xué)號(hào):姓名:成績:

74.設(shè)計(jì)一個(gè)函數(shù),將一個(gè)字符串中的字母全部變成大寫。

Sinclude<stdio.h>

include<stdlib.h>

voidToLower(char*input)

(

char*p;

p=input;

while(*p!='\0')

(

if(*p>=97&&*p<=122)

(

*p=*p-32;

)

P++;

)

)

voidmain()

(

charinput[1024];

printf("Plesaeinputastring:");

scanf("%s”,input);

ToLower(input);

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

{

printf(“%c,input[i]);

}

)

75.設(shè)計(jì)一個(gè)函數(shù),將一個(gè)字符串中的字母全部變成小寫。

#include<stdio.h>

include<stdlib.h>

voidToLower(char*input)

char*p;

p=input;

while(*p!='\O')

|

if(*p>=65&&*p<=90)

(

*p=*p+32;

)

P++;

)

)

voidmain()

{

charinput[1024];

printf("Plesaeinputastring:");

scanf("%s",input);

ToLower(input);

for(inti=O;input[i]!='\0';i++)

(

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

)

)

76.編寫一個(gè)函數(shù),將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)。

#include<stdio.h>

intfun(char*s)

{

intretvahO;

intn=l;

if(*s=='-')

(

n=-l;

s++;

)

while(*s!='\0')

(

retval=retval*10+(*s-'0');

s++;

)

return(n*retval);

)

main()

{chars[6];

longn;

printf("Enterastring:\n");

gets(s);

n=fun(s);

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

)

77.編寫一個(gè)函數(shù),將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)實(shí)數(shù)。

#include<stdio.h>

intatoi(chardigitStr[10])

(

inta,b,c;

for(a=0/b=0;a<10;a++){if(digitStr[a]=='\n')break;c=digitStr[a];b=b+c;}

return(b);

)

voidmain()

{

chars[10];

inta,b;

for(a=0;a<10;a++){scanf("%c",&s[a]);if(s[a]=='\n')break;}

b=atoi(s);

printf("%d\n"zb);

)

學(xué)號(hào):姓名:成績:

78.有一個(gè)3行4列的矩陣,編寫程序求出每行中值最大的元素,并輸出其值和行列坐標(biāo)。

#include<iostream.h>classCString{int**data;introws,cols;public:CString(){data=NULL;rows=0;cols=0;}

CString(intmjntn){intj;rows=m;cols=n;data=newint*[m];for(inti=0;i<m;i++)data[i]=newint[n];

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論