c語言數(shù)組典型試題設(shè)計含答案_第1頁
c語言數(shù)組典型試題設(shè)計含答案_第2頁
c語言數(shù)組典型試題設(shè)計含答案_第3頁
c語言數(shù)組典型試題設(shè)計含答案_第4頁
c語言數(shù)組典型試題設(shè)計含答案_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一.選擇題(2*20)【題1】在c語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是A)整型常量B)整型表達式C)整型常量或整型表達式D)任何類型的表達式【題2】以下對一維整型數(shù)組a的正確說明是。A)inta(10);B)intn=10,an;C)intn;D)#defineSIZE10scanf("%d",&n);intaSIZE;intan;【題3】若有說明:inta10;則對a數(shù)組元素的正確引用是。A) a10B)a3.5C)a(5)D)a10-10【題4】在C語言中,一維數(shù)組的定義方式為:類型說明符數(shù)組名A)整型常量表達式B)整型表達式C)整型常量或整型表達

2、式D)常量【題5】以下能對一維數(shù)組a進行正確初始化的語句是A)inta10=(0,0,0,0,0);C)inta=0;B)D)inta10=;inta10=”10*1A)inta3;C)doublea14;B)D)【題7】若有說明:A)a24inta34;則對aB) a1,3數(shù)組元素的正確引用是C) a1+10D) a(2)(1)【題8】若有說明:A)a02*1inta34;則對aB) a13數(shù)組元素的非法引用是C) a4-20D) a04【題6】以下對二維數(shù)組a的正確說明是floata(3,4);floata(3)(4);【題9】以下能對二維數(shù)組a進行正確初始化的語句是A)inta2=1,0

3、,1,5,2,3;B) inta3=1,2,3,4,5,6;C) inta24=1,2,3,4,5,6;D) inta3=1,0,1,1,1;【題10】以下不能對二維數(shù)組a進行正確初始化的語句是A)inta23=0;B) inta3=1,2,0;C) inta23=1,2,3,4,5,6;D) inta3=1,2,3,4,5,6;【題11】若有說明:inta34=0;則下面正確的敘述是A)只有元素a00可得到初值0B)此說明語句不正確C)數(shù)組a中各元素都可得到初值,但其值不一定為0D)數(shù)組a中每個元素均可得到初值0【題12】若有說明:inta4=0,0;則下面不正確的敘述是。A)數(shù)組a的每個元

4、素都可得到初值0B)二維數(shù)組a的第一維大小為1C)因為二維數(shù)組a中第二維大小的值除以初值個數(shù)的商為1,故數(shù)組a的行數(shù)為1D)只有元素a00和a01可得到初值0,其余元素均得不到初值0【題13】若有說明:inta34;則全局數(shù)組a中各元素A)可在程序的運行階段得到初值0B)可在程序的編譯階段得到初值0C)不能得到確定的初值D)可在程序的編譯或運行階段得到初值0【題14】以下各組選項中,均能正確定義二維實型數(shù)組a的選項是A)floata34;B)floata(3,4);floata4;floata34;floata3=1,0;floata=0;0;C)floata34;D)floata34;sta

