C語言習習題及答案97310_第1頁
C語言習習題及答案97310_第2頁
C語言習習題及答案97310_第3頁
C語言習習題及答案97310_第4頁
C語言習習題及答案97310_第5頁
免費預覽已結(jié)束,剩余5頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、上機操作題A卷,4題,共70分第1題(18分 源程序文件 )上機要求:下列程序包含4個錯誤,請輸入該程序的代碼,找出并更正程序錯誤,在修改行代碼后增加“/*/”注釋,將修改后的源程序保存 中。程序改錯時不允許改變大的程序結(jié)構(gòu)(如函數(shù)調(diào)用關系與循環(huán)結(jié)構(gòu)等)。程序功能:從鍵盤上輸入一個整數(shù),轉(zhuǎn)換為16進制串并輸出。如輸入: 90則輸出: 5A再如輸入: 1234則輸出: 4D2函數(shù)說明:函數(shù)dec2hex將整數(shù)n轉(zhuǎn)換為16進制的字符串并存貯于str數(shù)組。(1) 依次計算n的16進制最低位(變量k),轉(zhuǎn)換為16進制碼(字符0至9或A至F)存貯于str數(shù)組,完成一位后,n除16以去掉最低位,然后循環(huán)求

2、解更高位。(2) 使用for循環(huán)逆序str數(shù)組,變量i從0遞增,變量j從m-1遞減,交換stri與strj。主函數(shù)main輸入一個整數(shù),調(diào)用dec2hex函數(shù)轉(zhuǎn)換為16進制串,然后輸出該字符串。帶錯誤原程序:(函數(shù)dec2hex包含3個錯誤點,main包含1個錯誤點)#include <>void dec2hex(int n, char str)int m,i,j;char t;m=0;do k = n % 16;if(k>9)strm='0'+k;elsestrm='A'+k-10; m+;n = n / 16; while (n>0)

3、;strm = '0'for (i=0,j=m-1;i<j;i+,j-)stri=t;stri=strj;strj=t;main()char str80;int n;scanf("%d",&n);str=dec2hex(n);puts(str);第2題(17分,源程序文件 )上機要求:按程序功能要求編寫程序,并將程序代碼保存 中。程序功能:從鍵盤輸入一個大于2的正整數(shù)n,求解并輸出最接近n的素數(shù)(<n不包括n)。如輸入: 17 則輸出13再輸入:45 則輸出43 第3題(17分,源程序文件 )上機要求:按程序功能要求編寫程序,并將程序代碼

4、保存 中。程序功能:從鍵盤上輸入5個整數(shù)(設每個整數(shù)取值1至5),按示例格式輸出5行數(shù)字圖形,每行的數(shù)字及數(shù)字個數(shù)與輸入數(shù)相對應。如輸入: 5 4 3 2 1則輸出(表示空格,表示回車): 示例說明:輸出共5行,居中對齊形狀。輸入的第1個數(shù)為5,則輸出的第1行有5個5,數(shù)字之間含有1個空格,第1個5之前有5-5=0個空格;輸入的第2個數(shù)為4,則輸出的第2行有4個4,數(shù)字之間含有1個空格,第1個4之前有5-4=1個空格;以此類推。再如輸入: 2 3 2 1 2則輸出(表示空格,表示回車): 示例說明:輸出共5行,居中對齊形狀。輸入的第1個數(shù)為2,則輸出的第1行有2個2,數(shù)字之間含有1個空格,第1

5、個2之前有5-2=3個空格;以此類推。第4題(18分,源程序文件 )從鍵盤輸入一個字符串(不多于80個字符),分別在該字符串中的所有數(shù)字字符子串(即單個或多個連續(xù)的數(shù)字字符)前加入一個字符$,然后輸出處理后的該字符串,如果該字符串中不包含有數(shù)字字符子串,則報告“There are no digits.”。例如,輸入:abcd4,Efghi*123p87KKK9034 6 xyz輸出:abcd$4,Efghi*$123p$87KKK$9034 $6 xyz又如,輸入:abcd,Efghi*Pkkk #%xyz輸出:There are no digits.上機操作題A卷,4題,共70分參考答案第1

6、題()修正程序原代碼#include <>void dec2hex(int n, char str)int m,i,j,k;/*/char t;m=0;do k=n%16;if(k<9) /*/strm='0'+k;elsestrm='A'+k-10; m+;n = n / 16; while (n>0);strm = '0'for (i=0,j=m-1;i<j;i+,j-)t=stri;/*/stri=strj;strj=t;main()char str80;int n;scanf("%d",&

7、amp;n);dec2hex(n,str); /*/puts(str);return 0;int m,i,j;缺變量定義k>9stri=t;賦值方向錯誤str=dec2hex(n);調(diào)用錯誤第2題()/* 1-A-2 */#include <>int main() int i,j,n; scanf("%d",&n); for(i=n-1;i>1;i-) for(j=2;j<i;j+) if(i%j=0) break; if(i=j) break; printf("%dn",i);return 0;第3題()#incl

8、ude "" int main()int i,j,a5; for(i=0;i<5;i+) scanf("%d",a+i); for(i=0;i<5;i+) for(j=0;j<5-ai;j+) printf(" "); for(j=0;j<ai;j+) printf("%d ",ai); printf("n"); return 0;第4題()/* 1-A-4 (1) */#include <>#include ""Int main() ch

