C語言期末復(fù)習(xí)指導(dǎo)_第1頁
C語言期末復(fù)習(xí)指導(dǎo)_第2頁
C語言期末復(fù)習(xí)指導(dǎo)_第3頁
C語言期末復(fù)習(xí)指導(dǎo)_第4頁
C語言期末復(fù)習(xí)指導(dǎo)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《C語言程序設(shè)計》模擬試卷A

一、單項選擇題(每題2分,共20分)

1、下列有關(guān)C語言的敘述中錯誤的是(D)。

A)C語句必須以分號結(jié)束

B)任何一個C程序中有且只有一個主函數(shù)

0復(fù)合語句在語法上可被看作一條語句

D)C程序中對數(shù)據(jù)的任何操作都可由運算符實現(xiàn)

2、以下不能定義為用戶標(biāo)識符的是(C)。

A)MAINB)_HJC)2ongD)LINE1

3、以下能正確定義一維數(shù)組的是(C)。

A)inta[5]={0,1,2,3,4,5};B)

inta[5]="01234”;

C)chara[7]="012345”;D)

chara[5]={0,1,2,3,4,5};

4、執(zhí)行下列程序段后輸出的結(jié)果是(C)。

x=9;

while(x>7)

{printf(“*”);x-}

A)****B)***C)**D)*

5、設(shè)charstr1[10]="ABCDE",str2[10]="xyz";

則執(zhí)行語句

printf("%d”,strlen(strcpy(strl,str2)));

后的輸出結(jié)果是(D)

A)9B)8C)5D)3

6、若用數(shù)組名作為函數(shù)調(diào)用的實參,則傳遞給形參的是

(A)

A)數(shù)組的首地址B)數(shù)組第一個元素的

0數(shù)組中全部元素的值D)數(shù)組元素的個數(shù)

7、在C程序中,若未在函數(shù)定義時說明函數(shù)類型,則函

數(shù)默認(rèn)的類型為(C)

A)voidB)doubleC)intD)char

8、下面不能正確進(jìn)行字符串賦值操作的語句是(C)

A)chars[5]={〃ABCD〃};B)chars[5];s=〃ABCD〃;

C)char*s;s=〃ABCDEF";D)char*s="ABCD〃;

9、設(shè)有說明ints[5]={l,3,5,7,9};int*p=s;則下

列表達(dá)式中值為3的是(C)

A)++pB)++(*p)C)*(++p)D)*(p+=2)

10、下面程序的輸出結(jié)果是(B)

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);)

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);}

A)1B)2C)3D)10

4、如有如下定義:inta=l,則語句printf("%d,%d”,

a,++a);的運行結(jié)果為(C)o

A)1,1B)1,2C)2,2D)2,

1

5、已知ch為字符型變量,下面表達(dá)式中正確的是(A)。

A)ch='\xff'(p45)B)ch='\ff5C)ch='ff'D)ch="

ff”

7、以下語句中能正確定義變量并賦初值的是(A)。

A)charc=65;B)floatf=f+l.l;

C)doublex=12.3e3.6;D)intm=n=2.0;

8、在執(zhí)行下列程序時輸入:1357924,則程序的運行結(jié)果

為()。

main()

{intx,y;

scanf(“%2d%2d”,&x,&y);

printf(“%2d”,x*y);}

A)13B)1357C)74D)741

二、填空題。(每空2分,共30分)

1.設(shè)有變量說明語句

intx=l,y=2;

則執(zhí)行下述printf語句的輸出結(jié)果是

1,000000。

printf1.0+x/y);

2.執(zhí)行下述程序

ttinclude<stdio.h>

main()

(

intx,y;

scanf("%2d%*2s%ld〃,&x,&y);

printf(〃%d\n〃,x+y);

}

若從鍵盤輸入

12345671

則程序的輸出結(jié)果是_17o

3.以下程序的功能是:從鍵盤上輸入若干名學(xué)生的成績

(百分制,可帶小數(shù),以輸入負(fù)數(shù)或。為結(jié)束標(biāo)志),統(tǒng)

計并輸出最高成績和最低成績。請?zhí)羁铡?/p>

#include<stdio.h>

main()

floatx,amax,amin;

scanf&x);

amax=x;

amin=x;

while(x>0.0)

(

if(x>amax)

amax二x;

elseif(x<amin)

amin二x;

scanf(〃%f',&x);

printf(〃\namax二%f\namin=%f\n〃,amax,amin);

}

4.設(shè)n是整型變量,且已具有某正整數(shù)值。根據(jù)下述數(shù)

苧#iiiii11

了.H----1-----—I—------F???d-------------

22334nn+1

求S的值并輸出??删帉懭缦轮绦蚨螌崿F(xiàn)之。請?zhí)?/p>

空。

intk;

doubles,d;

s=0.0;

d=l.0;

k=0;

do

{

s=s+d;

k++;

d=l.0/(k*(k+1));

}while(k<=n);

