C語言概述練習(xí)題_第1頁
C語言概述練習(xí)題_第2頁
C語言概述練習(xí)題_第3頁
C語言概述練習(xí)題_第4頁
C語言概述練習(xí)題_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、C語言概述練習(xí)題

選擇題

1.一個C程序的執(zhí)行是從。

A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束

B)本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

C)本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束

D)本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

2.以下敘述不正確的是o

A)一個C源程序必須包含一個main函數(shù)

B)一個C源程序可由一個或多個函數(shù)組成

0C程序的基本組成單位是函數(shù)

D)在C程序中,注釋說明只能位于一條語句的后面

3.以下敘述正確的是o

A)在對一個C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤

B)在C程序中,main函數(shù)必須位于程序的最前面

0C語言本身沒有輸入輸出語句

D)C程序的每行中只能寫一條語句

4.一個C語言程序是由o

A)一個主程序和若干個子程序組成

B)函數(shù)組成

0若干過程組成

D)若干子程序組成

二、數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

一)選擇題

1.若x、i、j、k都是int型變量,則計算下面表達(dá)式后,x的值為

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

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

2.下列四組選項中,均不是C語言關(guān)鍵字的選項是____________0

A)defineIFtype

B)getccharprintf

C)includecasescanf

D)whilegopow

3.下列四組選項中,均是不合法的用戶標(biāo)識符的選項是_____________

A)WP_0do

B)b-agotoint

C)floatlaO_A

D)-123abcTEMP

4.下列四組選項中,均是合法轉(zhuǎn)義字符的選項是。

A)‘‘\\''\n,

B)'\'''017''

C)''018''\f''xab'

D)<\\0,'xlf'

5.下面正確的字符常量是o

A)"c"B),\\''C)"D)'K,

6.以下敘述不正確的是o

A)在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B)在C程序中,MAX和max是兩個不同的變量

C)若a和b類型相同,在計算了賦值表達(dá)式a=b后,b中的值將放入a中,

二b中的值不變

D)當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量

只能輸入實(shí)型數(shù)值

7.以下敘述正確的是o

A)在C程序中,每行只能寫一條語句

B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整

型數(shù)

0在C程序中,外是只能用于整數(shù)運(yùn)算的運(yùn)算符

D)在C程序中,無論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤地表示

8.已知字母A的ASCH碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2='A

+'6'-'3'后,c2中的值為o

A)DB)680不確定的值D)C

9.sizeof(float)Ji

A)一個雙精度型表達(dá)式B)一個整型表達(dá)式

0一種函數(shù)表達(dá)式D)一個不合法的表達(dá)式

10.設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則unsignedint型數(shù)

據(jù)的取值范圍為。

A)0~255B)0-3276700~65535D)0?

2147483647

11.設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)

據(jù)類型為—。

A)floatB)charC)intD)double

12.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是o

A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)

C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)

(二)填空題

1.若有以下定義,則計算表達(dá)式y(tǒng)+=y-=m*=y后的y值是【1】。

intm=5,y=2;

2.在C語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則int型數(shù)據(jù)的取值范

圍為[2]。

3.若s是int型變量,且s=6,則下面表達(dá)式的值為【3】。

s%2+(s+l)%2

4.若a是int型變量,則下面表達(dá)式的值為【4】。

(a=4*5,a*2),a+6

5.若x和a均是int型變量,則計算表達(dá)式(1)后的x值為【5],計算表達(dá)

式(2)后的x值為[6]o

(1)x=(a=4,6*2)

(2)x=a=4,6*2

6.若a是int型變量,則計算下面表達(dá)式后a的值為【7】。

A=25/3%3

7.若x和n均是int型變量,月.x和n的初值均為5,則計算表達(dá)式后x的值

為【8】,n的值為[9]。

x+=n++

8.若有定義:charc='010';則變量c中包含的字符個數(shù)為【10】。

9.若有定義:intx=3,y=2;floata=2.5,b=3.5;則下面表達(dá)式的值為[11]

(x+y)%2+(int)a/(int)b

10.已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch=

‘a(chǎn)'+'8'-'3'的值為【12】o