5、ticfloata4=0,0;floata3;autofloata4=0,0,0;floata4;【題15下面程序如果只有一個錯誤,那么是(每行程序前面的數(shù)字表示行號)1 main()2 3 floata3=3*0;4 inti;5 for(i=0;i<3;i+)scanf("%d",&ai);6 for(i=1;i<3;i+)a0=a0+ai;7 printf("dn”,a0);8 A)第3行有錯誤B)第7行有錯誤C)第5行有錯誤D)沒有錯誤【題16下面程序(每行程序前面的數(shù)字表示行號)。1 main()2 3 floata10=0.0;4

6、inti;5 for(i=0;i<3;i+)scanf("%d",&ai);6 for(i=1;i<10;i+)a0=a0+ai;7 printf("fn”,a0);8 A)沒有錯誤B)第3行有錯誤C)第5行有錯誤D)第7行有錯誤【題17下面程序中有錯誤的行是(每行程序前面的數(shù)字表示行號)。1 main()2 3 floata3=1;4 inti;5 scanf("d",&a);6 for(i=1;i<3;i+)a0=a0+ai;7 printf("a0=%dn",a0);8 A)3B)6C

7、)7D)5【題18下面程序(每行程序前面的數(shù)字表示行號)。1 main()2 3 floata3=0;4 inti;5 for(i=0;i<3;i+)scanf("f”,&ai);6 for(i=1;i<4;i+)a0=a0+ai;7 printf("fn”,a0);8 A)沒有錯誤B)第3行有錯誤C)第5行有錯誤D)第6行有錯誤【題19】若二維數(shù)組a有m歹U,則計算任一元素aij在數(shù)組中位置的公式為(假設(shè)a00位于數(shù)組的第一個位置上。)A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1【題20】對以下說明語句的正確理解是。inta10=6

8、,7,8,9,10;A) 將5個初值依次賦給a1至a5B) 將5個初值依次賦給a0至a4C) 將5個初值依次賦給a6至a10D)因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確參考答案:15CDDAC610CCDBC1115DDBCA1620CDDDB二.程序分析(10*2)1 .下面程序的輸出結(jié)果是。structstuintx,*y;)*P;intd4=10,20,30,40;structstua4=50,&d0,60,&d1,70,&d2,80,&d3;main()P=a;printf("%d,",+p->x);printf(&qu

9、ot;%d,",(+p)->x);printf("%dn",+(*p->y);2 .以下程序的運行結(jié)果是。unionuninta;intb;unionuns4;unionun*p;main()intn=1,i;for(i=0;i<4;i+)si.a=n;si.b=si.a+1;n=n+2;p=&s0;printf("%d,",p->a);printf("%d",+p->a);3 .51,60,212.2,3四.程序設(shè)計(10*4)1、將二維數(shù)組(5行5歹U)的右上半部分置零。即:1234

10、5變成1000067891067000111213141511121300161718192016171819021222324252122232425#include<stdio.h>main()(inta55=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;for(inti=0;i<5;i+)for(intj=0;j<5;j+)if(i<j)printf("%3d",0);elseprintf("%3d",aij);printf(&quo

11、t;n");2、求二維數(shù)組(3行3歹U)的對角線元素的和101213141516171819#include<stdio.h>main()inta33=10,12,13,14,15,16,17,18,19,sum=0;for(inti=0;i<3;i+)for(intj=0;j<3;j+)if(i=j)sum=sum+aij;)printf("%d",sum);)3、求二維數(shù)組(5行5歹U)中最大元素值及其行列號#include<stdio.h>main()inta55,i,j;for(i=0;i<5;i+)for(j=0

12、;j<5;j+)scanf("%d",&aij);)intsum=a00,x,y;for(i=0;i<5;i+)for(j=0;j<5;j+)if(sum<aij)sum=aij;x=i;y=j;)printf("a%d%d=%d",x,y,sum);)4、從鍵盤上輸入9個整數(shù),保存在二維數(shù)組中按數(shù)組原來位置輸出第一行和第一列的所有元素#include<stdio.h>main()inta33,i,j;for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d"