9、ar a81=0,b81=0; int i,j,d=0; gets(a); for(j=i=0;ai;i+) if(ai<'0'|ai>'9') d=0; else if(d=0) d=1; bj+='$' bj+=ai; if(i=j) puts("There are no digits."); else puts(b);/* 1-A-4 (2) */#include ""int main() char a81=0,b81=0; int i,j; gets(a); for(j=i=0;ai;i

10、+) if(ai<'0'|ai>'9') bj+=ai; continue; for(bj+='$' ai>='0'&&ai<='9'i+) bj+=ai; i-; if(i=j) puts("There are no digits."); else puts(b); return 0;上機操作題B卷,4題,共70分第1題(18分 源程序文件 E:answer ),上機要求:下列程序包含4個錯誤,請輸入該程序的代碼,找出并更正程序錯誤,在修改行代碼后增加“

11、/*/”注釋,將修改后的源程序保存到 E:answer 中。程序改錯時不允許改變大的程序結(jié)構(gòu)(如函數(shù)調(diào)用關系與循環(huán)結(jié)構(gòu)等)。程序功能:從鍵盤上輸入一個16進制串,轉(zhuǎn)換為10進制整數(shù)并輸出。如輸入: 5A則輸出: 90再如輸入: 4D2則輸出: 1234函數(shù)說明:函數(shù)hex2dec將16進制字符串str轉(zhuǎn)換為10進制的整數(shù)并返回。主函數(shù)main輸入一個字符串,調(diào)用hex2dec函數(shù)轉(zhuǎn)換16進制串,然后輸出整數(shù)。帶錯誤原程序:(函數(shù)hex2dec包含3個錯誤點,main包含1個錯誤點)#include <>int hex2dec(char *str)int m,i,k;m=1;for

12、(i=0,stri!='0'i+)if (stri>='0' && stri<='9')k=stri-'0'else if (stri>='A' && stri<='F')k=stri-'A'+10;else if (stri>='a' && stri<='f')k=stri-a+10;elsereturn m;m=16*m+k;return m;main()char

13、str80;int n;gets(str80);n=hex2dec(str);printf("%dn",n);第2題( 7分,源程序文件 )上機要求:按程序功能要求編寫程序,并將程序代碼保存到 E:answer 中。程序功能:從鍵盤輸入一個大于2的正整數(shù)n,求解并輸出最接近n的素數(shù)(>n不包括n)。例如:輸入:17 輸出:19輸入:45 輸出:47 第3題(10分,源程序文件 E:answer )上機要求:按程序功能要求編寫程序,并將程序代碼保存到 E:answer 中。程序功能:從鍵盤上輸入5個整數(shù)(設每個整數(shù)取值1至5),按示例格式輸出5行數(shù)字圖形,每行的數(shù)字及數(shù)

14、字個數(shù)與輸入數(shù)相對應。如輸入: 5 4 3 2 1則輸出(表示空格,表示回車): 示例說明:輸出共5行,右對齊形狀。輸入的第1個數(shù)為5,則輸出的第1行有5個5,數(shù)字之間含有1個空格,第1個5之前有2*(5-5)=0個空格;輸入的第2個數(shù)為4,則輸出的第2行有4個4,數(shù)字之間含有1個空格,第1個4之前有2*(5-4)=2個空格;以此類推。再如輸入: 2 3 4 3 2則輸出(表示空格,表示回車): 示例說明:輸出共5行,右對齊形狀。輸入的第1個數(shù)為2,則輸出的第1行有2個2,數(shù)字之間含有1個空格,第1個2之前有2*(5-2)=6個空格;以此類推。第4題(源程序文件 E:answer ),20分上

15、機要求:按程序功能要求編寫程序,并將程序代碼保存到 E:answer 中。程序功能:從鍵盤輸入一個字符串(不多于80個字符),分別在該字符串中的所有小寫字母字符子串(即單個或多個連續(xù)的小寫字母字符)前加入一個字符#,然后輸出處理后的該字符串,如果該字符串中不包含有小寫字母字符子串,則報告“There are no lowercase letters.”。如輸入:a,Efghi*123p87KKK xyz則輸出:#a,E#fghi*123#p87KKK #xyz又如,再如輸入:1234,ABCD$#*! (100%)&KK則輸出There are no lowercase letters

16、.上機操作題B卷,4題,共70分參考答案第1題()修正程序原代碼#include <>int hex2dec(char *str)int m,i,k;m=0;/*/for (i=0;stri!='0'i+)/*/if (stri>='0' && stri<='9')k=stri-'0'else if (stri>='A' && stri<='F')k=stri-'A'+10;else if (stri>=

17、9;a' && stri<='f')k=stri-'a'+10; /*/elsereturn m;m=16*m+k;return m;main()char str80;int n;gets(str);/*/n=hex2dec(str);printf("%dn",n);m=1;初始化錯誤for(i=0,stri!='0'i+)分號錯誤k=stri-a+10;缺單引號gets(str80);多數(shù)組下標第2題()#include <>int main() int i,j,n; scanf(&

18、quot;%d",&n); for(i=n+1;i>1;i+) for(j=2;j<i;j+) if(i%j=0) break; if(i=j) break; printf("%dn",i);return 0;第3題()#include <>int main()int i,j,a5; for(i=0;i<5;i+) scanf("%d",a+i); for(i=0; i<5; i+) for(j=0; j<5-ai; j+) printf(" "); for(j=0; j<ai; j+) printf(&quo

溫馨提示

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

評論

0/150

提交評論