《C語言程序設(shè)計》李學剛數(shù)字資源9章-參考答案-2同步訓練答案-同步訓練6-1答案_第1頁
《C語言程序設(shè)計》李學剛數(shù)字資源9章-參考答案-2同步訓練答案-同步訓練6-1答案_第2頁
《C語言程序設(shè)計》李學剛數(shù)字資源9章-參考答案-2同步訓練答案-同步訓練6-1答案_第3頁
《C語言程序設(shè)計》李學剛數(shù)字資源9章-參考答案-2同步訓練答案-同步訓練6-1答案_第4頁
《C語言程序設(shè)計》李學剛數(shù)字資源9章-參考答案-2同步訓練答案-同步訓練6-1答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

同步訓練6-1答案一、單項選擇題1.已定義:floata[5];則數(shù)組a可引用的元素有(D)。 A.a(chǎn)[1]~a[5] B.a(chǎn)[0]~a[5] C.a(chǎn)[1]~a[4] D.a(chǎn)[0]~a[4]2.已定義:inta[15];則數(shù)組a占用的內(nèi)存單元數(shù)是(C)。 A.15 B.30 C.60 D.1203.若有以下定義:doublew[10];則數(shù)組w的元素下標范圍是(B)。 A.[0,10] B.[0,9] C.[1,10] D.[1,9]4.設(shè)有程序,則在程序中的兩個括號中應填入(C)。#include<stdio.h>intmain(){ inti,a[5];printf{"Pleaseinputnumber:\n"};for(i=0;i<=4;i++)scanf("%d",());……printf("輸出數(shù)組:\n");for(i=0;i<4;i++)printf("%d",());return0;} A.a(chǎn)[i]和&a[i] B.&a[i]和&a[i] C.&a[i]和a[i] D.a(chǎn)[i]和a[i]5.閱讀程序,以下程序的輸出結(jié)果是(D)。f(intb[],intn){inti,r=1; for(i=0;i<=n;i++)r=r*b[i]; returnr; }intmain(){ intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);return0;} A.720 B.6 C.24 D.1206.已知int類型變量在內(nèi)存中占用4個字節(jié),定義數(shù)組intb[8]={2,3,4};則數(shù)組b在內(nèi)存中所占字節(jié)數(shù)為(D)。 A.5 B.12 C.16 D.327.以下程序段給數(shù)組所有元素輸入數(shù)據(jù),應在圓括號中填入的是(D)。#include<stdio.h>intmain(){inta[10],i=0;while(i<10)scanf("%d",());……} A.&a[++i] B.&a[i+1] C.&a[i] D.&a[i++]8.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10};charc='a';則數(shù)值為4的表達式是(D)。 A.a(chǎn)['f'-c] B.a(chǎn)[4] C.a(chǎn)['d'-'c'] D.a(chǎn)['d'-c]9.以下定義語句中,錯誤的是(B)。 A.inta[]={6,7,8}; B.intn=5,a[n];C.chara[]="string"; D.chara[5]={'0','1','2','3','4'};10.以下描述中正確的是(D)。 A.數(shù)組名后面的常量表達式用一對圓括弧括起來 B.數(shù)組下標從1開始 C.數(shù)組下標的數(shù)據(jù)類型可以是整型或?qū)嵭?D.數(shù)組名的規(guī)定與變量名相同11.用數(shù)組名作為函數(shù)調(diào)用時的實參,實際上傳送給形參的是(A)。 A.數(shù)組首地址 B.數(shù)組的第一個元素值 C.數(shù)組中全部元素的值 D.數(shù)組元素的個數(shù)12.若定義數(shù)組并初始化chara[10]={'0','1','2','3','4','5','6','7','8','9'};以下正確語句是(C)。 A.scanf("%c",a[0]); B.scanf("%s",&a); C.printf("%c",a[3]); D.printf("%s",a);13.若定義數(shù)組inta[10],其數(shù)組元素的下標下限為(B)。 A.1 B.0 C.9 D.1014.若定義數(shù)組inta[10],其最后一個數(shù)組元素為(C)。 A.a(chǎn)[0] B.a(chǎn)[1] C.a(chǎn)[9] D.a(chǎn)[10]15.若定義數(shù)組并初始化inta[10]={1,2,3,4},以下語句不成立的是(B)。 A.a(chǎn)[8]的值為0 B.a(chǎn)[1]的值為1 C.a(chǎn)[3]的值為4 D.a(chǎn)[9]的值為016.若定義數(shù)組并初始化inta[10]={1,2,3,4},以下敘述成立的是(A)。 A.若引用a[10],編譯時警告 B.若引用a[10],連接時報錯 C.若引用a[10],運行時出錯 D.若引用a[10],系統(tǒng)報錯17.指出以下錯誤語句(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};18.若定義數(shù)組并初始化inta[10]={1,2,3,4},以下敘述不成立的是(A)。 A.a(chǎn)[10]是a數(shù)組的最后一個元素的引用 B.a(chǎn)數(shù)組中有10個元素 C.a(chǎn)數(shù)組中每個元素都為整數(shù) D.a(chǎn)數(shù)組是整型數(shù)組19.執(zhí)行下面的程序段后,變量k中的值為(A)。intk=3,s[2];s[0]=k;k=s[1]*10; A.不定值 B.33 C.30 D.1020.若有以下的定義和語句:intstr[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='e',則數(shù)值為2的表達式是(C)。 A.str['g'-c] B.str[2] C.str['d'-'c'] D.str['d'-c]21.設(shè)已定義:intx[2][4]={1,2,3,4,5,6,7,8};則元素x[1][1]的正確初值是(A)。 A.6 B.5 C.7 D.122.設(shè)有intx[2][4]={1,2,3,4,5,6,7,8};printf("%d",x[2][4]);則輸出結(jié)果是(C)。 A.8 B.1 C.隨機數(shù) D.語法檢查出錯23.設(shè)有:inta[4][5];則數(shù)組a占用的內(nèi)存字節(jié)數(shù)是(D)。 A.9 B.20 C.40 D.8024.以下程序的輸出結(jié)果是(C)。#include<stdio.h>intmain(){inti,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)printf("%d,",a[i][2-i]); return0;} A.1,5,9 B.1,4,7 C.3,5,7 D.3,6,925.指出以下錯誤語句(C)。 A.inta[2][3]={{1,2,3},{4,5,6}}; B.intb[2][3]={1,2,3,4,5,6}; C.inta[][]={{1,2,3},{4,5,6}}; D.inta[][3]={{1,2,3},{4,5,6}};二、程序填空題1.若有定義語句:chars[100],d[100];intj=0,i=0;,且s中已賦字符串,請?zhí)羁諏⒆址畇拷貝到d中。(注:不得使用逗號表達式)while(s[i]){d[j]=s[i++];j++;}d[j]=0;2.下列程序中,將k的值插入到有序數(shù)組a中,使數(shù)組依然保持升序,請?zhí)羁铡?include<stdio.h>voidinsert(inta[],intx){ inti=0,j; while(a[i]<x&&i<3)i++; for(j=2;j>=i;j--) a[j+1]=a[j]; a[i]=x;}intmain(){ inta[5]={1,4,5},i; intx; scanf("%d",&x); insert(a,x); for(i=0;i<4;i++) printf("%3d",a[i]); printf("\n"); return0;}3.程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請在函數(shù)fun()填空,該函數(shù)的功能是:使數(shù)組左下半三角元素中的值全部置成0。例如a數(shù)組中的值為a=197238456則返回主程序后a數(shù)組中的值應為097008000#include<stdio.h>#include<stdlib.h>#defineN9intfun(inta[][N]){ inti,j;for(i=0;i<N;i++) for(j=0;j<=i;j++) a[i][j]=0; return0;}intmain(){ inta[N][N],i,j; printf("*****Thearray*****\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) { a[i][j]=rand()%10;/*產(chǎn)生一個隨機的N*N矩陣*/ printf("%4d",a[i][j]); } printf("\n"); } fun(a); printf("THERESULT\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%4d",a[i][j]); printf("\n"); } return0;}4.計算兩個矩陣的乘積。程序如下,請?zhí)羁?。說明:1.當矩陣A的列數(shù)等于矩陣B的行數(shù)時,A與B可以相乘。2.矩陣C的行數(shù)等于矩陣A的行數(shù),C的列數(shù)等于B的列數(shù)。3.乘積C的第m行第n列的元素等于矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。#include<stdio.h>#defineM2#defineP3#defineN4voidfun(inta[M][P],intb[P][N],intc[M][N]){ inti,j,k,s; for(i=0;i<M;i++) { for(j=0;j<N;j++) { s=0; for(k=0;k<P;k++) s+=a[i][k]*b[k][j]; c[i][j]=s; } }}intmain(){ inta[M][P],b[P][N],c[M][N]; inti,j,k; printf("Inputarraya[2][3];\n"); //輸入數(shù)組A的值 for(i=0;i<M;i++) { for(k=0;k<P;k++) scanf("%d",&a[i][k]); } printf("Inputarrayb[3][4];\n"); //輸入數(shù)組B的值 for(i=0;i<P;i++) { for(k=0;k<N;k++) scanf("%d",&b[i][k]); }fun(a,b,c); printf("Outputarrayc[2][4]:\n"); //輸出數(shù)組C的值 for(i=0;i<M;i++) { for(j=0;j<N;j++) { printf("%5d",c[i][j]); } printf("\n"); } return0;}三、程序閱讀題1.以下程序運行后的輸出結(jié)果是(abc)。#include<stdio.h>intmain(){ chars[]="abcdef"; s[3]='\0';printf("%s\n",s); return0;}2.以下程序運行后的輸出結(jié)果是(Hello)。#include<stdio.h>intmain(){ charb[]="Hello,you";b[5]=0;printf("%s\n",b); return0;}3.以下程序運行后的輸出結(jié)果是(1,3,7,15,)。#include<stdio.h>intmain(){ inti,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf("%d,",n[i]); } return0;}4.以下程序運行后的輸出結(jié)果是(123)。 056 009#include<stdio.h>intmain(){ inti,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) { for(j=i+1;j<3;j++) { a[j][i]=0; } } for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d",a[i][j]); } printf("\n"); } return0;}5.以下程序運行后的輸出結(jié)果是(2650)。#include<stdio.h>intmain(){ inta[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][4],a[1][2],a[2][1],a[3][0]); return0;}四、程序設(shè)計題1.求一個N*N矩陣對角線元素之和。程序代碼:#include<stdio.h>#defineN5floatsum(floata[N][N]){ floats=0;inti; for(i=0;i<N;i++) s=s+a[i][i]; returns;}intmain(){ floata[N][N],s; inti,j; printf("請輸入N*N個元素:\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) scanf("%f",&a[i][j]); } s=sum(a); printf("對角線元素之和為%\n",s); return0;}2.將一個數(shù)組首尾互換后輸出。程序代碼:#include<stdio.h>#defineN6voidconv(inta[]){ inti,temp; for(i=0;i<N/2;i++) { temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; }}intmain(){ inta[N]={11,9,8,2,1,0},i; printf("\n交換前:\n"); for(i=0;i<N;i++) printf("%4d",a[i]);conv(a); printf("\n交換后:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); printf("\n"); return0;}3.輸入N個整數(shù),分析每個整數(shù)的每一位數(shù)字,求出現(xiàn)次數(shù)最多的數(shù)字。//把數(shù)組的下標0-9,和數(shù)字0-9對應起來,數(shù)組元素作為出現(xiàn)的個數(shù)#include<stdio.h>voidcount(inta[]);#defineN5intmain(){ inti,d,gw,a[10]={0}; printf("請輸入%d個整數(shù):\n",N); for(i=0;i<N;i++)//讀入整數(shù)并分解,同時統(tǒng)計個數(shù) { scanf("%d",&d); while(d>0) { gw=d%10; d=d/10; a[gw]++; } } count(a); return0;}voidcount(inta[]){ inti,maxnum; maxnum=a[0]; for(i=1;i<10;i++) //查找出現(xiàn)的最大次數(shù) if(a[i]>maxnum) maxnum=a[i]; printf("出現(xiàn)%d次數(shù)字有:",maxnum); for(i=0;i<10;i++) //查找出現(xiàn)次數(shù)最多的個位數(shù)字 if(a[i]==maxnum) printf("%d",i); printf("\n");}4.輸入一個整數(shù),輸出每個數(shù)字對應的拼音。當整數(shù)為負數(shù)時,先輸出“fu”字。程序代碼:#include<stdio.h>intwrite(intn);intmain(){ intn; printf("請輸入一個整數(shù):"); scanf("%d",&n); if(n<0) { printf(

溫馨提示

  • 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

提交評論