C語言程序設(shè)計(jì)模擬試題A(附答案)_第1頁
C語言程序設(shè)計(jì)模擬試題A(附答案)_第2頁
C語言程序設(shè)計(jì)模擬試題A(附答案)_第3頁
C語言程序設(shè)計(jì)模擬試題A(附答案)_第4頁
C語言程序設(shè)計(jì)模擬試題A(附答案)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計(jì)模擬試卷A單項(xiàng)選擇題(每題2分,共20分)1、下列有關(guān)C語言的敘述中錯(cuò)誤的是(D) 0A)C語句必須以分號(hào)結(jié)束B)任何一個(gè)C程序中有且只有一個(gè)主函數(shù)C)復(fù)合語句在語法上可被看作一條語句D)C程序中對(duì)數(shù)據(jù)的任何操作都可由運(yùn)算符實(shí)現(xiàn)2、以下不能定義為用戶標(biāo)識(shí)符的是(C)oA) MAINB) _HJC)2ongD)LINE13、以下能正確定義一維數(shù)組的是(CoA) int a5=0,1,2,3,4,5;B) inta5= ” 012345;C) char a = ” 012345;D) chara5=0,1,2,3,4,5;4、執(zhí)行下列程序段后輸出的結(jié)果是(C)ox = 9;while

2、(X > 7) printf( “*”); X - -; A) *B) *C) *D) *5、設(shè) char str110=“ABCD” , str210=xyz則執(zhí)行語句解析:printf(“ %d, strle n(strcpy(str1.str2); 后的輸出結(jié)果是(D)ostrc py(str1,str2);strc py(str1,str2);里是"XYZ", Z后面有字符串結(jié)束符后,str1執(zhí)行后,函數(shù)返回的是 str1,因?yàn)閟tr1里是新值"XYZ",而strlen(strcpy(str1,str2)就是 strlen(str1 的新值

3、),所以得 3 ostrlen統(tǒng)計(jì)到字符串結(jié)束符以前,即,不計(jì)入字符串結(jié)束符。A) 9B) 8C) 5D) 3A)o6若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,貝M專遞給形參的是(0。A)數(shù)組的首地址B)數(shù)組第一個(gè)元素的值C)數(shù)組中全部元素的值D)數(shù)組元素的個(gè)數(shù)7、在C程序中,若未在函數(shù)定義時(shí)說明函數(shù)類型,則函數(shù)默認(rèn)的類型為(A) voidB)double C)intD) char8、下面不能正確進(jìn)行字符串賦值操作的語句是 (Q。A) char s5="ABCD"B) char s5;s="ABCD"C) char *s ; s="ABCDEF"

4、D) char *s="ABCD"解析:這樣理論上的沒錯(cuò)的把 s指針指向字符串可以改變s指針但不能改變其指向的值正確的應(yīng)該是這樣char s = "ABCDEF"或 char s8;strcpy(s, "ABCDEF");則下列表達(dá)式中值為3的是(C)。9、設(shè)有說明 int s5=1,3,5,7,9; int *p=s;A)+PB)+(* p)C) *(+P)D) *(p+=2)解析:A是把p得地址后移一個(gè)int單位長度,即使P指向數(shù)組的第二個(gè)元素。B是取得P當(dāng)前指向的元素值然后加1,即1+1=2;C是先移動(dòng)P,使其指向第二個(gè)元素,然

5、后取得當(dāng)前指針指向的元素值,即D是先使P指向數(shù)組的第三個(gè)元素,然后去的當(dāng)前指針指向的元素的值,即3.5。10、下面程序的輸出結(jié)果是(B)。int m=13;int fun( int x,int y) int m=3;return( x*y-m); mai n() int a=7,b=5;printf(“dn”,fun(a,b)/m); A) 1B) 2C) 3D) 10二、填空題。(每空2分,共30分)1.設(shè)有變量說明語句:int x=1,y=2;則執(zhí)行下述printf 語句的輸出結(jié)果是_1.000000_prin tf("%fn",1.0+x/y);2.執(zhí)行下述程序:#i

6、 nclude <stdio.h> mai n()int x,y;scan f("%2d%*2s%1d", &x,&y);prin tf("%dn",x+y);若從鍵盤輸入:12345671則程序的輸出結(jié)果是17 0解析:x,y為int類型,x的長度為2,y的長度為1,即x為12,y為5,故x+y=173. 以下程序的功能是:從鍵盤上輸入若干名學(xué)生的成績(百分制,可帶小數(shù),以輸入負(fù)數(shù)或0為結(jié)束標(biāo)志),統(tǒng)計(jì)并輸出最高成績和最低成績。請(qǐng)?zhí)羁铡?i nclude <stdio.h> mai n()float x,amax