13、;,&aij);)for(i=0;i<3;i+)(for(j=0;j<3;j+)(if(i=0|j=0)(printf("%d",aij);)printf("n");)一、選擇題1 .以下對一維整型數(shù)組a的正確說明是。A.inta(10);B.intn=0,an;C.intn;D.#defineSIZE10scanf(%d",&n);intaSIZEintan;2 .若有說明:inta10;,則對a數(shù)組元素的正確引用是。A.a10B.a3.5C.a(5)D.a10-103 .以下能對一維數(shù)組a進行正確初始化的語句形式

14、是。A.inta10=(0,0,0,0,0);B.inta10=;C.doublea4;D.inta10=10*1;4 .以下對二維數(shù)組a的正確說明是。A.inta3;B.floata(3,4);C.doublea4;D.floata(3)(4);5 .若有說明:inta34;則對a數(shù)組元素的正確引用是。A.a34B.a1,3C.a1+10D.a(2)(1)6 .以下能對二維數(shù)組a進行正確初始化的語句是。A. inta2=1,0,1,5,2,3;B. inta3=1,2,3,4,5,6;C. inta24=1,2,3,4,5,6;D. inta3=1,0,1,0,1,1;7.下面程序段(每行代

15、碼前面的數(shù)字表示行號)。1 inta3=3*0;2 inti3 for(i=0;i<3;i+)scanf(%d”,&ai);4 for(i=1;i<3;i+)a0=a0+ai;5 printf(%dn”,a0);A.第1行有錯誤B.第5行有錯誤C.第3行有錯誤D.沒有錯誤8 .若有定義floatx4=1.3,2.4,5.6,y=6;則錯誤的語句是。A.y=x3;B.y=x+1;C.y=x2+1D.x0=y;9 .定義如下變量和數(shù)組:intk;inta33=1,2,3,4,5,6,7,8,9;則下面語句的輸出結(jié)果是。for(k=0;k<3;k+)printf(%d&qu

16、ot;,ak2-k);A.357B.369C.159D.14710 .下面程序的運行結(jié)果是。#include<stdio.h>intmain()inta66,i,j;for(i=1;i<6;i+)for(j=1;j<6;j+)aij=(i/j)*(j/i);for(i=1;i<6;i+)for(j=1;j<6;j+)printf("%2d",aij);printf("n");return0;A.1111111111111111111111111B. 000010001000100010001 0000C. 100000

17、1000001000001000001D. 1000101010001000101010001A.chars5=abc'C.chars5=;11 .下面是對數(shù)組s的初始化,其中錯誤的語句是B.chars5=a',b',d'D.chars5=abcde"12 .下面程序段的運行結(jié)果是。(表示1個空格)charc5='a','b','0','c','0'printf("%s",c);A.'a''b'B.abC.abDcD.ab

18、D13 .有兩個字符數(shù)組a、b,則以下正確的輸入格式是。A.gets(a,b);B.scanf(%s%s”,a,b);C.scanf(%s%s”,&a,&b);D.gets(a'"),gets(b");14 .有字符數(shù)組a80和b80,則正確的輸出形式是。A.puts(a,b);B.printf(%s%s”,a,b);C.putchar(a,b);D.puts(a),puts(b);15 .有下面的程序段,則。chara3,b="China"a=b;printf("%s",a);A.運行后將輸出ChinaB.運

19、行后將輸出ChC.運行后將輸出ChiD.編譯出錯16 .下面程序段的功能是輸出兩個字符串中對應相等的字符,請選擇填空。charx="programming"chary="Fortran"inti=0;while(xi!='0'&&yi!='0')if(xi=yi)printf("%c",);elsei+;A.xi+B.y+iC.xiD.yi17 .下面程序的功能是將字符串s中所有的字符c刪除。請選擇填空。#include<stdio.h>intmain()chars80;in

20、ti,j;gets(s);for(i=j=0;si!='0'i+)if(si!='c');sj='0'puts(s);return0;A.sj+=siB.s+j=siC.sj=si;j+D.sj=si18 .下面程序的運行結(jié)果是。#include<stdio.h>intmain()charch7="12ab56"inti,s=0;for(i=0;chi>='0'&&chi<='9'i+=2)s=10*s+chi-'0'printf(&quo

21、t;%dn",s);return0;A.1B.1256C.12ab56D.15則下面程19 .當運行以下程序時,從鍵盤輸入:ab<回車>c<回車>def<回車>,序的運行結(jié)果是。#include<stdio.h>#defineN6intmain()charcN;inti=0;for(;i<N;ci=getchar(),i+);for(i=0;i<N;i+)putchar(ci);return0;A.abcdefB.aC.bD.abbcccdddef20 .下面程序的運行結(jié)果是#include<stdio.h>in

22、tmain()chara="morning",t;inti,j=0;for(i=1;i<7;i+)if(aj<ai)j=i;t=aj;aj=a7;a7=t;puts(a);return0;)A.mogninrB.moC.morningD.mornin答案:1. D2,D3.B4.C5.C6.B7.A8.B9.A10.C11.D12.B13.B14.D15.D16.A17.A18.A19.D20.B二、填空題1,若有定義floata35;則a數(shù)組所含數(shù)組元素個數(shù)是,a數(shù)組所占的字節(jié)數(shù)是。2,若有定義:doublex35;,則x數(shù)組中行下標的下限為,列下表的上限為。

23、3 .假設(shè)M為已經(jīng)聲明的符號常量,則定義一個具有MXM個元素的雙精度型數(shù)組a,且所有元素初值為0的形式是。4 .若有定義:inta34=1,2,0,4,6,8,10;則初始化后,a12得到的初值是,a21得到的初值是。5,下面程序給a數(shù)組輸入數(shù)據(jù)并以每行4個數(shù)據(jù)的形式輸出。請?zhí)羁铡?include<stdio.h>#defineN20intmain()intaN,i;for(i=0;i<N;i+);for(i=0;i<N;i+)if()printf("%3d",ai);printf("n");return0;6,下面程序?qū)⒍S數(shù)組

