




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題習題#1填空題\ndoxu(3)%c,%c\ncl-32,c2-32printf(*%d,%d,%d,%d\n*,cl,c2,cl-32,c2-32);程序閱讀20097b68,82a=3b=812.50.7083e2Aa(5)5767.856400,-789.124023A,65,101,411234567,4553207,12(168765535,177777,ffff,65535COMPUTER,COMTOC\o"1-5"\h\z1610不完全等價,第一段程序運行結朿,sum-5050,i=101o第二段程序運行結朿sum=5050,i=1008*#*#*#$13,5,32101021編程題(D)已知有函數:x+3(x>0)y=- 0(x=0).X2-1(x<0)輸入x的值,輸出y。^include<stdio.h>intmain()(intx,y;scanf(”%d”,&x);if(x>0)y=x+3;elseif(x==O)y=0;elsey=x*x-l;printf("%d\n”,y);return0;)由鍵盤輸入三個整數,輸出其中最大的數。^include<stdio.h>intmain(){intx,y,z,max;scanf(伐d,%d,%d",&x,&y,&z);max=x;if(max<y)max=y;if(max<z)max=z;printf("%d\n",max);return0;}由鍵盤輸入三個整數,按由小到大的順序輸出。^include<stdio.h>intmain()(inta,b,c,t;scanf(“%d,%d,%d&a,&b,&c);if(a>b)(t=a;a=b;b=t;)if(a>c)(t=a;a=c;c=t;)if(b>c)(t=b;b=c;c=t;}printf("%d,%d,強d\n",a,b,c);return0;}t=a;a=c;c=t;)if(b>c)(t=b;b=c;c=t;printf("%d,%d,%d\n",a,b,c);return0:由鍵盤輸入三角形的三個邊a,b,c,計算并打印三角形的面積s^include<stdio.h>^include<math.h>intmain()(doublea,b,c,t,s;scanf%lf,%lf",&a,&b,&c);if(a>0&&b>0&&c>0)if(a+b>c&&a+c>b&&b+c>a)(t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t~c));printf(*s=%.21f\n”,s);elseprintf("輸入的數據不滿足三角形規則\n"):return0;}由鍵盤輸入一個大寫字母,要求改用小寫字母輸出。^include<stdio.h>intmain()(charc;c=getchar();if(c>='A'&&c<=Z*)c=c+32;printf(”小寫字母為%c\n",c);return0;}由鍵盤輸入一個三位整數,將它反向輸岀。例如輸入123,輸岀321。^include<stdio.h>intmain(){intx;inta,b,c;scanf&x);a=x%10;b=x/10%10;c=x/100%10;printfa*100+b*10+c);return0;}由鍵盤輸入a,b,c,求ax2+bx+c=0方程的根。^include<stdio.h>tJinclude<math.h>intmainO{doub1exl,x2;doublea,b,c,d;scanf("紀f, &b,&c);d=b*b-4*a*c;if(a==0)(xl=-c/b;printf(*方程只有一個解,為%.31f\n”,xl);)elseif(d==0){xl=x2=-b/(2*a);printfC方程兩根相等,為%.31f\n",xl);Ielseif(d>0){xl=(-b+sqrt(d))/(2*a):x2=(-b-sqrt(d))/(2*a);printf(*方程兩根為:%.31f,%.31f\n*,xl,x2);elseprintfC方程無解\n");return0;}判斷某一年是否是閏年。^include<stdio.h>intmainO(intyear;scanf("%d”,fiyear);if(year%4==0&&year%100!=0||year%400==0)printf("yes\n");elseprintf(*now);return0;}由鍵盤輸入兩個正整數m和n,求其最大公約數和最小公倍數。^include<stdio.h>intmainO(intm,n,t,r;intx;scanf("%d,%d”,&m,&n):x=m*n;if(m<n)(t=m;m=n;n=t:r=m%n;while(r!=O){〃輾轉相除法m=n;n=r;r=m%n;)printfC最大公約數煩d,最小公倍數為%d\n”,n,x/n);return0;}給一百分制成績,要求輸出成績等級'A'、'B'、'C'、'D'、'E'。90分以上為'A',80-89分為'B',70-79分為C,60-69分為'D',60分以下為'E'。方法一^include<stdio.h>intmain()(intscore;scanf("%d”,&score);if(score>=90&&score<=100)printf(*A\n*);elseif(score>=80&&score<90)printf(*B\n*);elseif(score>=70&&score<80)printf("C\n");elseif(score>=60&&score<70)printf(*D\nw):elseif(score<60)printf(*E\n*);elseprintf(”輸入錯誤\n");return0;}方法二:^include<stdio.h>intmain()(intscore;scanf&score);switch(score/10){case10:case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;case5:case4:case3:case2:case1:caseO:printf("E\n");break;default:printf("輸入錯誤\n");}return0;}輸入某年某月某日,判斷這一天是這一年的第幾天?律include<stdio.h>intmainO(intyear,month,day,days;scanf(*%d-%d-%dw,&year,&month,&day);switch(month)(case1:days=day;break;case2:days=31+day:break:case3:days=31+28+day;break;case4:days=31+28+31+day:break;case5:days=31+28+31+30+day;break:case6:days=31+28+31+30+31+day;break;case7:days=31+28+31+30+31+30+day:break:case8:days=31+28+31+30+31+30+31+day;break;case9:days=31+28+31+30+31+30+31+31+day;break;case10:days=31+28+31+30+31+30+31+31+30+day;break:case11:days=31+28+31+30+31+30+31+31+30+31+day;break:case12:days=31+28+31+30+31+30+31+31+30+31+30+day;break;default:printf(*輸入錯誤\n");}if(year%4==0&&yeai^b100!=0||year%400==0){if(month>=3)days++;}printf(*是一年的第%d天\n*,days);return0;)輸岀所有的3位水仙花數。所謂水仙花數是指所有位的數字的立方之和等于該數^include<stdio.h>intmain()(inta,b,c;for(inti=100;i<1000;i++)(a=i%10;b=i/10%10;c=i/100%10;if(a*a*a+b*b*b+c*c*c==i)printf(*%d",i);return0;由1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?^include<stdio.h>intmain()(inta,b,c;intn=0;〃用來表示數據個數for(a=l;a<=4;a++){for(b=l;b<=4;b++){for(c=l;c<=4;c++)(if(a!=b&&a!=c&&b!=c){n++;printf("%d",a*100+b*10+c);printf("\n一共%d個\n",n);return0;}計算Fibonacci數列前20項的和。^include<stdio.h>intmain()(intf,fl,f2;ints:fl=f2=l;s=2;for(inti=3;i<=20;i++){f=fl+f2;s=s+f;fl=f2;f2=f;)printf(*前20項的和為%d\n",s);return0;)打魚還是曬網^include<stdio.h>intmain(){intyear,month,day,days;intsum=0;scanf("%&year,&month,&day);〃先統計輸入的日期和2022年相差多少個完整年,中間有多少個閏年。intn=0;for(inti=2022;i<year;i++){if(year%4==0&&year%l00!=0 year%400==0)n++;)sum=(year-2022)*365+n;switch(month){case1:days=day:break;case2:days=31+day;break:case3:days=31+28+day;break:case4:days=31+28+31+day;break:case5:days=31+28+31+30+day;break;case6:days=31+28+31+30+31+day;break;case7:days=31+28+31+30+31+30+day;break;case8:days=31+28+31+30+31+30+31+day;break;case9:days=31+28+31+30+31+30+31+31+day;break:case10:days=31+28+31+30+31+30+31+31+30+day;break;case11:days=31+28+31+30+31+30+31+31+30+31+day;break;case12:days=31+28+31+30+31+30+31+31+30+31+30+day;break;default:printfC輸入錯誤\n");if(year%4==0&&year%100!=011year%400==0){if(month>=3)days++;days=days+sum;print"—共%d天\n",days);if(days%5==l||days%5=2)printf("打漁\n");elseprintfC曬網\n");return0;習題41.選擇題D (2)B (3)C(4)C(5) B(6)B(7)B (8)C (9)A (10)A (11)D(12)C2.程序閱讀題(1) 24 (2) 45(5) 30 (6) 92(9) 44 (10) 543.編程題(3)3715 (4)75310246(7)1,6,5,7,(8)1,4,3,2,(11)72 (12)2011(13)6(1)參考程序defineN3tidefineM5^include<stdio.h>intmainO{inta[N][M]=(1,3,5,7,9,2,4,6,8,10,3,5,8,7,6);inti,j,s;for(i=0;i〈N;i++)(s=0;for(j=0;j<M;j++)s+=a[i][j]:printf("第%d行的和為:%d\n",i,s);)for(j=0;j<M;j++){s=0;for(i=0;i<N;i++)s+=a[i][j];printfC第%d列的和為:%d\n",j,s);)return0;}參考程序^defineN10tJinclude<stdio.h>intmainO(inta[N]={l,2,3,4,5,6,7,8,9,10};inti,t,k,n;printfC請輸入后移的位數:”);scanf(”%d",&n);printfC移動前:”);for(i=0;i〈N;i++)printf(*%d”,a[i]);printf("\n");for(k=0;k<n;k++){t=a[N-l]:for(i=N-l;i>0;i—)a[i]=a[i-l]:a[O]=t;)printfC移動后:”);for(i=0;i〈N;i++)printf(*%d”,a[i]);printf("\n");return0;編程實現:輸出Fibonacci數列前20項及計算前20項的和。(使用數組)^defineN20^include<stdio.h>intmain()(inta[N]={l,l};inti;for(i=2;i<N;i++)a[i]=a[i-l]+a[i-2];printf("Fibonacci數列前20項為:\n*);for(i=0;i<N;i++)printf(*%d”,a[i]);printf(*\n*);return0;}編程實現:輸入一個十進制正整數,將其轉換成十六進制后輸出。(不要用%x直接輸出)^defineN8^include<stdio.h>intmain()(chara[N]={0};inti,n;printfC請輸入一個正整數:\n");scanf("%d”,&n);i=0;while(n>0){a[i-H-]=n%16<10?'0*+n%16:,A*+n%16-10;n/=16;}printfC轉換為十六進制是:\n");for(i=N-l;i>=0;i—)if(a[i]!=0)putchar(a[i]);printf(*\n*);return0;)編程實現:有n個整數,使其前而各數順序向后移m個位置,最后m個數變成最前面的m個數。^defineN100^include<stdio.h>intmain()(inta[N];inti,k,t,n,m;printff請輸入整數的個數(<100):");scanf(*%(!*,&n);for(i=0;i<n;i++)a[i]=i+l;printfC請輸入后移的位數:勺;scanf&m);printf(*移動前:”);for(i=0;i<n;i++)printf("%d”,a[i]);printf(*\n*);for(k=0;k<m;k++)(t=a[n-l];for(i=n-l;i>0;i—)a[i]=a[i-l];a[O]=t;}printfC移動后:”);for(i=0;i<n;i++)printf(w%da[i]);printf(*\n*);return0;)編程實現:有n個人圍成一圏,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。^defineN100tJinclude<stdio.h>intmain()(inta[N]={0};inti,k,n,m;printfC請輸入游戲的人數(<100):”);scanf("%d”,&n);for(i=0;i<n;i++)a[i]=i+l;i=O;k=O;m=n;while(m>l)(if(a[i]>O)k++;if(k==3)(k=0;a[i]=0;m—;}i=(i+l)%n;}for(i=0;i<n;i++)if(a[i]>0)printfC最后的勝利者是:%d\nw,a[i]):return0;(7)編程實現:從鍵盤輸入10個字符串,對其進行從小到大排序并輸出。defineN10^include<stdio.h>^include<string.h>intmainO{chars[N][100],t[100];inti,j,k;printff請輸入10個字符串:\n");for(i=0;i<N;i++)gets(s[i]);for(i=0;i<N-l;i++)k=i;for(j=i+l;j<N;j++)if(strcmp(s[k],s[j])>0)k=j;strcpy(t,s[i]);strcpy(s[i],s[k]);strcpy(s[k],t);printfC排序的結果為:\n");for(i=0;i<N;i++)puts(s[i]);return0;return習題51.選擇題:(1)D(2)C(3)D(4)C(5)A(6)B(7)B(8)D(9)B(10)B(1DC(12)A(13)C(14)C(15)C(16)C(17)A(18)B填空題指針(或間接訪問),取地址⑵4,a⑵[0]*(p+5)abcde,a6,a[3]max=&a[i]min=&a[i]*mina,b,cmax=*bmax=*c⑻++*p=*q++(9)elset[2*j+l]程序閱讀題a=3,b=55,3TOC\o"1-5"\h\z569742編程題(用指針完成)輸入一行字符,將其中的每個字符從小到大排列后輸出。^include<stdio.h>^include<string.h>intmain()(charc[100],*q,t,*p;inti,j;q=c;printfC請輸入需排序的字符串\n〃);scanfq);for(i=0;i<strlen(q)-l;i++){P=c+i;for(j=i+l:j<strlen(q);j++)if(*p>*(q+j))P=q+j;t=*p;*p=*(q+i);*(q+i)=t;printf(*%s\n*,q);return0;)編一個程序,輸入10個整數存入一維數組中,在按逆序重新存放后輸出。^include<stdio.h>intmain()(inta[10],i,j,t,*p,*q:printfC請輸入10個數\n");P=a;for(i=0;i<10;i++)scanfp++);for(p=a,q=&a[9]:p<q:p++,q—) {t=*p;*p=*q;*q=t;P=a;for(i=0;i<10;i++)printf("%5d",*p++);printf(*\n*);return0;)編一個程序,輸入一個4X4矩陣,輸出轉置后的矩陣。^include<stdio.h>intmain()(inta[4][4],b[4][4],i,j,k;int(*p)[4],(*q)⑷;p=a;q=b;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d”,*(p+i)+j);printf(*原矩陣為:\n");for(i=0;i<4;i++)(for(j=0;j<4;j++)printf("%5d”,*(*(p+i)+j));printf("\n");)for(i=0;i<4;i++)for(j=0;j〈4;j++)*(*(q+j)+i)=*(*(p+i)+j);printfC轉置后的矩陣為:\n");for(i=0;i<4;i++)(for(j=0;j<4;j++)printf("炳d”,*(*(q+i)+j));printf(*\n*);}return0;}輸入10個整數,將其中最大數與最后一個數交換,最小數與第一個數交換。^include<stdio.h>intmainO(inta[10],i,j,t,*p;int*max,*min;printfC請輸入10個數\n");for(i=0;i<10;i++)scanfp++);p=a;max=a;for(i=0;i<10;i++) (if(*max<*(p+i))max=p+i;)t=*max;*max=*(p+9);*(p+9)=t;min=a;for(i=0;i<10;i++) {if(*min>*(p+i))min=p+i;}t=*min;*min=*p;*p=t;p=a;for(i=0;i<10;i++)printf("%5d”,*p++);printf("\n");return0;習題6選擇題(1)B(2)CD(7)A填空題(1)選擇題(1)B(2)CD(7)A填空題(1)函數(4)值傳遞i=0閱讀程序,(3)C(4)D(8)B(9)C(2)形式地址傳遞b[i+l](8)寫出運行結果。(5)C(10)C實際(3)遞歸調用(5)auto(6)externresult=80TOC\o"1-5"\h\z16102 4 6 8 10a=36,b=16,c=194.編程題。(1)參考代碼^include<stdio.h>intprime(intn)for(i=2;i<n;i++){if(n%i==O){break;})if(i==n)return1:elsereturn0;}intmain(){intm;printfC請輸入一個整數:");scanf("%d”,&m);if(prime(m)){printf(w%disprime",m);}else{printf("%disnotprime",m);)return0;)參考代碼^include<stdio.h>〃寫一個函數,實現3X3矩陣的轉置(即行列互換)voidtranspose(inta[][3]){inti,j,b[3][3]:for(i=0;i<3;i++){for(j=0;j<3;j++){b[i][j]=a[j][i];printf(飛d\t”,b[i][j]);printf(*\n*);intmainOinta[][3]={{1,2,3),{4,5,6},{7,8,9}};transpose(a);return0;}參考代碼^include<stdio.h>^include<stdio.h>〃用遞歸法將任意一個整數m轉換為字符串。例如:輸入7768,應輸出字符串”7768"voidtostring(intm,char*s)(inti=0,j;chart;while(m!=0)(s[i]=m%10+'O';i++;m=m/10;)for(j=i-l;j>=(i-l)/2J-)(t=s[j];s[j]=s[i-l-j];s[i-l-j]=t;)s[i]='\0';}intmainO(chars[100];intm;scanf("%d",&m);tostring(m,s);printfs);return0;}參考代碼tJinclude<stdio.h>^include<string.h>〃實現16進制數轉換為10進制數intconvert(char*s){char*p;inta[20],i=0,j,t=0;P=s;while(*p!=,\0'){switch(*p)case'a':a[i]10;break;case'b':a[i]11:break;case'c':a[i]12;break;case'd':a[i]13;break;case'e:a[i]14;break;case'f:a[i]15;break;case'O':case'1':case'2'case'3':case'4':case'5'case'6':case'7':case'8'case'9':a[i]=*p-48;break;It=t*16+a[i];P++;i++;Ireturnt:}intmain()(chara[20]:gets(a);printf(”%d",convert(a));return0;)參考代碼^include<stdio.h>〃求1!+2!+3!+ +6!的和。longfact(intn){inti;if(n==l)return1:elsereturnn*fact(n-1);}intmain()(longresult=0;inti,n=6;for(i=l;i<=n;i++)result=result+fact(i);printf(*%ldw,result):return0;參考代碼^include<stdio.h>intack(intm,intn){if(m==0)returnn+1;if(m!=0&&n==0)returnack(m-1,1):if(m!=0&&n!=0)returnack(m-l,ack(m,n~l)):}intmainO(intm,n;scanf("%d,%d”,&m,&n);printf(”%d”,ack(m,n));return0;}習題7選擇題(1)C(2)B(3)D(4)B(5)C(6)D(7)C(8)D定義一個宏,用于判斷任意一年是否是閏年?defineLEAP_YEAR(y)(((y)%400==0||((y)%4=0&&(y)%100!=0))?1:0)定義一個交換兩個參數值的宏,并寫出程序,輸入三個數,然后利用宏按從大到小順序排列輸出。defineSWAP(a,b){intt=a;a=b;b=t;}intmainO(inta,b,c;scanf(d%d%d”,&a,&b,&c);if(a<b)SWAP(a,b):if(a<c)SWAP(a,c);if(b<c)SWAP(b,c);printf(“%d%d%d\n”,a,b,c);return0;)定義一組用于輸出的宏,并把它存入一個文件中,然后設計一個程序,驗證定義的宏的正確性。第一個文件my.h:^include<stdio.h>
Sdefine#define^define^definefidefineK)XJK)/\7,csDF/(X/l\/l\/f\Sdefine#define^define^definefidefineK)XJK)/\7,csDF/(X/l\/l\/f\csDFprintf("\n");〃換行printf("%c”,C);//輸出字符printf("%s”,S);//輸出字符串printf("%d",D);//輸出整型變量printf("%f",F);//輸出實型變量第二個文件my.c:^include"my.h”〃兩個文件在同一路徑下intmainO(PD(2);PCC+,);PD⑶;PCg);PD(2+3);NL;PF(2.8);PCC+');PF(3.4);PCg);PF(2.8+3.4);NL;PS("TestOK");NL;return0;}5.利用條件編譯方法編寫程序。輸入一行字符,使之能將字母全改為大寫輸出或全改為小寫輸出。^include<stdio.h>ffdefineLOWERCASE //小寫輸出〃#defineUPPERCASE //大寫輸出intmain()(inti=0;chars[50];gets(s);ttifdefLOWERCASEwhile(s[i]!=0){putchar(s[i]>-A'&&s[i]<=,T?s[i]+32:s[i]):i++;ttelseitifdefUPPERCASEwhile(s[i]!=0)[putchar(s[i]>-a&&s[i]<=,z*?s[i]-32:s[i]):i++;Iitendif#endifreturn0;}6.程序1:value=5.OOOOOOormat value=5.OOOOOOormatvalue=3.OOOOOOormat value=8.OOOOOOormat程序2:12程序3:9程序4:15用條件編譯方法實現以下的程序功能。在傳輸電報時,有時需要加密技術。此時要求在輸入一行電報文字時,有兩種輸出方式可以選中。一種是將字母轉變為其下下個字母(如'a,變為'c,,勺,變成'd,……,tyf變為'a','z'變成'b',其他字符不變)。另一種為原文輸出。利用define命令來控制是否需要譯成密碼。例如:tidefineCODE1則輸出密碼。tidefineCODE0則不翻譯成密碼,按原文輸出。tidefineCODE0//0為原文輸出,1為加密輸出^include<stdio.h>>intmain(){inti=0;chars[50];gets(s);ttifCODEwhile(s[i]!=0)(putchar('a'+(s[i]-'a'+2)%26);i++;)ttelseputs(s);
#endifreturn0;習題81.選擇題:(1)C(2)D(3)#endifreturn0;習題81.選擇題:(1)C(2)D(3)C(4)B(5)D(7)A(6)C2.程序閱讀題:(1)4 (2)lily,21(8)B(9)C(10)D(3)50 (4)sum=63有10名職工,每個職工包括姓名、基本工資、補貼和水電費。計算每個職工的實發工資并輸出。#include<stdio.h>〃使用常量LEN表示員工的數量ffdefineLEN10structEmployee(charname[20];//姓名doublesalary;〃基本工資doubleallowance;〃補貼doubleotherMoney;//水電費doubleallSalary;〃實發工資);intmain()(〃定義職工數組并初始化賦值structEmployeeemployees[LEN]=(("lily",2500,320,210},("lucy",2500,400,210},{"tom”,2800,320,210},{"zhangsan",2600,400,210},{"wangwu",3500,320,210},{"lisi",4500,400,210},("lisan",4000,320,210),("luwen",1800,400,210},{"wangming",3800,320,210},{"wangmingzhe”,4200,400,210});inti;for(i=0;i<LEN;i++)(employees[i].allSalary=employees[i].salary+employees[i].allowance+employees[i].otherMoney;printf("員工%s的實發工資為%.2lf\n",employees[i].name,employees[i].allSalary);return0;員工lily白〕M技工資為3030.0。懾工lucy由實1103110.00眞工t。航讀慕滅33我伽民工zhangsan的頭發工資為3210.00民工wangwi啲實發工資為4030.00便工lis価瑟工資為5110.00冒工lisan的頭發工資為4530.冊同工luwen的實發工資>]2410.00p.TwangmingfeSZMT^^4330.00員工vangmingzhe的頭發工資為4810.00processexitedafter0.2874secondswithreturnualue0青按任意槌繼續..?有5名學生,每個學生包括學號、姓名和成績,要求按成績遞増排序并輸出。學生信息的輸入和輸出在主函數內實現。按成績遞増排序在sortjncr函數中實現。#defineLEN5typedefstructStudent(charsno[20];〃學號charname[20];//姓名doublescore;〃成績}STU;〃根據成績遞增排序voidsort_incr(STUstus[])(inti,j;for(i=0;i<LEN-l;i++)for(j=i+l;j<LEN;j++)(if(stus[i].score>stus[j].score)(STUtemp=stus[i];stus[i]=stus[j];stus[j]=temp;intmain()(STUstus(LEN);inti;for(i=0;i<LEN;i++)(printf("請輸入第%《個學生的學號,姓名和成績,每個數據之間以空格分隔\n",i+l);scanf("%s%s%lf",stus[i].sno,stus[i].name,&stus[i].score);sortjncr(stus);//調用排序函數
prints**********************學生信息如下:*****************\刊);for(i=0;i<LEN;i++)(printf("%s,%s,%.llf\n",stus[i].sno,stus[i].name,stus[i].score);return0;請輸入第1個學生的學號.姓名和成績,每個敖據之間以至格分隔zhangsan98請輸入第2個學生的學號,lisi90請輸入第3個學生的學號,wangwu68請輸入第4個學生的學號,wuhan請輸入第1個學生的學號.姓名和成績,每個敖據之間以至格分隔zhangsan98請輸入第2個學生的學號,lisi90請輸入第3個學生的學號,wangwu68請輸入第4個學生的學號,wuhan80清輸入第5個學生的學號,chenyi78姓名和成績,姓名和成績,姓名和成績,姓名和成績,每個數據之間以空格分隔每個數據之間以空格分隔每個數據之間以空格分隔每個數據之間以空格分隔wangwu,68.02005,chenyi,78.0wuhan,80.02002,lisi,90.02001“zhangsan,98.0學生信息如下:Processexitedafter52.53secondswithreturnvalue0i青按任意鍵繼續...有一批圖書,每本圖書要登記作者姓名、書名、出版社、出版年月、價格等信息,試編寫一個程序完成下列任務:(1) 讀入每本書的信息存入數組中。(2) 輸出價格在20.50元以上的書名。(3) 輸出2000年以后出版的書名和作者名。ffdefineLEN3structdate(intyear;//年intmonth;//月);typedefstructBook{charbname[20];//書名charauthor[20];〃作者姓名charpublisher[20];〃出版社名稱structdatepublishTime;〃出版年月doubleprice;}BOOK;intmain()(BOOKbooks[LEN];//l.讀入每本書的信息存入數組中inti;
printf(”請依次輸入作者、書名、出版社、出版年月、價格等信息,數據之間以空白符分隔\n“);for(i=0;i<LEN;i++){printff"請輸入第%d本書\n”,i+l);scanf("%s%s%s%d年%(1月%lf",books[i].author,books[i].bname,books[i].publisher,&books[i].publishTime.yeac&books[i].publishTime.month,&books[i).price);}〃2.輸出價格在20.50元以上的書名printf("*************價格在20.50元以上的圖書有*************\n");for(i=0;i<LEN;i++)(if(books[i].price>20.5)printff'書名:%s\n",books[i].bname);)IB.輸出2000年以后出版的書名和作者名printf("*************2000年以后出版的圖書有*************\n");for(i=0;i<LEN;i++)(if(books[i].publishTime.year>2000)printf("書名:%s,作者:%s\n",books[i].bname,books[i].author);}return0;犀養艾籍探腎、書名、岀版社、岀版年月、價格等信息,數據之間以空白符分隔1?1重慶岀版社2010年4月32崎籟厶第2本書重慶岀版社2011年3月置逾A第3本書劉尋欣三屬3重慶里版社 安須騒竺賢g價格在20.507L 安須騒竺賢g價格在20.507L以上的圖書有?itsir■.一一…—48***M******M**2000年以后岀版的圖書有書各三體u住童:亳囈軽2干登削慈欣3,作者:文!取月份作為枚舉常量,設一月份的序號為1,二月份的序號為2, 。編寫程序求July的序號并顯示其英文名。ffinclude<stdio.h>intmain()(enummonths{January=l,February,Marcy,April,May,Junejuly,August,September,October,November,December);constchar*monthStrs[]=("January","February","Marcy","April'V'May","June","July","August","September","October","November","December"};enummonthsmonth=July;printf("%d,%s",month,monthStrs[month-l]);return0;JulyProcessexitedafter0.2789secondswithreturnvalue0請按任意鍵繼續...7.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數據域(data)和指針域(next),數據域為整型。請分別編寫函數,在鏈表中查找數據域值最大的結點。由函數返回找到的最大值。由函數返回最大值所在結點的的地址值。typedefstructNode(intdata;structNode*next;}NODE;〃1.鏈表創建函數。功能:創建一個包含頭指針head的鏈表,返回該鏈表的頭指針headNODE*create()(NODE*head,*p,*tail;head=NULL;tail=NULL;inti=0;while(1){p=(NODE*)malloc(sizeof(NODE));printfC1請輸入您想添加的鏈表數據,以-1作為結束\n");scanf("%d",&p->data);if(p->data==-1)(free(p);break;}p->next=NULL;if(i==0)head=p;elsetail->next=p;tail=p;i++;}returnhead;}〃2.鏈表輸出函數。功能:對學鏈表進行遍歷,輸出鏈表中所有值voidprint(NODE*head)(NODE*q;q=head;if(head==NULL)printf("對不起,該鏈表為空表,請先添加信息\n”);else(while(q!=NULL){printf("%d\t",q->data);q=q->next;}printf("\n”);}}〃3.計算最大值函數1。功能:函數返回找到的最大值。intmaxl(NODE*head){NODE*q;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息意識活動方案
- 修車新店開張活動方案
- 俱樂部招人近期活動方案
- 倍耐力銷售活動方案
- 傾聽故事活動方案
- 假期書店閱讀活動方案
- 假期開學儀式活動方案
- 假面酒會活動方案
- 做紅色教育活動方案
- 停車減免營銷活動方案
- 2024年昆明祿勸國有資本投資開發集團有限公司招聘筆試參考題庫含答案解析
- (高清版)TDT 1001-2012 地籍調查規程
- 《高溫熔融金屬吊運安全規程》(AQ7011-2018)
- 全口牙缺失種植方案
- 敏捷項目管理的敏捷團隊文化
- 關于城鄉幼兒園教育差異的調研報告
- 《彈簧設計基礎知識》課件
- 《觀念決定行動》課件
- 廣西南寧市二中2024屆物理高一下期末質量檢測模擬試題含解析
- 代練接單協議范本
- 《現代漢語》考試復習題庫及答案
評論
0/150
提交評論