程序設計基礎課后習題及答案:第7章 數(shù)組_第1頁
程序設計基礎課后習題及答案:第7章 數(shù)組_第2頁
程序設計基礎課后習題及答案:第7章 數(shù)組_第3頁
程序設計基礎課后習題及答案:第7章 數(shù)組_第4頁
程序設計基礎課后習題及答案:第7章 數(shù)組_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、選擇題1. 對一維數(shù)組a的正確說明是 D 。A) int a(10); B) int n=10,an;C) int n; D) #define SIZE 10 scanf("%d",&n); int aSIZE; int an;2. 能對二維數(shù)組a進行正確初始化的語句是 B 。A) int a2=1,0,1,5,3,2;B) int a3=1,2,3,4,5,6;C) int a24=1,2,3,4,5,6;D)int a3=1,0,1,1,2,3,4,1,1;3. 對兩個數(shù)組 a和 b進行如下初始化char a="ABCDEF"char b

2、='A','B','C','D','E','F'則以下敘述正確的是 D 。A) a與b數(shù)組完全相同 B) a與b長度相同C) a和b中都存放字符串 D) a數(shù)組比b數(shù)組長度長4. 以下數(shù)組定義中不正確的是 D 。A) int a23;B) int b3=0,1,2,3,4,5;C) int c100100=0;D) int d3=1,2,1,2,3,1,2,3,4;5. 以下選項中,不能正確賦值的是 A 。A) char s110;s1="Ctest"B) char s2=

3、9;C', 't', 'e', 's', 't'C) char s320="Ctest"D) char s4="Ctestn"二、閱讀程序?qū)懗鼋Y(jié)果1. #include<stdio.h>void main() char ch7="12ab56" int i,s=0; for(i=0;chi>='0'&&chi<='9'i+=2) s=10*s+chi-'0' printf(&q

4、uot;%dn",s); 答案:12. #include<stdio.h>void main() int a10=1,2,2,3,4,3,4,5,1,5; int n=0,i,j,c,k; for(i=0;i<10-n;i+) c=ai; for(j=i+1;j<10-n;j+) if(aj=c) n+;for(k=j;k<10-n;k+) ak=ak+1; for(i=0;i<(10-n);i+) printf("%d",ai);答案:123453. #include <stdio.h>void main() in

5、t i; char a="Time",b="Tom" for(i=0;ai!='0'&&bi!='0'i+) if(ai=bi)if(ai>='a'&&ai<='z') printf("%c",ai-32); else printf("%c",ai+32); else printf("*");答案: t*M4. #include<stdio.h>#define LEN 4voi

6、d main() int j,c; static char n2LEN+1="8980","9198" for(j=LEN-1;j>=0;j-) c=n0j+n1j-2*'0' n0j=c%10+'0' for(j=0;j<=1;j+) puts(nj);答案:7078 9198三、程序填空1. 程序的功能是在a數(shù)組中查找與x值相同的元素的所在位置。#include <stdio.h>void main()int a11,x,i;printf("Enter 10 integers :n&q

7、uot;);for(i=1;i<=10;i+)scanf("%d",ai);printf("Enter x :");scanf("%d",&x);a0=x;i=10;while(x!=ai) (1) ;if( (2) )printf("%5d's position is : %4dn",x, (3) );else printf("%d Not been found!n",x); 答案:(1) i(2) i>=1(3) i2. 數(shù)組a包括10個整型元素,從數(shù)組a的第2個

8、元素開始,分別將后項減前項之差存入數(shù)組b,并按每行3個元素的格式輸出數(shù)組b。例如b0=a1-a0。#include <stdio.h>void main() int a10,b10,i; for(i=0; (1) ;i+) scanf("%d",&ai); for(i=1; (2) ;i+) bi=ai-ai-1; for(i=1;i<10;i+) printf("%3d",bi); if( (3) )printf("n"); 答案:(1) i<=9(2) i<=9(3) i%3=0四、程序改錯1

9、. 程序的功能是:計算數(shù)組各元素之和,并存入首元素中。#include <stdio.h>void main() int a10=0; /* found */ int i; for(i=0;i<10;i+) scanf("%d",&ai);for(i=1;i<=10;i+) a0=a0+ai; /* found */printf("%dn",a0);答案:(1) int a3=0;(2) for(i=1;i<3;i+) a0=a0+ai;2. 函數(shù)fun的功能是:將數(shù)組s中的字符串的反序和正序連接后形成的新字符串放在

10、數(shù)組t中。 例如,當數(shù)組s所存的字符串為"ABCD"時, 數(shù)組t應為"DCBAABCD"。 #include <conio.h>#include <stdio.h>#include <string.h>void fun (char s, char t) int i, d; d = strlen(s); for(i=1; i<d; i+) /* found */ ti=sd-1-i; for(i=0; i<d; i+) td+i=si; t2*d = '/0' /* found */void

11、main() char s100, t100; clrscr();printf("nPlease enter string S:"); scanf("%s", &s); /* found */ fun(s, t); printf("nThe result is: %sn", t);答案:(1) for(i=0;i<d;i+) (2) t2*d='0 (3) scanf(“%s”,s)五、程序問答1. #include <stdio.h>void main()int a100, i, j, n, p;p

12、rintf("輸入數(shù)值的個數(shù)n 和數(shù)列an");scanf("%d",&n);scanf("%d",&a0);for(i=1;i<=n-1;i+) scanf("%d",&ai); p=ai; j=i-1; while(p<aj&&j>=0) aj+1=aj; j-; aj+1=p; for(i=0;i<n;i+) printf("%d ",ai); printf("n");問題1:該程序的功能是什么?問題2:如