三、簡單的C程序設(shè)計

(-)選擇題

1.putchar函數(shù)可以向終端輸出一個。

A)整型變量表達(dá)式B)實(shí)型變量值

0字符串D)字符或字符型變量值

2.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5歹U。如

果字符串長度大于5,則輸出按方式;如果字符串長度小于5,則輸

出按方式。

A)從左起輸出該字符串,右補(bǔ)空格B)按原字符長從左向右全部輸出

O右對齊輸出該字符串,左補(bǔ)空格D)輸出錯誤信息

3.閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>(注:<CR>表示回車),

則正確的輸出結(jié)果為o

main()

{intx,y,z;

scanf("%d%d%d",&x,&y,&z);

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

)

A)x+y+z=48B)x+y+z=35C)x+z=35D)不確定值

4.根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該

為0

main()

{charchi,ch2,ch3;

輸入語句

printf(<<%c%c%c,,,chi,ch2,ch3);

)

輸出形式:ABC

輸入形式:AB

A)scanf("%c%c%c”,&chl,&ch2,&ch3);

B)scanf(a%c,%c,%c,>,&chl,&ch2,&ch3);

C)scanf(“機(jī)%c%c",&chl,&ch2,&ch3);

D)scanf(rt%c%cw,&chl,&ch2,&ch3);

5.已知ch是字符型變量,下面正確的賦值語句是=

A)ch='a+b';B)ch='\0';C)ch=‘7'+'9';D)

ch=5+9;</P<p>

(-)填空題

1.以下的輸出結(jié)果是[1】。

main()

{shorti:

i=-4;

printf(w\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\nw,i,i,i,i);

)

2.以下的輸出結(jié)果是[2】。

main()

{charc='x';

printf(ac:dec=%d,oct=%o,hex=%x,ASCH=%c\n”,c,c,c,c);

)

3.以下的輸出結(jié)果是[3]?

main()

{intx=l,y=2;

printf("x=%dy=%d*sum*=%d\n”,x,y,x+y);

printf("10Squaredis:%d\nw,10*10);

)

4.假設(shè)變量a和b均為整型,以下語句可以不借助任何變量把a(bǔ)、b中的值進(jìn)

行交換。請?zhí)羁铡?/p>

a+=[4];b=a-[5];a-=[6];

5.若x為int型變量,則執(zhí)行以下語句后的x值為【7】。

x=7;x+=x-=x+x;

z=m=OxFFFF

6.有一輸入語句scanf("%d”,k);則不能使float類型變量k得到正確數(shù)值

的原因是[8]和【9】。

四、邏輯運(yùn)算與判斷選取控制

(-)選擇題

1.邏輯運(yùn)算符兩側(cè)運(yùn)算對象三數(shù)據(jù)類型O

A)只能是0和1B)只能是0或非0正數(shù)

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

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

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

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

3.若希望當(dāng)A的值為奇數(shù)時,表達(dá)式的值為“真”,A的值為偶數(shù)時,表達(dá)式

的值為“假”。則以下不能滿足要求的表達(dá)式是o

A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2

4.設(shè)有:inta=l,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值

為o

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

5.以下程序的運(yùn)行結(jié)果是o

main()

{inta,b,d=241;

a=d/100%9;

b=(-l)&&(-l):

printf("%d,%d”,a,b);

}

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

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

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</P<p>

7.以下程序的運(yùn)行結(jié)果是。

main()

{intm=5;

if(m++>5)

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

else;

printf(<<%d\nM,m-);

)

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

8.若運(yùn)行時給變量x輸入12,則以下程序的運(yùn)行結(jié)果是

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

)

A)4B)3C)2D)1</P<p>

(二)編程題

1.編程實(shí)現(xiàn):輸入整數(shù)a和b,若a?+b2大于100,則輸出a?+b?百位以上的數(shù)

字,否則輸出兩數(shù)之和。

2.編程判斷輸入的正整數(shù)是是否既是5又是7的整倍數(shù)。若是,則輸出yes;

否則輸出no,

3.用switch編程實(shí)現(xiàn):

