計算機應用基礎(第四版)章節(jié)自測題帶答案課后練習題1-10章全_第1頁
計算機應用基礎(第四版)章節(jié)自測題帶答案課后練習題1-10章全_第2頁
計算機應用基礎(第四版)章節(jié)自測題帶答案課后練習題1-10章全_第3頁
計算機應用基礎(第四版)章節(jié)自測題帶答案課后練習題1-10章全_第4頁
計算機應用基礎(第四版)章節(jié)自測題帶答案課后練習題1-10章全_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

習題1

一、選擇題

1.所有C函數(shù)的結(jié)構(gòu)都包括的三部分是()。

A.語句、花括號和函數(shù)體

B.函數(shù)名、語句和函數(shù)體

C.函數(shù)名、形式參數(shù)和函數(shù)體

D.形式參數(shù)、語句和函數(shù)體

2.C程序由()組成。

A.子程序B.主程序和子程序C.函數(shù)D.過程

3.下面屬于C語言標識符的是()。

A.2abB.@fC.?bD._al2

4.C語言中主函數(shù)的個數(shù)是()。

A.2個B.1個C.任意個D.10個

5.下列關于C語言注釋的敘述中錯誤的是()。

A.以“/*”開頭并以“*/”結(jié)尾的字符串為C語言的注釋內(nèi)容

B.注釋可出現(xiàn)在程序中的任何位置,用來向用戶提示或解釋程序的意義

C.程序編譯時,不對注釋作任何處理

D.程序編譯時,需要對注釋進行處理

6.下列不是C語言的分隔符的是()。

A.逗號B.空格C.制表符D.雙引號

7.下列關于C語言的關鍵字的敘述中錯誤的是()。

A.關鍵字是C語言規(guī)定的具有特定意義的字符串,通常也稱保留字

B.用戶定義的標識符不應與關鍵字相同

C.ANSIC標準規(guī)定的關鍵字有64個

D.ANSIC標準規(guī)定的關鍵字有32個

8.在VisualC++6.0環(huán)境下,C源程序文件名的默認后綴是()。

A..cppB..exeC..objD..dsp

9.若在當前目錄下新建一個名為“LX”的工程,則在當前目錄下生成的工作區(qū)文

件名為()。

A.LX.DSWB.LX.OPTC.LX.DSPD.LX.C

10.面可能不影響程序正常運行的是()。

A.語法錯誤B.邏輯錯誤C.警告提示D.算法錯誤

二、填空題

1.C程序是由________構(gòu)成的,一個C程序中至少包含。因此,

是C程序的基本單位。

2.C程序注釋是由_______和所界定的文字信息組成的。

-1-

3.開發(fā)一個C程序要經(jīng)過編輯、編譯、和運行4個步驟。

4.在C語言中,包含頭文件的預處理命令以開頭。

5.在C語言中,主函數(shù)名是。

6.在C語言中,行注釋符是。

7.在C語言中,頭文件的擴展名是。

8.在VisualC++6.0IDE中,按下Ctrl鍵的同時按鍵,可以運行可執(zhí)行程序文

件。

9.在VisualC6.0環(huán)境中用RUN命令運行一個C程序時,這時所運行的程序的后

綴是。

10.C語言源程序文件的擴展名是;經(jīng)過編譯后,生成文件的后綴是

;經(jīng)過連接后,生成文件的擴展名是。

三、程序設計題

1.編寫程序輸出以下圖案

*

*s*

*

2.試編寫一個C程序,輸出如下信息。

Youarewelcome!

3.編寫程序,分別用scanf函數(shù)和getchar函數(shù)讀入兩個字符送給變量cl、c2,然

后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。上機運行此程序,比較用

putchar函數(shù)和printf函數(shù)輸出字符的特點。

習題2

1.簡述算法的概念。

2算法應具備哪些特性?

3分別說明什么是自然語言描述法,什么是框圖語言描述法,什么是偽語言描述法,什

么是N-S流程圖語言描述法,它們的優(yōu)缺點各是什么?

4在結(jié)構(gòu)化程序設計方法中,有哪幾種基本結(jié)構(gòu)?

5請用程序流程圖語言和N-S流程圖語言分別寫出打印乘法九九口訣表的算法。

