中央財經(jīng)01年到05語言試題_第1頁
中央財經(jīng)01年到05語言試題_第2頁
中央財經(jīng)01年到05語言試題_第3頁
中央財經(jīng)01年到05語言試題_第4頁
中央財經(jīng)01年到05語言試題_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、財經(jīng)大學(xué) 二 OO 一年招生專業(yè):產(chǎn)業(yè)經(jīng)濟學(xué) 科目:C 語言程序設(shè)計入學(xué)試題注意:本試題所有應(yīng)按試題順序?qū)懺诖痤}紙上,只寫試題順序號,不必抄題,寫在試題紙上不得分。一、 選擇題:下列每題選擇一個合適的(每題 2 分,共 16 分)1以下函數(shù)調(diào)用語句中含有(Sub1(f1,(f2,f3),f4,(f5,f6,f7)個實參。A)6 B)4 C)3D)以上都不對。2已知: unionx;struct char c1,c2; b; a;執(zhí)行語句:a.x=0 x3412 之后,a,b,c1 的值為( )A)0 x34已知函數(shù)B)0 x3412為:C)0 x12 D)以上都不對3.struct tree

2、*f (x1,x2,x3,x4)x1,*x2;struct tree x3,*x4其中 tree 為已定義過的結(jié)構(gòu),且有下列變量定義:strcut tree pt,*p;i;請選擇正確的函數(shù)調(diào)用語句( )。A)&pt=f(10,&i,pt,p);B)p=f(i+,(*)p,pt,&pt);C)p=f(i+1,&(i+2),*p,p);D)f(i+1,&i,p,p);若有以下程序片段:char str=acb0 x560780; prf(%d, strler, (str);4.A) 3B) 6C) 4D) 85.若 fp 為文件指針,且文件已正確打開,以下語句的輸出結(jié)果為本(fseek(fp,0

3、,2); i=fl(fp);prf(i=%d,i);)A) fp 所指文件的長度fp 所指文件的當前位置,以字節(jié)為fp 所指文件的當前位置,以字節(jié)為fp 所指文件的長度,以字節(jié)為若有以下說明,則有( )不是對 strcpy 庫函數(shù)的正確調(diào)用。char * str1=abcd, str212char *str3=efghkl, *str4, *str5=mnopq;6.A) strcpy ( str2, str1 );B) strcpy (str3 , str1)C) strcpy (str4 , str1)D) strcpy (sir5 , str1 );7.若有如下說明,且 0=k50) b

4、reak;C) k=32760;dok+=2;while(k0);D) k=32760;while (k+%2)|(k%2) k+;二、度程序:給出程序執(zhí)行后的輸出結(jié)果。(第 1、2 題各 5 分,第 3、4、 5、 6 題各 6 分,共 34 分)假設(shè)有可運行程序的各文件名為 test.exe。使用命令行參數(shù),運行該程序的格式如下:testynop azcb rwza請寫出下面程序的輸出結(jié)果。 #includestdio.h#includestring.h main(argc,argv)argc;char *argv; char *p;sub1( argv+1; argc-1 ); for

5、(p=argv+1;-argc;p+)prf(%sn, *p);sub1 (char *s,n)k, j;char word20; for(k=0;kn;k+) for (j=k+1;j0) strcpy(word, sk);strcpy(sk, sj);strcpy(sj, word);2. 寫出以下程序運行后的輸出結(jié)果。#include stdio.h#defineN6#define M21 main()aM,*pN,k,j,q;for(k=0;kN;k+) q=k*(k+1)/2; pk=&aq;for(k=0;kN;k+) *(*(p+k)=1; *(*(p+k)+k)=1; for