{-1(x<0)

y={0(x=0)

1(X>0)

4.用switch語句編一程序,對于給定的一個百分制成績,輸出相應(yīng)的五分制

成績,設(shè):90分以上為'A',80?89分為'B',70?79分為'C',60?69分為

'D',60分以下為‘E'

五、循環(huán)控制

(-)選擇題

1.設(shè)有程序段

intk=10;

while(k=0)k=k-l;

這下面描述中正確的是.

a)while循環(huán)執(zhí)行10次b)循環(huán)是無限循環(huán)

c)循環(huán)體語句以此也不執(zhí)行d)循環(huán)體語句執(zhí)行一次

2.語句while(!E);中的表達(dá)式!E等價于.

a)E==0b)E!=lc)E!=0d)E==l

3.下面程序段的運(yùn)行結(jié)果是.

intn=0;

while(n++<=2);printfn);

a)2b)3c)4d)有語法錯

4.下面程序的運(yùn)行結(jié)果是—.

#include<stdio.h>

main()

(

intnum=0;

while(num<=2)

(

num++;

printf("/d\n",num);

}

}</P<p>

a)1b)1c)1d)1

222

33

4

5.以下程序段.

x=-l;

do(

x=x*x;

)

while(!x);

a)是死循環(huán)b)循環(huán)執(zhí)行二次

c)循環(huán)執(zhí)行一次d)有語法錯誤

6.若有如下語句

intx=3;

do{printf(""%d\n”,x-=2);}while(!(一x));

則上面程序段_____.

a)輸出的是1b)輸出的是1和-2c)輸出的是3和0d)是死循環(huán)

7.下面程序的運(yùn)行結(jié)果是____.

#include<stdio.h></P<p>

main()

{inty=10;

do{y一;}while(一y);

printf("%d\rT,y一);

a)-lb)lc)8d)0

8.若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是___

for(i=2;i==0;)printf("d”,i-);

a)無限次b)0次c)l次d)2次

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

a)3b)4c)5d)不定

10.以下正確的描述是.

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語句</P<p>

(二)、填空題

1.下面程序段是從鍵盤輸入的字符中統(tǒng)計數(shù)字字符的個數(shù),用換行符結(jié)束

循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(____)

{

if()n++;

c=getchar();

)

2.下面程序的功能是用"輾轉(zhuǎn)相除法"求兩個正整數(shù)的最大公約數(shù)。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intr,m,n;

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

if(m<n);

r=m%n;

while(r){m=n;n=r;r=______;}

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

3.下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{inta,s,n,count;

a=2;s=0;n=l;count=1;

while(count<=7){n=n*a;s=s+n;++count;}

printf(〃s=%d〃,s);

}

4.下面程序段的運(yùn)行結(jié)果是一

i=l;a=0;s=l;

do{a=a+s*i;s=-s;i++;Jwhile(i<=10)

printf(z,a=%d,z,a);

5.下面程序段的運(yùn)行結(jié)果是

i=l;s=3;

do{s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

printfi);

六、數(shù)組

1.以下為一維整型數(shù)組a的正確說明是

a)inta(10);b)intn=10,a[n];

c)intn;d)#defineSIZE10

scanf(〃%d〃,&n);inta[SIZE];

inta[n];

2.以下對二維數(shù)組a的正確說明是.

a)inta[3][];b)floata(3,4);

c)doublea[l][4]d)floata(3)(4);

3.若二維數(shù)組a有m歹U,則計算任一元素a[i][j]在數(shù)組中位置的公式為

(假設(shè)a[0][0]位于數(shù)組的第一個位置上。)

a)i*m+jb)j*m+ic)i*m+j-ld)i*m+j+l

4.若二維數(shù)組a有m列,則在前的元素個數(shù)為.

a)j*m+ib)i*m+jc)d)i*m+j+l

5.25.若有以下程序段:

oooooo

inta[]={4,0,2,3,1),i,j,t;

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

{t=a[i];j=i-l;

while(j>=O&&t>a[j])

{a[j+l]=a[j];j—;)

a[j+l]=t;}

則該程序段的功能是.

a)對數(shù)組a進(jìn)行插入排序(升序)

