程序閱讀及填空(答案)_第1頁
程序閱讀及填空(答案)_第2頁
程序閱讀及填空(答案)_第3頁
程序閱讀及填空(答案)_第4頁
程序閱讀及填空(答案)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

程序閱讀及填空(答案)程序閱讀及填空(答案)程序閱讀及填空(答案)V:1.0精細(xì)整理,僅供參考程序閱讀及填空(答案)日期:20xx年X月一.程序閱讀題1.若運(yùn)行時(shí)輸入100↙,寫出以下程序的運(yùn)行結(jié)果。main(){inta;scanf(“%d”,&a);printf(“%s”,(a%2!=0)”No”:”Yes”);}答案:Yes2.寫出以下程序的運(yùn)行結(jié)果。main(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<0){case1:printf(“@”);break;case2:printf(“!”);break;}case0:switch(c==5){case1:pritnf(“*”);break;case2:printf(“#”);break;default:printf(“#”);break;}default:printf(“&”);}printf(“\n”);}答案:*&3.寫出下面程序運(yùn)行的結(jié)果。main(){inti,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b--==0)k++;}printf(“%d,%d”,k,b);}答案:204.寫出下面程序運(yùn)行的結(jié)果。main(){intk=1,n=263;do{k*=n%10;n/=10;}while(n);printf(“%d\n”,k);}答案:365.寫出下面程序運(yùn)行的結(jié)果。main(){inta=10,y=0;do{a+=2;y+=a;if(y>50)break;}while(a=14);printf(“a=%dy=%d\n”,a,y);}答案:a=16y=60數(shù)組部分:1.寫出下面程序的運(yùn)行結(jié)果。main(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf(“%2d”,a[i][j]);printf(“\n”);}}2.寫出下面程序的運(yùn)行結(jié)果。main(){inti=0;chara[]=”abm”,b[]=”aqid”,c[10];while(a[i]!=’\0’&&b[i]!=’\0’){if(a[i]>=b[i])c[i]=a[i]-32;elsec[i]=b[i]-32;i++;}c[i]=’\0’;puts(c);}答案:AQM3.當(dāng)運(yùn)行下面程序時(shí),從鍵盤上輸入AabD↙,則寫出下面程序的運(yùn)行結(jié)果。main(){chars[80];inti=0;gets(s);while(s[i]!=’\0’){if(s[i]<=’z’&&s[i]>=’a’)s[i]=’z’+’a’-s[i];i++;}puts(s);}答案:AzyD二.程序判斷題1.下面程序?qū)⑤斎氲拇髮懽帜父膶懗尚懽帜篙敵?,其他字符不變;?qǐng)判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){charc;c=getchar();c=(c>=’A’||c<=’Z’)c-32:c+32;printf(“%c”,c);}答案:c=(c>=’A’||c<=’Z’)c-32:c+32;改為:c=(c>='A'&&c<='Z')c+32:c;2.下面程序輸入兩個(gè)運(yùn)算數(shù)x,y和一個(gè)運(yùn)算符號(hào)op,然后輸出該運(yùn)算結(jié)果的值,例如輸入3+5↙得到結(jié)果8;請(qǐng)判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){floatx,y,r;charop;scanf(“%f%c%f”,&x,&op,&y);switch(op){case‘+’:r=x+y;case‘-’:r=x-y;case‘*’:r=x*y;case‘/’:r=x/y;}printf(“%f”,r);}答案:每個(gè)Case分之后面加Break;三.程序填空題1、以下程序輸出x,y,z三個(gè)數(shù)中的最小值,請(qǐng)?zhí)睿?)空使程序完整。main(){intx=4,y=5,z=8;intu,v;u=x<y【1】;v=u<z【2】;printf(“%d”,v);}答案:【1】x:y【2】u:z2、下述程序用“碾轉(zhuǎn)相除法”計(jì)算兩個(gè)整數(shù)m和n的最大公約數(shù)。該方法的基本思想是計(jì)算m和n相除的余數(shù),如果余數(shù)為0則結(jié)束,此時(shí)的被除數(shù)就是最大公約數(shù)。否則,將除數(shù)作為新的被除數(shù),余數(shù)作為新的除數(shù),繼續(xù)計(jì)算m和n相除的余數(shù),判斷是否為0,等等,請(qǐng)?zhí)睿?)空使程序完整。main(){intm,n,w;scanf(“%d,%d”,&m,&n);while(n){w=【1】;m=【2】;n=【3】;}printf(“%d”,m);}答案:【1】w=m%n;【2】m=n;【3】n=w;3、下面程序的功能是輸出1至100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù),請(qǐng)?zhí)睿?)空使程序完整。main(){intn,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;【1】;while(【2】){k*=m%10;s+=m%10;【3】;}if(k>s)printf(“%dd”,n);}}答案:【1】m=n;【2】m!=0【3】m=m/10;4、下面程序按公式(課本169頁習(xí)題)求和并輸出結(jié)果,請(qǐng)?zhí)?3)空使程序完整。main(){【1】;intk;for(k=1;k<=100;k++)s+=k;for(k=1;k<=50;k++)s+=k*k;for(k=1;k<=10;k++)s+=【2】;printf(“sum=【3】”,s);}答案:【1】floats=0;【2】1/k【3】%f數(shù)組部分:一、程序判斷:1.下面程序?yàn)閿?shù)組輸入數(shù)據(jù)并輸出結(jié)果;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){inta[3]={3*0};inti;for(i=0;i<4;i++)scanf(“%d”,&a[i]);for(i=0;i<4;i++)printf(“%d”,a[i]);}答案:for(i=0;i<3;i++)(只有3個(gè)數(shù)組元素,下標(biāo)0~2)2.下面程序?yàn)閿?shù)組輸入數(shù)據(jù)并輸出結(jié)果;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){inta[3]={1,2,3},i;scanf(“%d%d%d”,&a);for(i=0;i<3;i++)printf(“%d”,a[i]);}答案:scanf("%d%d%d",&a[0],&a[1],&a[2]);3.下面程序的功能是:先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如,當(dāng)s中的字符串為:“ABCDE”時(shí)則t中的字符串應(yīng)為:“EDCBAABCDE”;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){chars[80],t[200];inti,sl;gets(s);sl=strlen(s);for(i=0;i<sl;i++)t[i]=s[sl-i];改為:t[i]=s[sl-i-1];for(i=0;i<sl;i++)t[sl+i]=s[i];t[s1+i]='\0';加上語句:t[s1+i]='\0';puts(t);}答案:見右邊修改語句4.下面程序的功能是:將n各無序整數(shù)從小到大排序;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){inta[100],i,j,p,t,n=20;for(j=0;j<n;j++)scanf(“%d”,&a[j]),改為:;for(j=0;j<n-1;j++){p=j;for(i=j+1;i<n-1;i++)n-1改為:nif(a[p]>a[i])t=i;t改為:pif(p!=j){t=a[j];a[j]=a[p];a[p]=t;}}for(j=0;j<n;j++)printf(“%d”,&a[j]);}答案:見右邊修改語句5.下面程序的功能是:統(tǒng)計(jì)子字符串substr在字符串str中出現(xiàn)的次數(shù)。例如,若字符串為aaaslkaaas,子字符串為as,則應(yīng)輸出2;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。main(){charsubstr[80],str[80];inti,j,k,num=0;gets(substr);gets(str);for(i=0,str[i],i++)for(j=i,k=0;substr[k]==str[j];k++,j++)if(substr[k+1]!=’\0’){num++;break;}printf(“num=%d”,num);}答案:程序修改如右框所示。二、程序填空題1.下面程序可求出矩陣a的主對(duì)角線上的元素之和,請(qǐng)?zhí)?2)空使程序完整。main(){inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(【1】)sum=sum+【2】;printf(“sum=%d”,sum);}答案:【1】i==j【2】a[i][j]2.下面程序?qū)⑹M(jìn)制整數(shù)base轉(zhuǎn)換成n進(jìn)制,請(qǐng)?zhí)?3)空使程序完整。main(){inti,base,n,j,num[20];scanf(“%d”,&n);scanf(“%d”,base);do{i++;num[i]=【1】;n=【2】;}while(n!=0);for(【3】);printf(“%d”,num[j]);}答案:此程序有點(diǎn)小錯(cuò)誤,紅色文字為改正錯(cuò)誤,藍(lán)色文字為填空答案.3.下面程序的功能是輸入10個(gè)數(shù),找出最大值和最小值所在的位置,并把兩者對(duì)調(diào),然后輸出調(diào)整后的10個(gè)數(shù),請(qǐng)?zhí)?3)空使程序完整。main(){inta[10],max,min,i,j,k;for(i=0;i<10;i++)scanf(“%d”,&a[i]);max=min=a[0];for(i=0;i<10;i++){if(a[i]<min){min=a[i];【1】;}if(a[i]>max){max=a[i];【2】;}}/*循環(huán)完后,最小的數(shù)組元素下標(biāo)放在變量j中,最大的放在變量k中*/【3】;/*借助中間變量max,將最大最小兩數(shù)組元素交換*/for(i=0;i<10;i++)printf(“%d”,a[i]);}答案:【1】j=i【2】k=i【3】max=a[j];a[j]=a[k];a[k]=max;4.下面程序用“插入法”對(duì)數(shù)組a進(jìn)行由小到大的排序,請(qǐng)?zhí)?3)空使程序完整。經(jīng)典算法提示:簡(jiǎn)單插入排序算法的基本思想使將數(shù)組處理n-1次,第k次處理是將第k個(gè)元素插入到目前的位置。第k次的元素是這樣插入的:在第k次處理時(shí),前面的元素a[0],a[1],…,a[k-1]必定已排成了升序,將a[k]與a[k-1],a[k-2],…a[0]逐個(gè)比較(由后向前),若有a[j]<a[k],則a[k]插入到a[j]之后,否則a[k]維持原位不變。main(){inta[10]={191,3,6,4,11,7,25,13,89,10};inti,j,k;for(i=1;i<10;i++){k=a[i];j=【1】;while(j>=0&&k>a[j]){/*k>a[j]改為:k<a[j]*/【2】;j--;}【3】=k;}for(i=0;i<10;i++)printf(“%d”,a[i]);}答案:【1】i-1【2】a[j+1]=a[j]【3】a[j+1]5.下面程序用“兩路合并法”把兩個(gè)已按升序(由小到大)排列的數(shù)組合并成一個(gè)新的升序數(shù)組,請(qǐng)?zhí)?3)空使程序完整。main(){inta[3]={5,9,10};intb[5]={12,24,26,37,48};intc[10],i=0,j=0,k=0;while(i<3&&i<5)if(【1】){c[k]=b[j];k++;j++;}else{c[k]=a[j];k++;i++;}while(【2】){{c[k]=a[j];i++;k++;}while(【3】){{c[k]=b[j];j++;k++;}for(i=0;i<k;i++)printf(“%d”,c[i]);}6.下面程序的功能是將二維數(shù)組a中每個(gè)元素向右移一列,最右一列換到最左一列,移后的結(jié)果保存到b數(shù)組中,并按矩陣形式輸出a和b,請(qǐng)?zhí)?3)空使程序完整。數(shù)組a數(shù)組main(){inta[2][3]={{4,5,6},{1,2,3}},b[2][3],i,j;for(i=0;i<2;i++)for(j=0;i<3;j++){printf(“%5d”,a[i][j]);【1】;}printf(“\n”);}for(【2】)b[i][0]=a[i][2];for(i=0;i<2;i++){for(j=0;i<3;j++){printf(“%5d”,b[i][j]);【3】;}printf(“\n”);}}答案:此程序有錯(cuò)誤,正確的程序見右框7.下面程序的功能是在一個(gè)字符串中查找一個(gè)指定的字符,若字符串中包含該字符則輸出該字符在字符串中第一次出現(xiàn)的位置(下標(biāo)值),否則輸出-1,請(qǐng)?zhí)?2)空使程序完整。#include<>main(){charc=’a’;/*需要查找的字符*/chart[50];inti,j,k;gets(t);i=【1】;for(k=0;k<i;k++)if(【2】){j=k;break;}elsej=-1;printf(“%d”,j);}答案:【1】strlen(t)【2】t[k]==c8.下面程序用“順序查找法”查找數(shù)組a中是否存在某一關(guān)鍵字,請(qǐng)?zhí)?2)空使程序完整。main(){inta[10]={25,57,48

溫馨提示

  • 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)論