2023年C語言練習(xí)3數(shù)組=參考答案_第1頁
2023年C語言練習(xí)3數(shù)組=參考答案_第2頁
2023年C語言練習(xí)3數(shù)組=參考答案_第3頁
2023年C語言練習(xí)3數(shù)組=參考答案_第4頁
2023年C語言練習(xí)3數(shù)組=參考答案_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言(數(shù)組)一、選擇題1.設(shè)有程序:main(){inti,a[11];printf("給數(shù)組賦值:\n");for(i=0;i<=10;i++) scanf("%d",()); ......printf("輸出數(shù)組:\n");for(i=0;i<=10;i++) printf("%d,",());}則在程序中的兩個園括號中分別應(yīng)填入:CA)&a[i]和&a[i] B)a[i]和&a[i] C)&a[i]和a[i] D)a[i]和a[i]2.設(shè)已定義:inta[15];則數(shù)組a占用的內(nèi)存單元數(shù)是(C).A)15 B)16 C)30 D)323.閱讀程序:main(){inta[2]={0},i,j,k=2;for(i=0;i<k;i++) for(j=0;j<k;j++)a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的輸出結(jié)果是(D).A)1 B)3 C)2 D)不擬定的值4.閱讀程序:f(intb[],intn){inti,r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的輸出結(jié)果是(D).A)720 B)6 C)24 D)1205.以下定義語句中,錯誤的是(B).A)inta[]={6,7,8};B)intn=5,a[n];C)chara[]="string";D)chara[5]={'0','1','2','3','4'};6.以下描述中對的的是(D).A)數(shù)組名后面的常量表達(dá)式用一對圓括弧括起來B)數(shù)組下標(biāo)從1開始C)數(shù)組下標(biāo)的數(shù)據(jù)類型可以是整型或?qū)嵭虳)數(shù)組名的規(guī)定與變量名相同7.若定義數(shù)組并初始化chara[10]={'0','1','2','3','4','5','6','7','8','9'};指出以下錯誤語句(AB).A)scanf("%c",a[0]);B)scanf("%s",&a);C)printf("%c",a[3]);D)printf("%s",a);8.若定義數(shù)組inta[10],其最后一個數(shù)組元素為(C).A)a[0]B)a[1]C)a[9]D)a[10]9.若定義數(shù)組并初始化inta[10]={1,2,3,4},以下語句哪一個不成立(B)?A)a[8]的值為0B)a[1]的值為1C)a[3]的值為4D)a[9]的值為010.指出以下錯誤語句(A).A)intn=10,a[n];B)intn,a[10];C)inta[10]={1,2,3};D)inta[10]={1,2,3,4,5,6,7,8,9,10};11.請讀程序:main(){intn[2],i,j,k;for(i=0;i<2;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的輸出結(jié)果是(A).A)不擬定的值B)3C)2D)112.若有以下的定義和語句:intstr[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='e',則數(shù)值為2的表達(dá)式是(C).A)str['g'-c]B)str[2]C)str['d'-'c']D)str['d'-c]13.設(shè)有數(shù)組定義:inta[5];則下列給數(shù)組元素賦值錯誤的是(B).A)a[3]=93;B)scanf("%c",a[3]);C)a[3]=getchar();D)a[3]='a'+3;14.以下數(shù)組定義中錯誤的是(D).A)#defineN30inta[N+30];B)#defineN30inta[N];