b)對數(shù)組a進(jìn)行插入排序(降序)

c)對數(shù)組a進(jìn)行選擇排序(升序)

d)對數(shù)組a進(jìn)行選擇排序(降序)

6.有兩個字符數(shù)組a、b,則以下正確的輸入語句是______.

a)gets(a,b);b)scanfa,b);

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

7.下面程序段的運(yùn)行結(jié)果是.

chara[7]="abcdef";</P<p>

charb[4]=〃ABC〃;

strcpy(a,b);

printfa[5]);

a)空格b)\0c)ed)f

8.判斷字符串si是否大于字符串s2,應(yīng)當(dāng)使用_______.

a)if(sl>s2)b)if(strcmp(si,s2))

c)if(strcmp(s2,si)>0)d)if(strcmp(si,s2)>0)

9.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間

空格分隔,請選擇填空。

Sinclude<stdio.h>

main()

(

chars[80],cl,c2=,;

inti=0,num=0;

gets(s);

while(s[i]!=,\0,)

{cl=s[i];

if(i==0)c2=,';

elsec2=s[i-l];

if(___)num++

i++;

}</P<p>

printf(/zThereare%dwords.\nz,,num);

)

=,=,

a)cl='&&c2=二''b)cl!'&&c2=二''

c)cl==,'&&c2!=''d)cl!=,,&&c2!=,J

10.下面程序的運(yùn)行結(jié)果是.

#include<stdio.h>

main()

{charstr□二〃SSSWLIA〃,c;

intk;

for(k=2;(c=str[k])!='\0';k++)

{switch(c)

{case'r:++k;break;

case'L':continue;

defaultzputchar(c);continue;

)

putchar(**');

)

)

a)SSW*b)SW*c)SW*Ad)SW</P<p>

二、填空題

1.若有定義:doublex[3][5];則x數(shù)組中行下標(biāo)的下限為,列

下標(biāo)的上限為.

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

ftdefineN20

main()

{inta[N],i;

for(i=0;i<N;i++)scanf(〃%d〃,);

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

{if()

printf(/z%3dz,,a[i]);

)

printf(〃\n");

3.下面程序可求出矩陣a的主對角線上的元素之和,請?zhí)羁铡?/p>

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=O,i,j;

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

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

if(____)sum=sum+________;

printf(/,sum=%d\n//,sum);

)

4.當(dāng)從鍵盤輸入18并回車后,下面程序的運(yùn)行結(jié)果是

main()

{intx,y,i,a[8],j,u,v;

scanf("%d”,&x);

y=x;i=0;

do

{u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=l)

for(j=i-l;j>=0;j—)

printf(繪d”,a[j]);

)

5.下面程序用插入法對數(shù)組a進(jìn)行降序排序。請?zhí)羁铡?/p>

main()

{inta[5]={4,7,2,5,1);

inti,j,m;

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

{m=a[i];

j=;

while(j>=O&&m>a[j])

{_______;

j一;

}

_______

}

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

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

printf(〃\n〃);

)

6.下面程序的功能是在三個字符串中找出最小的,請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

mainO

{chars[20],str[3][20];

inti;

for(i=0;i<3;i++)gets(str[i]);

strcpy(s,);

if(strcmp(str[2],s)<O)strcpy(s,str[2]);

printf(〃%s\n〃,_______);

)

7.下面程序的運(yùn)行結(jié)果是.

#include<stdio.h>

main()

{chars[]="ABCCDA”;

intk;charc;

for(k=l;(c=s[k])!='\0';k++)

{switch(c)

{case'A':putchar('%');continue;

case'B':++k;break;

default:putchar(,*');

case'C'rputcharC)jcontinue;

)

putchar('#');

)

)

一、選擇題

1.以下正確的說法是.

建立函數(shù)的目的之一是a)提高程序的執(zhí)行效率

b)提高程序的可讀性

c)減少程序的篇幅

d)減少程序文件所占內(nèi)存

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

a)doublefun(intx,inty)

b)doublefun(intx;inty)

c)doublefun(intx,inty);

d)doublefun(intx,y);

