![(精選)廣工C語言編程題目Word版_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/65158b03-5281-425a-914f-215e7b27dd52/65158b03-5281-425a-914f-215e7b27dd521.gif)
![(精選)廣工C語言編程題目Word版_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/65158b03-5281-425a-914f-215e7b27dd52/65158b03-5281-425a-914f-215e7b27dd522.gif)
![(精選)廣工C語言編程題目Word版_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/65158b03-5281-425a-914f-215e7b27dd52/65158b03-5281-425a-914f-215e7b27dd523.gif)
![(精選)廣工C語言編程題目Word版_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/65158b03-5281-425a-914f-215e7b27dd52/65158b03-5281-425a-914f-215e7b27dd524.gif)
![(精選)廣工C語言編程題目Word版_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/65158b03-5281-425a-914f-215e7b27dd52/65158b03-5281-425a-914f-215e7b27dd525.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言編程題目1.025 編寫一個C程序,用函數(shù)printf(char *s)輸出以下3行信息:* * Very Good! * 注意:(1)要求精確到每個字符、空格、字母及其大小寫。(2)可多次調(diào)用printf(char *s),每次僅一個字符串參數(shù)。*/void print1()printf("*n");void print2()printf("* Very Good! *n");void main() print1(); print2(); print1();1.055 編寫一個程序,輸入a、b、c三個值,輸出其中最大值。 要求不改變下列給定的程序
2、框架內(nèi)容,填入合適語句,使其成為滿足題目要求的正確程序。*/int max_a(int a,int b,int c)int max=a;if(max<b)max=b;if(max<c)max=c; return max;int max_b(int a,int b,int c)int max=b;if(max<a)max=a;if(max<c)max=c;return max;int max_c(int a,int b,int c)int max=c;if(max<a)max=a;if(max<b)max=b;return max; void main() i
3、nt a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); /max=a>b?a:b; /max=max>c?max:c; /max=a; /if(max<b) max=b; /if(max<c) max=c;printf("max(%d,%d,%d)=%dn",a,b,c,max_a(a,b,c);printf("max(%d,%d,%d)=%dn",a,b,c,max_b(a,b,c);printf("max(%d,%d,%d)=%dn",
4、a,b,c,max_c(a,b,c); 6.022 n是系統(tǒng)給定的外部變量,編寫程序求1到n間的自然數(shù)之和。請定義局部變量s存放求和的結(jié)果,并用下列語句輸出結(jié)果 printf("1+2+.+n=%dn",s);*/void main()int s; /* 請?zhí)砑酉嚓P(guān)說明和語句 */ int i; for(i=1;i<=n;i+) s+=i;printf("1+2+.+n=%dn",s); /* 注意:不要修改此輸出語句 */6.026 n和s是系統(tǒng)給定的外部整型變量(不需要自行定義),編寫程序求1到n之間的奇數(shù)之和,并將結(jié)果存放到s。*/void
5、main()int i; for(i=1;i<=n;i+) if(i%2!=0) s+=i;6.040 m,n和s是系統(tǒng)定義的外部整型變量(不需要自行定義),編寫程序,根據(jù)m的值求滿足1+2+.+n>=m的最小n,并將1+2+.+n的結(jié)果存放到s。例如,若m=50,則n=10,s=55。*/void main()int i; for(i=1;s<m;i+) s+=i; n=i; /* 6.051 n和s是系統(tǒng)給定的外部整型變量(不需要自行定義),編寫程序求1-1/2+1/3-1/4+.1/n,并將結(jié)果存放到s。*/void main() /int sign=1; /float
6、 deno=2.0,term; /s=1.0; /while(deno<=n) / /sign=-sign; /term=sign/deno; /s=s+term; /deno=deno+1; / /printf("%fn",s); int i=1,flag=1; s=0.0; while(i<=n) s+=1.0/i+*flag; flag*=-1; printf("s=%fn",s); int min(int x, int y, int z)/* 返回3個整數(shù)x,y和z中最小的數(shù) */ int t; t=x<y?x:y; retur
7、n(t<z?t:z); /* 8.020 編寫函數(shù),求用1元、5元和10元三種紙幣支付n元錢 共有多少種支付方法? 例如,16元可有6種支付方法: 方法 1 2 3 4 5 6 10元 0 0 0 0 1 1 5元 0 1 2 3 0 1 1元 16 11 6 1 6 1*/int change(int n) int i,j,k; int sum=0; printf("t1元t5元t10元n"); for(i=0;i<=n;i+) for(j=0;j<=n/5;j+) for(k=0;k<=n/10;k+) if(n=(i+5*j+10*k) sum
8、=sum+1; printf("%-d",sum); printf("t%-dt%-dt%-dn",i,j,k); printf("n"); return(sum);/* 8.030 先編寫一個判斷素數(shù)的函數(shù)。再編寫一個函數(shù)將一個 偶數(shù)表示為兩個素數(shù)之和,并返回其中較小的素數(shù)。 注:素數(shù)指只能被1和自身整除的正整數(shù)。規(guī)定0,1不是素數(shù)。 */int prime(int n) /* 判斷素數(shù),如果是素數(shù)返回1,不是素數(shù)則返回0 */ int t; if(n=1) return 0; for(t=2;t<=(n/2);t+) if(
9、n%t=0) return 0; return 1;int f(int i) /* 將偶數(shù)i表示為兩個素數(shù)之和,返回其中較小的素數(shù)*/ int n; for( n=3; n<=i; n+) if(prime(i-n) && prime(n) return n; /* 8.050 編寫函數(shù),將字符串中ASCII碼最小的字符放在第一 個字符位置,其余字符依次往后移。 */void func(char *str)/* 將字符串str中ASCII碼最小的字符放在第一個 */* 字符位置,其余字符依次往后移。 */ int i,j,min; for(min=0,i=1;stri!=
10、'0'i+) if(strmin>stri) min=i; j=strmin; for(i=min-1;i>=0;i-) stri+1=stri; str0=j;/* 8.060 編寫函數(shù)將一個nxn的二維數(shù)組按“次對角線”翻轉(zhuǎn)。 例如:翻轉(zhuǎn)前的數(shù)組 翻轉(zhuǎn)后的數(shù)組 1 2 3 9 6 3 4 5 6 -> 8 5 2 7 8 9 7 4 1 */void invert(char aNN) int i, j,b2020; for(i=0;i<N;i+) for(j=0;j<N;j+) bij=aN-1-jN-1-i; for(i=0;i<N;i
11、+) for(j=0;j<N;j+) aij=bij; return; /* 8.064 編寫函數(shù)將一個NxN的二維數(shù)組“水平”翻轉(zhuǎn)。 例如:翻轉(zhuǎn)前的數(shù)組 翻轉(zhuǎn)后的數(shù)組 1 2 3 7 8 9 4 5 6 -> 4 5 6 7 8 9 1 2 3 */void invertH(char aNN) int i,j; char k; for (i=0;i*2<N;i+) for (j=0;j<N;j+) k=aij; aij=aN-i-1j; aN-i-1j=k; /* 8.067 編寫函數(shù)將一個NxN的二維數(shù)組的周邊元素“順時針”輪轉(zhuǎn)1位。 例如:輪轉(zhuǎn)前的數(shù)組 輪轉(zhuǎn)后的數(shù)
12、組 1 2 3 4 1 2 4 5 6 -> 7 5 3 7 8 9 8 9 6 */void turningClockwise(char aNN) int i,j,row=0,column=0;int tmp,t;int flag=1;printf("原來的數(shù)組:n");for(i=0;i<N;i+)for(j=0;j<N;j+)printf("%5d",aij);printf("n");tmp = a00;a00 = a10;column = 1;while(!(row=0&&column=0)t
13、 = arowcolumn;arowcolumn = tmp;tmp = t;if(flag=1)if(column!=N-1)column +;elseflag+;row+;else if(flag=2)if(row!=N-1)row+;elseflag+;column-;else if(flag=3)if(column!=0)column -;elseflag+;row-;else if(flag=4)if(row!=0)row-;printf("n順時針旋轉(zhuǎn)后的數(shù)組:n");for(i=0;i<N;i+)for(j=0;j<N;j+)printf(&quo
14、t;%5d",aij);printf("n");/* 8.072 編寫函數(shù)將一個NxN的二維數(shù)組a的元素按行向右輪轉(zhuǎn)1位。 例如:輪轉(zhuǎn)前的數(shù)組 輪轉(zhuǎn)后的數(shù)組 1 2 3 3 1 2 4 5 6 -> 6 4 5 7 8 9 9 7 8 */void turningRight(char aNN) int row, col=N-3, tmp; printf("原來的數(shù)組:n"); for(row=0; row<N; row+) for(col=0; col<N; col+) printf("%5d",arowc
15、ol); printf("n"); for (row=0; row<N; row+) tmp = arowN-1; for (col=N-1; col; col-) arowcol = arowcol-1; arowcol = tmp; printf("右移一位后的的數(shù)組:n"); for(row=0; row<N; row+) for(col=0; col<N; col+) printf("%5d",arowcol); printf("n"); printf("n");voi
16、d func(char s, char t, int n) /* 數(shù)組s的前n個元素存放給定的字符序列, 數(shù)組t的前n個元素存放s的逆序列。 注意:數(shù)組的下標(biāo)從0開始。*/ int i; for(i=0;i<n;i+) ti=sn-i-1; ti='0'void func(char *s, char *t) /* s是給定字符串的起始地址, t是求得s的逆串的起始地址*/ int i,n=strlen(s); for(i=0;i<n;i+) *(t+i)=*(s+n-i-1);void func(char *s1, char *s2, int n) int i,j;
17、 char t; for(i=0;i<n;i+) *(s2+i)=*(s1+i); for(j=1;j<n-2;j+) for(i=1;i<=n-2-j;i+) if(*(s2+i)<*(s2+i+1) t=*(s2+i); *(s2+i)=*(s2+i+1); *(s2+i+1)=t; 對字符串除首尾字符外,將其余字符按ASCII碼將序排列void func(char *s1, char *s2) int i,j,n; char t; n=strlen(s1); for(i=0;i<n;i+) *(s2+i)=*(s1+i); for(j=1;j<n-2;
18、j+) for(i=1;i<=n-2-j;i+) if(*(s2+i)<*(s2+i+1) t=*(s2+i); *(s2+i)=*(s2+i+1); *(s2+i+1)=t; char *match(char *s, char c) /* 返回字符在串s中首次出現(xiàn)的位置指針 */while(*s != '0') if(*s = c) return(s); else s+; return(NULL); int month_day(int year, int yearday, int *pmonth, int *pday) /* year是年, yearday是天數(shù),
19、 若year和yearday合理, 則*pmonth和*pday是計算得出的月和日,函數(shù)返回1; 否則,函數(shù)返回0。*/int i,z=0,d112=31,28,31,30,31,30,31,31,30,31,30,31,d212=31,29,31,30,31,30,31,31,30,31,30,31; *pmonth=1; if(year%4=0&&year%100!=0|year%400=0) if(1<=year&&1<=yearday&&yearday<=366)z=1;if(yearday-31)>0) year
20、day=yearday-31; for(i=1;i<=11;i+)if(yearday/d2i=0) *pmonth=*pmonth+1; break; else *pmonth=*pmonth+1; if(yearday-d2i>0) yearday=yearday-d2i; else break; *pday=yearday;else if(1<=year&&1<=yearday&&yearday<=365) z=1; if(yearday-31)>0) yearday=yearday-31; for(i=1;i<=
21、11;i+)if(yearday/d1i=0&&yearday!=0) *pmonth=*pmonth+1; break; else *pmonth=*pmonth+1; if(yearday-d1i!=0) yearday=yearday-d1i; else break; *pday=yearday;return(z);long func(char *s) /* s是一個數(shù)字字符串的地址,函數(shù)返回值為由s含有的數(shù)字字符轉(zhuǎn)換得到的數(shù)(包含正負(fù)數(shù)情況) */ int i,j,k=0,a=1; long n=0; for(j=0;*(s+j)!='0'j+) for
22、(i=j-1;i>=0;i-) if(*(s+i)>='0'&&*(s+i)<='9') n=n+(*(s+i)-'0')*a; a=a*10; if(*s='-') n=n*(-1); return n;int findmax(int s, int n) /* 返回s中n(>0)個整數(shù)的最大值。 注意:要求在函數(shù)中采用指針(而不是下標(biāo))來處理數(shù)組元素。*/ int i,max; max=*s; for(i=0;i<n;i+) if(*(s+i)>max) max=*(s+i);
23、 return max; int min3adj(int *s, int n) /* 數(shù)組s含n(>=3)個整數(shù), 返回在s中相鄰三個數(shù)的和中的最小值。*/int i,j; int sum20=0;int min = 0; for(i=0;i<n-2;i+) for(j=0;j<3;j+ ) sumi += si+j; sumi+1='0' min = sum0; for(i=0;i<n-2;i+) if(sumi<min) min = sumi; return min;/* 11.023 數(shù)組s存儲了n個人的信息。寫一函數(shù),求這n個人中年齡最大(
24、即出生日期最小)者的姓名。 */char *oldest(student s, int n) int i; struct student *p; p=&s0; for(i=1;i<n;i+) if(si.birth.year<(*p).birth.year) p=&si; continue; if(si.birth.year=(*p).birth.year) if(si.birth.month<(*p).birth.month) p=&si; continue; if(si.birth.month=(*p).birth.month) if(si.bir
25、th.day<(*p).birth.day) p=&si; return(p->name);/* 11.033 鏈表L存儲了多個人的信息。寫一函數(shù),求這些人中年齡最大 (即出生日期最小)者的名字。 結(jié)構(gòu)體類型定義如下: struct dateint year; int month; int day; /日期結(jié)構(gòu)體類型 struct studentNode /鏈表結(jié)點的結(jié)構(gòu)體類型 char name10; /人名 struct date birth; /出生日期 struct studentNode *next ; */char *oldest(struct studentN
26、ode *L)/* 若L是空表,則返回空指針null 否則返回表中年齡最大者的名字 */int j; char *p; struct studentNode *head1,*head; head=L; p=(*head).name; if(head->next!=0) for(j=1;j+) head1=head->next; if(*head).birth.year<(*head1).birth.year) head->next=head1->next; p=(*head).name; else if(*head).birth.year=(*head1).bir
27、th.year) if(*head).birth.month<(*head1).birth.month) head->next=head1->next; p=(*head).name; else if(*head).birth.month=(*head1).birth.month) if(*head).birth.day<(*head1).birth.day) head->next=head1->next; p=(*head).name; else head=head1; p=(*head).name; else head=head1; p=(*head).
28、name; else head=head1; p=(*head).name; if(head1->next=0) break; else p=(*head).name; return(p);/* 11.063 結(jié)構(gòu)體類型定義如下: struct course int cID; /課程號,取值099 char name10; /課程名 float credit; /學(xué)分,取值05 int semester; /學(xué)期,取值18 ; 結(jié)構(gòu)體數(shù)組c存儲了n門課程的信息。寫一函數(shù),求學(xué)期s的總學(xué)分。 */float creditSum(struct course c, int n, int s)
29、int i; float sum=0; for(i=0;i<n;i+) if(ci.semester=s) sum=sum+ci.credit; return sum; /* 11.073 課程鏈表結(jié)點的結(jié)構(gòu)體類型定義如下: struct courseNode /課程鏈表結(jié)點的結(jié)構(gòu)體類型 int cID; /課程號,取值099 char name10; /課程名 float credit; /學(xué)分,取值05 int semester; /學(xué)期,取值18 struct courseNode *next; ; 結(jié)構(gòu)體鏈表Lc存儲了各學(xué)期多門課程的信息。寫一函數(shù), 求學(xué)期s的總學(xué)分。 */fl
30、oat creditSum(struct courseNode *Lc, int s)/* 若Lc是空表,則返回0; 否則返回學(xué)期s的總學(xué)分 */ float sum=0; if(Lc=NULL) return 0.0; else while(Lc!=NULL) if(s=(*Lc).semester) sum=sum+(*Lc).credit; Lc=(*Lc).next; return sum; /* 11.133 日期和結(jié)構(gòu)體類型定義如下: struct dateint year; int month; int day; /日期結(jié)構(gòu)體類型 struct student /結(jié)構(gòu)體類型 ch
31、ar name10; /人名 struct date birth; /出生日期 ; 結(jié)構(gòu)體數(shù)組s存儲了n個人的名字和出生日期。寫一函數(shù),由數(shù)組s中n個人 的信息及其順序構(gòu)造相應(yīng)的鏈表。鏈表的結(jié)點的結(jié)構(gòu)體類型定義如下: struct studentNode /結(jié)構(gòu)體類型 char name10; /人名 struct date birth; /出生日期 struct studentNode *next ; */struct studentNode *CreateLinkList(struct student s, int n) int i,j=0; struct studentNode *hea
32、d; struct studentNode *p1,*p2; if(n=0) return NULL; while(j<n) p1=(struct studentNode *)malloc(sizeof(struct studentNode); if(j=0) head=p1; else (*p2).next=p1; p2=p1; for(i=0;i<10;i+) (*p1).namei=i; (*p1).birth.year=sj.birth.year; (*p1).birth.month=sj.birth.month; (*p1).birth.day=sj.birth.day; j+; (*p2).next=NULL; return(head);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年八年級數(shù)學(xué)上冊第六章數(shù)據(jù)的分析1平均數(shù)教案新版北師大版
- 蘇人版道德與法治九年級上冊10.3《做一個成熟的消費者》聽課評課記錄
- 骨干教師研修總結(jié)
- 食品代工合同范本
- 計算機信息系統(tǒng)集成合同范本
- 校企戰(zhàn)略合作框架合同范本
- 臨時工聘任合同范本
- 統(tǒng)編版初中歷史八年級上冊 第二單元教材詳解聽課評課記錄
- 人教版小學(xué)六年級數(shù)學(xué)上冊第8單元《數(shù)學(xué)廣角-數(shù)與形》單元測試題(含答案)共2套
- 魯教版數(shù)學(xué)六年級下冊9.3《用圖象表示變量之間的關(guān)系》聽評課記錄2
- 體驗式沙盤-收獲季節(jié)
- 老年護(hù)理陪護(hù)培訓(xùn)課件
- 2019年420聯(lián)考《申論》真題(山西卷)試卷(鄉(xiāng)鎮(zhèn)卷)及答案
- 醫(yī)院投訴糾紛及處理記錄表
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗方法
- 醬香型白酒工廠設(shè)計
- 【深度教學(xué)研究國內(nèi)外文獻(xiàn)綜述2100字】
- 牽引管道孔壁與管道外壁之間注漿技術(shù)方案
- 新人教版四年級下冊數(shù)學(xué)教材解讀課件
- 肛周膿腫完整版課件
- 公司(工廠)廠牌管理規(guī)定
評論
0/150
提交評論