24、a的行和列元素互換后存到另一個二維數(shù)組b中,請?zhí)羁铡?include<stdio.h>intmain()inta23=1,2,3,4,5,6;intb32,i.j;printf("arraya:n");for(i=0;i<=1;i+)for(j=0;j+)printf("%5d",aij);printf("n");printf("arrayb:n");for(i=0;i+)for(j=0;j<=1;j+)printf("%5d",bij);printf("n&q

25、uot;);return0;7 .下面程序段的運行結(jié)果是intx5,i;x0=1;x1=2;for(i=2;i<5;i+)xi=xi-1+xi-2;for(i=2;i<5;i+)printf("%d",xi);8 .下面程序的運行結(jié)果是。#include<stdio.h>intmain()inta55,i,j,n=1;for(i=0;i<5;i+)for(j=0;j<5;j+)aij=n+;printf("Theresultis:n");for(i=0;i<5;i+)for(j=0;j<=i;j+)prin

26、tf("%4d",aij);printf("n");return0;)9 .以下程序的功能是求1000以內(nèi)的水仙花數(shù)。(提示:所謂水仙花數(shù)是指一個3位正整數(shù),其各位數(shù)字的立方之和等于該正整數(shù)。例如:407=4X4X4+0X0X0+7X7X7,故407是一個水仙花數(shù)。)請?zhí)羁铡?include<stdio.h>intmain()intx,y,z,a8,m,i=0;printf("Thespecialnumbersare:n");for(;m+)x=m/100;y=;z=m%10;if(m=x*x*x+y*y*y+z*z*z)

27、;i+;)for(x=0;x<i;x+)printf("%6d",ax);printf("n");return0;10 .下面程序的運行結(jié)果是。#include<stdio.h>intmain()inta10=7,3,5,2,9,1,0,6,8,4,i=0,j=9,t;while(i<j)t=ai;ai=aj;aj=t;i+=2;j-=2;for(i=0;i<10;i+=2)printf("%d",ai);return0;11 .下面程序的功能是輸入5個整數(shù),找出最大數(shù)和最小數(shù)所在的位置,并把二者對調(diào),然