7、,am in;scan f("%f", &x);amax=x;amin=x;while (x>0)if (x>amax)amax=x;else if (x<am in)amin=x;sca nf("%f, &x);prin tf("namax=%fnami n=%fn",amax,ami n);4. 設(shè)n是整型變量,且已具有某正整數(shù)值。根據(jù)下述數(shù)學(xué)式11111 1 122 33 4n n 1求s的值并輸出??删帉懭缦轮绦蚨蝸韺?shí)現(xiàn)。請(qǐng)?zhí)羁?。int k;double s,d;s=0.0;d=1.0;k=0;dos

8、=s+d;k+d=1.0/(k*(k+1); while (k<=n);prin tf("%fn",s);5.執(zhí)行下述程序的輸出結(jié)果是 -3 -4 0 4 4 3#i nclude <stdio.h>mai n()int a6,i;for (i=0;iv6;i+)ai=9*(i-2+4*(i>3)%5;prin tf("%3d",ai);prin tf("n");解析:(i>3)為真時(shí)值為1,反之為0,6.執(zhí)行下述程序的輸出結(jié)果是 6#in elude <stdio.h>mai n()int

9、a=2,4,6,* ptr=&a0,x=8,y,z;for (y=0;y<3;y+)z=(*( pt葉 y)vx)?*( pt葉 y):x;prin tf("%dn",z);7.執(zhí)行下述程序的輸出結(jié)果是60 。#in elude <stdio.h>mai n()int a2=10,20,30,40,50,60,(* p)2;p=a;prin tf("%dn",*(*( p+2)+1);8.執(zhí)行以下程序的輸出結(jié)果是址。#in elude <stdio.h>mai n()int s,i,sum();for (i=1;iv

10、=10;i+)s=sum(i);prin tf("s=%dn",s);sum(i nt k)int x=0;return (x+=k);9. 下述函數(shù)定義用來求出兩個(gè)整數(shù)之各,并通過函數(shù)的模擬傳地址調(diào)用,傳回兩整數(shù)相加之和值,請(qǐng)?zhí)羁?。void add(i nt x,i nt y,int *zz=x+y;10. 函數(shù)func的功能是將整型變量x的值轉(zhuǎn)換成二進(jìn)制數(shù),并將該二進(jìn)制數(shù)的每位存入由整型指針b所指向的一維數(shù)組a,最低位存放于a0中,次低位存放于a1中,依此類推。請(qǐng)?zhí)羁?。void fun c(i nt x,i nt *b)int r;dor=x%2;=r;x/=2; wh