6仿照例2-3的程序,依照流程圖,編寫例2-1的程序。

7仿照例2-3的程序,依照流程圖,編寫例2-2的程序。

8仿照例2-3的程序,依照流程圖,編寫例2-4的程序。

9仿照例2-3的程序,依照流程圖,編寫例2-5的程序。

習題3

一、選擇題

1.關于c語言數(shù)據(jù)類型的敘述,正確的是()。

A.枚舉類型不是基本類型B.數(shù)組不是構(gòu)造類型

C.變量必須先定義后使用D.不允許使用空類型

2.對于C語言源程序,以下敘述錯誤的是()。

A.可以有空語句

B.函數(shù)之間是平等的,在一個函數(shù)內(nèi)部不能定義其他函數(shù)

C.程序調(diào)試時如果沒有提示錯誤,就能得到正確結(jié)果

D.注釋可以出現(xiàn)在語句的前面

3.下面關于C語言用戶標識符的描述,正確的是().

A.不區(qū)分大小寫B(tài).用戶標識符不能描述常量

C.類型名也是用戶標識符D.用戶標識符可以作為變量名

4.以下()是正確的變量名。

A.5fB.ifC.f.5D._f5

5.以下()是正確的常量。

A.E-5B.1E5.1C.'a12'D.32766L

6.以下()是正確的變量名。

A.a.beeB.-pl1C.intD.p_l1

7.以下()是正確的字符常量。

A."c"B.V"C.'W'D."\32a"

8.以下()是不正確的字符串常量。

A.'abc'B."12'12"C."0"D.""

9.以下()是錯誤的整型常量。

A.-OxcdfB.018C.OxeD.011

10.以下()是正確的浮點數(shù)。

A.e3B..62C.2e4.5D.123

11.若有說明語句:charc='\95,;則變量c包含()個字符。

A.1B.2C.3D.語法錯誤

12.若有定義:inta=2;則正確的賦值表達式是()。

A.a-=(a*3)B.double(-a)C.a*3D.a*4=3

13.語句x=(a=3,b=++a);運行后,x、a、b的值依次為()。

A.3,3,4B.4,4,3C.4,4,4D.3,4,3

14.語句a=(3/4)+3%2;運行后,a的值為()。

A.OB.1C.2D.3

15.char型變量存放的是()。

A.ASCII代碼值B.字符本身C.十進制代碼值D.十六進制代

碼值

16.若有定義:intx,a;則語句x=(a=3,a+l);運行后,x、a的值依次為()。

A.3,3B.4,4C.4,3D.3,4

17.若有定義:inta;則語句a=(3*4)+2%3;運行后,a的值為()。

A.12B.14C.11D.17

18.若有定義:inta,b;doublex;則以下不符合C語言語法的表達式是()。

A.x%(-3)B.a+=-2C.a=b=2D.x=a+b

19.若有定義:intx=2,y=3;floati;,則以下符合C語言語法的表達式是()。

A.x=x*3=2B.x=(y==l)C.i=float(x)D.i%(-3)

20.設double型變量a,b,c,e均有值;對代數(shù)式(3ae)/(bc),不正確的C語言表達式

是()。

A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3

二、填空題

1.設a為short型變量,描述“a是奇數(shù)”的表達式是。

2.若有定義:inta=5,b=2,c=l;則表達式a-b<c||b==c的值是。

3.已知charcdA'inti=l;j=0;執(zhí)行語句j=!c&&i++后,i和j的值分別是和。

4.若有定義:floatx=3.5;intz=8;則表達式x+z%3/4的值為。

5.若有定義:inta=l,b=2,c=3,d=4,x=5,y=6;則表達式(x=a>b)&&(y=c>d)的值

為。

6.若有定義:inta=2,b=3;floatx=3.5,y=2.5;則表達式(float)(a+b)/2+(int)x%(int)y的

值是。

7.若有定義:intb=7;floata=2.5,c=4.7;則表達式a+(b/2*(int)(a+c)/2)%4的值

是。

三、程序設計題

1.已知圓的半徑r=2.5,圓柱高h=1.8,求圓周長,圓柱體積。

2.要將“China”譯成密碼,譯碼規(guī)律是:用原來字母后面的第4個字母代替原