C)inta[30];D)inta[N];15.在定義一個一維數(shù)組時,不能用來表達(dá)數(shù)組長度的是(D).A)常量B)符號常量C)常量表達(dá)式D)已被賦值的變量16.若float型變量占用4個字節(jié),有定義floata[20]={1.1,2.1,3.1};則數(shù)組a在內(nèi)存中所占的字節(jié)數(shù)是(D).A)12B)20C)40D)8017.設(shè)已定義:intx[2][4]={1,2,3,4,5,6,7,8};則元素x[1][1]的對的初值是(A).A)6 B)5 C)7 D)118.設(shè)有定義:inta[][3]={{1,2,3},{4,5,6},{7,8,9}};則a[1][2]的初值為(C).A)2 B)4 C)6 D)819.設(shè)有:inta[4][5];則數(shù)組a占用的內(nèi)存字節(jié)數(shù)是(C).A)12 B)24 C)40 D)2020.以下數(shù)組定義中,不對的的是(B).A)intb[3][4];B)intc[3][]={{1,2},{1,2,3},{4,5,6,7}};C)intb[200][100]={0};D)intc[][3]={{1,2,3},{4,5,6}};21.定義數(shù)組:intx[2][3];則數(shù)組x的維數(shù)是(2).A)1B)2C)3D)622.若定義數(shù)組并初始化intb[2][3]={1,2,3,4,5,6},以下語句哪一個成立(C)?A)表達(dá)式b[1][2]的值為1B)表達(dá)式b[1][2]的值為4C)表達(dá)式b[1][2]的值為6D)表達(dá)式b[1][2]的值為223.若定義數(shù)組并初始化inta[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);語句的結(jié)果是哪一個(C)?A)1,2,3,4,5,6B)123456C)12345624.若定義數(shù)組并初始化inta[2][3]={{1,2,3},{4,5,6}};以下語句哪一個不成立(B)?A)a數(shù)組中有6個元素B)a[2][3]是a數(shù)組的最后一個元素的引用C)a數(shù)組中每個元素都為整數(shù)D)a數(shù)組是整型數(shù)組25.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結(jié)果是(C).for(i=0;i<3;i++)printf("%d",x[i][2-i]);A)159 B)147 C)357 D)36926.如有以下定義:doubles[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};則數(shù)值為2的元素是(C).A)s[1][3]B)s[0][3]C)s[0][2]D)s[1][2]27.以下程序的輸出結(jié)果是(A).main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A)18B)19C)20D)2128.若已有charb[10][50];則該二維字符數(shù)組在內(nèi)存所占字節(jié)數(shù)為(D).A)10B)50C)60D)50029.設(shè)有:chara[10];下列語句那個是對的的(D)?A)scanf("%s",a[0]); B)scanf("%s",&a); C)printf("%s",a[0]) D)printf("%s",a)30.閱讀程序:main(){chara[10];inti;for(i=1;i<=5;i++) scanf("%c",&a[i]);printf("%c",a[0]);}設(shè)從鍵盤輸入字符串:abcde,則程序的輸出結(jié)果是(C).A)a B)空格 C)不擬定 D)031.合法的數(shù)組定義是(D).A)inta[]="string";B)inta[5]={0,1,2,3,4,5};C)chara="string";D)chara[]={'0','1','2','3'};32.設(shè)有數(shù)組定義:charstring[]="China";則數(shù)組string所占的空間為(B).A)5個字節(jié)B)6個字節(jié)C)7個字節(jié)D)10個字節(jié)33.定義字符數(shù)組c:charc[]={"clanguage"};數(shù)組c在內(nèi)存中所占字節(jié)數(shù)是(C).A)9B)10C)11D)1234.指出以下錯誤語句(C).A)chara[10]={'0','1','2','3','4','5','6','7','8','9'};B)chara[10]={'0','1','2','3'};C)chara[2]={"1","2"};D)chara[2]={'a’,'b’};35.若定義數(shù)組并初始化chara[10]={"hello"},該數(shù)組的元素個數(shù)是(A).A)10B)5C)6D)736.若定義數(shù)組并初始化chara[10]={"HELLO"},該數(shù)組的元素中a[2]是(A).A)'L'B)'E'C)'H'D)'O'37.若定義數(shù)組并初始化intb[10]={1,2,3,4},以下哪幾個語句成立(ACD)?A)b[8]的值為0B)b[1]的值為1C)b[3]的值為整數(shù)D)b[10]不是b數(shù)組中的元素38.若定義數(shù)組inta[10];指出下列錯誤語句:ABCDA)a數(shù)組共有10個元素,其引用方法是:a[1],a[2]...a[10];B)a數(shù)組是整型數(shù)組,其元素自動初始化為0;C)a數(shù)組最后一個元素的引用方法是a[10];D)a數(shù)組第一個元素的引用方法是a[1];二、判斷題1.數(shù)組是數(shù)目固定的若干變量的有序集合,數(shù)組中各元素的類型可以不同。錯2.數(shù)組是C語言的一種構(gòu)造數(shù)據(jù)類型,其元素的類型可以是整型、實型、字符型甚至結(jié)構(gòu)類型。對3.設(shè)需定義一個有15個元素的數(shù)組a,并對其前5個元素賦初值,可用如下語句實現(xiàn):inta[]={1,2,3,4,5};錯4.數(shù)組定義時,只允許使用常量表達(dá)式定義數(shù)組的大小,其值必須是正整數(shù),而不能用變量來定義數(shù)組長度。對5.C語言數(shù)組的下標(biāo)從0開始,下標(biāo)必須是整數(shù)型的常量或變量。對6.數(shù)組是數(shù)目固定、類型相同的若干變量的有序集合。數(shù)組中的每一個數(shù)(變量)稱為數(shù)組元素,數(shù)組中的所有元素都屬于同一種數(shù)據(jù)類型。對7.數(shù)組元素下標(biāo)的下界是固定的,總是為0。對8.一維數(shù)組在引用時下標(biāo)的范圍是:0<=下標(biāo)<數(shù)組的長度。對9.若有數(shù)組定義為:inta[100];則該數(shù)組的下界為0,上界為100。數(shù)組元素下標(biāo)范圍是:下界<=下標(biāo)<上界。對10.設(shè)已定義:doublea[5][5];則數(shù)組a在內(nèi)存中的存放順序是:a[0][0],a[0][1],a[0][2],...,a[4][3],a[4][4]。對二.填空題1.在C語言中,二維數(shù)組的元素在內(nèi)存中的存放順序是按行的順序依次存放。2.若有定義:doublex[3][5],則x數(shù)組中行下標(biāo)的下限為0,列下標(biāo)的下限為0。3.若有定義:inta[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]的值為0,a[2][1]得到的值為6。4.字符串”ab\n\\012\\”的長度是8。5.下面程序段的運(yùn)營結(jié)果是he。