28、后輸出調(diào)整后的5個整數(shù)。請?zhí)羁铡?include<stdio.h>intmain()inta5,max,min,i,j=0,k=0,t;for(i=0;i<5;i+)scanf("%d",&ai);min=a0;for(i=1;i<5;i+)if(ai<min)min=ai;max=a0;for(i=1;i<5;i+)if(ai>max)max=ai;printf("nThepositionofminis:%3dn”,k);printf("Thepositionofmaxis:%3dn",j);

29、for(i=0;i<5;i+)printf("%5d",ai);printf("n");return0;12 .下面程序的功能是檢查一個二維數(shù)組是否對稱(即對所有i、j都有aij=aji)。請?zhí)羁铡?include<stdio.h>intmain()inta44=1,234,2,2,5,6,3,5,374,674;inti,j,found=0;for(j=0;j<4;j+)for(;i<4;i+)if(aji!=aij);break;if(found=1)printf("Non");elseprintf(

30、"Yesn");return0;13 .設(shè)數(shù)組a中的元素均為正整數(shù),以下程序是求a中偶數(shù)的個數(shù)和偶數(shù)的平均值。請?zhí)羁铡?include<stdio.h>intmain()inta10=1,2,3,4,5,6,7,8,9,10;intk,s,i;floatave;for(k=s=i=0;i<10;i+)if(ai%2!=0)k+;if(k!=0)ave=s/k;printf("%d,%fn",k,ave);return0;14 .以下程序是將矩陣a、b的和存入矩陣c中并按矩陣形式輸出。請?zhí)羁铡?include<stdio.h>

31、intmain()inta34=3,-2,7,5,1,0,4,-3,6,8,0,2;intb34=-2,0,1.4,5,-1,7.6,6,8,0.2;inti,j,c34;for(i=0;i<3;i+)for(j=0;j<4;j+)cij=;printf("%3d",cij);return0;15 .以下程序段的功能是求數(shù)組num中小于零的數(shù)據(jù)之和。請?zhí)羁?。intnum20=10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20;intsum=0,i;for(i=0;i<=19;i

32、+)if()sum=;printf("sum=%6d",sum);16 .以下程序段的功能是,運行后輸出結(jié)果是。intnum10=103,1,-20,-203,-21,2,-2,-2,13,-21;intsum=0,i;for(i=0;i<10;i+)if(numi>0&&numi%10=3)sum=sum+numi;printf("sum=%dn",sum);17 .下面程序用“快速順序查找法”判斷數(shù)組a中是否存在某一數(shù)。請?zhí)羁铡?include<stdio.h>intmain()inta9=25,57,48,3

33、7,12,92,86,33,i,x;scanf("%d",&x);i=0;while(ai!=x)i+;if()printf("Found!Theindexis:%dn",i);elseprintf("Can'tfound!n");return0;18 .下面程序是用“插入法”對數(shù)組a進行降序排序。請?zhí)羁铡?include<stdio.h>intmain()inta5=4,7,2,5,1,i,j,m;for(i=1;i<5;i+)m=ai;j=;while(j>=0&&m>

34、aj).;j-;=m;for(i=0;i<5;i+)printf("%3d",ai);printf("n");return0;19 .下面程序用“兩路合并法”把兩個已按升序排列的數(shù)組合并成一個升序數(shù)組。請?zhí)羁铡?include<stdio.h>intmain()inta3=5,9,10;intb5=12,24,26,37,48);intc10,i=0,j=0,k=0;while(i<3&&j<5)if()ck=bj;k+;j+;elseck=ai;k+;i+;while()ck=ai;i+;k+;while(

35、)ck=bj;j+;k+;for(i=0;i<k;i+)printf("%3d",ci);putchar('n');return0;20 .字符串"abn012""的長度是。21 .下面程序段將輸出computer。請?zhí)羁?。charc="Itisacomputer"inti,j;for(i=0;i+);printf("%c",cj);22 .下面程序的功能是從鍵盤輸入一個大寫英文字母,要求按字母的順序打印出3個相鄰的字母,指定的字母在中間。若指定的字母為Z,則打印出YZA;若為A,則打印出ZAB。請?zhí)羁铡?include<stdio.h>intmain()chara3,c;inti;c=getchar();a1=c;if(c='Z')a2='A'elseif(c='A')a0='Z'elsea0=c-1;a2=c+1;for(i=0;i<=2;i+)putchar(ai);return0;)23 .下面程序段的功能是將字符數(shù)組a6='a','b','c','d','e','f變?yōu)閍6=&

溫馨提示

  • 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

提交評論