來的字母。例如,字母“A”后面第4個字母是“E",用“E”代替“A”。因

此,“China”應譯為“Glmre”。請編寫1程序,用賦初值的方法使cl、c2、c3、

c4、c5五個變量的值分別為‘C'、'h'、'i'、'n'、'a',經(jīng)過運算,

使cl、c2、c3、c4、c5分別變?yōu)椤瓽'、T、'm'、、'、,e'并輸出。

(1)輸入事先已編好的程序,并運行該程序,分析是否符合要求。

(2)改變cl、c2、c3、c4、c5、的初值為:'T'、'o'、'd'、'a'、'y',

對譯碼規(guī)律作如下補充:'W'用'A'代替,'X'用'B'代替,'Y‘用‘C'

代替,‘Z'用'D'代替。修改程序并運行。

(3)將譯碼規(guī)律修改為:將字母用它前面的第4個字母代替,例如:‘E‘用‘A'

代替,'Z'用'V'代替,'D‘用'Z'代替,‘C‘用‘Y'代替,,B‘用‘X'

代替,'A'用'W'代替。修改程序并運行。

3.輸入秒數(shù),將它按小時、分鐘、秒的形式來輸出。例如輸入24680秒,則輸

出6小時5分20秒。

習題4

一、選擇題

1.有如下程序

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elseC++;

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

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

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

2.對do...while語句錯誤的描述是:()

A)可構(gòu)成多重循環(huán)結(jié)構(gòu)B)循環(huán)次數(shù)不可能為0

C)循環(huán)次數(shù)可能為0D)先執(zhí)行后判斷

3.任何復雜的程序,都是由()構(gòu)成的。

A)分支結(jié)構(gòu)、順序結(jié)構(gòu)、過程結(jié)構(gòu)B)循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)、過程結(jié)構(gòu)

C)順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)D)循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)

4.設有intx,y;以下語句判斷x和y是否相等,正確的說法是該語句()。

if(x=y)printf("xisequaltoy.");

A)語法錯B)不能判斷x和y是否相等

C)編譯出錯D)能判斷x和y是否相等

5.C語言中規(guī)定,if語句的嵌套結(jié)構(gòu)中,else總是()配對。

A)與最近的ifB)與第一個if

C)與按縮進位置相同的ifD)與最近的且尚未配對的if

6.以下有關switch語句的說法正確的是()。

A)break語句是語句中必需的一部分

B)在switch語句中可以根據(jù)需要使用或不使用break語句

C)break語句在switch語句中不可以使用

D)在switch語句中的每一個case都要使用break語句

7.當執(zhí)行以下程序時,()。

#include<stdio.h>

voidmain()

inta;

while(a=5)

printf("%dK,a-);

A)循環(huán)體將執(zhí)行5次B)循環(huán)體將執(zhí)行0次

C)循環(huán)體將執(zhí)行無限次D)系統(tǒng)會死機

8.以下if語句錯誤的是()。

A)if(x<y)x++;y++;elsex—;y—;

B)if(x)x+=y;

C)if(x<y);

D)if(x!=y)scanf("%d",&x);elsex++;

9.以下說法錯誤的是()。

A)do...while語句與while語句的區(qū)別僅是關鍵詞“while”出現(xiàn)的位置不同

B)while語句是先進行循環(huán)條件判斷,后執(zhí)行循環(huán)體

C)do...while是先執(zhí)行循環(huán)體,后進行循環(huán)條件判斷

D)while、do...while和for語句的循環(huán)體都可以是空語句

二、填空題

1.有程序段:

inti=0,a=1;

while(i<9)

{i++;

++a;

)

其中,循環(huán)條件是循環(huán)控制變量是循環(huán)體是一,修改循環(huán)條件

的語句是一,該循環(huán)條件將執(zhí)行一次,結(jié)束循環(huán)時,i的值是一,a的值是一。

2.有程序段:

inti=0,a=l;

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

(

a++;

)

其中,循環(huán)條件是—,循環(huán)控制變量是—,循環(huán)體是一,修改循環(huán)條件

的語句是—,該循環(huán)條件將執(zhí)行一次,結(jié)束循環(huán)時,i的值是a的值是一。

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

