版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單選題
1、關(guān)于C語言中的函數(shù),下列描述正確的是()
A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義和函數(shù)的嵌套均不可以嵌套
D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
答案:B
解析:函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
2?、定義一個函數(shù):exce((v1,v2),(v3,\,4,v5),v6);在該函數(shù)調(diào)用時,實參的個數(shù)為()個
A.3
B.4
C.5
D.6
答案:A
解析:(vl,v2),(\,3,v4,v5)和v6一共三個實參
3、關(guān)于C語言l|lprintO函數(shù)與scanf()函數(shù),下列描述中正確的是()
A.printfQ函數(shù)可以向任何地方輸出數(shù)據(jù)
B.printfO只向控制臺輸出數(shù)據(jù)
C.scanf。只能輸入英文字母和數(shù)字
D.scanf。函數(shù)可以識別輸入的空格
答案:B
解析:printfQ是向控制臺輸出的函數(shù)
4、在C語言中,內(nèi)部函數(shù)需要添加的關(guān)鍵字是()
A.cxtcrn
B.static
C.this
D.auto
答案:B
解析:在定義內(nèi)部函數(shù)時,需要在函數(shù)的返回值類型前面添加static關(guān)鍵字(又稱為靜態(tài)
函數(shù))。
5、當(dāng)調(diào)用時,會調(diào)用內(nèi)部函數(shù)
A.當(dāng)調(diào)用時,會調(diào)用內(nèi)部函數(shù)
B.當(dāng)調(diào)用時,會調(diào)用外部函數(shù)
C.當(dāng)調(diào)用時,會調(diào)用兩次,先調(diào)用內(nèi)部函數(shù)再調(diào)用外部函數(shù)
D.都不調(diào)用,會報錯
答案:A
解析:當(dāng)內(nèi)部函數(shù)與外部函數(shù)重名時,會優(yōu)先調(diào)用內(nèi)部函數(shù)
6、在C語言中,聲明外部函數(shù)需要添加的關(guān)鍵字是()
A.extern
B.static
C.this
D.auto
答案:A
解析:聲明外部函數(shù)的方式是在函數(shù)的返回值類型前面添加extern關(guān)鍵字
7、關(guān)于C語言中的局部變量,下列描述中錯誤的是()
A.局部變量就是在函數(shù)內(nèi)部聲明的變量
A.局部變量會被屏蔽
B.全局變量會被屏蔽
C.都不會調(diào)用,系統(tǒng)會報錯
D.會調(diào)用兩次,先調(diào)用局部變量,再調(diào)用全局變量
答案:B
解析:當(dāng)局部變量與全局變量重名時,全局變量會被屏蔽。
10、在C語言中,關(guān)于變量的作用域,下列描述中錯誤的是()
A.局部變量只在整個函數(shù)的運行周期中有效
B.全局變量的作用域為整個程序的運行周期
C.當(dāng)全局變量與局部變量重名時,局部變量會屏蔽掉全局變量
D.全局變量會覆蓋掉所有與它重名的局部變量
答案:D
解析:當(dāng)全局變量與局部變量重名時,全局變量會被屏蔽掉
11、在C語言中,如果在一個函數(shù)的復(fù)合語句中定義了一個變量,則該變量()
A.只在該復(fù)合語句中有效,在該復(fù)合語句外無效
B.在該函數(shù)IH任何位置都有效
C.在本程序的原文件范圍內(nèi)均有效
D.此定義方法錯誤,其變量為非法變量
答案:D
解析:?1、2與3錯:函數(shù)復(fù)合語句中定義的變量在該復(fù)合語句中引用;但如果函數(shù)含有
該變量,則在函數(shù)中可以引用該變量
4對:在C十十中在復(fù)合語句中定義變量為合法,但在C語言中是非法的
12、C語言程序的基本單位是()。
A.程序行
B.語句
C.函數(shù)
I)字符
答案:C
解析:函數(shù)是C語言程序的基本單位
13、C語言中決定函數(shù)返回值的類型的是()。
A.rcturn語句中的表達(dá)式類型
B.調(diào)用函數(shù)的主調(diào)函數(shù)類型
C.調(diào)用函數(shù)時臨時
D.定義函數(shù)時所指定的函數(shù)類型
答案:D
解析:函數(shù)的返回值取決于定義函數(shù)口寸指定的返回值類型
14、若有函數(shù)調(diào)用語句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數(shù)調(diào)用語句中實參的個數(shù)是
()。
A.3
B.4
C.5
D.6
答案:A
解析:什卜返回一個值,6,y)返回一個值,fnn(n+k,d,Sh))返回一個值。
15、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是()。
A.inputx,y,z;
,
B.scanff%d%d%d';&x,&y1&2);
C.scanf(,*%d%d%d,',x,y,z);
I>read("%d%d%d”,&x,&y,&z);
答案:B
解析:讀取鍵盤輸入的數(shù)據(jù)要用scanfO函數(shù),scanfO中的參數(shù)要傳入變量的地址
15、若變量已正確說明為float類型,要通過語句scanf("%f%f%F,&a,&b,&c);給a賦予10.0,
b賦予22.0,c賦予33.0,不正確的輸入形式是()0
A.102233
B.10.0,22.0,33.0
C.10.022.033.0
D.10;22;33
答案:B
解析:用scanfO讀取從鍵盤輸入的數(shù)據(jù)口寸,中間不能加逗號,要用空格隔開
17、若有定義:inrx,y;chnr并有以下輸入數(shù)據(jù)(此處\n代表空格):1\i】2\nA\i】B\nC,
那么能給X賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C的正確
程序段是()o
A.scanf(Mx=%dy=%dH,&x,&y);a=getcharO;b=getcharO;c=getcharO;
B.scanf(u%d%dn,&x,&y);a=getcharO;b=getcharO;c=getchar();
C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);
D.scanf(,'%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
答案:D
解析:空格也會作為一個字符賦給字符變量。
18、對嵌套子程序調(diào)用說法正確的是()。
A.外層子程序可以調(diào)用所有的內(nèi)層子程序
B.內(nèi)層子程序只可以調(diào)用包含本身的外層子程序,不可以隔層調(diào)用
C.外分程序必須能完全套住內(nèi)分程序
D.以上說法均不正確
答案:C
19、C語言中函數(shù)能否嵌套調(diào)用和遞歸調(diào)用?()
A.二者均不可
B.前者可,后者不可
C.前者不可,后者可
D.二者均可
答案:D
解析:兩者調(diào)用都可以
20、C語言規(guī)定,程序中各函數(shù)之間()。
A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用
I)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用
答案:A
解析?:各程序間既可以直接調(diào)用也可以間接調(diào)用。
21?、有如下程序:
longfib(intn)
(
if(n>2)
returnfib(n-l)+fib(n-2);
else
return2;
voidmainQ
{
printf(H%d\nn,fib(3));
}
該程序的輸出結(jié)果是()o
A.2
B.4
C.6
D.8
答案:B
解析:向fib0函數(shù)傳入3時,返回fib(l)+fib(2)的值;向fib。函數(shù)傳入1和2時,都返回2,
所以郁⑶返回2+2=4o
22、?以下程序的輸出結(jié)果是()o
longfun(intn)
longs;
if(n==l||n==2)
s=2;
else
s=n-fun(n-l);
returns;
}
voidmainQ
{
printf(M%ld\nn,fun(3));
)
A.l
B.2
C.3
D.4
答案:A
解析:fun。函數(shù)傳入3時,返回3-fuM2);funO函數(shù)傳入2時,返回2。所以fun(3)返回3-2=1o
23、在C語言中,函數(shù)的隱含存儲類別是()o
A.auto
B.static
C.extern
D.無存儲類別
答案:C
解析:為簡化編程,C語言中允許在定義外部函數(shù)時省略關(guān)鍵字extern。
24、以下敘述中不正確的是()o
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
答案:D
解析:函數(shù)內(nèi)的復(fù)合語句中定義的變量僅僅在該復(fù)合語句中有效。
25?、以下程序運行后,輸出結(jié)果是()。
intfunc(inta,intb)
{
staticintm=0,i=2;
i+=m+l;
m=i+a+b;
returnm;
}
voidmainQ
{
intk=4,m=l,p;
p=func(k,m);
printf("%d,M,p);
p=func(k,m);
printf("%d\nH,p);
}
A.8,15
B.8,16
C.8,17
D.8,8
答案:c
解析?:函數(shù)體內(nèi)的靜態(tài)局部變量不隨函數(shù)的調(diào)用結(jié)束而銷毀,而是一直存在。
25?、以下程序的輸出結(jié)果是()。
intd=1;
intfun(intp)
staticintd=5;
d十二p;
printf("%d*',d);
returnd;
voidmainQ
inta=3;
printf(M%d\n",fun(a+fun(d)));
A.699
B.669
C.61515
D.6615
答案:C
解析:?首先調(diào)用fun(d),將全局變量d=l帶入,此時fun。函數(shù)內(nèi)的靜態(tài)局部變量d的值
是1,d+二p后d的值是6,輸出d的值,返回d的值;
然后調(diào)用fun(a+6),將局部變量a=3帶入,此時fun。函數(shù)內(nèi)的靜態(tài)局部變量d的值是6,
d+二p后d賦值15,輸出d的值,返回d的值。
27、在C語言中,若需一變量只在本文件中所有函數(shù)使用,則該變量的存儲類別是()。
A.extern
B.register
C.auto
D.static
答案:D
解析:static修飾全局變量時,表示該變量僅在本文件中可使用。
28?、下列程序的輸出結(jié)果是()o
intb=2;
intfunc(int*a)
(
b+=*a;
returnb;
voidmain。
inta=2,res=2;
res+=func(&a);
printf("%d\n】cs);
}
A.4
B.6
C.8
D.10
答案:B
解析:funcO函數(shù)中,對全局變量b自增a的值,func()函數(shù)返回4;res+=4,res賦值為6。
29?、請讀程序:
voidmain。
inta=l,b=2,c=3;
++a;
c+=++b;
(
intb=4,c;
c=b*3;
a+=c;
printf(nfirst:%d,%d,%d\n",a,b,c);
a+二c;
printf("Second:%d,%d,%d\n”,a,b,c);
}
printf("third:%d,%d,%d\n",a,b,c);
)
該程序的輸出是()
A.first:12,4,12Second:26,4,12third:4,3,6
B.first:14,4,12Second:26,12,12third:26,3,4
C.first:14,4,12Second:26,4,12third:26,3,6
D.first:14,4,12Second:26,6,12third:26,4,6
答案:C
解析:程序運行到第6行時,a=2,b=3,c=6;程序運行到第1()行時,a=14,局部變量
b=4,c=12;程序運行到第13行時,a=26,局部變量b=4,c=12;程序運行到第15
彳了時,a—26,b=3,c—6O
30?、以下程序運行后,輸出結(jié)果是()o
intd=1;
intfun(intp)
(
intd=5;
d+=p++;
printf(H%d",d);
intmainQ
inta=3;
fun(a);
d+=a++;
printf(M%d\nH,d);
)
A.84
B.99
C.95
D.44
答案:A
解析:fun。函數(shù)調(diào)用時代人局部變量a的值,fun。函數(shù)體內(nèi)局部變量d自增3,輸出d的
值,即S,缶「0函數(shù)返回丸此時全局變量d的值不變。d+f++后,全局變量d自
增3,此時全局變量d的值是4,輸出全局變量d的值。
31?、以下程序的輸出結(jié)果是()。
inta,b;
voidfun()
a=lOO;b=200;
}
voidmainQ
{
inta=5,b=7;
fun。;
printf("%d%d\nu,a,b);
}
A.100200
B.57
C.200100
D.75
答案:B
解析:fun。函數(shù)改變的是全局變量的值,printf。函數(shù)輸出的是局部變量的值,fun。函數(shù)不
會改變局部變量a、3的值。
多選題
1、在調(diào)用外部函數(shù)時,卜列描述中止確的是()(多選)
A.只要有函數(shù)名,就能調(diào)用外部函數(shù)
B.調(diào)用外部函數(shù)要包含外部函數(shù)所在的頭文件
C.外部函數(shù)與調(diào)用者定義在同一個源文件下
I)在聲明外部函數(shù)時,外部函數(shù)與原函數(shù)定義的返回值類型、函數(shù)名稱和參數(shù)列表必須
一致
答案:B,D
解析:外部函數(shù)調(diào)用時要包含其所在的頭文件,當(dāng)調(diào)力者聲明了外部函數(shù)的原型,也可以
不用包含頭文件
判斷題
1、局部變量就是在函數(shù)內(nèi)部聲明的變量。
答案:true
解析:局部變量就是在函數(shù)內(nèi)部聲明的變量。
2、局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時才會被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時局部變量就會
失去作用。
答案:true
解析?:局部變量只相當(dāng)它所在的函數(shù)被調(diào)用時才會被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時局部爻量
就會失去作用。
3、局部變量就是在函數(shù)內(nèi)部聲明的變量,它只在本函數(shù)內(nèi)有效。
答案:true
解析:局部變量就是在函數(shù)內(nèi)部聲明的變量,它只在本函數(shù)內(nèi)有效,也就是說,只能在本
函數(shù)內(nèi)使用它。
4、局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時才會被使用,當(dāng)函數(shù)調(diào)用結(jié)束時局部變量還會一
直存在。
答案:false
解析:局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時才會被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時局部變量
就會失去作用。
簡答題
1、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
voidfunc(inta,intb)
printf("%d",a+b);
}
voidmainQ
{
func(3,2);
printfC\nH);
}
答案:5
解析:fun。是一個實現(xiàn)兩個數(shù)相加的函數(shù),在主函數(shù)中調(diào)用并傳入值,得到兩個數(shù)的和
2〉、請閱讀下面的程序,在空白處填寫正確的代碼,耨函數(shù)的結(jié)果返回給調(diào)用者。
intfunc(inta,intb)
intsum=0;
sum=a+b;
voidmainQ
{
intsum=0;
=func(3,2);
printf("兩個數(shù)相加的結(jié)果為%d”,sum);
}
答案:?remrnsum;
sum;
解析:?returnsum;rcturn將函數(shù)結(jié)果返回
sum;主函數(shù)中sum接收函數(shù)返回的值
3、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
voidmain。
intnum=100;
printf("%>d,%o,%x\n”,num,num,num);
}
答案:10014464
解析:printfO函數(shù)將十進(jìn)制數(shù)100分別以十進(jìn)制,八進(jìn)制,十六進(jìn)制形式輸出。
4〉、請閱讀下面的程序,當(dāng)用戶從鍵盤輸入hell。world時,分析程序是否能編繹通過并正
確運行,如果不能,說明原因;如果能,請寫出運行結(jié)果。
voidmainQ
(
charstr[256];
scanf("%s”,str);
printf(
)
答案:hello
解析:輸入helloworld時,中間的空格對scanf。函數(shù)來說是終止符:,后面的內(nèi)容無法讀取。
5)、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。
用戶從鍵盤輸入兩個整型數(shù)據(jù),將兩個數(shù)據(jù)相加輸出。
voidmain。
{
inta,b;
printf("%d\n",);
}
答案:?scanf("%d%d"
a+b;
解析:?鍵盤輸入數(shù)據(jù),用scanfO函數(shù);
輸入兩個數(shù)據(jù)的和a+b;
6、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
intfunc2(inta,intb)
intc;
c=a*b%3;
returnc;
intfund(inta,intb)
intc;
a+=a;
b+二b;
c=func2(a,b);
returnc+c;
voidmainQ
intx=ll,y=19;
printf("thefinalresultis:%cl\n",funcl(x,y));
答案:4
解析:乂=11,丫=19傳入8m10函數(shù),在funclO函數(shù)中經(jīng)過運算變?yōu)?2,38,然后傳入給
func2()函數(shù),返回運算結(jié)果2,fund0函數(shù)收到返回值2以后再經(jīng)過運算返回給主調(diào)
用函數(shù)結(jié)果為4。
7〉、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
voidfunc2(inta,intb)
{
a=a+10;
b=a+10;
}
voidfunc(inta,intb)
a=func2();
b=func2();
voidmain。
{
intx=1,y=10;
funcl(x,y);
printf(Hx=%d,y=%d\n",x,y);
}
答案:x=l,y=10;
解析:將實參傳遞給形參,只是復(fù)制了一份給x,y的值,參數(shù)在被調(diào)用函數(shù)內(nèi)部改變,不
影響其在調(diào)用函數(shù)中的值。
8)、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。
用戶從鍵就輸入四個數(shù),比較得出四個數(shù)中的最大值并輸出。
intmax2(inta,intb)
if(a>b){
returna;
else
returnb;
)
intmax4(inta,intb,intc,intd)
intres;
res=max2(a,b);
res二
res=max2(res,d);
voidmainQ
inta,b,c,d,max;
printf("請輸入四個整數(shù):”);
max=max4(a,b,c,d);
printf(Mmax=%d\nu,max);
}
答案:?max2(res,c);
returnres;
scanf("%d%d%d%d”
解析:在max4()函數(shù)中,res=max2(a,b)返回的是a,b中的最大值,這個最大值再與c進(jìn)行
比較,所以res=mAx2(r、Q,返回的較大的值再與d作比較,再將比較得出的較大
的值返回給主調(diào)用函數(shù),這個較大的值就是四個數(shù)中的最大值。
9〉、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
intadd(intn)
if(n==1)
return1;
else
returnn+add(n-1);
voidmain。
intn=5;
intsum=add(5);
printf(“結(jié)果為%d\n",sum);
答案:15
解析:add。函數(shù)進(jìn)行遞歸調(diào)用,傳入的參數(shù)5,會一直遞減相加直到遞減至1。
10、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
voidfun(intn)
{
if(n>0)
(
printf(M%d\f*,n);
fun(—n);
}
}
voidmain。
{
inr9=5;
fun(a);
答案:54321
解析:fun。函數(shù)遞歸調(diào)用,每打印一次就自減再調(diào)用一次自己。
11?、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。
用遞歸方法求出n!o
intfac(intn)
{
intt;
if()
return1;
else
(
t=;
returnt;
voidmain。
intm,y;
printf(MEnterm:\nn);
scanf(u%du,&m);
if(m<0)
printf(HInputdataError!\nn);
else
(
y=fac(m);
printf(°\n%d!=%d\nH,m,y);
}
答案:?(n==l)||(n二二0)
n*fac(n-1)
解析:實現(xiàn)n的階乘,當(dāng)n=0或者n=1時,階乘沒有意義,當(dāng)n>1時,實現(xiàn)階乘,則為
n*fun(n-l);
12、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
intx=5;
staticvoidcudeQ
|
X=x*x*x;
)
voidmainQ
{
cudeQ;
printf("x=%d\n",x);
}
答案:125
解析:全局變量x,當(dāng)調(diào)用cudeO內(nèi)部函數(shù)時,并沒有傳入?yún)?shù),沒有復(fù)制,所以x值的
變化直接改變了x本身的值
13?、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
first.c文件
intfunc(inta,intb)
{
returna+b;
)
second.c文件
staticintfunc(inta,intb)
{
returna-b;
}
voidmainQ
(
intx=5,y=2;
printf(M%d\nw,func(5,2));
答案:3
解析:當(dāng)內(nèi)部函數(shù)與外部函數(shù)重名時,會優(yōu)先調(diào)用內(nèi)部函數(shù)
14?、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
first.c源文件
intfunc(inta,inrb)
{
returna+b;
}
second.c源文件
externintfunc(inta,intb);
voidmninQ
{
intx=5,y=2;
printffw%d\nw,func(5,2j);
答案:7
解析:在second.c中聲明了intfunc(inta,intb);函數(shù)原型,可以調(diào)用first.c中的函數(shù)。
15?、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。
有一個外部函數(shù),用戶輸入一個數(shù)字,可以實現(xiàn)奇偶數(shù)的判斷。實現(xiàn)在主函數(shù)中調(diào)用這個
外部函數(shù)。
firsLC源文件
voidfunc(intnum)
|
if(num%2==0)
printf(“這是一個偶數(shù)!\n");
}
「源文件
voidmainQ
intnum;
scanf("%d”,&num);
func(num);
}
答案:externvoidfunc(intnum);
解析:調(diào)用外部函數(shù),可以包含函數(shù)所在的頭文件,也可以在本文件中聲明函數(shù)原型。
15、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
voidshow'O
(
intx=0;
}
voidmninQ
printf(”x的值為:%d\n",x);
答案:不能運行
解析:變量X為函數(shù)show)的局部變量,只在show。函數(shù)范圍內(nèi)有效,在main。中無法調(diào)
用。
17?、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說吠原因;如
果能,請寫出運行結(jié)果。
intshow。
{
intx=0;
returnx;
)
voidmain。
{
intx=10;
showQ;
printf("x的值為:%d\nH,x);
答案:X的值為:10
解析:main。函數(shù)中的x是局部變量,不受show。函數(shù)調(diào)用的影響。
18、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
intx=10;
voidmain。
{
intx=100;
printf("%d”,x);
}
答案:100
解析:當(dāng)全局變量與局部變量重名時,全局變量會被屏蔽掉。
19?、請閱讀下面的程序,分析程序是否能編繹通過并正確運行、如果不能,說明原因;如
果能,請寫出運行結(jié)果。
intx=2;
voidfunc(intx)
voidmainQ
|
func(x);
printf(M%d\n*',x);
}
答案:2
解析:全局變量作為實參傳遞給函數(shù),在函數(shù)中的運算并不改變其原來的值。
20、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
inrx=1();
voidshow。
intx=2();
printf("show。函數(shù)41x的值為:%d\n*',x);
voidmain。
{
intx=30;
printffmain。函數(shù)中x的值為:%d\n',,x);
showQ;
}
答案:?main0函數(shù)中x的值為:30
showQ函數(shù)中x的值為:2C
解析:局部變量只在它所在的函數(shù)內(nèi)部有效,且當(dāng)全局變量與局部變量重名時,局部變量
會屏蔽掉全局變量
21、?請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如
果能,請寫出運行結(jié)果。
inta,b;
voidfuncQ
a=100;
b=200;
}
voidmainQ
{
inta=5,b=7;
func();
printffa二%d,b二%d\nH,a,b);
)
答案:a=5,b=7
解析:全局變量與局部變量重名時,局部變量會屏蔽掉全局變量
22?、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:用函數(shù)求x的絕對
值。
voidmainQ
intx,y;
scanf("%d",&x);
printf(My=%d\nH,y);
}
intabs(inta)
(
intb;
if(a>=0)
b=a;
else
答案:?y=abs(x);b=-a;returnb;
解析:abs0函數(shù)是求絕對值的函數(shù)。
23、?以下check函數(shù)的功能是對value中的值進(jìn)行四舍五入計算,若計算后的值與ponsc的
值相等,則顯示“WELLDONE!!”,否則顯示計算后的值。請?zhí)羁铡?/p>
voidcheckoutponse,floatvalue)
|
intval;
val_;
print("計算后的值:%dH,val);
if(_______)
printf(H\nWELLDONE!!\nM);
else
printf(n\nSorrythecorrectansweris%d\nM,val);
)
答案:?(int)((value*10+5)/10)val==ponse
解析:第一個填空處利用日。前型轉(zhuǎn)int型的規(guī)則實現(xiàn)四舍五入的計算;第二個填空處判斷
是否計算后的值與ponse的值相等。
24、?請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:求整數(shù)num1和num2
的最大公約數(shù),并返回該值。
intgongyruc(intnuml,intnum2)
{
inttemp;
while()
(
temp=numl%num2;
num1=num2;
num2=temp;
}
return;
)
答案:?num2!=0numl
解析:循環(huán)條件是num2!=0,因為被模數(shù)不能為0;numl在對num2取模的過程中一直在改
變,最后返回numl的值。
25?、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:根據(jù)對x的輸入,
求1到x的累加和。
intfun(intn)
inti,c;
c=0;
for(i—l;i<—n;i++)
c=c+i;
voidmainQ
{
inrx;
scanf(n%dH,);
printf(M%d\nH,fun(x));
答案:?returnc;&x
解析:函數(shù)fun。中求總和:c是總和變量,最后返回c;
從鍵盤輸入x,則要對scant。函數(shù)傳入變量x的地址。
25?、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:先輸入10個數(shù)據(jù)
到數(shù)組a中,再輸入x,然后在a數(shù)組中查找與x值相同的元素的所在位置。
voidmain。
{
inta[ll],x,i;
printff'Enter10integers:\n,r);
fbr(i=l;;i++)
scanf("%d",a+i);
printf(MEnterx:u);
*a=x;i=10;
while(x!=*(a+i))
if(i>0)
printf("%5d'spositionis:%4d\n'\x,i);
else
printf(H%dNotbeenfound!\nu,x);
}
答案:?i<=10scanf("%d",&x);break;
27?、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:輸入10個整數(shù)存
人數(shù)組x中,然后計算各元素的和,并將和存入S中。
voidmainQ
(
intx[10],i,s;
for(i=0;i<10;i++)
s=0;
for(i=l;i<10;i++)
printf('*%dH,s);
答案:?scanfC%d”,&x[i]);s+=i;
解析:第一個空格從鍵盤輸入元素的值;
第二個空格將元素存入變量s中;
28、?請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:讀入一個兩位的正
整數(shù),按字符型形式輸出。
voidmainQ
{
intn;
scanf();
printf();
)
答案:?“%d”,&n“%c”,n
29、?請閱讀下面的程序,分析代碼是否能夠編譯通過:如果能編譯通過,請列出運行的結(jié)
果,否則請說明編譯失敗的原因。
#include<stdio.h>
intsum(inta)
{
intc=0;
staticintb=3;
c+=l;
b+=2;
returna+b+c;
}
voidmainQ
{
inti;
inta=2;
for(i=0;i<5;i++)
printf("%d,”,sum(a));
答案:8,10,12,14,16,
解析:sum。函數(shù)體中的靜態(tài)局部變量b會一直存在,其值不隨函數(shù)調(diào)用結(jié)束而第毀。
30、編寫一個函數(shù),判斷一個數(shù)是奇數(shù)還是偶數(shù),并在主函數(shù)中調(diào)用。
答案:?#include<stdio.h>
voidfunc(intnum)
{
if(num%2==0)
printf(“該數(shù)是偶數(shù)”);
else
printf(“該數(shù)是奇數(shù)”);
)
intmain。
intnum;
scanf("%d”,&num);
func(num);
return0;
}
解析:?func()函數(shù)對傳入進(jìn)來的參數(shù)num進(jìn)行奇偶判斷;
主函數(shù)中調(diào)用funcO函數(shù),傳入?yún)?shù)得到判斷結(jié)果。
31、編寫一個函數(shù),實現(xiàn)1-100的相加和,并在主函數(shù)中調(diào)用。
答案:?#include<stdio.h>
intfuncQ
{
intnum,sum=1;
fbr(num=1;num<=10();num++)
{
sum+=num;
}
returnsum;
intmain。
{
intsum=0;
sum=funcQ;
printf("sum=%d”,sum);
return0;
)
解析?:函數(shù)實現(xiàn)1-100的相加和,并將結(jié)果返回給調(diào)用者。
主函數(shù)中的sum接收調(diào)用Func函數(shù)的返回值,并將其打印
32、?請編寫一個程序,用戶從鍵盤輸入英文字母,如果是大寫,將其轉(zhuǎn)換成小寫輸出;如
果是小寫,將其轉(zhuǎn)換成大寫輸出。
提示:英文字母在計算機中以ASCII碼表形式存在。
答案:?#include<stdio.h>
intmainf)
charch;
printf("請輸入英文字母:\n、
scanf(H%cH,&ch);
if(ch>='Af&&ch<=2)
printf("%c\n”,ch+32);
elseif(ch>=*a'&&ch<='z)
printf(n%c\nM,ch-32);
return0;
)
解析:英文字母對應(yīng)的ASCII碼值,大寫比對應(yīng)小寫小32
33、請編寫一個程序,用戶輸入一個十進(jìn)制整數(shù),分引輸出其十進(jìn)制、八進(jìn)制、十六進(jìn)制
對應(yīng)的數(shù)值。
答案:?#include<stdio.h>
intrnainQ
intnum;
scanf("%d”,&num);
printf(“十進(jìn)制為:%d\n八進(jìn)制為:%o\n十六進(jìn)制為:%x\nw,num,num,num);
return0;
}
解析:十進(jìn)制輸入格式符為%d,八進(jìn)制輸出格式符為%。,十六進(jìn)制輸出格式符為%x。
34、請編寫一個程序,實現(xiàn)兩個數(shù)的求和,并打印出來。
答案:?#include<stdio.h>
voidshow(ints)
{
printf("兩個數(shù)的和為:%d”,s);
return;
voidadd(inta,intb)
ints=a+b;
show(s);
return;
}
intmainQ
(
ints=a+b;
show(s);
return0;
)
解析:add。函數(shù)實現(xiàn)兩個數(shù)相加,show。函數(shù)將兩個數(shù)相加的結(jié)果打印出來。
35?、請編寫一個程序,用戶從鍵盤隨機輸入四個數(shù),比較這個四個數(shù)得出其中最大值并輸
出。
提示:
1)編寫一個兩個數(shù)值比較的函數(shù)
2)編寫一個四個數(shù)值比較的函數(shù),調(diào)用這個函數(shù),在該函數(shù)中調(diào)用兩個數(shù)值比較的函數(shù)
答案:?#include<stdio.h>
intmax2(inta,intb)
(
if(a>b){
returna;
)
else
(
returnb;
}
}
intmax4(inta,intb,intc,intd)
{
intres;
res=max2(a,b);
res=max2(res,c);
res=max2(res,d);
returnres;
}
intmainQ
(
inta,b,c,d,max;
printf(”請輸入四個整數(shù):");
scanf("%d%d%d%d',&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("max=%d\nu,max);
return0;
)
解析:輸入四個數(shù),調(diào)用max4()函數(shù),在max40函數(shù)中又調(diào)用max2()函數(shù)進(jìn)行兩兩比較,
最后得出最大值,返回給調(diào)用函數(shù)。
36、?請編寫一個程序,計算s=2人2!+3人21;
提示:
1)編寫一個函數(shù)計算平方值
2)編寫一個函數(shù)計算階乘
答案:?#inchide<stdio.h>
longf1(intp){
intk;
longr;
longf2(int);
k=p*p;
r=f2(k);
returnr;
)
longf2(intq){
longc=1;
inti;
for(i=l;i<=q;i++)
c=c*i;
returnc;
}
intmain。
{
inti;
longs=0;
for(i=2;i<=3;i++)
s=s+fl(i);
printf(M\ns=%ld\nM,s);
return0;
)
解析:函數(shù)fio實現(xiàn)了計算數(shù)值的平方,函數(shù)£20實現(xiàn)了階乘計算,在什0中調(diào)月f20實現(xiàn)
了計算表達(dá)式的值。
37、?請編寫一個程序,用遞歸方法實現(xiàn)n!。
提示:
1)遞歸調(diào)用是函數(shù)自身調(diào)用自身的過程
2)每遞歸調(diào)用一次n就要自減一次
答案:?#inchide<stdio.h>
intadd(intn)
(
if(n==1)
return1;
else
returnn+add(n-1);
}
intmain()
{
intn;
scanf("%d",&n);
intsum=add(n);
printf(“結(jié)果為:%d\n",sum);
return0;
}
解析:add。函數(shù)實現(xiàn)遞歸,每調(diào)用一次n要減1.
38?、請編寫一個程序,求出m的n次方。
提示:編寫遞歸函數(shù)求解。
答案:?#include<stdio.h>
intfunc(intm,intn)
{
if(n==1)
returnm;
else
returnm*func(m,n-1);
}
intmain。
intm,n,sum;
scanf("%d%d”,&m,&n);
sum=func(m,n);
printf(n%d\nn,sum);
return0;
}
解析:funcO實現(xiàn)遞歸調(diào)用,每乘上一個m,再用n-1調(diào)用函數(shù),實現(xiàn)m的n次方。
39?、假設(shè)有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后
每個月又生一對兔子,假如兔子都存活,問一年之后(第13個月)月兔子總數(shù)為多少對?
提示:兔子的規(guī)律為數(shù)列1,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年茶產(chǎn)業(yè)綜合發(fā)展項目可行性研究報告
- 2025年綠色化肥生產(chǎn)與銷售項目可行性研究報告
- 2025年電力存儲系統(tǒng)解決方案可行性研究報告
- 2025年2B市場產(chǎn)品研發(fā)項目可行性研究報告
- 2025年野生動植物保護科技項目可行性研究報告
- 2025年生物塑料的市場潛力可行性研究報告
- 2025年智能化辦公空間設(shè)計項目可行性研究報告
- 校園生活與友誼緬懷
- 2026年大同煤炭職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及參考答案詳解1套
- 2026年天津鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及參考答案詳解1套
- 2023年考研歷史學(xué)模擬試卷及答案 古代希臘文明
- 獸藥營銷方案
- 2025年廣西繼續(xù)教育公需科目真題及答案
- 質(zhì)量SQE月度工作匯報
- 紅外光譜課件
- 液壓油路圖培訓(xùn)課件
- LCD-100-A火災(zāi)顯示盤用戶手冊-諾蒂菲爾
- 2025至2030中國大學(xué)科技園行業(yè)發(fā)展分析及發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 餐飲大數(shù)據(jù)與門店開發(fā)項目二餐飲門店開發(fā)選址調(diào)研任務(wù)四同行分
- 腦卒中后的焦慮抑郁課件
- 廉潔從業(yè)教育培訓(xùn)課件
評論
0/150
提交評論