6、(k=2;kN;k+ )for (j=1;jk;j+)*(*(p+k)+j)=*(*(p+k-1)+j-1)+*(*(p+k-1)+j); for( k=0; kN; k+ )for(j=0;j=k;j+) prf(%4d,*(*(p+k)+j); prf (n);3. 寫出以下輸出結(jié)果。#include stdio.hchar str=PPPQWLTECH1111Q1QAL main()k; char ch;for ( k=2; (ch=strk)!=0; k+) switch( ch )1; case A: phar(a); continue;case 1: break;case 1:wh

7、ile( ( ch=str+k)!=1&ch!=0);case 9:pcase E:har(#);case L: continue;default : phar(ch); continue;phar(*);prf(n);4. 寫出下列程序的輸出結(jié)果。#include stdio.h main()char *s6=B char *p;k;p=s;,OFEH,IJKVALMN,QXYZ,PRST;for(k=1;k4;k+) prf(%c, (*p)k);5. 寫出程序運行結(jié)果。#include stdio.h #include string.hvoid fun( char *w, char s,

8、*p1, *p2; p1=w;p2=w+m-1;while(p1p2)m), ;s=p1+; p1=p2-; *p2=s;main()sic char a=ABCDEFG; fun(a,strlen(a);puts(a)6. 下列程序由兩個文件組成,請寫出運行結(jié)果/*文件 1*/ #include stdio.hj=4;main(),k,m,j;externexternn;f2( );k=4;m=3;j=0;pr prpr pr pr prf1(f(p1=%dn, f1(n,m);f(p2=%dn, f2(k,m);f (p3=%dn, f1(n,j);f(p4=%dn, f2(n,j); f

9、(n=%dn, n);f(j=%dn, j);m,k) f;if (n) n=k*n; j=m+j; f=n%j;return(f);/*文件 2*/n=2;f2(a, sic externb)m;j;n=n*j+1;j=j+m+1; m=n+j+a+b;return(m);三、填空題(每空 2 分,共 22 分)1. 以下程序功能:輸入 100 本書的名稱和單價,按照單價進行排序后輸出。#include stdio.h #define NUM 100 struct book char name20; float price;main() struct book term,booksNUM;

10、count;for (count=0;countNUM; ) prf(Input book name and pricen); scanf(%s%f, (1) );sortbook( term, books, count+);prf(BOOK LISTn);for(count=0;countNUM;count+) prbook( (2) );sortbook( term, pbook, count) struct book term;struct book *pbook; count;k;struct book *q, ( 3 ) ;for (k=0; kcount; k+,pend+); f

11、or ( ; pbookpriceterm.price) break; for (q=pend-1; q=pbook; q-) (4) ; (5) ;prbook(pbook) struct book *pbook; prf(%-20s %6.2fn, pbook-name, pbook-price);2.以下程序顯示指定文件,在顯示文件內(nèi)容的同時加上行號。 #include stdio.h#include string.h main()char s20,filename20; flag=1, ( 6 ) ;FILE *fp;prf(Enter filename); gets(filename

12、);if(fp=fopen(filename,r) (7) ) prf(File open error !n); exit(0);while ( (8) )while(fgets(s, 20, fp ) ( 9 ) ) if ( (10) ) prf(%3d : %s,+i,s);elseprf(%s , s);if ( ( 11 ) ) flag=1; elseflag=0;fclose(fp);四、 編程序(第 1 題 8 分,第 2 題 9 分,第 3 題 11 分,共 28 分)1有 10 張 3 分的郵票和 10 張 5 分的郵票,問使用這些郵票可以組合出多少種不同面值的郵資。(例如

13、:1 張 3 分郵票加 1 張 5 分郵票可以組成 8 分的郵資;5 張 3 分的郵票或 3 張 5 分的郵票都可以組成同樣面值的郵資。)已知某數(shù)列前兩項為 2 和 3,其后繼項根據(jù)前面最后兩項的乘積,按下列規(guī)則生成:若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項;若乘積為二位數(shù),則該乘積的十位數(shù)字和個位數(shù)字依次作為數(shù)列的兩個后繼項。請編程序生成該數(shù)列的前N 項,并求前N 項的和。要求:生成該數(shù)列后繼3求和過程用函數(shù)實現(xiàn),在主函數(shù)中調(diào)用該函數(shù)。假期同一起去書店,他選中了 N 本書,每本書的單價分別為:p1,p2,p3.,pn 元(均為整數(shù)),不巧的是:不夠買這N 本書(即:Sp1+p2+pn)。為了

14、讓只帶了S(為整數(shù))元錢,過一個愉快的假要從所選的 N 本期,同意將這 S 元錢全部用來買書。也就是書中選出M 本,使得這 M 本的價格和剛好等于 S。即:pi1+pi2+ pi3+pim=S,請你編程序?qū)⑺袧M足這一條件的 i1,i2,i3im 依次打印出來。01 年 c參考一1.d二1.azcb rwza2.c3.b4.a5.d6.c7.a8.cynop(這道題我沒有調(diào)試出來,不知道怎么搞得,一下吧)2.tc 對這道題有意見,大家一起確認11 11 2 110 10 5 .PQWTCH*#Q#ABCDEAG p1=0p2=51 p3=0 p4=97n=1j=0三1.term

15、.name,&term.price2.&bookscount3.*pend=pbook4.*(q+1)=q6.i=0四5.*(q+1)=term7.=NULL8.!feof(fp)9.!=010.flag=111.strlen(s)19最后一道題,沒有搞定,大家?guī)兔? 1.#define N 101*101main()i,j,k,n,s,aN;n=1;a0=0;for(i=0;i=10;i+) for(j=0;j=10;j+)s=3*j+5*i;for(k=0;kn;k+) if(s=ak) break; if(k=n)ak=s;n+;prf(have %d typesn,n);2.#defi