3.C語言規(guī)定,簡單變量做實(shí)參時,它和對應(yīng)形參之間的數(shù)據(jù)傳遞方式為

A)地址傳遞

B)單向值傳遞

C)由實(shí)參傳給形參,再由形參傳回給實(shí)參

D)由用戶指定傳遞方式

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

a)float

b)int

c)long

d)double

5.已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對形參數(shù)組array

的錯誤定義方式為.

inta[3][4];

f(a);

a)f(intarray[6])

b)f(intarray[3][])

c)f(intarray[][4])

d)f(intarray[2][5])

6.以下程序的正確運(yùn)行結(jié)果是.

ttinclude<stdio.h>

voidnum()</P<p>

{externintx,y;inta=15,b=10;

x=a-b;

y=a+b;

)

intx,y;

main()

{

inta=7,b=5;

x=a+b;

y=a-b;

num();

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

)

a)12,2b)不確定c)5,25d)l,12</P<p>

二、填空題

1.以下程序的運(yùn)行結(jié)果是___.

#include<stdio.h>

main()

{inta=l,b=2,c;

c=max(a,b);

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

)

max(intx,inty)

{intx;

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

return(z);

)

2.函數(shù)gongyu的作用是求整數(shù)numl和num2的最大公約數(shù),并返回該值。請?zhí)?/p>

空。

gongyu(intnuml,intnum2)

{inttemp,a,b;

if(numl()num2)

{temp=numl;numl=num2;num2=temp;}

a=numl;b=num2;

while(____)

{temp=a%b;a=b;b=temp;}

return(a);

3.以下程序的運(yùn)行結(jié)果是一

inta=5;intb=7;

main()

{inta=4,b=5,c;

c=plus(a,b);

printf(〃A+B=%d\n〃,c);

)

plus(intx,inty)

{intz;

z=x+y;

return(x);

)

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

main()

{inexO;

incy();

inexO;

incyO;

incx();

incyO;

}

incx()

{

intx=0;

printf(z,x=%d\t,z,++x);

incyO

{staticinty=0;

printfC\ny=%d\n//,++y);

)

三、編程題

1.已有變量定義和函數(shù)調(diào)用語句:intx=57;isprime(x);函數(shù)isprime()

用來判斷一個整形數(shù)a是否為素數(shù),若是素數(shù),函數(shù)返回1,否則返回0。

請編寫isprime函數(shù)。

isprime(inta)

()

2.a是一個2X4的整型數(shù)組,且各元素均已賦值。函數(shù)max_value可求出其

中的最大的元素值max,并將此值返回主調(diào)函數(shù)。今有函數(shù)調(diào)用語句

max=max_value(a),請編寫max_value函數(shù)。

max_value(intarrL][4])

(}

八、編譯預(yù)處理

一、選擇題

1.以下敘述中正確的是.

a)在程序的一行上可以出現(xiàn)多個有效的預(yù)處理命令行

b)使用帶參的宏時,參數(shù)的類型應(yīng)與宏定義時的一致

c)宏替換不占用運(yùn)行時間,只占用編譯時間

d)在以下定義中CR是稱為“宏名”的標(biāo)識符

#defineCR045

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

^defineMIN(x,y)(x)<(y)?(x):(y)

main()

{inti=10,j=15,k;

k=10*MIN(i,j);

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

a)10b)15c)100d)150

3.若有宏定義如下:

itdefineX5

SdefineYX+l

#defineZY*X/2

則執(zhí)行以下printf語句后,輸出結(jié)果是

inta;a=Y;

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

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

a)7b)12c)12d)7

6655

4.請讀程序:

ttinclude<stdio.h></P<p>

#defineMUL(x,y)(x)*y

main()

(

inta=3,b=4,c;

c=MUL(a++,b++);

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

)

上面程序的輸出結(jié)果是.

a)12b)15c)20d)16

5.對下面程序段:

#defineA3

#defineB(a)((A+l)*a)

x=3*(A+B(7));

正確的判斷是.

a)程序錯誤,不許嵌套宏定義

b)x=93

c)x=21

d)程序錯誤,宏定義不許有參數(shù)