printf("%f\n”,s);

5.執(zhí)行下述程序的輸出結(jié)果是-3-4044

#include<stdio.h>

main()

inta[6],i;

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

a[i]=9*(i-2+4*(i>3))%5;

printf("%3d〃,a[i]);

}

printf(〃\n〃);

)

6.執(zhí)行下述程序時的輸出結(jié)果是

6o

ttinclude<stdio.h>

main()

{

inta[]={2,4,6,},*ptr=&a[O],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y)<x)?*(ptr+y):x;

printf(〃%d\n〃,z);

)

7.執(zhí)行下述程序的輸出結(jié)果是60

ttinclude<stdio.h>

main()

inta[][2]={10,20,30,40,50,60},(*p)[2];

P二a;

printf(〃%d\n〃,*(*(p+2)+1));

)

8.執(zhí)行以下程序的輸出結(jié)果是10。

#include<stdio.h>

main()

(

ints,i,sum();

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

s=sum(i);

printf(〃s二%d\n〃,s);

)

sum(intk)

intx=0;〃沒有繼承

return(x+=k);

9.下述函數(shù)定義用來求出兩個整數(shù)之各,并通過函數(shù)的

模擬傳地址調(diào)用,傳回兩整數(shù)相加之和值,請?zhí)羁铡?/p>

voidadd(intx,inty,int*z)

{

*z=x+y;

}

10.函數(shù)func的功能是將整型變量x的值轉(zhuǎn)換成二進(jìn)制

數(shù),并將該二進(jìn)制數(shù)的每一位存入由整型指針b所指向

的一維數(shù)組a,最低位存放于a[0]中,次低位存放于a[l]

中,依此類推。請?zhí)羁铡?/p>

voidfunc(intx,int*b)

(

intr;

do

r=x%2;

—*(b++)=r;

x/=2;

}while(x);

}

11.以下程序中函數(shù)invert實現(xiàn)將數(shù)組內(nèi)所有數(shù)組元素

的值逆置。比如,執(zhí)行本程序?qū)⑤敵?/p>

10987654321

請?zhí)羁铡?/p>

ttinclude<stdio.h>

main()