16、ne N 10main()i,s,aN+1;void creat(a,n);a0=2;a1=3;creat(a,N);m(a,N);prf(the as primart N :n);for(i=0;iN;i+)pr prprf(%4d,a);f(the sum of a is :n); f(nsum=%d,s);void creat(a,n)i,t;for(i=2;in;i+)t=ai-1*ai-2; if(t/10=0) a=t;else a=t/10;a+i=t%10; sum(*a,n)s=0;i,s;for(i=0;i*l3比較的是( )。A)字符 M 和字符 J;C)字符串 MATH

17、 和 JAVA;B)字符串 JAVA 和 BASIC;D)字符 J 和字符 B。9使用聯(lián)合體 union 的目的是()A)將一組數(shù)據(jù)作為一個整體,以便于其中的成員共享同一間;空B)將一組具有相同數(shù)據(jù)類型的數(shù)據(jù)作為一個整體,以便于其中的成員共享同一空間;將一組相關(guān)數(shù)據(jù)作為一個整體,以便程序中使用;將一組具有相同數(shù)據(jù)類型的具有相同數(shù)據(jù)類型的數(shù)據(jù)作為一個整體,以便程序中使用。二、按要求完成下列各題(共 53 分) 1寫出以下程序的輸出結(jié)果。(5 分) #include stdio.hmain()x,y,z,w;z=(x=-1)?(y=-1,y+=x+5) x=7,y=3);w=y*a/4;prf(%

18、d,%d,%d,%dn,x,y,z,w); 2閱讀下列程序并回答相應(yīng)問題。(6 分) #include stdio.hmain()i,a,b,c: for(i=0;i5) prf(%c,y);else prf(%c,X);case 2: if(c+i0) prf(%d,b); c=a;a=b-a;b=c;寫出以下程序的輸出結(jié)果。(6 分) main()char *s, *s1=aaaa; char *s2=bbbbb; s=s1;while (*s1+);-s1;while(*s1+=*s2+) ;-s2;prf(%d %s,s2-s, s);寫出以下程序的輸出結(jié)果。(6 分)Void g(*

19、p) (*p) +;(*p)+;main()nl00, i, *p=n;for(i=0; i100; i+)*p=i;g(&P); for(i=0;i100; i+) prf (%d, n);6.寫出以下程序的輸出結(jié)果。(8 分)#define P prf#define C2 %c %c n #define S2 %s %s n#include stdio. hmain() struct schar c5;char *s; s1=cake,milk ; struct char *str;struct s ss; s2=work, time,free; P(C2, *(s1.c+1), *s1.

20、s+1);P(S2,s1.c+2,s1.s+3);P(S2,s2.str,s2.ss.s);P(S2,+s2.str,s2.ss.s+2);7.請寫出程序的輸出結(jié)果。(8 分) #define LEN 12#include stdio.h main()num=3,4,5,6,7,8,9,10,11,12,13,14;i,j,k,x,y; x=O; y=LEN-1;while(x=y)j=numx; i=2;k=1;while(i=j/2&k) k=j%i+;if(k)prf(%3d,numx+);else numx=numy;numy-=j; 8. 說明下面函數(shù)的動能。(8 分)dec(a,n

21、) if(n=l) return 1;if (a0a1) return 0; return dec(a+1.n-l);三、程序填空題(每空 2 分,共 24 分)1.本程序為 6 個整型變量 A、B、C、D、E、F輸入整數(shù),并按從大到小的順序輸出他們的名和值。如某次 A、B、C、D、E、F 的輸入值為 1, 2, 5, 4, 9, 8,則程序?qū)⑤敵觯篍(9) F(8) C(5) D(4) B(2) A(1)#define N sizeof tb1/sizeof (tb1O)A, B, C, D, E, F;struce char vn;*vp;tb1=A,&A, B,&B, C,&C,D,&D