charx[]=”theteacher”;

inti=0;

while(x[++i]!=’\0’)

if(x[i-1]==’t’)printf(“%c”,x[i]);6.欲為字符串S1輸入”HelloWorld!”,其語句是scanf(“%s”,S1);。7.欲將字符串S1復(fù)制到字符串S2中,其語句是strcpy(S2,S1);。8.假如在程序中調(diào)用了strcat函數(shù),則需要預(yù)解決命令#include<string.h>。假如調(diào)用了gets函數(shù),則需要預(yù)解決命令#include<stdio.h>。9.C語言數(shù)組的下標(biāo)總是從0開始,不可認(rèn)為負(fù)數(shù);構(gòu)成數(shù)組各個元素具有相同的數(shù)據(jù)類型。10.字符串是以‘\0’為結(jié)束標(biāo)志的一維字符數(shù)組。有定義:chara[]=””;則a數(shù)組的長度是0。三.程序閱讀題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”);

}

}運(yùn)營結(jié)果: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);

}運(yùn)營結(jié)果:AQM3.當(dāng)運(yùn)營下面程序時,從鍵盤上輸入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);

}運(yùn)營結(jié)果:AzyD4.寫出下面程序的運(yùn)營結(jié)果。

main()

{inti,c;

chars[2][5]={“8980”,”9198”};

for(i=3;i>=0;i--){

c=s[0][i]+s[1][i]-2*’0’;

s[0][i]=c%10+‘\0’;

}

for(i=0;i<=1;i++)puts(s[i]);

}運(yùn)營結(jié)果:注:s數(shù)組中每個字符的ASCII值為:5.當(dāng)運(yùn)營下面程序時,從鍵盤上輸入748915↙,則寫出下面程序的運(yùn)營結(jié)果。

main()

{inta[6],i,j,k,m;

for(i=0;i<6;i++)

scanf(“%d”,&a[i]);

for(i=5;i>=0;i--){

k=a[5];

for(j=4;j>=0;j--)

a[j+1]=a[j];

a[0]=k;

for(m=0;m<6;m++)

printf(“%d”,a[m]);

printf(“\n”);

}

}運(yùn)營結(jié)果:四.程序填空題1.下面程序可求出矩陣a的主對角線上的元素之和,請?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(【i==j】)

sum=sum+【a[i][j]】;

printf(“sum=%d”,sum);}2.下面程序?qū)⑹M(jìn)制整數(shù)n轉(zhuǎn)換成base進(jìn)制,請?zhí)?3)空使程序完整。main(){inti,base,n,j,num[20];

scanf(“%d”,&n);

scanf(“%d”,&base);

do{

i++;

num[i]=【n%base】;

n=【n/base】;

}while(n!=0);

for(【j=i;j>0;j--】)

printf(“%d”,num[j]);}3.下面程序的功能是輸入10個數(shù),找出最大值和最小值所在的位置,并把兩者對調(diào),然后輸出調(diào)整后的10個數(shù),請?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];【j=i】;}

if(a[i]>max){max=a[i];【k=i】;}

}

【max=a[j];a[j]=a[k];a[k]=max;】

for(i=0;i<10;i++)

