版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章數(shù)組和結(jié)構(gòu)一、選擇題1.有結(jié)構(gòu)型定義如下:structperson{ charname[20]; intage; intsex;}w[5],*p=w;那么下面scanf語(yǔ)句中對(duì)結(jié)構(gòu)變量成員不對(duì)的的引用是()。A.scanf(“%s”,w[0].name);B.scanf(“%d”,&w[0].age);C.scanf(“%d”,&(p->sex));D.scanf(“%d”,p->age);答:D2.解決字符串必須調(diào)用(1),且一方面要聲明預(yù)編譯命令(2)。不能用賦值運(yùn)算符“=”對(duì)字符串賦值,應(yīng)調(diào)用(3)函數(shù);也不能用關(guān)系運(yùn)算符“==”、“>”、“<”對(duì)字符串進(jìn)行比較,應(yīng)調(diào)用(4)函數(shù)。答案:(1)字符串庫(kù)函數(shù)(2)#include<string.h>(3)strcpy(4)strcmp3.有如下程序段:charstr[14]={"Iam"};strcat(str,"sad!");scanf("%s",str);printf("%s",str);當(dāng)輸入為happy!<CR>時(shí),輸出的結(jié)果是()。(A)Iamsad!(B)happy!(C)Iamhappy!(D)happy!ad!答案:(B)4.以下對(duì)二維數(shù)組a進(jìn)行不對(duì)的初始化的是。A.inta[][3]={3,2,1,1,2,3};B.inta[][3]={{3,2,1},{1,2,3};C.inta[2][3]={{3,2,1},{1,2,3}};D.inta[][]={{3,2,1},{1,2,3}};答案:D5.以下函數(shù)的功能是:通過(guò)鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#defineN10voidarrin(intx[N]){ inti=0; while(i<N) scanf("%d",);}在下劃線處應(yīng)填入的是。(2023年4月)A)x+iB)&x[i+1]C)x+(i++)D)&x[++i]答案:C6.下列描述中不對(duì)的的是。A)字符型數(shù)組中可以存放字符串B)可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出C)可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出D)不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符型數(shù)組進(jìn)行整體賦值答案:C7.以下程序的輸出結(jié)果是。#include<stdio.h>#include<string.h>voidmain(){ charb[30]; strcpy(&b[0],"CH"); strcpy(&b[1],"DEF"); strcpy(&b[2],"ABC"); printf("%s\n",b);}A)CHDEFB)DEFABCC)CDABCD)CHABC答案:C8.下面能對(duì)的定義一維數(shù)組的選項(xiàng)是。A)intnum[]B)#defineN100C)intnum[0..100]D)intN=100intnum[N]intnum[N]答案:B9.下面對(duì)的的數(shù)組定義語(yǔ)句是。A)inty[1][4]={1,2,3,4,5};B)floatx[3][]={{1},{2},{3}};C)longs[2][3]={{1},{1,2},{1,2,3}};D)doublet[][3]={0};答案:D10.執(zhí)行下列程序時(shí),輸入123<空格>456<空格>789<回車>,輸出結(jié)果是。#include<stdio.h>voidmain(){ chars[100]; intc,i; scanf("%c",&c);scanf("%d",&i);scanf("%s",s); printf("%c,%d,%s\n",c,i,s);}A)123,456,789B)1,456,789C)1,23,456,789D)1,23,456答案:D11.下面程序的輸出結(jié)果為()。#include<stdio.h>voidmain(){ inta[3],i,j,k=2; for(i=0;i<3;i++) a[i]=0; for(i=0;i<k;i++) for(j=0;j<k;j++) a[j]=i*j; printf("%d\n",a[2]);}A)0B)1C)2D)3答案:A12.下面程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){ inti,j,k; charstr[5]; for(i=0;i<5;i++)str[i]='A'; k=4; for(i=0;i<k;i++) for(j=0;j<k;j++) str[j]=str[i]+32; printf("%c\n",str[k]);}A)aB)AC)BD)不擬定的值答案:B13.下面程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){ chars[4][20]; inti; scanf("%s%s",s[0],s[1]); gets(s[2]);gets(s[3]); for(i=0;i<4;i++) puts(s[i]);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aabb<CR>ccdd<CR>A)aaB)aaC)aaD)aabbbbbbbbccccccddddccdddd答案:A14.假定int類型變量占用兩個(gè)字節(jié),其有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是。(A)3(B)6(C)10(D)20答案:D15.以下程序的輸出結(jié)果是。#include<stdio.h>#include<string.h>voidmain(){ charst[20]="hello\0\t\\"; printf("%d%d\n",strlen(st),sizeof(st));}(A)99(B)520(C)1320(D)2020答案:B16.以下對(duì)結(jié)構(gòu)體類型變量td的定義中,錯(cuò)誤的是。(A)typedefstructaa(B)structaa{intn;{intn;floatm;floatm;}AA;}td;AAtd;structaatd;(C)struct(D)struct{intn;{intn;floatm;floatm;}aa;}td;structaatd; 答案:C17.下列程序的輸出結(jié)果為。#include<stdio.h>voidmain(){ intk=0,i,s[]={1,-9,7,2,-10,3}; for(i=0;i<6;i++) if(s[i]>s[k]) k=i; printf("\n%d\n",k);}(A)4(B)2(C)3(D)1答案:B18.有如下定義:structdate{intyear,month,day;};structworklist{charname[20];charsex;structdatebirthday;}personone;對(duì)結(jié)構(gòu)體變量personone的出生年份進(jìn)行賦值時(shí),下面對(duì)的的賦值語(yǔ)句是。(A)year=1968(B)birthday.year=1968(C)personone.birthday.year=1968(D)personone.year=1968答案:C19.若程序中有如下的說(shuō)明和定義:structexep{intx,y;}structexepx,y;…則會(huì)發(fā)生的情況是。(A)編譯時(shí)犯錯(cuò)(B)能通過(guò)編譯、連接、執(zhí)行(C)能通過(guò)編譯但連接犯錯(cuò)(D)能通過(guò)編譯、連接,但不能執(zhí)行答案:A20.設(shè)有以下語(yǔ)句typedefstructS{intg;charh;}T;則下面敘述中對(duì)的的是。A)可用S定義結(jié)構(gòu)體變量B)可以用T定義結(jié)構(gòu)體變量C)S是struct類型的變量D)T是structS類型的變量答案:B21.有結(jié)構(gòu)定義如下:struct{intk:2;int:0;unsignedintm:5;}st;那么變量st所占用的字節(jié)數(shù)是()。A.3B.2C.1D.4答:B22.以下對(duì)結(jié)構(gòu)類型變量的定義中,不對(duì)的的是。A)typedefstructaaB)#defineAAstructaa{ intn;AAAA{intn; floatm;floatm;}AA;}tdl;AAtdl;C)structD)struct{intn;{intn;floatm;floatm;}aa;}tdl;structaatd1;答案:C23.當(dāng)執(zhí)行下面的程序時(shí),假如輸入ABC,則輸出結(jié)果是。(2023年4月)#include<stdio.h>#include<string.h>voidmain(){ charss[10]="12345"; gets(ss); strcat(ss,"6789"); printf("%s\n",ss);}A)ABC6789B)ABC67C)12345ABC6D)ABC456789答案:A24.給出以下定義charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則對(duì)的的敘述為。A)數(shù)組x和數(shù)組y等價(jià)B)數(shù)組x和數(shù)組y的長(zhǎng)度相同C)數(shù)組x的長(zhǎng)度大于數(shù)組y的長(zhǎng)度D)數(shù)組x的長(zhǎng)度小于數(shù)組y的長(zhǎng)度答案:C25.下面程序的輸出是
A)0 B)1 C)3 D)6
#include<stdio.h>voidmain(){ structcmplx{ intx;inty; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}答案:D26.下列程序的輸出結(jié)果是A)5 B)6 C)7 D)8#include<stdio.h>structabc{ inta,b,c;};voidmain(){ structabcs[2]={{1,2,3},{4,5,6}}; intt; t=s[0].a+s[1].b; printf("%d\n",t);}答案:B27.設(shè)有以下說(shuō)明語(yǔ)句structex{ intx;floaty;charz;}example;則下面的敘述中不對(duì)的的是A)struct是結(jié)構(gòu)體類型的關(guān)鍵字 B)example是結(jié)構(gòu)體類型名C)x,y,z都是結(jié)構(gòu)體成員名 D)structex是結(jié)構(gòu)體類型名答案:B28.設(shè)有如下說(shuō)明typedefstruct{intn;charc;doublex;}STD;則以下選項(xiàng)中,能對(duì)的定義結(jié)構(gòu)體數(shù)組并賦初值的語(yǔ)句是A)STDtt[2]={{1,'A',62},{2,'B',75}};B)STDtt[2]={1,"A",62},2,"B",75};
C)structtt[2]={{1,'A'},{2,'B'}};
D)structtt[2]={{1,"A",62.5},{2,"B",75.0}};答案:A29.有以下程序#include<stdio.h>voidmain(){ inti,test,p[17],head; for(i=0;i<16;i++) p[i]=i+1; p[16]=0; test=0; while(test!=p[test]) { for(i=1;i<3;i++) { head=test; test=p[test]; } p[head]=p[test]; test=p[head]; } printf("\n%5d",test);}程序執(zhí)行后的輸出結(jié)果是_______。A)1,2,3 B)2,3,4C)10 D)4答案:C30.有以下程序#include<stdio.h>voidmain(){ intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++)printf("%4c",''); for(j=_____;j<4;j++)printf("%4d",num[i][j]); printf("\n"); }}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是______。A)i-1 B)i C)i+1 D)4-i答案:B31.有以下程序#include<stdio.h>voidmain(){ intp[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j);}程序運(yùn)營(yíng)后的輸出結(jié)果是______。A)42 B)45 C)56 D)60答案:B32.有以下程序#include<stdio.h>voidmain(){ charp[]={'a','b','c'},q[]="abc"; printf("%d%d\n",sizeof(p),sizeof(q));}程序運(yùn)營(yíng)后的輸出結(jié)果是______。A)44 B)33 C)34 D)43答案:C33.有以下程序#include<stdio.h>#include<string.h>voidmain(){ charp[]={'a','b','c'},q[10]={'a','b','c'}; printf("%d%d\n",strlen(p),strlen(q));}以下敘述中對(duì)的的是______。A)在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故長(zhǎng)度都為3B)由于p數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能擬定;但q數(shù)組中字符串長(zhǎng)度為3C)由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能擬定;但p數(shù)組中字符串長(zhǎng)度為3D)由于p和q數(shù)組中都沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能擬定答案:B34.有以下程序#include<stdio.h>#include<string.h>voidmain(){ chara[7]="a0\0a0\0";inti,j; i=sizeof(a);j=strlen(a); printf("%d%d\n",i,j);}程序運(yùn)營(yíng)后的輸出結(jié)果是______。A)22 B)76 C)72 D)62答案:C35.設(shè)有如下說(shuō)明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中對(duì)的的是______。A)以上的說(shuō)明形式非法 B)ST是一個(gè)結(jié)構(gòu)體類型C)NEW是一個(gè)結(jié)構(gòu)體類型 D)NEW是一個(gè)結(jié)構(gòu)體變量答案:C36.以下對(duì)結(jié)構(gòu)體類型變量td的定義中,錯(cuò)誤的是______。A)typedefstructaa B)structaa{intn; {intn;floatm; floatm;}AA; }td;AAtd; structaatd;C)struct D)struct{intn; {intn;floatm; floatm;}aa; }td;structaatd;答案:C37.表達(dá)式strcmp("box","bottle")的值是。A)正整數(shù)B)負(fù)整數(shù)C)0D)不擬定的數(shù)答案:A二、填空題1.有如下程序段:#include<stdio.h>voidmain(){ chars[]="SSSWiLTECH1\1\11W\1WALLMP1"; intj; charch; for(j=2;(ch=s[j])!='\0';j++) { switch(ch) { case'A': putchar('a');continue; case'1': break; case1: while((ch=s[++j])!='\n'&&ch!='\0'); case9: putchar('#'); case'E': case'L': continue; default: putchar(ch);continue; } putchar('*'); } printf("\n");}此程序段的輸出結(jié)果是。答案:SwiTCH*#2.定義結(jié)構(gòu)類型如下:structa{charc;chars[20];intm;};請(qǐng)使用此類型定義一個(gè)結(jié)構(gòu)變量b1,并在定義時(shí)給各成員變量賦初值,使c的值為‘n’,s中存放字符串“person”,m的值為3:。答案:structab1={'n',"person",3};3.以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。(2023年4月)s=1+x+x2/2!+x3/3!+……+xn/n!請(qǐng)給函數(shù)中的各變量對(duì)的賦初值。doublesum(doublex,intn){ inti;doublea,b,s; for(i=1;i<=n;i++) { a=a*x;b=b*i;s=s+a/b; } returns;}答案:a=b=s=1.04.以下程序用來(lái)輸出結(jié)構(gòu)體變量ex所占存儲(chǔ)單元的字節(jié)數(shù):#include<stdio.h>structst{charname[20];doublescore; };voidmain(){structstex; printf(“exsize:%d\n”,sizeof());}答案:ex或structst5.由25人圍坐成圓圈,先從任意一人出發(fā),用1到25順時(shí)針依次編號(hào),然后從1號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3、…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。#include<stdio.h>voidmain(){inta[26],j,n,count;for(=1;j<=25;j++)a[j]=j;j=1;count=0;n=【1】;do{if(a[j]!=0){n++;if(n%5==0){【2】;if(count==24)printf("%d\n,",j);count++;}}j++;if(j>25)j=1;}while(【3】);}答案:【1】0【2】a[j]=0【3】count<256.有一個(gè)已排好序的數(shù)組,現(xiàn)輸入一個(gè)數(shù),規(guī)定按本來(lái)的順序規(guī)律,將它插入到數(shù)組中。采用的算法是:假設(shè)排序?yàn)閺男〉酱?,?duì)輸入的數(shù),檢查它在數(shù)組中哪一個(gè)數(shù)之后,然后將比這個(gè)數(shù)大的數(shù)順序后移一個(gè)位置,在空出的位置上將該數(shù)插入。請(qǐng)?zhí)羁铡?include<stdio.h>#defineN100voidmain(){floata[N+1],x;inti,p;printf(“輸入已排好序的數(shù)列:”);for(i=0;i<N;i++)scanf("%f",&a[i]);printf(“輸入要插入的數(shù):”);scanf("%f",&x);for(i=0,P=N;i<N;i++)if(x<a[i])/*找到一個(gè)大于x的元素a[p],即在a[p]之前插入x*/{1;break;}for(i=N-1);2;i--)/*將a[p]~a[ N-1]元素后移一個(gè)位置*/a[i+1]=a[i];a[p]=x;/*在a[p]處插入x*/for(i=0;3;i++)/*輸出a數(shù)組的所有元素*/{printf("%8.2f",a[i]);if(i%5==0)printf(“\n”);}}答案:1p=i2i>=p3i<=N7.以下程序運(yùn)營(yíng)后的輸出結(jié)果是。#include<stdio.h>voidmain(){ 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"); }}答案: 1230560098.下面程序?qū)斎氲淖址忻恳粋€(gè)數(shù)字出現(xiàn)的次數(shù)進(jìn)行計(jì)數(shù)。請(qǐng)補(bǔ)全程序。#include<stdio.h>voidmain(){intj,ch,【1】;for(j=0;j<10;++j)digit[j]=0;while((ch=getchar())!='\n')if(ch>='0'&&ch<='9')【2】;for(j=0;j<10;++j)printf("%d:%d\n",j,digit[j]);}答案:【1】digit[10]【2】digit[ch-'0']++9.以下程序運(yùn)營(yíng)后的輸出結(jié)果是。#include<stdio.h>voidmain(){ inta[4][4]={{1,2,3,4},{5,6,7,8,},{11,12,13,14},{15,16,17,18}}; inti=0,j=0,s=0; while(i++<4) { if(i==2||i==4)continue; j=0; do{ s+=a[i][j];j++; }while(j<4); }printf("%d\n",s);}答案:9210.下述程序的功能是:從鍵盤中輸入n個(gè)整數(shù),使用冒泡法對(duì)這n個(gè)整數(shù)從小到大進(jìn)行排序并輸出。請(qǐng)?jiān)跈M線上填上相應(yīng)的內(nèi)容。#include<stdio.h>voidmain(){ inti,j,temp,a[100],n; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i]); for(i=1;i<n;i++) for(j=0;j<(1);j++) if((2)){temp=a[j];a[j]=a[j+1];a[j+1]=temp;} for(i=0;i<n;i++)printf("%d",a[i]); printf("\n")}答案:(1)n-i(2)a[j]>a[j+1]11.以下程序記錄從終端輸入的字符中每個(gè)大寫字母的個(gè)數(shù),num[0]中記錄字母A的個(gè)數(shù),其他依次類推。用#號(hào)結(jié)束輸入,請(qǐng)?zhí)羁铡?include<stdio.h>#include<ctype.h>voidmain(){ intnum[26]={0},i;charc;while(【1】!='#') if(isupper(c))num[【2】)+=1; for(i=0;i<26;i++) if(num[i])printf("%c:%d\n",i+'A',num[i]);}答案:【1】(c=getchar())【2】c-'A'12.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串a(chǎn)bc123edf456gh,執(zhí)行程序后輸出123456。請(qǐng)?zhí)羁?。?023年9月)#include<stdio.h>#include<ctype.h>voidmain(){ chars[80],d[80]; inti,j; gets(s); for(i=j=0;s[i]!='\0';i++) if(){d[j]=s[i];j++;} d[j]='\0'; puts(d);}答案:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57三、編程題1.編寫一個(gè)程序,使用下面的結(jié)構(gòu),以結(jié)構(gòu)數(shù)組的形式存儲(chǔ)顏色編碼,規(guī)定程序輸出數(shù)組的各顏色值,把每種顏色的編碼和顏色名按行顯示在屏幕上。structcolor_table{intcolor;/*colorcodenumber*/charcol_name[10];/*colorname*/}答:程序如下:#include<stdio.h>structcolor_table{ intcode; charcol_name[11];};voidmain(){ structcolor_tablecol_array[]={ 0,"BLACK", 1,"BLUE", 2,"GREEN", 3,"CYAN", 4,"RED", 5,"MAGENTA", 6,"BROWN", 7,"LIGHTGRA", 8,"DARKGRAY", 9,"LIGHTBLUE", 10,"LIGHTGREEN", 11,"LIGHTCYAN", 12,"LTGHTRED" }; inti; for(i=0;i<=12;i++) printf("%d%s\n",col_array[i].code,col_array[i].col_name);}2.編寫一個(gè)程序,在一維數(shù)組里輸入一句英文,記錄該句里出現(xiàn)的單詞個(gè)數(shù)(單詞之間是用空格分隔的)。答:程序編寫如下:#include<stdio.h>voidmain(){ charstr[80]; intj,n=0,w=0; printf("Pleaseinputasentence:\n"); gets(str);/*ê?è?ò???ó¢??*/ for(j=0;str[j]!='\0';j++) if(str[j]=='') w=0; elseif(w==0) { w=1; n++; } printf("Thereare%dwordsinthisline.\n",n);}這里,開(kāi)辟一個(gè)長(zhǎng)為80個(gè)字符的一維數(shù)組str,由它存放輸入的英文句子。輸入后,從前往后掃視數(shù)組中的每一個(gè)元素,直到碰見(jiàn)字符串結(jié)束符‘\0’時(shí)停止。掃視時(shí),對(duì)字符的性質(zhì)加以判別。假如是空格就跳過(guò)去;假如是字符,則表達(dá)進(jìn)入了一個(gè)單詞,需要記數(shù)。但有兩個(gè)問(wèn)題需要考慮:一是不能光用空格數(shù)來(lái)反映單詞數(shù),由于有時(shí)也許會(huì)出現(xiàn)連續(xù)幾個(gè)空格。比如下圖第2次運(yùn)營(yíng)時(shí),單詞banner與on之間出現(xiàn)了3個(gè)空格;二是不能碰到字符就記數(shù),對(duì)于每一個(gè)單詞,只能記數(shù)一次。因此,在程序里設(shè)立了一個(gè)標(biāo)志w,碰到空格時(shí),就把w置為0,表達(dá)在單詞之外。一旦碰到字符且w等于0,則表達(dá)是進(jìn)入一個(gè)新的單詞,于是讓變量n記數(shù),同時(shí)把w改置為1,表達(dá)現(xiàn)在位于單詞之內(nèi)。3.定義一個(gè)結(jié)構(gòu),有3個(gè)成員:姓名、基本工資、崗位工資。說(shuō)明一個(gè)該結(jié)構(gòu)的結(jié)構(gòu)數(shù)組。對(duì)其元素按下表初始化。然后打印每個(gè)人的姓名和工資總額。姓名基本工資崗位工資Lihuaqiu8451800Liumingshang9202400答:程序編寫如下:#include<stdio.h>structperson{ charname[20]; intwages; intsubsidy;};voidmain(){ structpersons[4]={{"Lihuaqiu",845,1800},{"liumingshang",920,2400}}; intk; for(k=0;k<2;k++) printf("%s:%d\n",s[k].name,s[k].wages+s[k].subsidy);}4.在上題結(jié)構(gòu)定義的基礎(chǔ)上,于主函數(shù)main里輸入10個(gè)人員信息,然后輸出應(yīng)發(fā)放的工資總額、工資數(shù)最大者和最小者信息。答:程序編寫如下:#include<stdio.h>structperson{ charname[20]; intwages; intsubsidy;};voidmain(){ intk,pmax,pmin; intsum; structpersons[10]; printf("Pleaseenterinformation:\n"); for(k=0;k<10;k++) scanf("%s%d",s[k].name,&s[k].wages,&s[k].subsidy); sum=s[0].wages+s[0].subsidy; pmax=s[0].wages+s[0].subsidy; pmin=s[0].wages+s[0].subsidy; for(k=1;k<10;k++) { sum+=s[k].wages+s[k].subsidy;/*求總工資*/ if(pmax<s[k].wages+s[k].subsidy)/*求最高工資*/ pmax=s[k].wages+s[k].subsidy; if(pmin>s[k].wages+s[k].subsidy)/*求最低工資*/ pmin=s[k].wages+s[k].subsidy; } printf("sum=%1d,max=%d,min=d\n",sum,pmax,pmin);}5.讓用戶輸入一系列的整數(shù),先將其按從小到大的順序排列并去掉反復(fù)的數(shù)據(jù),再請(qǐng)用戶輸入一個(gè)任意的整數(shù),在整數(shù)序列中查找該數(shù),若找到,反饋給用戶關(guān)于已經(jīng)找到的提醒和此數(shù)在數(shù)組中的位置,否則,將此數(shù)插入到這一整數(shù)序列中保證不破壞有序性的位置上,反饋給用戶有關(guān)未找到此數(shù)和已經(jīng)將此數(shù)插入到序列中的位置信息。解析:排序是程序設(shè)計(jì)中的重要內(nèi)容之一,據(jù)不完全記錄,在一般的數(shù)據(jù)解決程序中,排序占去了解決機(jī)時(shí)間的四分之一,而在典型的應(yīng)用程序中,一半以上的時(shí)間用在對(duì)表的排序上。內(nèi)排序大都使用數(shù)組作為存儲(chǔ)結(jié)構(gòu),是對(duì)數(shù)組的直接應(yīng)用方式之一。#include"stdio.h"voidmain(){ intdata[200],sdata; //data[200]用于存放輸入的數(shù)據(jù)序列 inti,j,k,n; //用于存放將輸入的數(shù)據(jù)的個(gè)數(shù) printf("amountofdatas(1-100):\n"); scanf("%d",&n); printf("inputdatasonebyone:\n"); for(i=0;i<n;) //以下為逐個(gè)輸入數(shù)據(jù)并同時(shí)排序和去掉反復(fù) { inttemp; scanf("%1d",&temp); for(j=i-1;j>=0;j--) if(data[j]<=temp) break; if(data[j]<temp||j==-1) { for(k=i-1;k>j;k--) data[k+1]=data[k]; data[j+1]=temp; i++; } elsen--; } printf("datatosearchorinsert:\n"); scanf("%1d",&sdata); //輸入將要插入或者查找的數(shù)據(jù) if(sdata<data[0])//輸入的數(shù)據(jù)比原序列中最小的還要小,插到原序列的第一位置上 { printf("Nofindandinsertat1th.\n"); for(i=n-1;i>=0;i--) data[i+1]=data[i]; data[0]=sdata; } elseif(sdata>data[n-1])//輸入的數(shù)據(jù)比原序列中最大的還要大,插到原序列的末尾 { printf("Nofindandinsertat%dth.\n",n+1); data[n]=sdata; } elseif(da
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 少年華羅庚觀后感5篇
- 師德演講比賽講話稿
- 公路工程試驗(yàn)檢測(cè)人員業(yè)務(wù)培訓(xùn)-《公共基礎(chǔ)》輔導(dǎo)文件
- 2015安徽道法試卷+答案+解析
- 基于注意力機(jī)制的GNSS-INS緊組合導(dǎo)航關(guān)鍵技術(shù)研究
- 二零二五年度設(shè)備回購(gòu)與智能化改造協(xié)議合同3篇
- 二零二五年度旅游項(xiàng)目委托采購(gòu)合同3篇
- 二零二五年度汽車貸款個(gè)人信用記錄查詢合同3篇
- 2025版水電站股份轉(zhuǎn)讓與新能源發(fā)電設(shè)備采購(gòu)協(xié)議2篇
- 應(yīng)急預(yù)案的協(xié)同作業(yè)
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 2025年貴州蔬菜集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 《田口方法的導(dǎo)入》課件
- 春節(jié)后安全生產(chǎn)開(kāi)工第一課
- 2025光伏組件清洗合同
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場(chǎng)營(yíng)銷策略考核試卷
- 電力電纜工程施工組織設(shè)計(jì)
- 2024年重慶市中考數(shù)學(xué)試題B卷含答案
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
評(píng)論
0/150
提交評(píng)論