22、, E,&E, F,&F,t;main()k,m,j;for(k=0;k0)for(k=j=0; jm;j+) if( (2) ) t=tb1j;tb1j=tb1j+1; tb1j+1=t; (3) ;/*采用冒泡法排序*/m=(4) ;/*本框填 m-1 不給分*/for(k=0;k=a&c=A&clength)length=len; p=k; (12) ;prf(%d %d, length,p);四、下列程序已標上行號,請第 2 題 18 分, 共 26 分)并改正程序中的錯誤。(第 1 題 8 分,有 3 個學(xué)生 3 門課,程序輸出第 n 個學(xué)生的成績。main()2. float a3

23、3=60,89,50,78,86,75,94,70,60;3.found(*a, 2);4. void found(float *p3,5.( for (i=0;i3;i+)n)6.prf(%f, *(p+n-1)+i);該程序功能:它能對文本文件進行拷貝,也能對二進制文件拷貝。命令格式為: cpy /A /B /A 表示按 ASCII 碼方式進行拷貝/B 表示按二進制方式進行拷貝,兩種方式不能聯(lián)合使用,否則給出錯誤信息。是源文件,是目標文件。1. #include stdio.h2. main(argc, char argy)3.4.5.if(argc!=4)prf(errorn; exit

24、(1);if(argv1=/A) copa(argv2, argv3);else if(argv1=/B) c(argv2,argv3);6.else prf (usage:n);prf(dup /A /B n); exit(1);7.8.9.I4.35.36.copya(char *, char *dest)FILE *fp1, *fp2; char c;if(fp1=fopen(, r)=NULL)prf(errorn); exit(1);if(f

25、p2=fopen(dest, r)=NULL)prf(errorn); exit(1); while(!feof(fp1)c=fgetc(fp1);fp(fp2,c);fclose (fp1);fclose (fp2) :copyb(char *, char *dest)FILE *fp1, *fp2;char c; if(fp1=fopen(,r)=NULL)prf(errorn); exit(1);if(fp2=fopen(dest,r)=NULL)prf(errorn); exit(1);while(!feof(fp1)c=fgetc(fp1) ;fp(fp2,c);fclose(fp1

26、);fclose(fp2);37.五、編程序(第 1 題 6 分,第 2 題 8 分,第 3 題 15 分,共 29 分)說明:: (1)程序要加上必要的注釋; (2)按各題要求編程,否則不給分。1.含 N 個元素的整型數(shù)組 a,任選一元素 am,將其它元素重新排列,使得 aam(im)。 (注:不得對 a 數(shù)組排序)。例如:a 數(shù)組元素為: 65, 70, 75, 80, 85, 60, 55, 50, 45,若選擇 a0=65,則結(jié)果為 60,45,50,55,65,85,80,75,70。 2編寫程序,生成如下序列的前 n 項。1,2,1,2,3,2,1,2,3,4,3,2,1,2,3,

27、4,5,4,3,2,1,2.3.程序?qū)崿F(xiàn)兩個整系數(shù)二元多項式的加法。例如,兩個多項式為: A(x,y)=5*x6*y3+4*x2*y3+7*x*y 和 B(x,y)=5*x9*y3+4*x2*y3-7*x2*y+10,結(jié)果為:A(X,Y)=5*x9*y3+5*x6*y3+8*x2*y3-7*x2*y+10要求:(1)采用鏈表多項式,每一結(jié)點含三個域:指數(shù)域、系數(shù)域、指針域; (2) 將 B 多項式加到 A 上,結(jié)果是 A 所指的單鏈表,不另外生成新鏈表(否則不給分); (3) A、B 所指的多項式鏈 表的建立過程,寫一函數(shù)(input)實現(xiàn),以系數(shù)為 0 結(jié)束輸入;相加 過程寫一函數(shù)(add)

28、實現(xiàn),在主函數(shù)中調(diào)用這兩個函數(shù),不要求輸出結(jié)果。 選擇題:1.c2.b3.c4.a5.a(4 ,5 兩題不太確定,大家?guī)兔纯矗ヽ 是印刷錯誤,大寫換成小寫,應(yīng)選 c)6.b(調(diào)試時有警告,我覺得二7.b8.d9.a1.-1,3,3,722.(1)a=3,b=2,c=3(2)a=1,b=1,c53.89,55,34,21,13,8,5,3,2,4.10 aaaabbbbb(不理解怎么會是 10? s1 和 s2 兩個地址值是隨機分配的,怎么會有這種固定關(guān)系?幫忙。)5.1,2,3,4,5,6,.100,6.ankekworkfreeorkee7. 3 13 5 11 78.判斷一個數(shù)組是否按降

29、序排列(包括連續(xù)幾個元素相等),是返回 1,否則返回 0。三1.tb1k.vp2.*tb1j.vp*tb1j+1.vp3.k+4.k5.tb1k.vn6.*tb1k.vp7.return 1四8.return 09.j=strlen(s)10.flag=111.len+12.len=01.改正后的程序:(我調(diào)試過,通過了。這道題我共找出 4 處錯誤)main()float a33=60,39,59,94,85,38,59,86,88;found(a,2);found(float (*p)3,n)i;for(i=0;i3;i+)pr f(n%f,*(*(p+n-1)+i);2.改正后的程序:(這

30、道題我不會調(diào)試,誰會請指點一下。不知道還有沒有其他錯誤,我共找出 9 處錯誤,但都是低級錯誤,大家?guī)兔υ诳纯矗€有沒有其他錯誤)#include main(argc,char *argv)if(argc!=4)pr f(errorn);exit(1);if(argv1=/A) copya(argv2,argv3);else if(argv1=/B) copyb(argv2,argv3);else pr f(usage:n);pr f(dup /A /B n);exit(1);copya(char *,char *dest)FILE *fp1,*fp2;char c;if(fp1=fopen(,

31、r)=NULL)pr f(errorn);exit(1);if(fp2=fopen(dest,w)=NULL)pr f(errorn);exit(1);while(!feof(fp1)c=fgetc(fp1);fp(c,fp2);fclose(fp1);fclose(fp2); copyb(char *,char *dest)FILE *fp1,*fp2;char c;if(fp1=fopen(,rb)=NULL)pr f(errorn);exit(1);if(fp2=fopen(dest,wb)=NULL) pr f(errorn);exit(1);while(!feof(fp1)c=fge

32、tc(fp1);fp(c,fp2);fclose(fp1);fclose(fp2);五 編程題(大家看看哪里還有缺陷,或者更簡單的算法,大家要是看完不給點建議就太不厚道了!)1.#define N 8main()aN+1,i,j,m,t,num;pr f(input n number);for(i=1;i=N;i+)scanf(%d,&a);pr f(select a number m:n);scanf(%d,&m);t=a1;a1=am;am=t;num=a1;for(i=2;iN+1;i+)if(a0;j-)aj=aj-1;pr f(after array:n);for(i=1;i=N;i

33、+)pr f(%3d,a);2.main()i,j,m,n,p;pr f(input the n:n);scanf(%d,&n);m=i=p=1;dofor(j=0;jm;j+)pr f(%d,i+);if(p+=n) m=-1;for(j=0;jm;j+)pr f(%d,i-);if(p+=n) m=-1;m+;while(m);3.#include struct node m;a2;struct node *next;n=0;struct node *input()struct node *p,*q,*h;t=0;h=NULL;p=q=(struct node *)malloc(sizeo

34、f(struct node);pr f(input m,x,y,endof m=0:n);scanf(%d%d%d,&p-m,&p-a0,&p-a1);while(p-m!=0)t=t+1;n=n+1;if(t=1) h=p;else q-next=p;q=p;p=(struct node *)malloc(sizeof(struct node);scanf(%d%d%d,&p-m,&p-a0,&p-a1);q-next=NULL;return h;void add(struct node *h1,struct node *h2)struct node *p1,*p2,*q,*s,*h;i,j

35、;p1=*h1;while(p1-next!=NULL)p1=p1-next;p1-next=*h2;p2=h=(struct node *)malloc(sizeof(struct node);p2-next=*h1;for(i=0;inext;for(j=0;ja0+q-a1)next-a0+q-next-a1)s=q-next;q-next=s-next;s-next=p2-next;p2-next=s;p2=p2-next;else if(q-a0+q-a1)=(q-next-a0+q-next-a1)s=q-next;q-m=(q-m+q-next-m);q-next=s-next;

36、else -next;p2=p2-next;*h1=h-next;free(h);main()struct node *h1,*h2,*p;i;pr f(input A:n);pr f(input B:n);h1=input();h2=input();add(&h1,&h2);p=h1;while(p)pr f(%d*x%dy%d+,p-m,p-a0,p-a1);p=p-next;財經(jīng)大學(xué)二 00 四年入學(xué)試題招生專業(yè):產(chǎn)業(yè)經(jīng)濟學(xué)(信息經(jīng)濟、宏觀經(jīng)濟與產(chǎn)業(yè)經(jīng)濟模型方向)科目:c 語言程序設(shè)計一、選擇題:下列每題選擇一個合適的(每題 2 分,共 20 分)已知 A)2已知 A)72已知A)1x=

37、1,y=2,z=3;則 z+=xy?+x;+y 的值是( )。B)4 C)3D)6a=10,9,8,7,6,*p=a;則*(p+1)*(p+2)2的值是( )。B)80C)54D)有語法錯誤i,j;表達式(j=i=5,i=j=3)的值是( )。B)5C)3D)04.從計算機所用資源(時間和空間)角度分析,宏于函數(shù)的主要區(qū)別為()。A)宏的使用節(jié)省了 B)宏的使用耗費了 C)宏的使用耗費了D)宏的使用節(jié)省了空間,函數(shù)耗費了時間;空間,函數(shù)耗費了時間;空間,函數(shù)節(jié)省了時間;空間,函數(shù)節(jié)省了時間;5.一維指針數(shù)組名作為實參,若有以下說明:*p5;.sub(p);則 sub 函數(shù)中對應(yīng)的形參可以是(

38、)。A) sub(C) sub(*p5);*p);B) sub(*p);C) 以上都正確6.C 語言函數(shù)中的形參和在函數(shù)中定義的變量,都是在調(diào)用該函數(shù)時系統(tǒng)會給它們分配空間,在函數(shù)調(diào)用結(jié)束時就它們所占的空間,該說法( )。A)錯誤B)正確7.若有如下說明:unionn3;char ch; float f;a;如果 a.n0的地址為 158,則 a.ch 和a.f 的地址分別為( )。A)158,158B)164,165C) 150,160D)170,1718.程序的三種基本控制結(jié)構(gòu)是( )。A)順序,轉(zhuǎn)移,選擇; C)重復(fù),選擇,順序;9.程序段:B)選擇,I/O,遞歸;D)重復(fù),遞歸,子程序

