版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)健康體檢中影像學(xué)檢查的優(yōu)化方案-1
- 隨州2025年湖北隨州高新區(qū)中心學(xué)校教師專項招聘40人筆試歷年參考題庫附帶答案詳解
- 銅陵2025年安徽銅陵樅陽二中職業(yè)技術(shù)學(xué)校樅陽中心學(xué)校選調(diào)97人筆試歷年參考題庫附帶答案詳解
- 鄭州2025年河南鄭州高新區(qū)招聘派遣制教師255人筆試歷年參考題庫附帶答案詳解
- 衡陽2025年湖南衡陽高新區(qū)聘用制教師幼兒園校醫(yī)及工業(yè)博物館招聘182人筆試歷年參考題庫附帶答案詳解
- 綿陽四川綿陽鹽亭縣鄉(xiāng)鎮(zhèn)事業(yè)單位從“三支一扶”高校畢業(yè)生中招聘6人筆試歷年參考題庫附帶答案詳解
- 淮南2025年安徽淮南壽縣科技學(xué)校招聘編外教師17人筆試歷年參考題庫附帶答案詳解
- 職業(yè)人群肌肉骨骼健康管理模式
- 棗莊2025年山東棗莊薛城區(qū)招錄社區(qū)工作者104人筆試歷年參考題庫附帶答案詳解
- 撫州2025年江西撫州市宜黃縣事業(yè)單位引進(jìn)高素質(zhì)人才筆試歷年參考題庫附帶答案詳解
- 駕校教練員安全教育課件
- 產(chǎn)品工藝評審管理辦法
- 事業(yè)單位市場監(jiān)督管理局面試真題及答案
- 巷道工程清包工合同范本
- 廣西鹿寨萬強(qiáng)化肥有限責(zé)任公司技改擴(kuò)能10萬噸-年復(fù)混肥建設(shè)項目環(huán)評報告
- (2025年標(biāo)準(zhǔn))彩禮收條協(xié)議書
- 賓得全站儀R-422NM使用說明書
- 2025年國家公務(wù)員考試《申論》真題及答案解析(副省級)
- 貴州省遵義市2024屆高三第三次質(zhì)量監(jiān)測數(shù)學(xué)試卷(含答案)
- 江蘇省勞動合同模式
- 速凍食品安全風(fēng)險管控清單
評論
0/150
提交評論