上海大學(xué)2017級程序設(shè)計基礎(chǔ)(C語言)試卷_第1頁
上海大學(xué)2017級程序設(shè)計基礎(chǔ)(C語言)試卷_第2頁
上海大學(xué)2017級程序設(shè)計基礎(chǔ)(C語言)試卷_第3頁
上海大學(xué)2017級程序設(shè)計基礎(chǔ)(C語言)試卷_第4頁
上海大學(xué)2017級程序設(shè)計基礎(chǔ)(C語言)試卷_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1/8上海大學(xué)2017級課程名:程序設(shè)計基礎(chǔ)(C語言)課程號:學(xué)分:5上機(jī)操作題,4題,共70分第1題(源程序文件E:\answer\1-A-1.C)上機(jī)要求:下列程序包含4個錯誤(2個函數(shù)各2行有錯誤),請輸入該程序的代碼,找出并更正程序錯誤,在修改行代碼后增加“/***/”注釋,將修改后的源程序保存到E:\answer\1-A-1.C中。程序功能:從鍵盤上輸入一行字符串,選擇其中的大寫字母,并輸出。如輸入:Hello,ThisIsAnEnglishSentence.則輸出:HTIAES再如輸入:ABC,abc,DEF,123.則輸出:ABCDEF函數(shù)說明:程序中函數(shù)str_select_up從字符串a(chǎn)中選擇大寫字母到字符串b中,同時返回字符串b。函數(shù)中變量i用于遍歷字符串a(chǎn),變量k用于計數(shù)大寫字母個數(shù),同時用于b數(shù)組的下標(biāo)。主函數(shù)main從鍵盤上輸入一行字符串,調(diào)用str_select_up函數(shù)取其中大寫字母到字符串b,并輸出字符串b。2個函數(shù)各有2個錯誤,分布在不同代碼行上。帶錯誤原程序:#include<stdio.h>char*str_select_up(charb[],chara[]){inti,k=0;for(i=0;a[i]!=='\0';i++)if(a[i]>='A'&&a[i]<='Z')b[k++]=a[i];b[k]='\0";returnb;}main(){chara[100],b[100];gets(a[100]);str_select_up(b,a)puts(b);}更正程序參考更正程序錯誤點#include<stdio.h>char*str_select_up(charb[],chara[]){inti,k=0;for(i=0;a[i]!='\0';i++)/***/if(a[i]>='A'&&a[i]<='Z')b[k++]=a[i];b[k]='\0';/***/returnb;}main(){chara[100],b[100];gets(a);/***/str_select_up(b,a);/***/puts(b);}!后雙等于改為1個等于雙引號改為單引號去掉數(shù)組名后的中括號缺分號第2題(源程序文件E:\answer\1-A-2.C)上機(jī)要求:按程序功能要求編寫程序,并將程序代碼保存到E:\answer\1-A-2.C中。程序功能:編寫程序,按示例實現(xiàn)以下功能:輸出本題考試的學(xué)期號與題號,即“093,1-A-2”輸出考生的基本信息,包括實際考試機(jī)房、機(jī)號、機(jī)號的單雙(機(jī)號單輸出Odd,機(jī)號雙輸出Even)、學(xué)號、姓名拼音。從鍵盤上輸入3個整數(shù)。輸出其中的最大值與最小值。輸出其中大小居中的數(shù)值。如輸入:705090則輸出:093,1-A-2D413-27(Odd),09123456,ZhangDaHai 注:本行請按考生實際情況輸出Max=90,Min=50Midd=70示例說明:輸出共4行,第1行為本考題基本信息,應(yīng)為“093,1-A-2”;第2行為考生本次考試的基本信息,請按實際情況輸出,示例表示D413機(jī)房的27號計算機(jī),機(jī)號為單(輸出Odd),學(xué)號為09123456,姓名拼音為ZhangDaHai(張大海);輸入三數(shù)的最大值為90,最小值為50,中間值為70。再如輸入:-90-50-70則輸出:093,1-A-2D413-27(Odd),09123456,ZhangDaHai 注:本行請按考生實際情況輸出Max=-50,Min=-90Midd=-70示例說明:輸入三數(shù)可以為負(fù)數(shù),最大值為-50,最小值為-90,中間值為-70。程序參考參考程序說明#include<stdio.h>main(){inta,b,c,max,min,mid;printf("093,1-A-2\n");printf("D413-27(Odd),09123456,ZhangDaHai\n");scanf("%d%d%d",&a,&b,&c);if(a>=b&&a>=c)max=a;elseif(b>=a&&b>=c)max=b;elsemax=c;if(a<=b&&a<=c)min=a;elseif(b<=a&&b<=c)min=b;elsemin=c;mid=a+b+c-max-min;printf("Max=%d,Min=%d\n",max,min);printf("Midd=%d\n",mid);}程序文件:1分main與變量:1分學(xué)期與題號:2分學(xué)生信息:4分注:核對學(xué)生信息真實性輸入:2分計算最大值:2分計算最小值:2分計算中間值:2分輸出:2分第3題(源程序文件E:\answer\1-A-3.C)上機(jī)要求:按程序功能要求編寫程序,并將程序代碼保存到E:\answer\1-A-3.C中。程序功能:從鍵盤上輸入n和n個整數(shù)(設(shè)n與每個整數(shù)均取值1至5),按示例格式輸出n行數(shù)字圖形,每行的數(shù)字及數(shù)字個數(shù)與輸入數(shù)相對應(yīng)。編寫程序可以使用或參考所提供的函數(shù)。如輸入:554321則輸出(□表示空格,↙表示回車):1□2□3□4□5□↙□□1□2□3□4□↙□□□□1□2□3□↙□□□□□□1□2□↙□□□□□□□□1□↙示例說明:輸入的第1個數(shù)為5,表示輸出共5行,右對齊形狀。接著輸入的第1個數(shù)為5,則輸出的第1行有5個數(shù)(取值1至5),數(shù)字之間含有1個空格,數(shù)值1之前有2*(5-5)=0個空格;以此類推。再如輸入:3232則輸出(□表示空格,↙表示回車):□□□□□□1□2□↙□□□□1□2□3□↙□□□□□□1□2□↙示例說明:輸入的第1個數(shù)為3,表示輸出共3行。接著輸入的第1個數(shù)為2,則輸出的第1行有2個數(shù)(取值1至2),數(shù)字之間含有1個空格,數(shù)值1之前有2*(5-2)=6個空格;以此類推。函數(shù)說明:下列代碼提供2個函數(shù),可供編寫程序時調(diào)用或參考。其中函數(shù)sca_0從鍵盤上輸入n和n個整數(shù)至數(shù)組a,并返回整數(shù)n;函數(shù)prtline可以輸出圖案中的某一行,參數(shù)m表示輸出該行的m個數(shù)(取值1至m)。函數(shù)代碼:函數(shù)代碼說明intsca_n(inta[]){intn,i;scanf("%d",&n);for(i=0;i<n;i++) scanf("%d",&a[i]);returnn;}voidprtline(intm){inti;for(i=1;i<=5-m;i++)printf("");for(i=1;i<=m;i++)printf("%d",i);printf("\n");}函數(shù):輸入n和n個整數(shù)至數(shù)組先輸入整數(shù)n再輸入n個整數(shù)至數(shù)組a中返回輸入的整數(shù)n函數(shù):輸出圖案中的一行,m個數(shù)字先輸出2*(5-m)個空格循環(huán)5-m次,每次輸出2個空格再輸出m個數(shù)字,數(shù)字之后帶有空格最后輸出換行程序參考參考程序1:使用函數(shù)評分說明#include<stdio.h>intsca_n(inta[]){intn,i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);returnn;}voidprtline(intm){inti;for(i=1;i<=5-m;i++)printf("");for(i=1;i<=m;i++)printf("%d",i);printf("\n");}main(){intn,i,a[10];n=sca_n(a);for(i=0;i<n;i++)prtline(a[i]);}程序文件:1分sca_n函數(shù):4分函數(shù)說明、變量定義、返回:1分輸入n:1分循環(huán):1分輸入a[i]:1分prtline函數(shù):4分函數(shù)說明、變量定義:1分循環(huán)+空格:1分循環(huán)+數(shù)字:1分換行:1分main與變量:1分調(diào)用sca_n:2分循環(huán):2分調(diào)用prtline:2分參考程序2:不使用函數(shù)評分說明#include<stdio.h>main(){intn,i,j,a[10];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){for(j=1;j<=5-a[i];j++)printf("");for(j=1;j<=a[i];j++)printf("%d",j);printf("\n");}}程序文件:1分main與變量:1分輸入n:2分循環(huán):2分輸入a[i]:2分循環(huán)n行:2分循環(huán)+空格:2分循環(huán)+數(shù)字:2分換行:2分第4題(源程序文件E:\answer\1-A-4.C)上機(jī)要求:按程序功能要求編寫程序,并將程序代碼保存到E:\answer\1-A-4.C中。程序功能:輸入10個整數(shù)(存貯在一維數(shù)組a中),按示例格式計算并輸出以下結(jié)果。查找數(shù)值為100的元素并輸出其下標(biāo)(如果有多個100則輸出第1個100的下標(biāo)),如果沒有找到,則輸出NotFound;統(tǒng)計數(shù)值為0的元素個數(shù)并輸出;從大到小排序,并按每行4個數(shù)的格式輸出;如輸入:1020304050100607080100則輸出:a[5]=100Count(0)=01001008070605040302010示例說明:輸入10個整數(shù),第1個100出現(xiàn)在下標(biāo)5位置,數(shù)值0沒有出現(xiàn),排序后分3行輸出,第1行與第2行各有4個數(shù)。如輸入:100-5005060708090199則輸出:NotFound(100)Count(0)=219990807060501000-50示例說明:輸入10個整數(shù)(可以有負(fù)數(shù)或超過100的數(shù)),其中100沒有出現(xiàn),0出現(xiàn)2次。排序后分3行輸出,第1行與第2行各有4個數(shù)。程序參考參考程序1:使用函數(shù)評分說明#include<stdio.h>voidsca(inta[],intn){inti;for(i=0;i<n;i++)scanf("%d",&a[i]);}intfind(inta[],intn,intx){inti;for(i=0;i<n;i++)if(a[i]==x)returni;return-1;}intcount(inta[],intn,intx){intct=0,i;for(i=0;i<n;i++)if(a[i]==x)ct++;returnct;}voidsort_b(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}voidprt_m(inta[],intn,intm){inti;for(i=0;i<n;i++)if(i%m==m-1||i==n-1)printf("%d\n",a[i]);elseprintf("%d\t",a[i]);}main(){inta[10],k,ct;sca(a,10);k=find(a,10,100);if(k>0)printf("a[%d]=100\n",k);elseprintf("NotFound(100)\n");ct=count(a,10,0);printf("Count(0)=%d\n",ct);sort_b(a,10);prt_m(a,10,4);}程序文件:1分sca函數(shù):1分函數(shù)說明、變量定義:0.5分循環(huán)+輸入:0.5分find函數(shù):2分函數(shù)說明、變量定義、返回-1:0.5分循環(huán):0.5分判斷:0.5分返回i:0.5分count函數(shù):2分函數(shù)說明、變量定義、返回:0.5分循環(huán):0.5分判斷:0.5分計數(shù):0.5分sort_b函數(shù):3分函數(shù)說明、變量定義:0.5分外循環(huán):0.5分內(nèi)循環(huán):0.5分比較:0.5分交換:1分prt_m函數(shù):3分函數(shù)說明、變量定義:0.5分循環(huán):0.5分判斷:1分(條件i==n-1不計分)輸出:1分main與變量:1分調(diào)用sca:1分調(diào)用find:1分輸出:1分調(diào)用count:1分輸出:1分調(diào)用sort_b:1分調(diào)用prt_m:1分參考程序2:不使用函數(shù)評分說明#include<stdio.h>#defineN10main(){inta[N],i,j,t,ct;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N;i++)if

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論