(

inta[10]={l,2,3,4,5,6,7,8,9,10},i,n=10;

invert(a,n-1);

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

printf("%3d〃,a[i]);

printf(〃\n〃);

invert(int*s,intnum)

int*t,k;

t=s+num;

while(_t>s)

[

k二*s;

*s=*t;

*t=k;

s++;

t一;

12.若有以下定義和說明,則結(jié)構(gòu)體變量w在內(nèi)存中所占

的字節(jié)數(shù)是_42—

unionaa

floatx;

floaty;

charc[6];

);

structst

unionaav;

floatw[5];

doubleave;

w;

13.執(zhí)行下述程序的輸出結(jié)果是95,Li

______________________________________O

^include<stdio.h>

structstr

(

floatx;

char*y;

}*m;

structstrgroup[3]={

95.0,〃Li〃,

82.5,〃Wang〃,

73.5,〃Sun〃

);

main()

(

m=group;

printf(〃%.If,%s\n〃,m->x,m->y);

)

14.下面的程序用來統(tǒng)計某文件文件中字符的個數(shù)。請

填空。

^include<stdio.h>

^include<stdlib.h>

main()

FILE*fp;

longnum=0;

if((fp=fopen(〃fnam.dat〃,〃r〃))=NULL)

{

printf("Can'topenthisfile!\n,z);

exit(0);

}

while(fgetc(fp)!=EOF)

(

fgetc(fp);

num++;

}

printf(〃num=%d\n〃,num);

fclose(fp);

)

15.執(zhí)行下述程序后,輸出結(jié)果為-29

ttinclude<stdio.h>

^defineFUN1(a,b)a+b

#defineFUN2(a,b)a-b

^defineCAL(a,b)a*b+a+3(3+5*4—

5+3+5+3)

main()

(

printf(〃%d\n〃,CAL(FUN1(3,5),FUN2(4,5)));

}

三、修改下列程序:(在程序出錯的語句下劃橫線并

標(biāo)號,把修改后的語句寫在程序之后的橫線上。)(每

小題5分,共10分)

1.下列給定程序的功能是:讀入一個整數(shù)(2Ck〈=

10000),打印它的所有質(zhì)因子(即所有為素數(shù)的因子)。

例如,若輸入整數(shù)2310,則應(yīng)輸出2、3、5、7、llo

#include<conio.h>

#include<stdio.h>

IsPrime(intn);

{inti,m;

m=l;

for(i=2;i<n;i++)

if!(n%i)

{m=0;continue;}

return(m);

main()

{intj,k;

printf(a\nPleaseenteranintegernumber

between2and10000:");scanf(,k);

printf("\nTheprimefactor(s)of%dis

(are):",k);

for(j=2;j<=k;j++)

if((!(k%j))&(IsPrime(j))printf("\n%4d”,j);

printf("\n");

)

IsPrime(intn);改為IsPrime(intn)

scanf("%d”,k);改為scanf(“%d",&k);

if!(n%i)

{m=0;continue;}改為

{if(!(n%i))

m=0;continue;}

if((!(k%j))&(IsPrime(j))改為if(!(k%j)&

(IsPrime(j)))

2.下列給定程序中,函數(shù)fun的功能是:逐個比較a、

b兩個字符串對應(yīng)位置中的字符,把ASCH值大或等

于的字符一次存放到C數(shù)組中,形成一個新的字符串。

例如,若a中的字符串為aBCDeFgH,b中的字符串為:

ABcd,則c中的字符串為:aBcdeFgho

^include<studio.h>

^include<string.h>

void;fun(char*p,char*q,char*c);

{intk=l;

while(*p!=*q)

{ifc[k]=*q;

elsec[k]=*p;

if(*p)p++;

if(*q)q++;

k++;

}

main()

{char

a[10]="aBCDeFgh”,b[10]=“ABcd”,c[80]={“"}

,

fun(a,b,c);

printf("Thestringa:");puts(a);

printf("Thestringb:");puts(b);

printf("Theresult:");puts(c);

studio.h

改為stdio.h

void;fun(char*p,char*q,char*c);改為void

fun(char*p,char*q,char*c)

k=1改為k=0

while(*p!=*q)改為while((*p)[(*q))

k++后添加一個}

四、閱讀下列程序,在程序后面的橫線上,寫出該程

序的功能或給出運行結(jié)果。(每小題4分,共20分)

1.ttinclude<stdio.h>

voidmain()

{charch;intk=0;

for(ch='A';ch〈'H';ch++,k++)02

46

if(k%2==0)

printf("%c",ch);

printf("\n");

)

輸出結(jié)果:ACEG

2.ttinclude<stdio.h>

voidmain()

{intk=0;

charc='A'

do{

switch(c++)

{case,A':k++;

break;

case'B':k一;

caseC:k+=2;break;

case'D':k=k%2;break;

case'E':k=k*10;break;

default:k=k/3;

)

k++;

}while(c〈‘G?);

printf("k=%d\n”,k);

}

輸出結(jié)果:8

3.ttinclude<stdio.h>

voidmain()

{int

a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16

},i,j;

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

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

if(a[i]==b[j])break;

if(j<6)

printf("%d",a[i]);

}

printf("\n”);

)

輸出結(jié)果:4252716

4.ttinclude<stdio.h>

voidmain()

{inta[8]={l,0,1,0,1,0,1,0},i;

for(i=2;i<8;i++)

a[i]+=a[i-l]+a[i-2];

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

printf("%d",a[i]);

printf("\n");

)

輸出結(jié)果:出22571320

五、編程題(本大題20分,第一題8分,第

二題12分)

1、計算分段函數(shù)的值:

rl-x(x<0)

Y二l

2*x-2(X〉=0)

編程實現(xiàn)。

2、輸入10個學(xué)生3門課的成績,用函數(shù)求:找出最

高的分?jǐn)?shù)所對應(yīng)的學(xué)號和成績。

模擬試卷十一參考答案:

一、單選題

1)D2)C3)C4)C

5)D

6)A7)C8)C9)C

10)B

二、填空題

1、1.000000

2、17

3、x>0.0

4、k=k+l

5、-3-40443

6、6

7、60

8、10

9、int*z

10、*(b++)

11>t>s

12、42

13、95,Li

14、fgetc(fp)!=EOF

15、29

三、改錯題

1>IsPrime(intn);改為IsPrime(intn)

scanf(tt%d,,,k);改為scanf("%d”,&k);

if!(n%i)

{m=0;continue;}改為

{if(!(n%i))

m=0;continue;}

if((!(k%j))&(IsPrime(j))改為if((!(k%j)&

(IsPrime(j)))

2、studio.h改為stdio.h

void;fun(char*p,char*q,char*c);改為void

fun(char*p,char*q,char*c)

k=l改為k=0

while(*p!二*q)改為while((*p)l(*q))

k++后添加一個}

四、閱讀程序

1、ACEG

2、8

3、4252716

4、1022571320

五、編程題

1、

#include<stdio.h>

main()

(

floatx,y;

scanf("%f",&x);

if(x<0){

y=l-x;

)

else

{y=2*x*x-2;}

printf("%f\n",y);

2、

#include<string.h>

structstudent

{intnum;

floatscore[3];

}stu[10];

voidchosescore(structstudent*stu,intn)

{inti=O,j=O,k=O;

floattemp;

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

{temp=stu[0].score[i];

k=stu[0].num;

for(j=l;j<n;j++)

(

if(temp<stu[j].score[i])

{temp=stu[j].score[i];

k=stu[j].num;}

}

printf("%d%f\n",k

溫馨提示

  • 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

提交評論