printf(“%d”,a[i]);}4.下面程序的功能是在一個字符串中查找一個指定的字符,若字符串中包含該字符則輸出該字符在字符串中第一次出現(xiàn)的位置(下標(biāo)值),否則輸出-1,請?zhí)?2)空使程序完整。#include<string.h>main(){charc=’a’;/*需要查找的字符*/

chart[50];

inti,j,k;

gets(t);

i=【strlen(t)】;

for(k=0;k<i;k++)

if(【t[k]==c】)

{j=k;break;}

elsej=-1;

printf(“%d”,j);}5.下面程序用“順序查找法”查找數(shù)組a中是否存在某一關(guān)鍵字,請?zhí)?2)空使程序完整。main(){inta[10]={25,57,48,371,123,291,18,22,44};

inti=0,x;

scanf(“%d”,&x);

【a[10]=x】;

while(a[i]!=x)i++;

if(【i<10】)printf(“found=%d\n”,i);

elseprintf(“can\’tfound!\n”);}6.以下程序是將字符串b的內(nèi)容連接字符數(shù)組a的內(nèi)容后面,形成新字符串a(chǎn),請?zhí)?2)空使程序完整。main(){chara[40]=”Great”,b[]=”Wall”;

inti=0,j=0;

while(a[i]!=’\0’)i++;

while(【b[j]!='\0'】){

a[i]=b[j];i++;j++;

}

【a[i]='\0'】;

printf(“%s\n”,a);}五、編程題[1]輸入一行數(shù)字字符,請用數(shù)組元素作為計數(shù)器來記錄每個數(shù)字字符的個數(shù)。用下標(biāo)為0元素記錄字符“0”的個數(shù),下標(biāo)為1的元素記錄字符“1”的個數(shù),...。#include<stdio.h>#defineN80voidmain(){ charchs[N]; inti,count[10]; printf("Inputastring:"); scanf("%s",chs); for(i=0;i<10;i++)count[i]=0; for(i=0;i<N;i++) { count[chs[i]-'0']++; } for(i=0;i<10;i++) if(count[i])printf("%dcounts:%d\n",i,count[i]);}[2]編寫程序求任意方陣每行、每列、兩對角線元素之和。#include<stdio.h>#defineN5#defineM5voidmain(){ inta[N][M]={ {3,4,7,8,9}, {6,8,2,1,3}, {8,5,4,3,2}, {7,6,9,1,5}, {5,6,4,1,7}}; ints1[N];//存放每行的和 ints2[M];//存放每列的和 intsum1=0,sum2=0;//存放兩對角線的和 inti=0,j=0; for(i=0;i<N;i++)s1[i]=0; for(i=0;i<M;i++)s2[i]=0; for(i=0;i<N;i++)//計算每行的和 for(j=0;j<M;j++) { s1[i]+=a[i][j]; } for(j=0;j<M;j++)//計算每列的和 for(i=0;i<N;i++) { s2[j]+=a[i][j]; } for(i=0;i<N;i++)//計算對角線的和 { sum1+=a[i][i]; } for(i=0;i<N;i++)//計算每行的和 { sum2+=a[i][M-1-i]; } printf("每行和:"); for(i=0;i<N;i++)printf("%d",s1[i]); printf("\n每列和:"); for(i=0;i<M;i++)printf("%d",s2[i]); printf("\n對角線和:"); printf("%d,%d",sum1,sum2);}[3]編寫程序求兩個矩陣的和。#include<stdio.h>#defineN4#defineM5voidmain(){ inta[N][M]={ {3,4,7,8,9}, {6,8,2,1,3}, {8,5,4,3,2}, {7,6,9,1,5}}; intb[N][M]={ {2,4,7,5,9}, {7,8,2,5,3}, {9,5,4,3,2}, {8,6,9,1,5}}; intc[N][M],i,j; for(i=0;i<N;i++)//計算矩陣的和 for(j=0;j<M;j++) { c[i][j]=a[i][j]+b[i][j]; } for(i=0;i<N;i++) { for(j=0;j<M;j++) { printf("%d",c[i][j]); } printf("\n"); }}[4]編寫程序打印出以下形式的乘法九九表。**AMULTIPCATIONTABLE**(1)(2)(3)(4)(5)(6)(7)(8)(9)(1)123456789(2)24681012141618(3)369121518212427(4)4812162024283236(5)51015202530354045(6)61218243036424854(7)71421283542495664(8)81624324048566472(9)91827364554637281#include<s

溫馨提示

  • 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

提交評論