39、;scanf(%d%d,&a,&b); c=5*a+bif (c=0) a=1; else a=1/c+1/b;保證該程序段運行不出錯的必要條件是( )。A)b0B)a0&b0C)b!=0D)c!=0&b!=010.在進行文件操作時,寫文件的一般含義是( A)將鍵盤中的信息存入計算機 CPUB)將計算機內(nèi)存中的信息存入磁盤 C)將計算機 CPU 中的信息存入磁盤D)將磁盤中的信息存入計算機內(nèi)存)。二、按要求完成下列各題(共 50 分)1.寫出下列程序的輸出結(jié)果。(5 分)a=1;main()a;for (a=1;a10;a+)sub(a+);prf(%d ,a);sub(a)a=a*a; re

40、turn;2.寫出下列程序的輸出結(jié)果。(5 分)f(x,y)r;if(y=1) r=x; else r=f(x,y-1)+x; return r;main()a=6,b=5;prf(%d,f(a,b);3.寫出下面程序的輸出結(jié)果。(5 分)func(*s,*y)sict=3;*y=st; t-;main()a=10,20,30,40,i,x=0;for(i=0;i4;i+)func(a,&x);prf(%d ,x);prf(n);4.寫出下列程序的輸出結(jié)果。(5 分)sum1(n)p=0,s=0,i;for(i=1;in;i+)if(i%2) continue; s+=p+=i;return

41、s;main()prf(%dn,sum1(10);5.寫出下面程序的輸出結(jié)果。(6 分)double x,y,z; double f(),g(),t(); main()x=5.0;y=t(x,f);z=t(x,g);prf(y=%f z=%fn,y,z); double t(double a,double (*f)() )return (*f)(a+a); double f(double x)return 3.0*x; double g(double x)return 3.0+x;6.寫出下列void f(的輸出結(jié)果。(8 分)i,char *cp)for(;i;i-)prf(%c,*cp+)

42、; main()char a3=ABC,DEF,GH;char *p;p=a0; f(1,p+); f(1,p+);prf(n);p=a1; f(3,p+); f(2,p+); f(1,p+); prprf(%sn,a0);7.寫出下列程序的輸出結(jié)果。(8 分)#include stdio.h main()char *f,*a;f(n);i,j; f=%11.2s;a=*; prf(n);for(i=0;i6;i+)*(f+2)=6-i;pr);if(i=0)pr f(*n);else if(i=5)pr f(*); else for(j=0;j2*i-1;j+)pr f( ); pr f(*

43、n);8.寫出下列程序的輸出結(jié)果。(分)sub(s,m,n,char st)p,q,t;t=st;p=s; while(t)q=(p+m)%n; if(q=s) break; stp=stq; p=q;stp=t;char b=0123456789;main()sub(1,2,10,b);puts(b);三、程序填空題(每空 2 分,共 20 分)1.本程序的功能是判斷指定的正整數(shù)是否為素數(shù),若是則輸出該素數(shù)。f(y,i;a)i=2,y=1;while(ival= (3) ; (4) ;h= (5) ;return h;void sort(struct node *h)struct node

44、*p,*q,*r,*s,*h1;h1=p=(struct node*)malloc(sizeof(struct node); p-next=*h;while(p-next)q=p-next; r=p;while(p-next)if(q-next-valnext;if(r!=p)s=r-next; (7) =s-next;s-next= (8) ; (9) =s;p=p-next;main()struct node *p,*head1,*head2; a=1,5,2,7,4,m=5;head1=create(a,m); head2= (10) ; sort(head2); p=head1;whi

45、le(p)prf(%d ,p-val); p=p-next;四、下列程序已標上行號,請并改正程序中的錯誤。(共 30 分)注:不得增加或刪除程序行,也不能更改程序結(jié)構(gòu)。1.程序功能為在 4 個字符串中求最大字串并輸出結(jié)果。..10.11.#include string.h #include stdio.h main()char *s=boy,girl,mother,father; char st;i;for (i=1;i4;i+) if(*st*s)st-s;prf(%sn,*st);2.10 個學(xué)生 5 門課,下面的程序從文件 f1.dat 讀入所有學(xué)生各課成績,

46、計算出每個學(xué)生的總分,并按總分降序的次序?qū)⒚總€學(xué)生名次、各課得分及總分輸出到文件f2.dat。提示:為了避免排序時可能要交換 sk和 sjk,程序另引進數(shù)組 ord,改上述交換為 ord 和ordj的交換。7.28.29.#include stdio.h s107;main()i,j,sum,ord10,t;FILE *fp; if(fp=fopen(wb,f1.dat)=NULL)prf(cant open file %sn.f1.dat); exit(1);for(i=0;i10;i+)fread(

47、fp,2,6,s); sum=0; for(j=1;j=5;j+) sum=sum+sj; s6=sum;ord=i;for(i=0;i9;i+) for(j=j+1;j10;j+)6.37.if(s6sj6)t=ord;ord=ordj;ordj=t;fp=fopen(rb,f2.dat); for(i=0;iy?+x:+y 的值是(D) A,2 B,4 C,3 D,6 a=10,9,8,7,6,*p=a;則*(p+1)*(p+2)2的值是(C) A,72 B,80 C,54 D,有語法錯誤i,j;表達式(j=i=5,i=j=30 B a0&b0 C b

48、!=0 D c!=0&b!=0 10.在進行文件操作時,寫文件的一般含義是(B) A 將磁盤中的信息存入計算機 CPU;B 將計算機內(nèi)存中的信息存入磁盤; C 將計算機 CPU 中的信息存入磁盤; D 將磁盤中的信息存入計算機內(nèi)存。二、按要求完成下列各題(共 50 分) 1.寫出下列程序的輸出結(jié)果(5 分)a=1; main():2 4 6 8a; for(a=1;a10;a+) sub(a+); prf(“%d”,a); sub(10a) a=a*a; return; 2.寫出下列程序的輸出結(jié)果(5 分) f(x ,r; y) r; if(y= =1) r=x; else r=f(x,y-1

49、)+x; returnmain() a=6,b=5; prf(“%d”,f(a,b); :303.寫出下列程序的輸出結(jié)果(5 分) func(*s,*y) sict=3; *y=st; t-; main() a=10,20,30,40,i,x=0; for(i=0;i4;i+) func(a,&x); prf(“%d”,x); prf(“n”); :40 30 20 104.寫出下列程序的輸出結(jié)果(5 分)continue; s+=p+=i; return s; main() prf(“%dn”,sum1(10);sum1(n) p=0,s=0,i; for(i=1;in;i+) if(i%2

50、):405.寫出下列程序的輸出結(jié)果(6 分)z=t(x,g); prf(“y=%f z=%fn”,y,z); double x,y,z; double f(),g(),t(); main() x=5.0; y=t(x,f);double t(double a,double (*f)() return (*f)(a+a); double f(double x) return 3.0*x; doubleg(double x) return 3.0+x;:y=30.00000 z=13.000006.寫出下列程序的輸出結(jié)果(8 分) void f(i,char *cp) for (;i;i-) pr

51、f(“%c”,*cp+);main() char a3=“ABC”,“DEF”,“GH”; char *p; p=a0;f(1,p+);f(1,p+);f(1,p+);prf(“n”);p=a1;f(3,p+);f(2,p+);f(1,p);prf(“n”);prf(“%sn”,a0);:ABCDEFEBCDEFGH7.寫出下列程序的輸出結(jié)果(8 分) #include “stdio.h” main()char *f,*a;i,j; f= “%11.2s”; a= “*”; prf(“n”);for(i=0;i6;i+) *(f+2)=6- i ; pr if(i= =0) prf (“*n”

52、);else if (i= =5) prf(“*”);else for(j=0;j2*i-1;j+) prf(“ ”););prf(“*n”); : * * * * * * * * * *8.寫出下列程序的輸出結(jié)果(8 分) sub(s,m,n,char st)p,q,t; t=st;p=s; while(1) q=(p+m)%n; if(q= =s) break; stp=stq; p=q; stp=t; char b=“0123456789”;main() sub(1,2,10,b); puts(b);:0 3 2 5 4 7 6 9 8 1三、程序填空題(每空 2 分,共 20 分) 1

53、.本程序的功能是判斷指定的正整數(shù)是否為素數(shù),若是則輸出該素數(shù)。f(a) y,i; i=2;y=1; while(ival=(3); (4); h=(5); return h; void sort(struct node *h) struct node *p,*q,*r,*s,*h1; h1=p=( struct node *)malloc(sizeof(struct node ); p-next=*h; while(p-next) q=p-next; r=p; while(q-next) if(q-next-valnexr; if(r!=p) s=r-nexr; (7)=s-next; s-n

54、ext=(8); (9)=s; p=p-next; *h=h1-next; free(h1); main() struct node *p,*head1,*head2; int a=1,5,2,7,4,m=5; head1=create(a,m); head2=(10); sort(head2); p=head1;while(p) printf(“%d”,p-val); p=p-next; 答案(: 3)an-1 (4) q-next=h (5) h=q (6) q-val (7)next (8) p-next (9) p-next=s (10) &head1四、下列程序已標上行號,請指出并改

55、正程序中的錯誤。(共 30 分)注:不得增加或刪除程序行,也不能更改程序結(jié)構(gòu)。 1.程序功能為在 4 個字符串中求最大字符串并輸出結(jié)果。1.#include “string.h” 2.#include “stdio.h” 3.main() 4.char*s=“boy”, “girl”, “mother”, “father”;5.char st; 改為 char *st; 6.int i; 7.st=s; 8.for(i=1;i4;i+) 9.if(*st*s) 改為 if(strcmp(*st,s)0)10.st=s; 改為 strcpy(*st,s); 11.printf(“%sn”,*st

56、);.2.10 個學(xué)生 5 門課,下面的程序從文件 f1.dat 讀入所有學(xué)生的各課成績,計算出每個學(xué)生的總分,并按總分降序的次序?qū)⒚總€學(xué)生名次、各課得分及總分輸出到文件 f2.dat。提示: 為了避免排序時可能要交換 sk和 sjk,程序另引進數(shù)組ord,改上述交換為ord 和ordj的交換。12.# include “stdio.h” 13.int s107; 14.main()15.int i,j,sum,ord10,t; 16.FILE *fp; 17.if(fp=fopen(“wb”, “f1.dat”)= =NULL) 改為 if(fp=fopen(“f1.dat”, “rb”)=

57、 =NULL)18.printf(“cant open file %s n”, “f1.dat”); 19.exit(1); 20.for(i=0;i10;i+) 21.fread(fp,2,6,s);改為 fread(s,2,6,fp);22.sum=0; 23.for(j=1;j=5;j+) 24.sum=sum+sj; 25.s6=sum; 26.ord=i; 27. 改為 fclose(fp); 28.for(i=0;i9;i+)29.for(j=i+1;j10;j+) 30.if(s6sj6) 31.t=ord; ord=ordj;ordj=t;32.fp=fopen(“rb”, “

58、f2.dat”); 改為.fp=fopen(“f2.dat”, “wb”); 33.for(i=0;i10;i+) 34.s0=i+1;改為 s0=ord;35.fwrite(fp,2,7,s);改為fwrite(s,2,7,fp); 36.fclose(fp); 37.五、編程題(每題 15 分,共 30 分) 說明:按各題要求編程,否則不給分。 1.編程序?qū)崿F(xiàn)單鏈表的起泡排序。要求:(1)結(jié)點的數(shù)據(jù)域只有一個整數(shù)域; (2)N 個結(jié)點的整數(shù)鏈表的建立過程,寫一函數(shù)(create)實現(xiàn),數(shù)據(jù)從鍵盤輸入。2.如果一個數(shù)列中的任意一段(至少是兩個元素)的各個元素均相同,段。稱之為等值數(shù)列等值數(shù)列

59、段中元素的個數(shù)叫等值數(shù)列段長度。現(xiàn)有 100 個元素組成的整數(shù)數(shù)列A ,求 A 中長度最大的所有等值數(shù)列段的首末位置,并輸出該等值數(shù)列段的首末位置。如果沒有等值數(shù)列段,則輸出結(jié)束標志(not have)。 要求 :所有運算均應(yīng)在原數(shù)組上進行,不得引進第二個數(shù)第一題: #include #include #define MAX 10struct node data; struct node *next; ;void main() i,j,dat,temp; struct node *p,*q,*h;void create(struct node *q,dat);/創(chuàng)建鏈表的首節(jié)點 q = h =

60、 (struct node *)malloc(sizeof(struct node);prf(PleaseInput%dElementsn,MAX);for(i=0;inext; for(i=0;iMAX-1;i+) for(j=0;jdata p-next-data ) temp = p-data; p-data = p-next-data; p-next-data = temp; p = p-next; /*遍歷節(jié)點回復(fù)到首節(jié)點的后繼,再次比較*/ p = h-next; prf(nNodes sorted as follow:); p = h-next; /* 將遍歷指針指向首節(jié)點的后繼

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論