6.以下正確的描述是.

a)C語言的預(yù)處理功能是指完成宏替換和包含文件的調(diào)用

b)預(yù)處理指令只能位于C源程序文件的首部

c)凡是C源程序中行首以標(biāo)識的控制行都是預(yù)處理指令

d)C語言的編譯預(yù)處理就是對源程序進(jìn)行初步的語法檢查

7.在〃文件包含〃預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用<>(尖

括號)括起時,找尋被包含文件的方式是______.

a)僅僅搜索當(dāng)前目錄

b)僅僅搜索源程序所在目錄

c)直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

d)先在源程序所在目錄搜索,再按照系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

九、指針

一、選擇題

1.變量的指針,其含義是指該變量的.

a)值b)地址

c)名d)一個標(biāo)志

2.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是..

a)a,point,*&ab)&*a,&a,*point

c)*&point,*point,&ad)&a,&*point,point

3.若有說明;int*p,m=5,n;以下正確的程序段的是.

a)p=&n;b)p=&n;

scanf(〃%d〃,&p);scanf(〃%d〃,*p);

c)scanf(〃%d〃,&n);d)p=&n;

*p=n;*p=m;

4.下面程序段的運(yùn)行結(jié)果是.

char*s=〃abcde〃;

s+=2;printf(〃%d〃,s);

a)cdeb)字符'c'c)字符'c'的地址d)無確定的輸出結(jié)果

5.設(shè)pl和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正

執(zhí)行的賦值語句是.

a)c=*pl+*p2;b)p2=cc)pl=p2d)c=*pl*(*p2);

6.以下正確的程序段是________.

a)charstr[20];b)char*p;

scanf(〃%s〃,&str);scanf(〃%s〃,p);

c)charstr[20];d)charstr[20],*p=str;

scanf&str[2]);scanf(〃%s〃,p[2]);

7.若有說明語句

chara[]=/zItismine”;

char*p=〃Itismine”;

則以下不正確的敘述是________.

a)a+l表示的是字符t的地址

b)p指向另外的字符串時,字符串的長度不受限制

c)p變量中存放的地址值可以改變

d)a中只能存放10個字符

8.下面程序的運(yùn)行結(jié)果是_____.

ttinclude<stdio.h>

#include<string.h>

main()

(

char*sl="AbDeG”;

char*s2="AbdEg”;

sl+=2;s2+=2;

printf(,,%d\n,/,strcmp(sl,s2));

)

a)正數(shù)b)負(fù)數(shù)c)零d)不確定的值

9.下面程序的運(yùn)行結(jié)果是______.

#include<stdio.h>

ttinclude<string.h>

fun(char*w,intn)

{chart,*sl,*s2;

sl=w;s2=w+n-l;

while(sl<s2){t=*sl++;*sl=*s2一;*s2=t;}

)

main()

{char*p;

p=〃1234567〃;

fun(p,strlen(p));

puts(p);

a)7654321b)1714171c)1711717d)7177171

10.若有以下定義,則對a數(shù)組元素的正確引用是.

inta[5],*p=a;

a)*&a[5]b)a+2c)*(p+5)d)*(a+2)

11.若有定義:inta[2][3],則對a數(shù)組的第i行j列元素地址的正確引用為

a)*(a[i]+j)b)(a+i)c)*(a+j)d)a[i]+j

12.若有以下定義,則p+5表示.

inta[10],*p=a;

a)元素a[5]的地址b)元素a[5]的值

c)元素a[6]的地址d)元素a[6]的值

1.以下程序的功能是:通過指針操作,找出三個整數(shù)中的最小值并輸出。

請?zhí)羁铡?/p>

#include"stdlib.h"

main()

{int*a,*b,*c,num,x,y,z;

a=&x;b=&y;c=&z;

printf(“輸入3個整數(shù):”);

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

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

num=*a;

if(*a>*b);

if(num>*c)______;

printf("輸出最小整數(shù):%d\n",num);

}

2.下面程序段的運(yùn)行結(jié)果是.

chars[80],*sp=〃HELL0!〃;

sp=strcpy(s,sp);

