C語言程序設(shè)計期末考試試卷B2_第1頁
C語言程序設(shè)計期末考試試卷B2_第2頁
C語言程序設(shè)計期末考試試卷B2_第3頁
C語言程序設(shè)計期末考試試卷B2_第4頁
C語言程序設(shè)計期末考試試卷B2_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、選擇題(每題1.5分,共計45分)

1、以下選項中合法的標(biāo)識符是【】

A.1_1

B.1-1

0._11

D.1__

2、若函數(shù)中有定義語句:intk;,則【】

A.系統(tǒng)將自動給k賦初值0

B.這時k中的值無定義

C.系統(tǒng)將自動給k賦初值7

D.這時k中無任何值

3、一下選項中,能用作數(shù)據(jù)常量的是【】

A.o115

B.0118

C.1.5e1.5

D.115L

4、設(shè)有定義:intx=2;,一下表達(dá)式中,值不為6的是【】

A.x*=x+1

B.X++,2*x

0.x*=(1+x)

D.2*x,x+=2

5、程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的輸出結(jié)果是[

A.123.141593

B.123.141593

0.12,3.141593

D.123.1415930

6、若有定義語句:doublex,y.*px,*py;執(zhí)行了px=&x;py=&y;之后,正確的輸入語句是[

A.scanf",x,y);

B.scanf"&xt&y);

C.scanf("%lf%le",px,py);

D.scanfx,y);

7、一下是if語句的基本形式:if(表達(dá)式)語句,其中“表達(dá)式”[]

A.必須是邏輯表達(dá)式

B.必須是關(guān)系表達(dá)式

C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式

D.可以是任意合法的表達(dá)式

8、有以下程序

#include<stdio.h>

main()

{intx;

scanf("%d",&x);

if(x<=3);eIse

if(x!=10)printf("%d\n",x);

1

程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果【】

A.不等于10的整數(shù)

B.大于3且不等于10的整數(shù)

C.大于3或等于10的整數(shù)

D.小于3的整數(shù)

9、有以下程序

#incIude<stdio.h>

main()

{inta=1,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!=2||c—!=3)

printf("%d,%d,%d\n",a,b,c);

eIseprintf("%d,%d,%d\n",a,b,c);

eIseprintf("%d,%d,%d\n",a,b,c);

)

程序運行后輸出結(jié)果是【】

A.1,2,3

B.1,3,2

C.1,3,3

D.3,2,1

10、假設(shè)以下程序段中的變量已正確定義

for(i=0;i<4;i++,j++)

for(k=1;k<3;k++);printf("*");

程序段的輸出結(jié)果是【】

A.********

B.****

0.**

D.*

11、有以下程序

#include<stdio.h>

main0

{char*s={"ABC"};

do

{printf(,,%d,,,*s%10);s++;

)

while(*s);

)

注意:字母A的ASCII碼值為65。程序運行后的輸出結(jié)果是【

A.5670

B.656667

C.567

D.ABC

12、設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段【】

A.n=0;while((ch=getchar())!=~\n~)n++;

B.n=0;whiIe(getchar()!二?\n?)n++;

C.for(n=0;getchar()!二?\n";n++);

D.n=0;for(ch=getchar();ch!二?\n?;n++);

13、有以下程序

#incIude<stdio.h>

main()

{inta1,a2;chard,c2;

scanf("%d%c%d%c,',&a1,&d,&a2,&c2);

H

printf("%d,%cf%d,%c,a1,c1,a2,c2);

)

若通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結(jié)果

是:12,a,34,b則正確的輸入格式是(以下.代表空格,<CR>代表回車)【】

A.12a34b<CR>

B.12_a_34_b<CR>

C.12,a,34,b<CR>

D.12_a34_b<CR>

14、有以下程序

#incIude<stdio.h>

intf(intx,inty)

{return((y-x)*x);}

main()

{inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf("%d\n",d);

)

程序運行后的輸出結(jié)果是

A.10

B.9

0.8

D.7

15、有以下程序

#incIude<stdio.h>

voidfun(char*s)

{while(*s)

{if(*s%2==0)printf(1,%c,,,*s);

s++;

)

main()

{chara[]={"good"};

fun(a);printfC\rT);

)

注意:字母a的ASCII碼值為97,程序運行后的輸出結(jié)果是【

A.d

B.go

C.god

D.good

16、有以下程序

#include<stdio.h>

voidfun(int*a,int*b)

{int*c;

c=a;a=b;b=c;

)

main()

{intx=3,y=5,*p=&x,*q=&y;

fun(p,q);printf("%d,%d,",*p.*q);

fun(&x,&y);printf("%d,%d\n"F*p,*q);

1

程序運行后輸出的結(jié)果是【】

A.3,5,5,3

B.3,5,3,5

0.5,3,3,5

D.5,3,5,3

17、有以下程序

#incIude<stdio.h>

voidf(int*p,int*q);

main()

{intm=1,n=2,*r=&m;

f(r,&n);printfC,%d,%d",mFn);

)

voidf(int*p,int*q)

{p=p+1;*q=*q+1;)

程序運行后的輸出結(jié)果是【】

A.1,3

B.2,3

0.1,4

D.1,2

18、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)

#include<stdio.h>

voidfun(int*w,intn)

{inti;

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

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

)

printf("\n");

)

下劃線出應(yīng)填入的語句是【】

A.if(i/8==0)printf("\n");

B.if(i/8==0)continue;

C.if(i%8==0)printf("\n");

D.if(i%8==0)continue;

19、若有以下定義

intx[10],*pt=x;

則對數(shù)組元素的正確引用是【】

A.*&x[10]

B.*(x+3)

C.*(pt+10)

D.pt+3

20、設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語

句或語句組是【】

A.gets(s);

B.while((s[i++]=getchar())!=,\n,);s[i]='\0,;

C.scanf("%s",s);

D.do{scanf("%c",&s[i]);}while(s[i++]!=,\0!);s[i]=>\0,;

21、有以下程序

#incIude<stdio.h>

main()

{char*a[]={"abcd","ef","gh","ijk"};

inti;

for(i=0;i<4;i++)printf("%c",*a[i]);

)

程序運行后的輸出結(jié)果是【】

A.aegi

B.dfhk

C.dfhk

D.abcdefghijk

22、以下選項中正確的語句組是【】

A.chars[];s="B00K!";

B.char*s;s={"B00K!"}:

C.chars[10];s="B00K!";

D.char*s;s="B00K!";

23、有以下程序

#incIude<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

eIsereturn((x+y)/2);

)

main()

{inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

)

程序運行后的輸出結(jié)果是【】

A.3

B.6

C.8

D.12

24、設(shè)函數(shù)中有整型變量n,為保證其在未賦初值的情況下初值為0,應(yīng)該選擇的存儲類別是【

A.auto

B.register

0.static

D.auto或register

25、有以下程序

#incIude<stdio.h>

intb=2;

intfun(int*k)

{b=*k+b;return(b);}

main()

{inta[10]={1,2,3,4,5,6,7,8}ti;

for(i=2;i<4;i++){b=fun(&a[i])+b;printf("%d",b);}

printf("\n");

)

程序運行后的輸出結(jié)果是【】

A.1012

B.810

C.1028

D.1016

26、有以下程序

#include<stdio.h>

#definePT3.5;

#defineS(x)PT*x*x;

main()

{inta=1,b=2;printf("%4.1f\n"fS(a+b));}

程序運行后的輸出結(jié)果是【】

A.14.0

B.31.5

C.7.5

D.程序有錯無輸出結(jié)果

27、有以下程序

#include<stdio.h>

structord

{intx,y;1dt[2]={1,2,3.4);

main0

{structord*p=dt;

printf("%d,"F++p->x);printf("%d\n",++p->y);

)

程序的運行結(jié)果是【】

A.1,2

B.2,3

C.3,4

D.4,1

28、設(shè)有宏定義:#definelsDIV(k,n)((k%n=1)?1:0)且變量m已正確定義并賦值,

則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達(dá)的是【】

A.判斷m是否能被5或者7整除

B.判斷e是否能被5和7整除

C.判斷m被5或者7整除是否余1

D.判斷m被5和7整除是否都余1

29、有以下程序

#include<stdio.h>

main()

{inta=5,b=1,t;

n

t=(a?2)|b;printf(%d\n"ft);

)

程序運行后的輸出結(jié)果是【】

A.21

B.11

C.6

D.1

30、有以下程序

#incIude<stdio.h>

main()

{FILE*f;

f=fopen("filea.txt",;

fprintf(f,"abc");

fcIose(f);

)

若文本文件filea.txt中原有內(nèi)容為:heIIo,則運行以上程序后,文件filea.txt的內(nèi)容為【

A.heIIoabc

B.abcIo

C.abc

D.abcheIIo

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

1、表達(dá)式(int)((double)(5/2)+2.5)的值是。

2、若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(,x/y);

補充完整,使其輸出的計算結(jié)果形式為:x/y=11。

3、有以下程序

#incIude<stdio.h>

main()

{chard,c2;

scanf("&c",&c1);

while(c1<651|d>90)scanf("&c",&c1);

c2=c1+32;

printf(u&c,&c\n",c1,c2);

}

程序運行輸入65回車后,能否輸出結(jié)果、結(jié)束運行(請回答能或不能)o

4、以下程序運行后的輸出結(jié)果是o

#include<stdio.h>

main()

{intk=1,s二0;

do{

if{((k&2)!=0)continue;

s+=k;k++;

}whiIe(k)10);

printf("s=&d/n",s);

)

5、下列程序運行時,若輸入Iabced12df〈回車)輸出結(jié)果為。

#incIude<stdio.h>

main()

{chara=0,ch;

whiIe((ch=getchar())!=,\n')

{if(a&2!=0&&(ch>JaJ&&ch<=Jz'))ch=ch-'a'+'A';

a++;putchar(ch);

)

printf(u\nn);

)

6、有以下程序,程序執(zhí)行后,輸出結(jié)果是。

#include<stdio.h>

voidfun(int*a)

{a[0=a[1];]}

main()

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

for(i=2;i>=0;i-)fun{&a};

for(i=0;i<10;i++)printf("&d",a);

printf("\n”);

)

7、請將以下程序中的函數(shù)聲明語句補充完整

#incIude<stdio.h>

int;

main()

{intx,y,(*p)();

p=max;

printf("&d\n”,&x,&y);

)

Intmax(inta,intb)

{return(a>b/a:b);}

8、以下程序用來判斷指定文件是否能正常打開,請?zhí)羁?/p>

#include<stdio.h>

main()

{FILE*fp;

if(((fp=fopen(utest.txt,J,Mr"))==))

printf(“未能打開文件!\n”);

eIse

printf("文件打開成功!\n”);

9、下列程序的運行結(jié)果為o

#include<stdio.h>

#include<string.h>

structA

{inta;charb[10];doubIec;};

voidf(structA*t);

main()

{structAa=(1001,"ZhangDan,1098,0);

f(&a);printf("&d,&s,&6,if\n”,a.a,a.b,a.c);

)

voidf(structA*t)

{strcpy(t->b,ChangRong");}

10、以下程序把三個NODETYPE型的變量鏈接成一個簡單的鏈表,并在whiIe循環(huán)中輸出鏈表結(jié)點數(shù)據(jù)域

中的數(shù)據(jù),請?zhí)羁?/p>

#include<stdio.h>

structnode

{intdata;structnode*next;};

typedefstructnodeNODETYPE;

main()

{NODETYPEa,b,c,*h,*p;

a.data=10;b.data=20;c.data=30;h=&a;

b.next=&b;b.next二&c;c.next='\0';

P二h;

while(p){printf("&d",p->data);;}

)

三、程序改錯題(10分)

下列給定程序功能是:讀入一行英文文本,將每一個英文單詞的第一個字母改寫成大寫字母然后輸出此文

本。例如:若輸入"goodluck!”則輸出〃GoodLuck"。請修函數(shù)top中的錯誤使其能得出正確的結(jié)果。

注意不要修改主函數(shù),不要增刪程序行或更改程序的結(jié)構(gòu)。

#incIude<ctype.h>

#include<stdio.h>

#incIude<string.h>

/*************$^^]^^**************/

voidtop(chars)

(

inti=0;

for(;*s;*s++)

if(i)

(

if(*s=='')

i=0;

)

eIse

(

if(*s!='')

(

i=1;*s=toupper(*s);

)

)

)

main()

(

charstr[81];

printf("\nPIeaseenteranEnglishtextIine:");

gets(str);

printf("\n\nBeforechanging:\n%s",str);

top(str);

printf("\nAfterchanging:\n%s\n",str);

四、程序編寫(15分)

該函數(shù)實現(xiàn)的功能是:求能整除k且是偶數(shù)的數(shù),把這些數(shù)保存在數(shù)組a中,并按大到小輸出。例如:

當(dāng)k=40時,依次輸出40、20、10、4、

溫馨提示

  • 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

提交評論