c語言考試試題_第1頁
c語言考試試題_第2頁
c語言考試試題_第3頁
c語言考試試題_第4頁
c語言考試試題_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言的作業(yè)

第一章C語言的程序結構和表達式

一、選擇題

1.下列說法中錯誤的是()

A.主函數(shù)包括函數(shù)首部和函數(shù)體兩部分

B.主函數(shù)可以調用任何非主函數(shù)

C.任何非主函數(shù)可以調用其他任何非主函數(shù)

D.程序可以從任何非主函數(shù)開始執(zhí)行

2.C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符()

A.必須為字母或下劃線B.必須為下劃線

C.可以是字母、數(shù)字和下劃線中的任一種字符

D.必須為字母

3.有關下列程序的正確選項是()

#include"stdio.h"

voidmain()

{printf("%d”,NULL);

A.輸出0B.因變量無定義,編譯出錯,沒有輸出

C.輸出-1D.輸出NULL

4.下列程序段處理后,正確的選項是()。

longx=-41;

printf(u%ld,,,x);

A.輸出值為-4B.賦值非法

C.輸出值不確定D.輸出值為4

5.C程序中,主函數(shù)main()的位置()

A.必須放在其他函數(shù)之前B.必須在源程序的最后

C.可以在程序的任何位置D.包含文件中的第一個函數(shù)

6.下列敘述正確的是()

A.C語言中每一行只能寫一個語句

B.C語言中沒有輸入/輸出語句,數(shù)據的輸入/輸出通過函數(shù)調用實現(xiàn)

C.C語言源程序經過編譯就可以生成EXE文件

D.C語言中的每一條語句均以換行符作為結束標志

7.下列敘述中正確的是()

A.C語言的源程序不必經過編譯就可直接執(zhí)行

B.C語言源程序經編譯形成的二進制代碼可以直接運行

C.C語言中的函數(shù)不可以單獨編譯

D.C語言中的每條可執(zhí)行語句最終將被轉換成二進制的機器指令

8.char型常量在內存中存放的是()

A.ASCII碼值B.BCD碼值C.內碼值D.十進制代碼值

9.表達式a=(a=6,a*6,a+3)運行后,則a的值為()

A.39B.36C.6D.9

10.下列選項中不是C語言的合法保留字的是()

A.switchB.cherC.caseD.default

11.下列數(shù)據中屬于“字符串常量”的是()

A.ABCB."ABC"C/abc5D/a5

12.設m,n,a,b,c,d均為0,則執(zhí)行語句(m=a==b)||(n=c==d)后,m,n的值是()

A.O,0B.O,1C.l,0D.l,1

13.執(zhí)行語句x=(a=3,b=a—);后,x,a,b的依次是()

A.3,3,2B.3,2,2C.3,2,3D.2,3,2

14.若有語句inta=3;則執(zhí)行語句a+=a-=a*a;后,變量a的值是()

A.-24B.OC.9D.-12

15.設n=10,i=4;則賦值運算n%=i+l執(zhí)行后n的值是()

A.OB.3C.2D.1

16.設inta=2,b;則執(zhí)行b=a&&l后b的值是()

A.OB.lC.2D.3

17.設intm=l,n=2;貝表達式++m==n的值是()

A.OB.lC.2D.3

18.表達式(1,2,3,4)的值是()

A.lB.2C.3D.4

19.字符串"\\\"ABC"\\"的長度是()

A.llB.7C.5D.3

20.下列程序段的輸出結果是()

unsigneda=4294967295;

printf("%d\rT,a);

A.65535B.-lC.-32767D.l

21.若以下選項中的變量已經定義,則正確的賦值表達式是()

A.xl=35.6%10B.x+2=a+bC.x3=0123D.x4=y+3=5

22.若有定義floata=2,b=4,h=3;,則與代數(shù)式(a+b)h中的計算結果不相同的c語言表達式是

()

A.(a+b)*h/2B.(l/2)*(a+b)*h

C.(a+b)*h*l/2D.h/2*(a+b)

23.設有inti=010,j=10;則printf("%d,%d\n”,++i,j—);的輸出是()

A.11,10B.9,10C.010,9D.10,9

24.設x,y,z,t均為int型變量,則執(zhí)行以下語句后,t的值為()。

x=y=z=1;

t=++xll++y&&++z;

A.不定值B.2C.lD.O

25.若有如下程序,要求al,a2,cl,c2的值分別為10,20,A,B,則正確的輸入語句是()

#include"stdio.h"

voidmain()

{intal,a2;

charcl,c2;

scanf(44%d%d,,,&al,&a2);

scanf("%c%c”,&c1,&c2);

)

A.1020ABB.1020<CR>AB<CR>

C.1020AB<CR>D.1020AB<CR>

26.在下列程序中,輸入數(shù)據為12345<CR>后,y的值是()

#include“stdio.h"

voidmain()

{intx;

floaty;

scanf(u%3d%f\&x,&y);

)

A.12.000000B.345.000000C.12345.000000D.0.000000

27.下列程序的輸出結果是()

#include"stdio.h"

voidmain()

{intsum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

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

)

A.7B.6C.5D.4

28.已知字母A的ASCII碼是65,則下列程序的輸出結果是()

#include“stdio.h"

voidmain()

{charcl=?A',c2='Y';

printf(<<%d,%d\n,,,cl,c2);

)

A.A,YB.65,65C.65,90D.65,89

29.下列程序的輸出結果是()

#include"stdio.h"

voidmain()

{intx=-l,y=4;

intk;

k=x++<=0&&!(y—<=0);

printf('t%d,%d,%d\n,,,k,x,y);

)

A.0,0,3B.1,1,2C.1,0,3D.1,1,2

30.執(zhí)行下列()選項中的程序段后變量i的值為4()

A.inti=l,j=0;B.inti=0,j=0;

i=j=((i=3)++);(i=2,i+(j=2));

C.inti=l,j=l;D.inti=l,j=0;

i+=j+=2;(j==l)?i+=3:i=2;

31.下列程序的輸出結果是()

#include“stdio.h"

voidmain()

{inta,b,c=241;

a=c/100%9;

b=-l&&-l;

printfC'%d,%d\n,,,a,b);

)

A.2,0B.2,1C.6,1D.0,-1

32.設有下列宏定義,則執(zhí)行語句z=2*(N+Y(5+l));后,z的值為()

#defineN3

#defineY(n)((N+1)*n)

A.出錯B.42C.48D.54

33.表達式0xl3A0xl7的值是()

A.0x04B.0xl3C.0xE8D.OxlC

34.下列程序的執(zhí)行結果是()

#include<stdio.h>

voidmain()

(

unsignedchara,b;

a=4I3;

b=4&3;

printrf(<t%d,%d\n,\a,b);

1

A.0,7B.7,0C.1,1D.43,0

二、填空題

1.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,它以_______表示。

2.一個C程序由若干個函數(shù)組成,其中必須有一個_________函數(shù)。

3.C程序中的函數(shù)一般由兩部分組成,它們是和o

4.C語言源程序要能夠執(zhí)行還必須經過和兩個過程。

5.在用流程圖對算法進行描述時,主要采用和o

6.執(zhí)行下列程序后,其輸出結果是o

#include<stdio.h>

voidmain()

(

inta=102,b=012;

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

)

7.能表示"20<x<30或xv-100”的C語言表達式是。

8.設intx=9,y=8;則表達式x==y+1的結果是。

9.下列程序的輸出結果是o

#include<stdio.h>

voidmain()

(

floatfl=13.8f;

intn;

n=(int)fl%3;

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

)

10.下列程序的輸出結果是o

#include<stdio.h>

voidmain()

(

intn=2;

n+=n-=n*n;

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

)

11.下列程序輸入123<CR>后的輸出結果是?

#include<stdio.h>

voidmain()

(

inta,c;

charb;

scanf("%d%c%d”,&a,&b,&c);

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

12.下列程序輸入ABCvCR>后的輸出結果是

#include<stdio.h>

voidmain()

{

charc;

scanf("%3c”,&c);

printf(44c=%c\n,,,c);

)

13.若有如下程序段:

intnl=12,n2=25;

printf("”,nl,n2);

要求按以下格式輸出nl和n2的值,每個輸出行從第一列開始。請?zhí)羁胀瓿沙绦蚨巍?/p>

nl=12

n2=25

14.用表達式描述下列命題:

(1)三個數(shù)據a、b、c若能構成三角形,表達式取真值,否則取假值,其表達式為

(2)ch是字母時條件表達式取值為真,其表達式為=

15.設有定義#defineF(N)2*N,則表達式F(2+3)的值是。

16.設intx,則當x的值為2時,表達式(x&l==1)?1:0的值是。

第二章控制結構

一、選擇題

1.循環(huán)語句for(x=0,y=0;(y!=123)ll(x<4);x++);的循環(huán)體執(zhí)行()

A.無限次B.不確定次

C.4次D.3次

2.設x和y均為int型變量,則執(zhí)行下列程序段后,y的值為()

for(y=1,x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

)

A.2B.4C.6D.8

3.為了避免嵌套if……else語句的二義性,c語言規(guī)定else總是與()組成配對關系。

A.縮排位置相同的ifB.在其之前未配對的if

C.在其之前未配對的最近的ifD.同一行上的if

4.若有定義intx,y;,則下列選項中合法的if語句是()

A.if(a==b)x++;B.if(a=<b)x++;

C.if(aob)x++;D.if(a=>b)x++;

5.下列程序段表示的邏輯關系是()

if(a<b){if(c==d)x=l;}elsex=2;

1a<匕且c=d1a<且c=d

x=<B.x=<

12a>Z?且cwd2a>b

1a<匕且c=d1a<且c=d

D.x=<

2a<Z?且cwd2c手d

6.語句while(!e)中的條件!e等價于()

A.e==0B.e!=lC.e!=0D.~e

7.下列有關for循環(huán)的正確描述是()

A.for循環(huán)只能用于循環(huán)次數(shù)已經確定的情況

B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式

C.在for循環(huán)中,不能用break語句跳出循環(huán)體

D.for循環(huán)的循環(huán)體可以包含多條語句,但要用花括號括起來

8.對于for(表達式1;;表達式3)可理解為().

A.for(表達式1;0;表達式3)B.for(表達式1;1;表達式3)

C.for(表達式1;表達式1;表達式3)D.for(表達式1;表達式3;表達式3)

9.下列程序的輸出結果描述中,正確的是()

#include“stdio.h"

voidmain()

{intx;

for(x=1;x<=100;x++)

if(++x%2==0)

if(++x%3==0)

if(++x%5==0)

printf(“%d,”,x);

A.輸出31,61,91B.輸出30,60,90

C.不輸出任何內容D.輸出29,59,89

10.在下列選項的程序段中,于語句k=a>b?(b>c?l:0):0功能等價的是()

A.if(a>b)&&(b>c)k=l;elsek=0;

B.if(a>b)ll(b>c)k=l;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=l;

D.if(a>b)k=l;elseif(b>c)k=l;elsek=0;

11.在運行下列程序時,如果從鍵盤上輸入01,則輸出結果是()

#include“stdio.h''

voidmain()

{chark;

inti;

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

{scanf("%c”,&k);

switch(k)

{case'O':printf("nni\n'');

caseT:printf(“22222\n");

)

A.lllllB.lllllC.lllllD.22222

22222222222222222222

2222222222

12.下列程序的功能是求解()

#include“stdio.h"

voidmain()

{intj,sum;

for(sum=0,j=l;j<10;j+=2)

sum+=j+l;

printf(t<sum=%d\n,,,sum);

)

A.l~9的累和中的偶數(shù)之和

C.l-9中奇數(shù)之和D.l-10的累加和

13.下列程序中的for循環(huán)執(zhí)行的次數(shù)是()

#include“stdio.h"

#defineN2

#defineMN+l

#defineNUM(M+l)*M/2

voidmain()

{inti,n=0;

for(i=1;i<=NUM;i++)

{n++;

printf("%d”,n);

)

printf("\n”);

)

A.5B.6C.8D.9

二、填空題

1.設i、j、k均為int型變量,則執(zhí)行下列的for語句后,k的值為__________「

for(i=0,j=10;i<=j;i++,j—)

k=i+j;

2.下列程序的功能是:從鍵盤上輸入一個正整數(shù),判斷是否為素數(shù),若是素數(shù)輸出1,否則

輸出Oo請?zhí)羁胀瓿沙绦颉?/p>

#include“stdio.h"

voidmain()

{inti.x,①;

scanf("%d”,&x);

for(i=2;i<=x/2;i++)

if(②)

{y=o;

break;

)

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

)

3.下列程序的輸出結果是

#include"stdio.h"

voidmain()

{inti,j,k;

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

{for(j=l;j<=20-3*i;j++)

printf("");

for(k=1;k<=2*i-l;k++)

printf("%3s”J*");

printf(“\n”);

)

for(i=3;i>0;i—)

{for(j=l;j<=20-3*i;j++)

printf(46");

for(k=l;k<=2*i-l;k++)

printf("%3s”,“*");

printf("\n”);

)

)

4.下列程序段的循環(huán)次數(shù)是

intx=0,y=0;

do

{y++;

x*=x;

}while(x>0&&y>5);

5.下列程序的輸出結果是

#include"stdio.h"

voidmain()

{inti=0,s=l;

do

s+=i++;

while(i++<6);

printf(t<%\n,,,s);

6.下列程序接收來自鍵盤的輸入,直到輸入ctrl+z(值為-1)為止。這些字符被原樣輸出,但

若有連續(xù)一個以上的空格時只輸出一個空格。請?zhí)羁胀瓿沙绦颉?/p>

#include“stdio.h"

voidmain()

{charex;

charfront=94;

while(①)

{if(cx!='')

putchar(cx);

if(cx==,')

if(front1=')

putchar(cx);

7.下列程序用“輾轉相除法”計算兩個正整數(shù)m和n的最大公約數(shù),假定執(zhí)行中的輸入數(shù)

據是15,25o請?zhí)羁胀瓿沙绦颉?/p>

#include"stdio.h"

voidmain()

{intm,n,w;

scanf("%d,%d”,&m,&n);

while(n)

{w=①

printf(4<%d\n,,?m);

)

8.下列程序的輸出結果是

#include"stdio.h"

voidmain()

{inti,m=0;

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

{do

{if(i%3)

continue;

m++;

}while(!i);

m++;

prinf("%d”,m);

9.下列程序求解的問題是:某新開酒店2011年的利潤為10.5萬元,年增長率為12.3%;

老酒店2011年的利潤為20.3萬元,年增長率為#%。在兩個增長率不變的條件下,求解多少

年后新酒店的利潤率超過老酒店。請?zhí)羁胀瓿沙绦颉?/p>

#include“stdio.h"

voidmain()

{doublehotel1=10.5,hotel2=20.3;

intyear=0;

while()

{hotell*=1.123;

hotel2*=1.03;

year=;

)

Printf("%d年后新酒店超過老酒店\n",year);

)

三、讀程序,寫結果

1.下列程序的執(zhí)行結果是多少?

#include"stdio.h"

voidmain()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x<y)

if(y!=10)

if(!okl)

a=l;

else

if(ok2)

a=10;

else

a=-l;

printf(<6a=%d\n,,,a);

)

2.下列程序的執(zhí)行結果是多少?

#include"stdio.h"

voidmain()

{inti=5;

do

{switch(i%2)

{case4:i—;break;

case6:i—;continue;

)

i--;

i—;

printf(“%d,”,i);

while(i>0);

)

3.下列程序的執(zhí)行結果是多少?

#include“stdio.h"

voidmain()

{inta=10,y=0;

do

{a+=2;

y+=a;

if(y>50)break;

)while(a=14);

printf(t<a=%d,y=%d\n,,,a,y);

)

4.下列程序的執(zhí)行結果是多少?

#include"stdio.h"

voidmain()

{intx,y;

for(x=1,y=1;y<=50;y++)

{if(x>=10)break;

if(x%3==l){x+=5;continue;}

x+=3;

)

PrintfC<x=%d,y=%d\n,,,x,y);

)

5.在執(zhí)行下列程序時,若輸入的數(shù)據是346759,則輸出結果是多少?

#include"stdio.h"

voidmain()

{charcl,c2;

intm,n,i;

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

{cl=getchar();

c2=getchar();

m=cl-'0,;

n=m*10+(c2-t0,);

)

Printf("%d\rT,n);

)

四、程序設計題

1.編程實現(xiàn)功能:輸入三個單精度數(shù),輸出其中的最小數(shù)。

2.編程實現(xiàn)功能:求出所有各位數(shù)字的立方和等于1099的三位整數(shù)。

3.編程輸出如下圖形:

1

121

12321

1234321

123454321

12345654321

4.編程實現(xiàn)功能:從鍵盤輸入若干學生成績,輸出最高成績和最低成績(提示:以輸入-1

作為學生成績輸入的結束)。

5.編程實現(xiàn)功能:從鍵盤上任意輸入兩個整數(shù),求這兩個整數(shù)之間的所有奇數(shù)和偶數(shù)之和。

6.函數(shù)fun()的原型為:intfun(inta,inty);實現(xiàn)的功能是:將兩個兩位數(shù)的整數(shù)a,b合

并形成一個整數(shù)放在c中。合并的方式是:將a的十位和個位數(shù)依次放在c的千位和十

位上,b的十位和個位數(shù)依次放在c的個位和百位上。若a=45,b=12,貝ljc=4251。編寫函

數(shù)fun。并用相應的主函數(shù)進行測試。

第三章指針與數(shù)組

一、選擇題

1.函數(shù)調用strcat(strcpy(strl,str2),str3)的功能是()

A.將字符串strl復制到字符串str2中后再連接到字符串str3之后

B.將字符串strl復制到字符串str2中后再復制到字符串str3之后

C.將字符串str2復制到字符串strl2中后再將字符串str3連接到字符串strl之后

D.將字符串str2連接到字符串strl中后再將字符串復制到字符串str3中

2.下列程序執(zhí)行后,變量i的值是()

inti;

charstr[]="a\045+045\'b";

for(i=0;str[i]!='\0';i++);

A.7B.8C.9D.10

3.下列程序段的輸出結果是()

chars[12]="abook!”;

printf("%s”,s+2);

A.abook!B.aboC.book!D因格式描述不正確,沒有確定的輸出

4.若有定義charsl[]="AbCdE",s2[]="aBcDe”廁表達式strcmp(sl+l,s2+l)的值是()

A.零B.負數(shù)C.正數(shù)D.非零值,正負數(shù)難以確定

5.若有定義chars[12]={"string”};,則printf("%d\n”,strlen(s));的輸出結果是()

A.6B.7C.llD.12

6.下列選項中合法的數(shù)組定義是()

A.ints[]={"string”};B.inta[5]={'abc',T};

C.chara={"string”};D.chara[]={0,l,2,3};

7.若有定義int*point,a=4;和語句point=&a;則下列代表地址的一組選項是()

A.a,point,*&aB.&*a,&a,*point

C.*&point,*point,&aD.&a,&*point,point

8.若有如下定義:charx[]="china”,y[10]="china”;,則下列選項中敘述正確的是()

A.數(shù)組x的長度為5B.數(shù)組x和數(shù)組y長度相同

C.數(shù)組x的長度大于數(shù)組y長度D.數(shù)組x的長度小于數(shù)組y長度

9.若有如下定義:inta[2][3];則該二維數(shù)組中的元素個數(shù)是()

A.3B.4C.5D.6

10.下列關于數(shù)組的描述正確的是()

A.數(shù)組的大小是固定的,但可以有不同類型的數(shù)組元素

B.數(shù)組的大小是可變的,且所有數(shù)組元素的類型必須相同

C.數(shù)組的大小是固定的,且所有數(shù)組元素的類型必須相同

D.數(shù)組的大小是可變的,且可以有不同類型的數(shù)組元素

11.若有定義:inta[10];則對數(shù)組a中元素的引用正確的是()

A.a[10]B.a[6,3]C.a(6)D.a[10-10]

12.下列選項中對二維數(shù)組不正確的初始化是()

A.inta[][3]={3,2,l,l,2,3);B.inta[][3]={{3,2,l},{l,2,3});

C.inta⑵[3]={{3,2』,},{1,2,3}};D.inta[][>{{3,2,1},{1,2,3));

13.下列選項中正確的數(shù)組定義形式是()

A.intA[a];B.inta[3,4];C.intA[][3];D.intA[10];

14.若有如下定義:血叫[3]={1,2,3,4,5,6};則如1][0]的值是()

A.4B.1C.2D.5

15.當接收用戶輸入的含空格的字符串時,應使用的函數(shù)是()

A.scanf()B.gets()C.getchar()D.getc()

16.下列程序的輸出結果是()

#include"stdio.h''

voidmain()

{charb[]="Helloyou”;

b[5]=,\0,;

printf(%s,,,b);

A.HelloyouB.HelloC.HellD.HelloOyou

17.下列程序的輸出結果是()

#include“string.h"

#include"stdio.h''

voidmain()

{charx[]="1234567”,y[12]="1234567”;

printf(4%d,%d,%d\n,,,strlen(x),sizeof(x),sizeof(y));

A.7,7,7B.7,8,8C.7,8,12D.8,8,8

18.若有定義:intk,a[3][3]={9,876,5,4,3,2,1};則下歹U語句的輸出結果是()

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

printf("%d”,a[k][k]);

A.753B,951C.963D.741

19.若有下列定義,則下列選項合法的是()

inti,alO],*p;

A.p=a+2;B.p=a[5];C.p=a[2]+2;D.p=&(i+2);

20.有關下列程序段的說法中,正確的是()

chars[10]="5876273”;

char*p=s;

printf(<<%c,,,p[l]-<0,);

A.輸出格式錯誤語法錯誤

C.輸出8D.輸出ASCII碼值為8的字符

21.下列程序的運行結果是()

#include“stdio.h"

voidmain()

{charsl[]='Tanguage'',s2[]=''program'';

char*pl=sl,*p2=s2;

intk;

for(k=0;k<7;k++)

if(*(p1+k)==p2[k])

putchar(*(k+p1));

printf(“\n”);

)

A.ageB.ga

C.languageD.有語法錯誤,不能運行

22.具有相同類型的指針類型變量p與數(shù)組a,下列選項中不正確的操作是()

A.p=a;B.p=NULL;C.p=&a[0];D.p=&a;

23.若已定義chara[10]和char*p=a,則正確的賦值語句是()

A.a[10]="urboc"B.a=,,Turboc”

C.*p="Turboc"D.p="Turboc”

24.若有定義:

#include"stdio.h"

chara[10],*b=a;

則不能給數(shù)組a輸入字符串的函數(shù)調用語句是()

A.gets(a);B.gets(b);C.gets(&a[O]);D.gets(a[O]);

25.若有定義血2出出={1,2,3,4}4[3]甲[0工[1];則*6[0]+1)表示的數(shù)組元素是,<)

A.a[O][O]B.a[O][l]C.a[l][l]D.a[U[O]

二、填空題

1.若有chara[3]="as";,貝i]*a=,*(a+2)=。

2.下列程序的功能是將數(shù)組的元素按由大到小的順序進行排序。請?zhí)羁胀瓿沙绦颉?/p>

#include"stdio.h"

voidmain()

{inta[12]={5,8,9,6,2,7,3,2,2,7,8,0},i,j,k;

for(k=0;k<l1;k++)

for(i=k;i<12;i++)

if(a[i]>1

{j=a[i];

a[i]=;

________=j;

)

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

printf(<t%d,,,a[i]);

printfC'W");

)

3.若有如下定義:intb[5],a[][3]={1,234,5,6},則b[4]=,a[l][2]=。

4.下列程序的運行結果是o

#include"stdio.h"

voidmain()

{chara[5]={'A','B','C','D','E'},*P=A,**PA;

for(;p<a+5;p++)

printf(“%2c”,*p);

printf(“\n”);

P=a;

printf("%2c\n”,**(pa=&p));

)

5.下列程序的運行結果是o

#include“stdio.h"

voidmain()

{inta[]={l,2,3,4,5,6),*p;

P=a;

*(p+3)+=2;

Printf("%d,%d\n”,*p,*(p+3));

}

6.下列程序的功能是輸出數(shù)組s中最大元素的下標。請?zhí)羁胀瓿沙绦颉?/p>

#include“stdio.h"

voidmain()

{intk,p;

ints[]={l,-9,7,2,-10,3);

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])

Printf(t<%d\n,,,k);

)

7.下列程序的功能是將一個字符串str的內容顛倒過來。請?zhí)羁胀瓿沙绦颉?/p>

#include"stdio.h"

#include“string.h"

voidmain()

{inti,j;

chark;

charstr[]={<<1234567,};

for(i=0,j=strlen(str)-l;;i++,j--)

{k=str[i];

str[i]=str[j];

str[j]=k;}

puts(str);

)

8.下列程序的輸出結果是o

#include“stdio.h"

voidmain()

{inta[][3]={9,7,5,3,l,2,4,6,8);

inti,j,sl=O;

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

if(i==j)

sl+=a[i][j];

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

)

9.下列程序的輸出結果是o

#include"stdio.h"

#include“string.h"

voidmain()

{charsl[50]={66somestring*"};

chars2[]={"test"};

printf(<<%d,,,,strlen(s2));

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

)

10.下列程序的輸出結果是o

#include"stdio.h"

#include“string.h"

voidmain()

{chararr[2][4];

strcpy(arr[0],^^you^^);

strcpy(arr[l],''me’’);

arr[0][3]=,&,;

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

}

三、閱讀程序,寫結果

1.下列程序的執(zhí)行結果是多少?

#include"stdio.h"

voidmain()

{inti,j,a[]={0,2,8,4,5);

printf('\n");

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

{j=5-i;

printf(“%2d”,a[jD;

)

2.下列程序的執(zhí)行結果是多少?

#include“stdio.h"

voidmain()

{inta[ll],b[4],i,j;

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

a[i]=i;

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

b[i]=0;

for(i=l,j=0;i<=10;i++)

{b[j]+=a[i];

if(i%3==0)

j++;

)

for(;j>=0;j-)

printf("%3d”,b[j]);

)

3.下列程序的執(zhí)行結果是多少?

#include“stdio.h''

voidmain()

{char*s2='TloveChina!”,**s=&s2;

char*s3,c,*s4=''w";

s3=&c;

*s3='H;

s2=s2+2;

printf(<<%s\t%c\t%s\t%c\n,,,s2,*s3,s4,**sl);

)

4.下列程序的執(zhí)行結果是多少?

#include“stdio.h"

voidmain()

{inti,a[]={ll,22,33,44,55,66,77,88,56,29),*p=a+4;

for(i=3;I;i-)

switch(i)

{defaut:printf(u%d\t,,,*p++);

case1:

case2:printf("%d\t",*p--);break;

case3:printf("%d\t”,*(++p));

)

)

5.下列程序的執(zhí)行結果是多少?

#include“stdio.h"

voidmain()

{char*sl[20]="Front”,s2[20]="Behind”;

char*psl=sl,*ps2=s2;

while(*psl++);

while(*ps1++=*ps2++);

*psl='\O';

printf("%s\rT,sl);

四、程序設計題

1.輸入10個整數(shù)存入一維數(shù)組中,再按逆序重新存放后輸出。

2.輸入一個字符串,將其中的所有大寫字母改為小寫字母,所有小寫字母改為大寫字母,然

后輸出。

3.輸入一個字符串,按相反次序輸出其中的所有字符。

4.輸入一個3X6的二維數(shù)組,輸出其中的最大值、最小值及其所在的行列下標。

5.輸入10個整數(shù),將其中的最大數(shù)和最后一個數(shù)交換,最小數(shù)與第一個數(shù)交換。

6.輸入一個八位的整數(shù),將數(shù)中各位數(shù)為奇數(shù)的數(shù)依次輸出構成一個新數(shù),高位仍在高位,

低位仍在低位。如:輸入76459732,則輸出為7573。

第四章函數(shù)

一、選擇題

1.下列函數(shù)調用語句中的實參個數(shù)是()

fun(a+b,(x,y),fun(n+k,a,x+y));

A.3B.4C.5D.6

2.下列程序的輸出結果是()

#include"stdio.h"

intfun(inta)

{intb=0;

staticintc=3;

b++,c++;

returna+b+c;

)

voidmain()

{intx=2,I;

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

printf("%d”,fun(x));

)

A.789B.777C.888D.78910

3.在C語言中,下列說法正確的是()

A.函數(shù)定義可以嵌套,但函數(shù)調用不能嵌套

B.函數(shù)定義不可以嵌套,但函數(shù)調用可以嵌套

C.函數(shù)定義和調用均不能嵌套

D.函數(shù)定義和調用均可以嵌套

4.一個程序由若干文件組成,共用同一變量,則此變量的存儲類別是()

A.autoB.externC.staticD.register

5.下列對C語言函數(shù)描述的有關選項中,正確的是()

A.調用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.函數(shù)既可以嵌套定義又可以嵌套調用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.有調用關系的所有函數(shù)必須放在同一個源程序文件中

6.C語言規(guī)定,函數(shù)的返回值的類型由()。

A.return語句中的表達式所決定

B.調用該函數(shù)時的主調用函數(shù)類型所決定

C.調用該函數(shù)時系統(tǒng)臨時決定

D.在定義該函數(shù)時所指定的函數(shù)類型所決定

7.有一個名為newpr的函數(shù)用于打印sin(x)、cos(x)和ln(x)等函數(shù)的曲線模型,其參數(shù)就是這

些函數(shù),則newpr函數(shù)的說明是()

A.doublenewpr(doublex)B.voidnewpr(double(*f)(doublex))

C.voidnewpr(double(*f)(),(doublex))D.void(*newpr)(doublef(doublex))

8.有一個函數(shù)的定義為voidnewpr(double(*f)(),doublex){printf("%f\n",(*f)(x));},

則正確調用該函數(shù)的語句是()

A.newpr(sin,0.5);B.newpr(sin(0.5));

C.newpr(&sin,0.5);D.newpr((&sin)(0.5));

9.函數(shù)func(inta){printf("%d”,a);}的返回值類型是()

A.intB.voidC.沒有返回值D.無法確定

10.下列程序的輸出結果是()

#include"stdio.h"

voidmain()

{intfunc(inta,intb);

intk=4,m=l,p;

p=func(k,m);

printf(“%d,”,p);

p=func(k,m);

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

)

intfunc(inta,intb)

{staticintm=0,i=2;

i+=m+l;

m=i+a+b;

returnm;

)

A.8,17B.8,16C.8,20D.8,8

11.下列程序的輸出結果是()

#include“stdio.h"

funcl(inta,intb)

{return(a+b);

}

func2(inta,intb)

{return(a-b);

)

func3(int(*t)(intx,inty),intx,inty)

{return(*t)(x,y);

)

voidmain()

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

p=funcl;

x=func3(p,9,3);

x+=func3(func2,8,3);

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

}

A.9B.17C.3D.27

12.設有說明int(*ptr)();,則其中標識符ptr是()

A.一個指向整型變量的指針B.一個函數(shù)名

C.一個指針,它指向一個函數(shù)值是int的函數(shù)D.定義不合法

13.下列程序執(zhí)行后的輸出結果是()

#include“stdio.h"

voidfunc(int*a,intb[])

{b[0]=*a+6;

)

voidmain()

{inta,b[5];

a=0;

b[0]=3;

func(&a,b);

printf("%d\n”,b⑼);

}

A.6B.7C.8D.9

14.下述程序的輸出結果是()

#include“stdio.h"

voidprt(int*x)

{printf("%d\n”,++*x);

)

voidmain()

{inty=30;

prt(&y);

)

A.30B.31C.29D.32

15.要求函數(shù)實現(xiàn)的功能是:交換x和y中的值,且通過正確調用返回交換結果。下面的

函數(shù)設計中不能正確實現(xiàn)執(zhí)行此功能的是()

A.funa(int*x,int*y)B.funb(int*x,int*y)

{intt,p=&t;*p=*x;*x=*y;*y=*p;}{intt;t=x;x=y;y=t;}

C.func(int*x,int*y)D.fund(int*x,int*y)

{intp;p=*x;*x=*y;*y=p;}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論