s[0]=h,;

puts(sp);

3.下面程序段的運(yùn)行結(jié)果是.

charstr[]=,,abc\Odef\Oghi,z,*p=str;

printf(〃%s〃,p+5);

4.下面程序的功能是將兩個字符串si和s2連接起來。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{charsi[80],s2[80];

gets(sl);gets(s2);

conj(si,s2);

puts(si);

)

conj(char*pl,char*p2)

{char*p=pl;

while(*pl)______;

while(*p2){*pl=______;pl++;p2++;}

*pl='\0';

5.若有定義:inta口=⑵4,6,8,10,12},*p=a;則*(p+l)的值是____.*(a+5)

的值是.

6.若有以下定義:inta[2][3]={2,4,6,8,10,12};則的值是___.

*(*(a+l)+0))的值是.

7.以下程序?qū)?shù)組a中的數(shù)據(jù)按逆序存放,請?zhí)羁铡?/p>

#defineM8

main()

{inta[M],i,j,t;

for(i=0;i<M;i++)scanf('%d”,a+i);

i=0;j=M-l;

while(i<j)

(

t=*(a+i);;*()=t;

i++;j—;

)

for(i=0;i<M;i++)printf("%3d”,*(a+i));

)

8.若有定義:inta[3][5],i,j;(且0<=i<3,0<=j<5),則a數(shù)組中任一元素可用

五種形式引用。它們是:

(l)a[i][j]

(2)*(a[i]+j)

(3)*(*);

(4)(*(a+i))[j]

(5)*(____+5*i+j)

9.下面程序的運(yùn)行結(jié)果是.

main()

{char*a[]={"Pascal","Clanguage","dBase","Coble"};

char(**p)[];

intj;

p=a+3;

for(j=3;j>=0;j—)printf("%s\n”,*(p—));

)

十、結(jié)構(gòu)體與共同體

一、選擇題

LC語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間.

a)所有成員一直駐留在內(nèi)存中

b)只有一個成員駐留在內(nèi)存中

c)部分成員駐留在內(nèi)存中

d)沒有成員駐留在內(nèi)存中

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

main()

(

structcmplx{intx;

inty;

}cnum[2]={l,3,2,7};

printf("%d\n",cnumCO].y/cnum[0].x*cnum[l].x);

)

a)0b)lc)3d)6

3.設(shè)有如下定義:

structsk

{intn;

floatx;

}data,*p;

若要使P指向data中的n域,正確的賦值語句是.

a)p=&data.n;

b)*p=data,n;

c)p=(structsk*)&data.n;

d)p=(structsk*)data.n;

4.以下對結(jié)構(gòu)體變量stul中成員age的非法引用是.

structstudent

(intage;

intnum;

}stul,*p;

p=&stul;

a)stul.ageb)student,age

c)p->aged)(*p).age

5.下面對typedef的敘述中不正確的是—.

a)用typedef可以定義各種類型名,但不能用來定義變量

b)用typedef可以增加新類型

c)用typedef只是將已存在的類型用一個新的標(biāo)識符來代表

d)使用typedef有利于程序的通用和移植

6.以下scanf函數(shù)調(diào)用語句中對結(jié)構(gòu)體變量成員的不正確引用是

structpupil

{charname[20];

intage;

intsex;

}pup[5],*p;

P二pup;

a)scanf(〃%s〃,pup[0].name);

b)scanf&pup[0].age);

c)scanf(〃%d〃,&(p->sex));

d)scanf(〃%d〃,p->age);

一、填空題

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

structn{

intx;

charc;

);

main()

{structna={10,'x'};

func(a);

printf(〃%d,%c〃,a.x,a.c);

)

func(structnb)

(

b.x=20;

b.c=y';

)

2.若有定義:

structnum

{inta;

intb;

floatf;

}n={l,3,5.0);

structnum*pn=&n;

則表達(dá)式pn->b/n.a*++pn->b的值是,表達(dá)式(*pn).a+pn->f的值是

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

structks

{inta;

int*b;

}s[4],*p;

main()

(

intn=l;

溫馨提示

  • 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

提交評論