13、果先輸入一個10,再輸入下面的10個數(shù): 1 9 2 8 3 7 4 6 5 5 則該程序輸出什么?答案:(1). 升序 (2). 1 2 3 4 5 5 6 7 8 92. #include <stdio.h>void main( )int a=11,33,27,33,-1,22,-8,12;int i,t,j;for (i=0;i<8-1;i+)for (j=8-1;j>i;j-)if (aj-1<aj) t=aj-1;aj-1=aj;aj=t;for(i=0;i<8;i+) printf(“%4d”,ai);問題1:此程序的運行結(jié)果是什么?問題2:若將

14、函數(shù)中的語句:if (aj-1<aj)改成:if (aj-1>aj) 則程序的運行結(jié)果是什么? 答案:(1). 33 33 27 22 12 11 -1 -8(2). -8 -1 11 12 22 27 33 33六、編程1. 在一組數(shù)中找出最大與最小值之差。#include<stdio.h>void main() int a10,i,x,y; printf("please input the number:n"); for(i=0;i<10;i+) scanf("%d",&ai); x=a0; y=a0; for(

15、i=1;i<10;i+) if(ai>x) x=ai; if(ai<y) y=ai; printf("the answer is %d",x-y);2. 用選擇法將一組整數(shù)按降序排序。#include<stdio.h>void main() int a10,i,j,k,t; printf("please input the numbers:n"); for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<=8;i+) k=i; for(j=i+1;j&l

16、t;=9;j+) if(aj>ak) k=j; t=ak; ak=ai; ai=t; for(i=0;i<=9;i+) printf(" %d",ai);3. 在一個按升序排列的數(shù)組中插入一個數(shù),使數(shù)組仍有序。#include <stdio.h>void main() int a7=3,5,7,9,11,23; int b,i,k; scanf("%d",&b); a6=b; i=5; while(b<ai&&i>=0) ai+1=ai; ai=b; i-; printf("cha r

17、u hou de shu zu n"); for(i=0;i<7;i+) printf("%d ",ai); 4. 用“順序”查找法,在一組數(shù)中查找一個值為K的元素。若有,輸出YES;若無,輸出NO。#include<stdio.h>void main() int a10,i,j,k; printf("please input the numbers:n"); for(i=0;i<10;i+) scanf("%d",&ai); printf("please input the aim

18、 number:n"); scanf("%d",&k); for(i=0;i<=9;i+) if(ai=k) break; if(i>9) printf("NOn"); else printf("YESn");5. 輸出以下形式的圖案: * * * *#include<stdio.h>void main() int i,j; for(i=1;i<=4;i+) for(j=1;j<=i-1;j+) printf(" "); for(j=1;j<=9-2*i;

19、j+) printf("*"); printf("n"); 6. 將一個數(shù)組按逆序重新存放在該數(shù)組中。#include<stdio.h>void main() int a10,i,t; printf("please input the numbers:n"); for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<10/2;i+) t=ai; ai=a10-1-i; a10-1-i=t; for(i=0;i<10;i+) printf(&quo

20、t; %d",ai);7. 打印一個5行的楊輝三角形。#include<stdio.h>void main() int a55=0,i,j; for(i=0;i<=4;i+) ai0=aii=1; for(i=2;i<=4;i+) for(j=1;j<i;j+) aij=ai-1j+ai-1j-1; for(i=0;i<=4;i+) for(j=0;j<=i;j+) printf(" %3d",aij); printf("n"); 8. 用二維字符數(shù)組存儲下列圖形并輸出。* * * *#include&

21、lt;stdio.h>void main() char c55='0' int i,j; for(i=0;i<5;i+) for(j=i;j<5;j+) cij='*' for(i=0;i<5;i+) for(j=0;j<5;j+) printf("%c",cij); printf("n"); 9. 計算二維數(shù)組主對角線元素之和。#include<stdio.h>void main() int a33,i,j,x; printf("please input the num

22、bers:n"); for(i=0;i<3;i+) for(j=0;j<3;j+) scanf("%d",&aij); x=0; for(i=0;i<3;i+) x=x+aii; printf("the answer is %dn",x);10. 用“折半”查找法,在一組按降序排列的數(shù)中查找一個值為K的元素。若有,輸出YES;若無,輸出NO。#include<stdio.h>void main() int a10=10,9,8,7,6,5,4,3,2,1,l,r,m,k; printf("plea

23、se input the numbers:n"); scanf("%d",&k); l=0; r=9; m=(1+r)/2; while(l<=r) if(am=k) break; else if(k>am) r=m-1; else l=m+1; m=(l+r)/2; if(l<=r) printf("n YES "); else printf("n NO ");11. 編寫一個程序計算一個字符串的長度。(不使用庫函數(shù))#include<stdio.h>#include <stri

24、ng.h>void main() char s80; int n=0; gets(s); while(sn)n+; printf("length = %d",n);12. 比較兩個字符串S1、S2的大小。(不使用庫函數(shù))若S1>S2 ,輸出1;若S1=S2,輸出0;若S1<S2輸出-1。#include<stdio.h>#include <string.h>void main() char s180,s280; int i,n; gets(s1); gets(s2); i=0; while(s1i&&s2i&&s1i=s2i)i+; if(!s1i|s1i<s2i) n=-1; if(!s2i|s1i>s2i) n=1; if(!s1i&&!s2i) n=0; printf("jie guo shi %d",n);13. 用“冒泡”法將一組

溫馨提示

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

評論

0/150

提交評論