#include<stdio.h>

main()

{intn=12345,d;

while(n!=O){d=n%10;printf(n%d",d);n/=10;}

}

4.以下程序判斷輸入的整數(shù)能否被3或7整除,請?zhí)羁铡?/p>

main()

{intx,f=O;

scanf("%d",&x);

if(1)

(2)

if(f=l)printsYES\nM);

elseprintf("NO\n");

)

三、程序閱讀題

1.閱讀以下程序,若輸入60,寫出程序運行結(jié)果。

#include<stdio.h>

voidmain()

{intx;

scanf(H%d”,&x);

if(x>=60)

printf(Mpassn);

else

printfCfair*);

)

2.閱讀以下程序,若輸入5,寫出程序運行結(jié)果。

#include<stdio.h>

intmain()

{inti,n;

doublefact;

scanf(H%d",&n);

fact=l;

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

fact*=i;

printf(,,%.Of\nH,fact);

)

四、程序設計題

1.輸入一個整數(shù),輸出它的絕對值。

2.編寫程序,統(tǒng)計從鍵盤輸入的一行字符的個數(shù)。

3.編寫程序,用窮舉法輸出100以內(nèi)的素數(shù)。

4,求1!-2!+3!—4!+......+49!—50!的和。

5.輸入10個字符,分別統(tǒng)計出其中空格或回車鍵、數(shù)字和其他字符的個數(shù)。

習題5

一、選擇題

1.執(zhí)行下面的程序段后,變量k中的值為()。

intk=3,s[2];

s[0]=k;k=s[l]*10;

A.不定值B.33C.30D.10

2.執(zhí)行下列程序時輸入:123〈空格>456〈空格>789〈回車〉,輸出結(jié)果是()。

voidmain()

{chars[100];

intc,i;

scanf("%c",&C);

scanf(M%dH,&i);

scanf(n%s",s);

printf(H%c,%d,%s\nn,c,i,s);

)

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

3.有如下程序:

voidmain()

(

intn[5]={0,0,0},i,k=2;

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

n[i]=nli]+l;

prmtf("%d\nH,n[k]);

)

該程序的輸出結(jié)果是()。

A.不確定的值B.2C.1D.0

4.有如下程序

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(n%d\nu,s);

該程序的輸出結(jié)果是()。

A.14B.15C.16D.17

5.以下程序的輸出結(jié)果是()o

voidmain()

(

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

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

printf(H%d,M,x[i][2-i]);

)

A.1,5,9B.1,4,7C.3,5,7D.3,6,9

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

main()

{charw[][10]={,,ABCD","EFGHn,"IJKL',;,MNOP"},k;

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

printf(u%s\nn,w[k]);

A.ABCDB.ABCDC.EFGD.EFGH

FGHEFGJKIJKL

KLIJO

M

7.下面語句中不正確的是()。

A.staticinta[5]={1,2,3,4,5};B.staticinta[5J={1,2,3};

C.staticinta[]={0,0,0,0,0};D.staticinta[5]={0*5};

8.若有說明:inta[][4]={1,2,3,4,5,6,7,8,9),則數(shù)組第一維的大小為()。

A.2B.3C.4D.不確定的值

9.若定義staticinta[2][2]={1,2,3,4};則a數(shù)組的各數(shù)組元素分別為()。

A.a[0][01=1,a[0][l]=2,a[l][0]=3,a[l][l]=4

B.a[0][0]=1,a[0][l]=3,a[l][0]=2,a[l][l]=4

C.a[0][0]=4,a[0][ll=3,a[l][0]=2,a[l][l]=l

D.a[0][0]=4,a[0][l]=2,a[l][0]=3,a[l][l]=l

10.下列語句中,不正確的是()。

A.staticinta[2][3]={1,2,3,4,5,6)

B.staticinta[2][3]={{1},{4,5}};

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

二、填空題

1.設有數(shù)組定義為:chararray[]="China";則數(shù)組array所占的空間為。

2.main()

{chararr⑵[4];

strcpy(arr,"youn);strcpy(arr[l],"meH);

arrlO][3]=>&,;

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

}

程序執(zhí)行后的輸出結(jié)果是O

3.main()

{inti,k,a[10],p[3]:

k=5;

for(i=0;i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+l)];

for(i=0;i<3;i++)k=k+p[i]*2;

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

)

程序執(zhí)行后的輸出結(jié)果是O

4.main()

{charch[7]={"65ab21n};

inti,s=0

for(i=0;ch[i]>='0'&&ch[i]<-9,;i+=2)

s=10*s+ch[i]-10,;

printf(',%d\n,,,s);

)

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

三、程序設計題

1.從鍵盤上輸入10個整數(shù),并放入一個一維數(shù)組中,然后將其前5個元素與后5個

元素對換,即:第1個元素和第10個元素互換,第二個元素和第9個元素互換……分別

輸出數(shù)組原來的值和對換后各元素的值。

2.設有如下兩組數(shù)組:

A:2,8,7,6,4,28,70,25

B:79,27,32,41,57,66,78,80

編寫一個程序,把上面兩組數(shù)據(jù)分別讀入兩個數(shù)組中,然后把兩個數(shù)組中對應下標

的元素相加,即2+79,8+27……并把相應的結(jié)果放入第三個數(shù)組中,最后輸出第三個數(shù)

組的值。

3.編寫程序,把下面的數(shù)據(jù)輸入到一個二維數(shù)組中:

25367813

12268893

75182232

56443658

然后執(zhí)行以下操作:

a.輸出矩陣兩條對角線上的數(shù);

b.交換第一行和第三行的位置,然后輸出。

習題6

一、選擇題

1.以下正確的函數(shù)定義形式是()。

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(intx,inty);

D.doublefun(intx,y);

2.在C語言中,以下說法不正確的是()。

A.實參可以是常量、變量或表達式

B.形參可以是常量、變量或表達式

C.實參可以為任意類型

D.形參應與其對應的實參類型一致

3.以下說法正確的是()。

A.定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)

B.relum后邊的值不能為表達式

C.如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準

D.如果形參與實參的類型不一致,以實參類型為準

4.C語言允許函數(shù)值類型缺省定義,此時該函數(shù)值默認的類型是()。

A.float型

B.int型

C.long型

D.double型

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

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

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

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

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

6.以下錯誤的描述是()。

函數(shù)調(diào)用可以:

A.出現(xiàn)在執(zhí)行語句中

B.出現(xiàn)在一個表達式中

C.作為一個函數(shù)的實參

D.作為一個函數(shù)的形參

7.以下正確的描述是()。

在C語言程序中:

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

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

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

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

8.在一個C源程序文件中,若要定義一個只允許本源文件中所有函數(shù)使用的全局

變量,則該變量需要使用的存儲類別是()o

A.externB.registerC.autoD.static

9.若有以下宏定義:

#defineN2

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

則執(zhí)行語句Z=2*(N+Y(5));后結(jié)果是()。

A.語句有誤B.Z=34C.Z=70D.Z無定值

10.在宏定義#definePI3.14159中,用宏名PI代替一個()。

A.常量B.單精度數(shù)C.雙精度數(shù)D.字符串

二填空題

1.以下程序的運行結(jié)果是。

#include"stdio.h"

voidmain()

(

intI=2,x=5,j=7;

fun(j,6);

printf("I=%d;j=%d;x=%d\n",I,j,x);

)

fun(intI,intj)

(

intx=7;

printf("I=%d;j=%d;x=%d\n",I,j,x);

)

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

#include"stdio.h"

voidmain()

voidincrement();

increment();

increment();

increment();

)

voidincrement()

(

intx=O;

x+=l;

printf(H%d”,x);

)

3.以下程序的運行結(jié)果是c

#include"stdio.h"

voidmain()

(

intmax(intx,inty);

inta=l,b=2,c;

c=max(a,b);

printf(nmaxis%d\n”,c);

)

intmax(intx,inty)

(

intz;

z=(x>y)?x:y;

retum(z);

)

4.以下程序的運行結(jié)果是

#include"stdio.h"

voidmain()

{

voidadd(intx,inty,intz);

intx=2,y=3,z=0;

printf("(l)x=%dy=%dz=%d\n",x,y,z);

add(x,y,z);

printf("(3)x=%dy=%dz=%d\n",x,y,z);

)

voidadd(intx,inty,intz)

{z=x+y;

x=x*x;

y=y*y;

printf("(2)x=%dy=%dz=%d\n",x,y,z);

}

三、程序設計題

1.編寫一個函數(shù),判斷一個數(shù)是不是素數(shù)。在主函數(shù)中輸入一個整數(shù),輸出是否

是素數(shù)的信息。要求:

(1)編寫一個函數(shù)prime(n),返回給定整數(shù)n是否為素數(shù)。

(2)編寫一個主函數(shù),輸入一個整數(shù),調(diào)用(1)中的函數(shù),判斷此整數(shù)是否為素數(shù),

并輸出結(jié)果.

2.函數(shù)fun的功能是:統(tǒng)計各年齡段的人數(shù)并存到b數(shù)組中,n個人員的年齡放在

a數(shù)組中。年齡為1到9的人數(shù)存到b[0]中,年齡為10到19的人數(shù)存到b[l],年齡為

20到29的人數(shù)存到b⑵,年齡為30到39的人數(shù)存到b[3],年齡為40到49的人數(shù)

存到b[4J,年齡為50歲以上的人數(shù)存到b[5]中。

例如,當a數(shù)組中的數(shù)據(jù)為:

9、18、27、38、59、33、14、75、38。

調(diào)用該函數(shù)后,b數(shù)組中存放的數(shù)據(jù)應是:

1、2、1、3、0、2o

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你

編寫的若干語句。

#include"stdio.h"

voidfun(inta[],intb[],intn)

)

voidmain()

(

inti,a[100]={9,l8,27,38,59,33,14,75,38},b[6]={0);

fun(a,b,9);

printf(MTheresultis:");

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

printf(n%du,b[i]);

pHntf("\n");

習題7

一、單項選擇題

1.設有定義:intnl=0,n2,*p=&n2,*q=&nl;以下賦值語句中與n2=nl;語句等價的

是()。

A.*p=*q;B.p=q;C.*p=&nl;D.p=*q;

2.若有定義:intx=0,*p=&x;,則語句printf("%d\n",*p);的輸出結(jié)果是()。

A.隨機值B.OC.x的地址D.p的地址

3.以下定義語句中正確的是()。

A.chara=,A,b=,B';B.floata=b=10.0;

C.inta=10,*b=&a;D.float*a,b=&a;

4.有以下程序

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n”,*p,*q,a,b);

)

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

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

5.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。

A.scanf("%d",pA);B.scanf("%d",A);

C.scanf("%d",&pA);D.scanf("%d",*pA);

6.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()。

A.p=l;B.*q=2;C.q=p;D.*p=5;

7.有以下程序

voidfun(char*a,char*b)

{a=b;(*A)++;}

main()

{charcl=,A\c2=,a\*pl,*p2;

pl=&cl;p2=&c2;fun(pl,p2);

printf("%c%c\n",cl,c2);

)

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

A.AbB.aaC.AaD.Bb

8.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是

()O

A.float*i=NULL;B.floata,*f=&a;

scanf("&d",f);

C.chart=,m,,*c=&t;D.long*L;

*c=&t;L=\0;

9.有以下程序

#include<stdio.h>

main()

{printf(M%d\nM,NULL);}

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

A.0B.1C.-1D.NULL沒定義,出錯

10.已定義以下函數(shù):

fun(int*p)

{return*p;}

該函數(shù)的返回值是()。

A.不確定的值B.形參p中存放的值

C.形參p所指存儲單元中的值D.形參p的地址值

11.下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是()。

A.voidmax(intx,inty,int*z)B.intmax(intx,y)

{*z=x>y?x:y;}{intz;

z=x>y?x:y;

returnz;

)

C.max(intx,inty)D.intmax(intx,inty)

{intz;{return(x>y?x:y);}

z=x>y?x:y;return(z);

)

12.有以下程序段:

main()

{inta=5,*b,**c;

c=&b;b=&a;

)

程序在執(zhí)行了c=&b:b二&a;語句后,表達式:**c的值是()。

A,變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

13.有以下程序:

main()

{chara,b,c,*d;

a='\';b='\xbc’;

c=t\0xab,;d=n\017";

print(,'%c%c%c\n',,a,b,c,*d);

)

編譯時出現(xiàn)錯誤,以下敘述中正確的是()。

A.程序中只有a=';語句不正確B.b='\xbc';語句不正確

C.d="\017”;語句不正確D.a='\';和c='\Oxab';語句

都不正確

14.若有以下定義和語句:

#include<stdio.h>

inta=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=NULL;

則以下選項中錯誤的語句是()。

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

15.有以下程序:

#include<stdio.h>

int*f(int*x,int*y)

(

if(*x<*y)

returnx;

else

returny;

}

voidmain()

(

inta=7,b=8,*p,*q,r;

p=&a;

q=&b;

r=*f(p,q);

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

)

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

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

16.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是()。

A.p=q;B.*p=*q;C.n=*q;D.p=n;

17.有以下程序:

voidfun(char*c,intd)

{*c=*c+l;d=d+l;

printf("%c,%c,",*c,d);

main()

{chara='A',b='a';

fun(&b,A);printf("%c,%c\n”,a,b);

)

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

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

18.若有說明語句:inta,b,c,*d=&c;,則能從鍵盤讀入三個整數(shù)分別賦給變量a、

b、c的語句是()。

A.scanf(M%d%d%d';&a,&b,d);B.scanf("%d%d%d”,&a,&b,&d);

C.scanf("%d%d%d”,a,b,d);D.scanf("%d%d%d”,a,b,*d);

19.若定義:inta=511,*b=&a;,則printf("%d\n”,*b);的輸出結(jié)果為()。

A.無確定值B.a的地址C.512D.511

20.若有說明:inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是()。

A.i=*p;B.p*=*&j;C.i=&j;D.i=**p;

二、填空題

1.有以下程序

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

)

執(zhí)行后輸出的結(jié)果是o

2.下面程序的運行結(jié)果是o

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

)

main()

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

swap(p,q);

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

)

3.設有以下程序:

main()

{inta,b,k=4,m=6,*pl=&k,*p2=&m;

a=pl=&m;

b=(*p1)/(*p2)+7;

printf(“a=%d\n”,A);

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

執(zhí)行該程序后,a的值為,b的值為o

4.下列程序的輸出結(jié)果是o

voidfun(int*n)

{while((*n)—);

printf(“%d”,++(*n));

)

main()

{inta=100;

fun(&A);

)

5.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,試完整程序。

voidfunc(intx,inty,z)

{*z=x+y;}

6.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)公式s=l-l/3+l/5-...l/(2n+l)計算S,

計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。試完整程序。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=*f;

w=f/(2*i+l);

s+=w;

)

__=S;

)

7.以下函數(shù)的功能是,把兩個整數(shù)指針所指的存儲單元中的內(nèi)容進行交換,試完整程

序。

exchange(int*x,int*y)

{intt;

)

8.下面函數(shù)要求用來求出兩個整數(shù)之和,并通過形參傳回兩數(shù)相加之和值,試完整程

序。

intadd(intx,inty,z)

{=x+y;}

三、程序設計題

1.編寫一個函數(shù),將數(shù)組中n個數(shù)按反序存放。

2.用地址法輸入輸出二維數(shù)組各元素。

3.用指針法輸入輸出二維數(shù)組各元素。

6.1習題8

一、單項選擇題

1.設有定義語句“struct{intx;inty;}d[2]={{1,3},{2,7}};”,則

printf("%d\n”,d[O].y/d[O].x*d[l].x);的輸出結(jié)果是()。

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

2.設有定義語句"enumteam{my,your=4,his,her=his+10},則printf

C4%d,%d,%d,%d\nmy,your,his,her);的輸出結(jié)果是()。

A.O,1,2,3B.O,4,0,10C.0,4,5,15D.1,4,5,15

3.以下對枚舉類型名的定義中正確的是()o

A.enuma={one,two,three);B.enuma{al,a2,a3};

C.enuma={T,'2','3'};D.enuma{"one”,"two","three"};

4.若有如下定義,則printf("%d\n”,sizeof(them));的輸出是()。

typedefunion{longx[2];inty[4];charz[8];}MYTYPE;

MYTYPEthem;

A.32B.16C.8D.24

5.

溫馨提示

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

評論

0/150

提交評論