11、ile(X);11. 以下程序中函數(shù)in vert實(shí)現(xiàn)將數(shù)組內(nèi)所有數(shù)組元素的值逆置。比如,執(zhí)行本程序?qū)⑤敵?10987654321請(qǐng)?zhí)羁铡?i nclude <stdio.h> mai n()int a10=1,2,3,4,5,6,7,8,9,10,i, n=10;inv ert(a, n-1);for (i=0;i<10;i+)prin tf("%3d",ai);prin tf("n");in vert(i nt *s,i nt num)int *t,k;t=s+num;while (_t>sk=*s;*s=*t;*t=k;s+

12、;t-;12. 若有以下定義和說明,則結(jié)構(gòu)體變量 w在內(nèi)存中所占的字節(jié)數(shù)是 union aafloat X; float y;char c6;; struct stunion aa v;float w5;double ave; w;13.執(zhí)行下述程序的輸出結(jié)果是#in elude <stdio.h>struct strfloat X;char *y; *m;struct str group 3=95.0,"Li",82.5,"Wa ng".73.5,"S un"mai n()m=gro up;prin tf("%

13、.lf,%sn",m->x,m->y);14.下面的程序用來統(tǒng)計(jì)某文件中字符的個(gè)數(shù)。請(qǐng)?zhí)羁铡?i nclude <stdio.h>#in clude <stdlib.h>mai n()FILE *fp;long num=0;if (fp=fo pen( "fnam.dat","廣)=NULL)prin tf("Ca n't o pen this file!n");exit(0);while (fgetc(fp);nu m+;prin tf(" num=%dn",nu m)

14、;fclose(f p);15.執(zhí)行下述程序后,輸出結(jié)果為#i nclude <stdio.h> #defi ne FUN1(a,b) a+b #defi ne FUN2(a,b) a-b #defi ne CAL(a,b) a*b+a+3 mai n()prin tf("%dn",CAL(FUN1(3,5),FUN2(4,5);三、修改程序(在程序出錯(cuò)的語句下劃橫線并標(biāo)號(hào),把修改后的語句寫在程序之后的橫線上。每小題5分,共10 分)1.下列給定程序的功能是:讀入一個(gè)整數(shù)(2<=k< = 10000),打印它的所有質(zhì)因子(即所有為素?cái)?shù)的因子)。例如,

15、若輸入整數(shù)2310,則應(yīng)輸出2、3、5、7、 11。#in clude vconi o.h> #i nclude <stdio.h>IsP rime(i nt n);m=1;for ( i=2; ivn; i+) int i,m;if !(n%i) m=0; con ti nu e; return (m);mai n() int j,k;pnntf(“ nPI ease en ter an in teger nu mber betwee n 2 and10000:”);scanf(“%d ,k);re): ” ,k);“ n %4d ,j);prints“ n The p r

16、ime factor(s) of %d is (afor (j=2;jv=k;j+)if (!(k%j)&(Is Pnme(j) printf(printf( “ n”);2.下列給定程序中,函數(shù)fun的功能是:逐個(gè)比較a、b兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCII值大或等于的字符一次存放到 c數(shù)組中,形成一個(gè)新的字符串。例如,若a中的字符串為aBCDeFgH,!中的字符串為:ABcd,則c中的字符串為:aBcdeFgh。#i nclude <stdio.h> #i nclude <stri ng.h> void fun( char *p ,char *q,ch

17、ar *c) int k=1;while(* p!=*q) if (*p <*q) ck=*q;else ck=* p;if (*P)P+;if (*q) q+;k+;char a10=“aBCDeFg” ,b10=“ABcc”fun( a,b,c);printf(“The stri ng a:” );puts(a);printf(“The stri ng b:”);P uts (b);printf(“The result: ”);P uts(c);mai n(),c80=四、閱讀下列程序,在程序后面的橫線上,寫出該程序的功能或給出運(yùn)行結(jié)果。(每小題5分,共20 分)1.#i nclud

18、e <stdio.h> int k=0;void main()char ch; int k=0;for(ch= ' A ;ch<' H ;ch+,k+)if(k%2=0) printf( “%c ,ch);printf( “ n”);輸出結(jié)果:2. #in clude <stdio.h>void mai n()char c= ' A'; do switch (c+)case'A' : k+; break;casecase'C' : k+=2; break;caseD' : k=k%2; bre

19、ak;case'E : k=k*10; break;default: k=k/3;k+; while(c<'G );printf(輸出結(jié)果:3. #in clude <stdio.h>void main() inta6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i,j;for(i=0;i<6;i+) for(j=0;j<6;j+) if(ai=bj)break; int a8=1,0,1,0,1,0,1,0,i;for(i=0;i<8;i+) printf(“d ,ai);if(j<6) printf(“

20、d ,ai);printf(n );輸出結(jié)果:4. #i nclude <stdio.h>void mai n()for(i=2;i<8;i+) ai+=ai-1+ai-2;if !(n%i)printf(n );輸出結(jié)果:五、編程題(本大題20分,第一題8分,第二題12分)1-x1、計(jì)算分段函數(shù)的值:(x<0)(x>=0)22*x -2編程實(shí)現(xiàn)。2、輸入10個(gè)學(xué)生3門課的成績,用函數(shù)實(shí)現(xiàn):找出最高的分?jǐn)?shù)所對(duì)應(yīng)的學(xué)號(hào)和成績。模擬試卷十一、單選題參考答案:1) D6) A二、填空題2) C7) C3) C8) C4) C9) C5) D10) B1、2、3、4、k=

21、k+11.00000017x>0.05、6、7、&9、10、11、12、13、-3 -4 0 4 4 366010int *z*(b+)t>s4295, Li14、fgetc(fp)!=EOF15、291、IsPrime(int n); scanf(“ d'改為改為IsP rime(i nt n) scanf( “ %&k);三、改錯(cuò)題 m=0; continue; 改為if (!(n%i)m=0; continu e; if (!(k%j)&(IsPrime(j) 改為 if(!(k%j)& (IsPrime(j)2、studio.h 改為 stdio.hvoid; fun(char *p,char *q,char *c); 改為 voidfun(char *p,char *q,char *c) k=1改為k=0while (*p!=*q)改為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論