C語言程序設(shè)計任務(wù)驅(qū)動式教程-課后練習題及答案_第1頁
C語言程序設(shè)計任務(wù)驅(qū)動式教程-課后練習題及答案_第2頁
C語言程序設(shè)計任務(wù)驅(qū)動式教程-課后練習題及答案_第3頁
C語言程序設(shè)計任務(wù)驅(qū)動式教程-課后練習題及答案_第4頁
C語言程序設(shè)計任務(wù)驅(qū)動式教程-課后練習題及答案_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

XJ向北X會聊2我本秀落

HEBEICOLLEGEOFINDUSTRYANDTECHNOLOGY

?語言福本核計偏后思考與制稱

1

第一單元

1.討論題

(I)討論C程序的結(jié)構(gòu)是由哪幾個部分組成的。

(2)C語言中注釋的作用。

(3)在編寫C語言程序時,需要注意的編碼規(guī)范有哪些?

2.選擇題

(I)C語言屬于下列哪類計算機語言?

A.匯編語言B.高級語言C.機器語言D.以上均不屬于

(2)一個C程序是由(X

A.f主程序和若干子程序組成

B.一個或多個函數(shù)組成

C.若干過程組成

D.若干子程序組成

(3)TC程序的執(zhí)行是從(\

A.main函數(shù)開始,直到main函數(shù)結(jié)束

B.第一個函數(shù)開始,直到最后一個函數(shù)結(jié)束

C.第一個語句開始,直到最后一個語句結(jié)束

D.main函數(shù)開始,直到最后一個函數(shù)結(jié)束

(4)C語言語句的結(jié)束符是(工

A.回車符B.分號C.句號D.逗號

(5)以下說法正確的是(X

A.C程序的注釋可以出現(xiàn)夠序的任何位置,它對程的編請隔亍不起任I可作用

B.C程序的注釋只能是一行

C.C程序的注釋不能是中文文字信息

D.C程序的注釋中存在的錯誤會被編譯器檢查出來

(6)以下說法正確的是(1

A.C程序中的所有標識符都必須小寫

B.C程序中關(guān)鍵字必須〃與,其他標識符不區(qū)分大小寫

C.C程序中所有標識符都不區(qū)分大小寫

D.C程序中關(guān)鍵字必須/J瀉,其他標識符區(qū)分大小寫

3.填空題

(DC語言源程序文件的后綴是,編譯后生成目標文件的擴展名是,經(jīng)

過連接后生成可執(zhí)行文件的擴展名是。

(2)C程序多行注釋是由和所界定的文字信息組成的。

(3)源程序的執(zhí)行要經(jīng)過、、和4個步驟。

4.編程題

(1)試編寫一個C程序并上機調(diào)試,運行后能輸出以下信息。

**************************************

Thisismyfirstprogram.

**************************************

(2)編寫程序,用"*"輸出字母C。

第二單元

1.討論題

(I)C語言為什么規(guī)定對所有用到的變量都要"先定義,后使用"?

(2)定義變量時一定要賦初值嗎?不賦初值的變量一定不能用嗎?

(3)不同類型數(shù)據(jù)之間在進行運算時,結(jié)果類型應(yīng)該如何確定?

(4)C語言中常量、變量命名規(guī)范是什么?

2.選擇題

(1)以下正確的C語言標識符是(\

A.%XB.a+bC.al23D.test!

(2)已定義inta,b;則以下不正確的C語句是(\

A,a*=5;B.b/=2;C.a+=1.75;D.b%=a;

(3)若x、i、j和k都是整型變量,則執(zhí)行下面的表達式后x的值為(1

x=(i=4,j=16,k=32)

A.4B.16C.32D.52

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

A.必須是字母B.必須為下畫線

C.必須為字母或下畫線D.可以是字母、數(shù)字、下畫線中的任一字符

(5)下面正確的字符常量是(

A."c"B.'\\"C.'w'D."

6)設(shè)x、y均為float型變量,則以下賦值語句不合法的是(

A,++x;B.y=(x%2)/10;

C.x*=y+8;D.x=y=0;

(7)下列不正確的轉(zhuǎn)義字符是(

A.*\\'B.'C.'\19'D.1\01

(8)下列不是C語言常量的是(

A.e-2B.074C.%"D.''0'

9)若定義了intx;則將x強制轉(zhuǎn)化成雙精度類型應(yīng)該寫成(

A.(double)xB.x(double)

C.double(x)D.(x)double

10)在C語言中,要求參加運算的數(shù)必須是整數(shù)的運算符是(

A./B.*C.%D.=

4

第單元c語言程序設(shè)計基礎(chǔ)

(11)為了計算s=10!(即10的階乘),貝h變量應(yīng)定義為(I

A.intB.unsignedC.longD.以上3種類型均可

3.填空題

(1)字符常量使用一對界定單個字符,而字符串常量使用一對來界定若

干個字符的序列。

(2)在C語言中,不同運算符之間運算次序存在的區(qū)別,同一運算符之間運

算次序存在的規(guī)則。

(3)字符串“hell?!钡拈L度是。

(4)下列程序的運行結(jié)果是_______。

voidmain()

(

intx=5;

inty=10;

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

printf("%d\n"z++y);

)

4.編程題

⑴請用C語言描述一個學生的年齡、身高、體重、性別,并輸出到顯示器上。

(2)編寫程序:假定銀行定期存款的年利率為2.25%,并已知存款期為n年,存款本

金為x元,試編程計算n年后可得到本利之和是多少。

第三單元

1.討論題

(1)在使用輸入輸出函數(shù)時,若不寫上編譯預處理命令#linclude<stdio.h>,對程序執(zhí)

行的結(jié)果有何影響?

(2)在C語言中,我們經(jīng)常使用的語句有哪些?

(3)常用的輸入輸出格式控制符有哪些?

(4)格式化的輸入函數(shù)和格式化的輸出函數(shù)使用方法有哪些區(qū)別?

2.單選題

(1)閱讀下列程序,當輸入數(shù)據(jù)的形式為:25,13,10,正確的輸出結(jié)果為(\

#include<stdio.h>

voidmain()

(

intx,y,z;

n

scanf(%dz%d”,&x,&y,&z);

printf("x+y+z=%d\n”,x+y+z);

)

A.x+y+z=48B.x+y+z=35

C.x+z=35D,不確定值

(2)以下程序的運行結(jié)果是(\

include<stdio.h>

voidmain()

(

inta=2,b=5;

printf(na=%%d,b=%帶d",己,b);

)

A.a=%2,b=%5B.a=2,b=5

C.a=%%d,b=%%dD.a=%d,b=%d

(3)putchar函數(shù)可以向終端輸出一個(I

A.整型變量表達式值B.實型變量值

C.字符串D.字符或字符型變量值

(4)已知有定義inta=-2和輸出語句printf("%81x",a);,以下敘述正確的是(\

A.整型變量的輸出格式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進制輸出,但%81x是錯誤的

6

第?單元選擇結(jié)構(gòu)程序設(shè)計

D.%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

(5)已知ch是字符型變量,下面不正確的賦值語句是(I

A.ch=1a+b1;B.ch=1\Or;C.ch='7'+'9';D.ch=7+9;

3.分析程序并上機操作

(1)以下程序的輸出結(jié)果是(X

include<stdio.h>

voidmain()

(

intn=2,m=2;

printf3d〃,++m,n―);

}

(2)以下程序的輸出結(jié)果是(1

#include<stdio.h>

voidmain()

(

inta=325;

doublex=3.1415926;

printf(na=%dx=%4,2f\nn,a,x);

)

(3)若x為int型變量,則執(zhí)行下列語句后x的值是(1

x=7;

x+=x-=x+x;

(4))程序運行時輸入:12〈回車〉,執(zhí)行后輸出結(jié)果是(I

#include<stdio.h>

voidmain()

{charchlzch2;intnlzn2;

chl=getchar();ch2=getchar();

nl=chl-10,;n2=nl*10+(ch2-*0*);

u

printf(%d\n"zn2);

4.編程題

(1)求ar+b=0的解,a、b的值由鍵盤輸入。

第?單元選擇結(jié)構(gòu)程序設(shè)計

(2)正確分離出一3位正髏的個位十位、百彳談字,并將結(jié)果分別顯示在屏幕上。

第四單元

1.討論題

(1)嵌套if語句和多重if語句有何區(qū)別?舉例說明在實際編程過程中,這兩種選擇依

據(jù)能否用來解決相同的問題?

(2)多重if語句與switch語句能否相互替換?考慮其分別適用的場合。

2.選擇題

(1)邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型(I

A.只能是?;?B.只能是0或非0正數(shù)

C.只能是整型或字符型數(shù)據(jù)D.可以是任意類型的數(shù)據(jù)

(2)判斷char型變量ch是否為大寫字母的正確表達式是(1

A.'A'<=ch<='Z'B.(ch>='A')&(ch<=Z)

C.(ch>='A')&&(ch<='Z')D.(ch>='A')AND(ch<='Z')

(3)已知intx=10,y=20,z=30;,以下語句執(zhí)行后x、y、z的值是(1

if(x>y)

z=x;x=y;y=z;

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

(4)當a=l,b=3,c=5,d=4時,執(zhí)行完下面的程序段后,x的值是(\

if(a<b)

if(c<d)

elseif(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

A.1B.2C.3D.6

3.分析程序并上機操作

(1)下列程序的運行結(jié)果是什么?

main()

第?單元選擇結(jié)構(gòu)程序設(shè)計

intx,y,z;

x=y=z=l;

——x&&——y||——z;

Hn

printf(x=%d\ty=%d\tz=%d\nfxryfz);

x=y=z=-l;

++x||++y||++z;

printf(nx=%d\ty=%d\tz=%d\nn,x,y,z);

x=y=z=O;

x——&&++v&&++z;

printf(nx=%d\ty=%d\tz=%d\nn,x,y,z);

)

(2)下列程序的運行結(jié)果是什么?

main()

{

inta=l,b=0;

switch(a)

(

case1:

switch(b)

(

caseO:printf(n**o**");break;

case1:printf(H**l**n)/break;

)

case2:printf(n**2**n);break;

)

}

4.填空題

(1)以下程序運行后的了輸出結(jié)果是______.

#include<stdio.h>

voidmain()

{inta=lzb=2zc=3;

n

if(c=a)printf(%d\n"zc);

H

elseprintf(%d\n"zb);

}

(2)設(shè)y是int型變量,請寫出判斷y為奇數(shù)的關(guān)系表達式______

第?單元選擇結(jié)構(gòu)程序設(shè)計

(3)若從鍵盤輸入58,則以下程序輸出的結(jié)果是_____。

#include<stdio.h>

voidmain()

{inta;

scanf("超d",&a);

n

if(a>50)printf("%dza);

if(a>40)printf(n%dH,a);

if(a>30)printf(n%dn,a);

}

(4)以下程序的輸出結(jié)果是_____。

#include<stdio.h>

voidmain()

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

d=(a>b>c);

,,

printf(%d\n"zd);

}

(5)以下程序運行后的輸出結(jié)果是______?

#include<stdio.h>

voidmain()

{intp=30;

printf(n%d\n",(p/3>0?p/10:p%3));

)

5.編程題

(I)編寫程序,判斷通過鍵盤輸入的字符屬于哪一類字符(大寫字母、小寫字母、數(shù)

字或其其它字符I

(2)假設(shè)國家對個人收入所得稅起征點為5000元,超過部分要征收個人所得稅,未超

過3000的部分征收3%,超過3000至I」12000的部分征收10%,超過12000到25000的部

分征收20%。編寫程序輸入個人當月稅前收入,計算個人所得稅及個人實際收入。

(3)從鍵盤輸入3個數(shù)據(jù),然后按照從小到大的11褥輸出。

(4)某廠對產(chǎn)品進行分級,產(chǎn)品性能在90分以上,則該產(chǎn)品定為A級產(chǎn)品;性能在

80-89分,則定為B級產(chǎn)品;如果性能得分為60-79分之間,則定為C級;產(chǎn)品性能在60

分以下,則該產(chǎn)品定為D級產(chǎn)品。試編寫一程序?qū)崿F(xiàn)對該廠產(chǎn)品進行分級評定。

第五單元循環(huán)

1.討論題

三種循環(huán)語句適用什么循環(huán)的情況,比如:固定次數(shù)的循環(huán)和不固定次數(shù)的循環(huán)

等。

2.選擇題

(1)以下程序段是(I

x=-l;

do

(

x=x*x;

)

while(!x);

A.死循環(huán)B.循環(huán)執(zhí)行二次C.循環(huán)執(zhí)行一次D.有語法錯誤

(2)執(zhí)行語句for(i=l;i++<4;);后變量i的值是(\

A.3B.0C.5D.不定

(3)循環(huán)語句for(x=0,y=0;(y!=I23)||(x<4);x++);的循環(huán)執(zhí)行次數(shù)為(\

A.無限次B.不確定次數(shù)C.4次D.3次

(4)假定a和b為int類型變量,則執(zhí)行以下語句后b的值為(X

a=l;b=10;

do

{

b-=a;

a++;

}while(b―<0);

A.9B.-2C.-1D.8

(5)C語言中while和do-while循環(huán)的主要區(qū)別是(I

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格

C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D.do-while的循環(huán)體不能為復合語句

(6)以下描述正確的是(\

11

第單元循環(huán)結(jié)構(gòu)程序設(shè)計

A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句

C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能用goto語句

3.分析程序并上機操作

(1)以下循環(huán)體的執(zhí)行次數(shù)。

#include<stdio.h>

voidmain()

(

intizj;

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

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

}

(2)以下程序的輸出結(jié)果。

#include<stdio.h>

voidmain()

(

ints,i;

for(s=0,i=l;i<3;i++,s+=i);

printf("gd\n",s);

)

(3)以下程序的輸出結(jié)果。

#include<stdio.h>

voidmain()

{

inty=10;

while(y——);

printf(ny=%d\n'\y);

}

4.填空題

(1)以下程序的功能是計算:1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

第單元循環(huán)結(jié)構(gòu)程序設(shè)計

intt=O,s=O,i;

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

(

t=i+_;

s=s+t;

)

printf(、's=%d\n〃,s);

}

(2)以下程序的功能是計算自然數(shù)1-10的偶數(shù)和。請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

(

inti,s=0;

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

n

printf(%d\n"zs);

}

5.編程題

(1)判斷字符類型,直到輸入‘#‘結(jié)束。

(2)循環(huán)輸入年份月份,輸出該月份的天數(shù),直到年份輸入0結(jié)束。

(3)請將計算器程序改為循環(huán)程序。

(4)嘗試將第4章的選擇結(jié)構(gòu)程序改為循環(huán)。

(5)輸出以下圖案:

**

***

****

第六單元數(shù)組

1.選擇題

(1)在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是(\

A.整型常量B.整型表達式

C.整型常量或整型表達式D.任意類型的表達式

(2)以下程序段執(zhí)行后,輸出結(jié)果是(1

charstr[]="ab\n\\012\\\";

printf(n%d",strlen(str));

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

(3)判斷字符串si是否大于字符串s2,應(yīng)當使用(\

A.if(sl>s2)B.if(strcmp(sl,s2))

C.if(strcmp(s1,s2)>0)D.以上都不正確

(4)下面程序的運行結(jié)果是(1

#include<stdio.h>

voidmain()

(

inta[6]zi;

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

(

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

nn

printf(%2dza[i]);

)

)

A.-40403B.-40443

C?-40404D.-40440

(5)下面的說明語句正確的是(\

A.intA[][]B.intA['a']

C?int*A[10]D.intA[]

(6)以下程序的輸出結(jié)果是(\

#include<stdio.h>

voidmain()

(

intiza[10];

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

14

第單元數(shù)組

a[i]=10-i;

n

printf(%d%d%d",a[2]za[5],a[8]);

}

A、258B、741C^852D、369

(7)以下不能正確定義二維數(shù)組的選項是()。

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

C.inta[2][2]={{l},2,3};D.inta[2][]={{1,2},{3,4});

(8)以下程序的輸出結(jié)果是(1

#include<stdio.h>

voidmain()

(

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=O;

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

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

s+=a[i][j];

printf(u%d\nn,s);

}

A.18B.19C.20D.21

(9)以下程序的輸出結(jié)果是(I

#include<stdio.h>

voidmain()

(

inti,x[3][3]={1,2,3,4,5,6,7,8,9};

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

nn

printf(%dz,x[i][2-i]);

)

A、1,5,9B、1,4,7C、3,5,7D、3.6.9

(10)合法的數(shù)組定義是(\

A.inta[]=,,stringn;B.inta[5]={0,l,2,3,4,5);

C.chars=ustringn;D.chara口二{0,1,2,345};

2.填空題

(1)下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

第單元數(shù)組

intk,p;ints[]={1,-9,7,2,-10,3};

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

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

printf(n%d\nn,k);

}

(2)以下程序以每行5個數(shù)據(jù)的形式輸出a數(shù)組,請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

(

inta[50],i;

printf("輸入10個整數(shù):”);

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

scanf(%dn,_);

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

(

if(___)

printf(n%3d\nu,_______);

printf("%3d"za[i-l]);

)

)

(3)下面程序?qū)崿F(xiàn)以下輸出數(shù)組(右上半三角),請?zhí)羁铡?/p>

1234

678

1112

16

#include<stdio.h>

voidmain()

(

intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

(

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

printf("%4c",1');

for(j=;j<4;j++)

第單元數(shù)組

printf("%4d",num[i][j]);

printf("\nn);

)

}

3.編程題

(I)用冒泡法對10個數(shù)進行排序(由小到大X

(2)編程實現(xiàn)兩個字符串的連接(不用strcat函數(shù)\

(3)統(tǒng)計字符串中輸入數(shù)字字符的個數(shù)。

第七單元函數(shù)

1.討論題:

(1)在程序中為什么要使用函數(shù)?

(2)有參函數(shù)是如何聲明的?調(diào)用時應(yīng)注意什么?

(3)無返回函數(shù)和有返回值函數(shù)在聲明和調(diào)用時分別注意什么?

(4)在項目開發(fā)中,為什么要強調(diào)團隊合作?作為一份子,如何做好自己的工作?

2.選擇題

(1)C語言中的函數(shù)返回值的類型是由()決定。

A.return語句中的表達式

B.調(diào)用函數(shù)的主調(diào)函數(shù)

C.調(diào)用函數(shù)時臨時

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

(2)下面的描述中不正確的是(X

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參和形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將形參分配內(nèi)存單元

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

(3)在C語言中,調(diào)用一個函數(shù)時,實參變量和形參變量之間的數(shù)據(jù)傳遞是(

A.地址傳遞

B.值傳遞

第單元數(shù)組

C.由實參傳遞給形參,并由形參傳回給實參

D.由用戶指定傳遞方式

(4)下面的函數(shù)調(diào)用語句中含有()個實參。

inta,b,c;

intsum(intxl,intx2);

total=sum((a,b),c);

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

(5)在C語言中(\

A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B.函數(shù)的定義和調(diào)用均不可以嵌套

C.函數(shù)的定義不可以嵌套,但是函數(shù)的調(diào)用可以嵌套

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

(6)關(guān)于C語言中的return語句,下面的描述正確的是(\

A.只能在主函數(shù)中出現(xiàn)

B.在每個函數(shù)中都必須出現(xiàn)

C.可以在一個函數(shù)中出現(xiàn)多次

D.只能在除主函數(shù)之外的函數(shù)中出現(xiàn)

3.填空題

(1)C語言中定義函數(shù)時如果未指定函數(shù)類型,則默認的函數(shù)類型是。

(2)C語言中沒有返回值的函數(shù)類型應(yīng)指定為.

(3)下面函數(shù)返回值的類型是o

floatfun(floatazdoubleb)

{returna*b;}

(4)發(fā)生函數(shù)調(diào)用時,實參和形參間的數(shù)據(jù)傳遞有兩種方式,即和。

(5)在一個函數(shù)內(nèi)部調(diào)用另一個函數(shù)的調(diào)用方式稱為,在一個函數(shù)內(nèi)部直接或

間接調(diào)用該函數(shù)本身的調(diào)用方式稱為函數(shù)的O

(6)如果被調(diào)函數(shù)在主調(diào)函數(shù)后定義,一般應(yīng)該在主調(diào)函數(shù)中或主調(diào)函數(shù)前對被調(diào)函

數(shù)進^亍.

(7)C語言中的變量按其作用域分為和,按其生存期分為

和0

(8)已知如下函數(shù)定義,其函數(shù)聲明的兩種寫法為,o

doublefun(longm,doublen)

第單元數(shù)組

{return(m+n);}

(9)C語言中變量的存儲類別包括,,和,

(10)下面程序的執(zhí)行結(jié)果是.

#include<stdio.h>

intd=l;

voidfun(intp)

(

intd=5;

d+=p++;

printf(H%dn,d);

)

voidmain()

(

inta=3;

fun(a);

d+=a++;

printf(,'%d,\d);

)

4.編程題

(1)編寫程序,用函數(shù)實現(xiàn)小型計算器的加、減、乘、除功能。

(2)編寫有參函數(shù),求兩個整數(shù)中的最大值。

第八單元

1.討論題

指針變量、指針變量作為函數(shù)參數(shù)、數(shù)組的指針和指針數(shù)組的概念與應(yīng)用。

2.選擇題

(1)若charsflOl,*p=s;,則下列語句錯誤的是(\

A.p=s+5B.s=[p+s]C.s[2]=p[4]D.*p=sfO]

(2)已知定義char**s;,下列語句正確的是(\

A.s=',computernB.*s="computer"

C.**s="computer"D.*s='A'

3)C語言主函數(shù)最多允許有()個參數(shù)。

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

4)說明語句int(*p)()的含義是(

A.p是一個指針型函數(shù),返回值為指針

B.p是指針變量,它指向一個整型數(shù)據(jù)的指針

C.p是一個指向函數(shù)的指針,該函數(shù)的返回值為整型

D.以上答案都不對

(5)下列語句中,能表示p是一個指向整型變量的指針變量的是(X

A.int**pB.int*pC.int(*p)()D.int*pf]

(6)下列敘述中,錯誤的是(X

A.一個變量的地址稱為該變量的指針

B.一個指針變量只能指向同一數(shù)據(jù)類型的變量

20

c.指針變量中只能存放地址

D.指針變量可以由整型數(shù)賦值

(7)若有以下定義語句:intvar,arr[10],*p;,則以下語句中非法的是(工

A.p=&varB.p=arrC.p=10D.p=&arr[5]

(8)兩個指針變量不可以進行的操作是(X

A.相加B.相減C.指向同一個地址D.比較

3.填空題

(1)以下程序的功能是:從終端輸入一行字符,以"$"作為結(jié)束,把該字符串存放在

字符數(shù)組S中,然后輸出,請在空白處填上適當?shù)恼Z句使程序完整。

#include<stdio.h>

#defineMAXSIZE100

main()

(

charstr[MAXSIZE],*p;

intn;

printf(”請輸入:\nn);

for(n=0;n<MAXSIZE-1;n++)

(

str[n]=getchar();

if(str[n]=='$1)

break;

)

str[n]=_______;

p=str;

printf("輸出為:\n");

while(*p)

putchar(__________);

printf(”\n”);

)

(2)以下程序的執(zhí)行結(jié)果是________?

#include<stdio.h>

voidf(inta,intb,int*plzint*p2)

(

*pl=a*b;

21

*p2=a%b;

)

voidmain()

(

intx,v,*P,*q;

x=10;y=4;

p=&x;

q=&y;

f(x,y,p,q);

H

printf(%dz%d\n"z*p,*q);

)

4.編程題

(1)利用指針的方法,輸入學生的成績判斷等級。

(2)利用指針的方法,完成四則運算計算器。

(3)利用指針的方法,求數(shù)組中的最大數(shù)和最小數(shù)。

(4)利用指針的方法,完成10個數(shù)的排序。

第九單元:

1.討論題

(1)簡述結(jié)構(gòu)體、共用體、枚舉類型、動態(tài)鏈表的概念與特點。

(2)如何在動態(tài)鏈表中插入、刪除結(jié)點?

(3)對于一個綜合性的大型程序設(shè)計,按照軟件工程理論如何進行分工合作?

2.選擇題

(1)若有以下說明:

structstudent

(

charname[20];

intage;

charsex;

}b={nmahua*\20,'m'},*p=&b;

22

則下面對字符串mahua的引用方式不可以的是(

A.(*p).nameB.C.p->nameD.

(2)對于下列說明,不能使變量p->b的值增1的表達式是(1

structstr

(

inta;

int*b;

}*P;

A.*p->b++B.*++p->bC.(*(p++)->b)++D.*++((p++)->b

(3)以下程序企圖把從終端輸入的字符輸出到名為abc.txt文件中,直到從終端讀入字

符#號時結(jié)束輸入和輸出操作,但是程序有錯誤。

#includenstdio.h"

main()

(

FILE*fout;

charch;

fout=fopen(1abc.txt1,*w*);

ch=fgetc(stdin);

while(ch!=*#')

(

fputc(ch,fout);

ch=fgetc(stdin);

}

fclose(fout);

}

出錯的原因是(X

A.函數(shù)fopen調(diào)用形式錯誤

B.輸入文件沒有關(guān)閉

C.函數(shù)fgetc調(diào)用形式錯誤

D.文件指針stdin沒有定義

(4)若fp已經(jīng)正確定義用旨向某個文件,當未遇到文件結(jié)束標志時函數(shù)feof(fp)的值是

23

A.0B.1C--1D.一個非0的值

(5)有如下程序:

#include<stdio.h>

main()

(

FILE*fpl;

fpl=fopen(*f1.txt*,1w');

fprintf(fpl,nabcH);

fclose(fpl);

若文本文件fl.txt中原有內(nèi)容為good則運行以上程序后文件fl.txt中的內(nèi)容為

A.goodabcB.abedC.abcD.abegood

(6)在fopen函數(shù)中使用的文件方式是“w+”,該方式的含義是(\

A.打開一個二進制文件讀寫B(tài).打開一個文本文件讀寫

C.建立一個新的文本文件讀寫D.建立一個新的二進制文件讀寫

(7)在C語言中,用于關(guān)閉文件的函數(shù)是(X

A.fopenB.fseekC.ftellD.fclose

3.填空題

(1)以下程序用來統(tǒng)計文件中字符個數(shù)。請?zhí)羁胀瓿沙绦颉?/p>

#include<stdio.h>

main()

(

FILE*fp;

Longnum=0L;

if(fp=fopen('fname.dat','r*)==NULL)

(

printf(nopenerror\nn);

exit(0);

}

while(_________)

(

fete(fp);num++

)

24

printf(nnum=%ld\nn,num-1);

fclose(fp);

)

(2)若fp已經(jīng)正確定義為一個文件指針,dl.dat為二進制文件,請?zhí)羁?,以便?讀"

而打開此文件:fp=fopen();

(3)已知文本文件test.txt,其中的內(nèi)容為:Hello.everyone!,以下程序中,文件test.txt

已經(jīng)正確為"讀"而打開,由文件指針「指向該文件,則程序的輸出結(jié)果是。

?include<stdio.h>

main()

(

FILE*fr;

charstr[40];

fgets(str,5,fr);

nH

fprintf(%s\nzstr);

fclose(fr);

?語言程本微花偏后思考與制稱

冬素

25

26

第一單元

1.討論題(略)

2.選擇題

(1)B(2)A(3)B(4)A(5)A(6)D

3.填空題

(1).c.obj.exe

(2)/**/

(3)編輯、編譯、連接、運行

4.編程題

(1)

#include<stdio.h>

voidmain()

prjI,******************************"),

printf("Thisismyfirstprogram");

pr1tf(”******************************”)?

)

(2)

#include<stdio.h>

voidmain()

printf("****\n");

27

printf("*\n");

printf("*\n");

printf("*\n");

printf("****\n");

}

第二單元

L討論題(略)

2,選擇題(1)C(2)C(3)C(4)C(5)C(6)B(7)C(8)

A(9)A(10)C(11)C

3.填空題

(1)單引號雙引號(2)優(yōu)先級自左向右(3)5

(4)511

4.編程題

(1)

#include<stdio.h>

voidmain()

(

intage=18;

floatheight=180.5;

doubleweight=130.1;

chargender='M';

printf("age=%d/height=%.2f/weight=%.2lf/gender=%c\n",age/heig

28

ht,weight,gender);

)

(2)

#include<stdio.h>

#include<math.h>

voidmain()

intn;

floattotal,benjin;

print",請輸入存款年限和本金:");

scanf("%d"/&n);

scanf("%f",&benjin);

total=benjin*pow(l+0.00225,11);

printf("total=%f"/total);

}

第三單元

L討論題(略)

2.單選題

(1)A(2)D(3)D(4)D(5)A

4.分析程序題

(1)3,2(2)a=325x=3.14(3)-14(4)12

5.編程題

29

(1)

#include<stdio.h>

voidmain()

(

doublea,b,x;

printf("請輸入a,b的值:");

scanf("%f%f”,&a,&b);

x=-b/a;

printf("x=%f",x);

}

#include<stdio.h>

voidmain()

(

intx,a,b,c;

printf("請輸入一個三位的整數(shù):");

scanf("%d",&x);

a=x/100;

b=x/10%10;

c=x%10;

printf("百位數(shù)字a=%d十位數(shù)字b=%d個位數(shù)字c=%d”,a,b,c);

}

30

第四單元

L討論題(略)

2.選擇題

(1)D(2)C(3)B(4)B

3.分析程序并上機操作

(1)

x=0y=lz=0

x=0y=0z=0

x=-ly=0z=0

(2)

**Q****2**

4.填空題

(1)1(2)y%2!=0或y%2(3)585858(4)0(5)3

5.編程題

(1)

#include<stdio.h>

voidmain()

(

charch;

printf("請輸入一個字符:");

scanf(%c”,&ch);

if(ch>='A,&&ch<=Z)

31

printf("輸入的字符為大寫字母");

elseif(ch>='a'&&ch<='z')

printf("輸入的字符為小寫字母)

elseif(ch>=,0/&&ch<=,9,)

printf("輸入的字符為數(shù)字字符)

else

printf("輸入的字符為其它字符");

}

(2)

#include<stdio.h>

voidmain()

(

floatx,y,z,a;

printf("請輸入個人工資:");

scanf("%f",&x);

a=x-5000;

if(a<=3000)

y=a*0.03;

elseif(a<=12000)

y=3000*0.03+(a-30

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論