版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單選題
1、關(guān)于C語(yǔ)言中的函數(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?、定義一個(gè)函數(shù):exce((vl,v2),(v3,v4,v5),v6);在該函數(shù)調(diào)用時(shí),實(shí)參的個(gè)數(shù)為()
個(gè)
A.3
B.4
C.5
D.6
答案:A
解析:(vl,v2),(v3,v4,v5)和v6一共三個(gè)實(shí)參
3、關(guān)于C語(yǔ)言中print。函數(shù)與scanf()函數(shù),下列描述中正確的是()
A.printfO函數(shù)可以向任何地方輸出數(shù)據(jù)
B.printf()只向控制臺(tái)輸出數(shù)據(jù)
C.scanf()只能輸入英文字母和數(shù)字
D.scanf()函數(shù)可以識(shí)別輸入的空格
答案:B
解析:printf()是向控制臺(tái)輸出的函數(shù)
4、在C語(yǔ)言中,內(nèi)部函數(shù)需要添加的關(guān)鍵字是()
A.extern
B.static
C.this
D.auto
答案:B
解析:在定義內(nèi)部函數(shù)時(shí),需要在函數(shù)的返回值類型前面添加static關(guān)鍵字(乂稱為靜
態(tài)函數(shù))。
5、當(dāng)調(diào)用時(shí),會(huì)調(diào)用內(nèi)部函數(shù)
A.當(dāng)調(diào)用時(shí),會(huì)調(diào)用內(nèi)部函數(shù)
B.當(dāng)調(diào)用時(shí),會(huì)調(diào)用外部函數(shù)
C.當(dāng)調(diào)用時(shí),會(huì)調(diào)用兩次,先調(diào)用內(nèi)部函數(shù)再調(diào)用外部函數(shù)
D.都不調(diào)用,會(huì)報(bào)錯(cuò)
答案:A
解析:當(dāng)內(nèi)部函數(shù)與外部函數(shù)重名時(shí),會(huì)優(yōu)先調(diào)用內(nèi)部函數(shù)
6、在C語(yǔ)言中,聲明外部函數(shù)需要添加的關(guān)鍵字是()
A.extern
B.static
C.this
D.auto
答案:A
解析:聲明外部函數(shù)的方式是在函數(shù)的返回值類型前面添加extern關(guān)鍵字
7、關(guān)于C語(yǔ)言中的局部變量,下列描述中錯(cuò)誤的是()
A.局部變量就是在函數(shù)內(nèi)部聲明的變量
B.局部變量只在函數(shù)內(nèi)部有效
B.全局變量會(huì)被屏蔽
C.都不會(huì)調(diào)用,系統(tǒng)會(huì)報(bào)錯(cuò)
D.會(huì)調(diào)用兩次,先調(diào)用局部變量,再調(diào)用全局變量
答案:B
解析:當(dāng)局部變量與全局變量重名時(shí),全局變量會(huì)被屏蔽。
10、在C語(yǔ)言中,關(guān)于變量的作用域,下列描述中錯(cuò)誤的是()
A.局部變量只在整個(gè)函數(shù)的運(yùn)行周期中有效
B.全局變量的作用域?yàn)檎麄€(gè)程序的運(yùn)行周期
C.當(dāng)全局變量與局部變量重名時(shí),局部變量會(huì)屏蔽掉全局變量
D.全局變量會(huì)覆蓋掉所有與它重名的局部變量
答案:D
解析:當(dāng)全局變量與局部變量重名時(shí),全局變量會(huì)被屏蔽掉
11、在C語(yǔ)言中,如果在一個(gè)函數(shù)的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量()
A.只在該復(fù)合語(yǔ)句中有效,在該復(fù)合語(yǔ)句外無(wú)效
B.在該函數(shù)中任何位置都有效
C.在本程序的原文件范圍內(nèi)均有效
D.此定義方法錯(cuò)誤,其變量為非法變量
答案:D
解析:?1、2與3錯(cuò):函數(shù)復(fù)合語(yǔ)句中定義的變量在該復(fù)合語(yǔ)句中引用;但如果函數(shù)含有
該變量,則在函數(shù)中可以引用該變量
4對(duì):在C++中在復(fù)合語(yǔ)句中定義變量為合法,但在C語(yǔ)言中是非法的
12、C語(yǔ)言程序的基本單位是()。
A.程序行
B.語(yǔ)句
C.函數(shù)
D.字符
答案:C
解析:函數(shù)是C語(yǔ)言程序的基本單位
13、C語(yǔ)言中決定函數(shù)返回值的類型的是()。
A.return語(yǔ)句中的表達(dá)式類型
B.調(diào)用函數(shù)的主調(diào)函數(shù)類型
C.調(diào)用函數(shù)時(shí)臨時(shí)
D.定義函數(shù)時(shí)所指定的函數(shù)類型
答案:D
解析:函數(shù)的返回值取決于定義函數(shù)時(shí)指定的返回值類型
14、若有函數(shù)調(diào)用語(yǔ)句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數(shù)調(diào)用語(yǔ)句中實(shí)參
的個(gè)數(shù)是()。
A.3
B.4
C.5
D.6
答案:A
解析:a+b返回一個(gè)值,(x,y)返回一個(gè)值,fun(n+k,d,(a,b))返回一個(gè)值。
15、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語(yǔ)句是()。
A.inputx,y,z;
B.scanfC%d%d%d/,,&x,&y,&z);
C.scanf("%d%d%d”,x,y,z);
D.read("%d%d%d”,&x,&y,&z);
答案:B
解析:讀取鍵盤輸入的數(shù)據(jù)要用scanfO函數(shù),scant()中的參數(shù)要傳入變量的地址
16、若變量已正確說明為float類型,要通過語(yǔ)句scanfC/%f%f%f,z,&a,&b,&c);給a賦
予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是()。
A.102233
B.10.0,22.0,33.0
C.10.022.033.0
D.10;22;33
答案:B
解析:用scanfO讀取從鍵盤輸入的數(shù)據(jù)時(shí),中間不能加逗號(hào),要用空格隔開
17、若有定義:intx,y;chara,b,c;并有以下輸入數(shù)據(jù)(此處\u代表空格):1\U2\UA\UB\UC,
那么能給x賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C的正確
程序段是()。
A.scanf(〃x=%dy=%d〃,&x,&y);a=getchar();b=getchar0;c=getchar();
B.scanfC%d%d〃,&x,&y);a=getchar();b=getchar();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
解析:空格也會(huì)作為一個(gè)字符賦給字符變量。
18、對(duì)嵌套子程序調(diào)用說法正確的是()。
A.外層子程序可以調(diào)用所有的內(nèi)層子程序
B.內(nèi)層子程序只可以調(diào)用包含本身的外層子程序,不可以隔層調(diào)用
C.外分程序必須能完全套住內(nèi)分程序
D.以上說法均不止確
答案:C
19、C語(yǔ)言中函數(shù)能否嵌套調(diào)用和遞歸調(diào)用?()
A.二者均不可
B.前者可,后者不可
C.前者不可,后者可
D.二者均可
答案:D
解析:兩者調(diào)用都可以
20、C語(yǔ)言規(guī)定,程序中各函數(shù)之間()0
A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用
D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用
答案:A
解析:各程序間既可以直接調(diào)用也可以間接調(diào)用。
21?、有如卜程序:
longfib(intn)
(
if(n>2)
returnfib(n-1)+fib(n-2);
else
return2;
}
voidmain()
printf(z,%d\n/z,fib(3));
該程序的輸出結(jié)果是()。
A.2
B.4
C.6
D.8
答案:B
解析:向fib()函數(shù)傳入3時(shí),返回fib(l)+fib(2)的值;向fib()函數(shù)傳入1和2時(shí),
都返回2,所以fib⑶返回2+2=4。
22、?以下程序的輸出結(jié)果是()o
longfun(intn)
(
longs;
if(n==l||n==2)
s=2;
else
s=n-fun(n-l);
returns;
)
voidmain()
(
printfC%ld\n",fun(3));
)
A.1
B.2
C.3
D.4
答案:A
解析:fun()函數(shù)傳入3時(shí),返回3-fun(2);fun()函數(shù)傳入2時(shí),返回2。所以fun(3)
返回3-2=1o
23、在C語(yǔ)言中,函數(shù)的隱含存儲(chǔ)類別是()。
A.auto
B.static
C.extern
D.無(wú)存儲(chǔ)類別
答案:C
解析:為簡(jiǎn)化編程,C語(yǔ)言中允許在定義外部函數(shù)時(shí)省略關(guān)鍵字extern。
24、以卜敘述中不止確的是()。
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個(gè)函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效
答案:D
解析:函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量?jī)H僅在該復(fù)合語(yǔ)句中有效。
25?、以下程序運(yùn)行后,輸出結(jié)果是()。
intfunc(inta,intb)
staticintm=0,i=2;
i+=m+l;
m=i+a+b;
returnm;
)
voidmain()
(
intk=4,m=l,p;
p=func(k,in);
printf(〃%d,〃,p);
p=func(k,m);
printf("貌\n",p);
}
A.8,15
B.8,16
C.8,17
D.8,8
答案:C
解析:函數(shù)體內(nèi)的靜態(tài)局部變量不隨函數(shù)的調(diào)用結(jié)束而銷毀,而是一直存在。
26?、以下程序的輸出結(jié)果是()。
intd=l;
intfun(intp)
(
staticintd=5;
d+二p;
printf(z,%d〃,d);
returnd;
)
voidmain()
(
inta=3;
printf(/z%d\n,z,fun(a+fun(d)));
}
A.699
B.669
C.61515
D.6615
答案:C
解析:?首先調(diào)用fun(d),將全局變量d=l帶入,此時(shí)fun()函數(shù)內(nèi)的靜態(tài)局部變量d的
值是1,d+=pBd的值是6,輸出d的值,返回d的值;
然后調(diào)用fun(a+6),將局部變量a=3帶入,此時(shí)fun()函數(shù)內(nèi)的靜態(tài)局部變量d的值是6,
d+=p后d賦值15,輸出d的值,返回d的值。
27、在C語(yǔ)言中,若需一變量只在本文件中所有函數(shù)使用,則該變量的存儲(chǔ)類別是()。
A.extern
B.register
C.auto
D.static
答案:D
解析:ssiic修飾全局變量時(shí),表示該變量?jī)H在本文件中可使用。
28?、下列程序的輸出結(jié)果是()o
intb=2;
intfunc(int*a)
(
b+=*a;
returnb;
)
voidmain()
(
inta=2,res=2;
res十二func(&a);
printf(〃%d\n”,res);
}
A.4
B.6
C.8
D.10
答案:B
解析:func()函數(shù)中,對(duì)全局變量b自增a的值,func()函數(shù)返回4;res+=4,res賦值
為6。
29?、請(qǐng)讀程序:
voidmain()
(
inta=l,b=2,c=3;
++a;
c+=++b;
(
intb=4,c;
c=b*3;
a+二c;
printf("first%d\n〃,a,b,c);
a+=c;
printf("Seconded,%d,%d\n〃,a,b,c);
printf("third:%d,%d,%d\n〃,a,b,c);
}
該程序的輸出是()
A.first:12,4,12Secord: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
解析:程序運(yùn)行到第6行時(shí),a=2,b二3,c二6;程序運(yùn)行到第10行時(shí),a=14,局部變量
b=4,.12;程序運(yùn)行到第13行時(shí),a=26,局部變量b=4,c=12;程序運(yùn)行到第15
行時(shí),a=26,b=3,c=6o
30?、以下程序運(yùn)行后,輸出結(jié)果是()。
intd=l;
intfun(intp)
intd=5;
d+=p++;
printf(飛d〃,d);
)
intmain()
(
inta=3;
fun(a);
d+=a++;
printfd);
)
A.84
B.99
C.95
D.44
答案:A
解析:fun()函數(shù)調(diào)用時(shí)代入局部變量a的值,fun()函數(shù)體內(nèi)局部變量d自增3,輸Hld
的值,即8,fun()函數(shù)返回8,此時(shí)全局變量d的值不變。d+=a++后,全局變量d
自增3,此時(shí)全局變量d的值是4,輸出全局變量d的值。
31?、以下程序的輸出結(jié)果是()。
inta,b;
voidfun()
(
a=100;b=200;
)
voidmain()
(
inta=5,b=7;
fun();
printf(*%d%d\n”,a,b);
)
A.100200
B.57
C.200100
D.75
答案:B
解析:fun()函數(shù)改變的是全局變量的值,printf()函數(shù)輸出的是局部變量的值,fun()
函數(shù)不會(huì)改變局部變量a、b的值。
多選題
1、在調(diào)用外部函數(shù)時(shí),下列描述中正確的是()(多選)
A.只要有函數(shù)名,就能調(diào)用外部函數(shù)
B.調(diào)用外部函數(shù)要包含外部函數(shù)所在的頭文件
C.外部函數(shù)與調(diào)用者定義在同一個(gè)源文件下
D.在聲明外部函數(shù)時(shí),外部函數(shù)與原函數(shù)定義的返回值類型、函數(shù)名稱和參數(shù)列表必須
一致
答案:B,D
解析:外部函數(shù)調(diào)用時(shí)要包含其所在的頭文件,當(dāng)調(diào)用者聲明了外部函數(shù)的原型,也可以
不用包含頭文件
判斷題
1、局部變量就是在函數(shù)內(nèi)部聲明的變量。
答案:true
解析:局部變量就是在函數(shù)內(nèi)部聲明的變量。
2、局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時(shí)才會(huì)被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時(shí)局部變量就會(huì)
失去作用。
答案:true
解析:局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時(shí)才會(huì)被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時(shí)局部變量
就會(huì)失去作用。
3、局部變量就是在函數(shù)內(nèi)部聲明的變量,它只在本函數(shù)內(nèi)有效。
答案:true
解析:局部變量就是在函數(shù)內(nèi)部聲明的變量,它只在本函數(shù)內(nèi)有效,也就是說,只能在本
函數(shù)內(nèi)使用它。
4、局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時(shí)才會(huì)被使用,當(dāng)函數(shù)調(diào)用結(jié)束時(shí)局部變量還會(huì)一
直存在。
答案:false
解析:局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時(shí)才會(huì)被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時(shí)局部變量
就會(huì)失去作用。
簡(jiǎn)答題
1、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidfunc(inta,intb)
(
printf(〃%d,z,a+b);
)
voidmain()
(
func(3,2);
printf(〃\rT);
)
答案:5
解析:fun()是一個(gè)實(shí)現(xiàn)兩個(gè)數(shù)相加的函數(shù),在主函數(shù)中調(diào)用并傳入值,得到兩個(gè)數(shù)的和
2?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,將函數(shù)的結(jié)果返回給調(diào)用者。
intfunc(inta,intb)
intsum=0;
sum=a+b;
)
voidmain()
(
intsum=0;
=func(3,2);
printf(〃兩個(gè)數(shù)相加的結(jié)果為%d〃,sum);
}
答案:?returnsum;
sum;
解析:?returnsum;return將函數(shù)結(jié)果返回
sum;主函數(shù)中sum接收函數(shù)返回的值
3、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidmain()
intnum=100;
printf(u%d,%o,%x\n,J,num,num,num);
}
答案:10014464
解析:printfO函數(shù)將十進(jìn)制數(shù)100分別以十進(jìn)制,八進(jìn)制,十六進(jìn)制形式輸出。
4?、請(qǐng)閱讀卜面的程序,當(dāng)用戶從鍵盤輸入helloworld時(shí),分析程序是否能編繹通過并
正確運(yùn)行,如果不能,說明原因;如果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidmain()
(
charstr[256];
scanf("%s",str);
printf(u%s\nv,str);
}
答案:hello
解析:輸入helloworld時(shí),中間的空格對(duì)scanf()函數(shù)來(lái)說是終止符,后面的內(nèi)容無(wú)法
讀取。
5?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,實(shí)現(xiàn)下列功能。
用戶從鍵盤輸入兩個(gè)整型數(shù)據(jù),將兩個(gè)數(shù)據(jù)相加輸出。
voidmain()
(
inta,b;
t
printf("%d\n”,);
)
答案:?scanf(<<%d%d>,,&a,&b);
a+b;
解析:?鍵盤輸入數(shù)據(jù),用scanf()函數(shù);
輸入兩個(gè)數(shù)據(jù)的和a+b;
6、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intfunc2(inta,intb)
intc;
c=a*b%3;
returnc;
}
intfund(inta,intb)
(
intc;
a+=a;
b+=b;
c=func2(a,b);
returnc*c;
)
voidmain()
(
intx=11,y=19;
printf(z,thefinalresultis:%d\n〃,fund(x,y));
}
答案:4
解析:x=11,y=19傳入funcl()函數(shù),在funcl()函數(shù)中經(jīng)過運(yùn)算變?yōu)?2,38,然后
傳入給func2()函數(shù),返回運(yùn)算結(jié)果2,funcl()函數(shù)收到返回值2以后再經(jīng)過運(yùn)算
返回給主調(diào)用函數(shù)結(jié)果為4。
7?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidfunc2(inta,intb)
(
a=a+10;
b=a+10;
}
voidfunc(inta,intb)
(
a=func2();
b=func2();
}
voidmainO
intx=1,y=10;
fund(x,y);
printf(z,x=%d,y=%d\n”,x,y);
}
答案:x=1,y=10;
解析:將實(shí)參傳遞給形參,只是復(fù)制了一份給x,y的值,參數(shù)在被調(diào)用函數(shù)內(nèi)部改變,不
影響其在調(diào)用函數(shù)中的值。
8?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,實(shí)現(xiàn)下列功能。
用戶從鍵盤輸入四個(gè)數(shù),比較得出四個(gè)數(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);
f
}
voidmain()
inta,b,c,d,max;
printf("請(qǐng)輸入四個(gè)整數(shù):");
max=max4(a,b,c,d);
printf(/zmax=%d\n〃,max);
)
答案:?max2(res,c);
returnres;
scanf(<<%d%d%d%d",&a,&b,&c,&d);
解析:在max4()函數(shù)中,res=max2(a,b)返回的是a,b中的最大值,這個(gè)最大值再與c
進(jìn)行比較,所以res=max2(res,c),返回的較大的值再與d作比較,再將比較得
出的較大的值返回給主調(diào)用函數(shù),這個(gè)較大的值就是四個(gè)數(shù)中的最大值。
9?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(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,會(huì)一直遞減相加直到遞減至1。
10、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidfun(intn)
if(n>0)
printf(〃%d\t〃,n);
fun(-n);
}
)
voidmain()
(
inta=5;
fun(a);
)
答案:54321
解析:fun()函數(shù)遞歸調(diào)用,每打印一次就自減再調(diào)用一次自己。
11?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,實(shí)現(xiàn)下列功能。
用遞歸方法求出n!。
intfac(intn)
intt;
if()
return1;
else
(
t=;
returnt;
)
}
voidmain()
(
intm,y;
printf(''Enterm:\n");
scanf&m);
if(m<0)
printf(z,InputdataError!\n〃);
else
y=fac(m);
printf(z,\n%d!=%d\n”,m,y);
)
}
答案:?(n==1)||(n==0)
n*fac(n-1)
解析:實(shí)現(xiàn)n的階乘,當(dāng)n=0或者n=l時(shí),階乘沒有意義,當(dāng)n>l時(shí),實(shí)現(xiàn)階乘,則為
n*fun(n-l);
12、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intx=5;
staticvoidcudeO
(
X=x*x*x;
}
voidmainO
cude();
printf(vx=%d\n”,x);
)
答案:125
解析:全局變量x,當(dāng)調(diào)用cude()內(nèi)部函數(shù)時(shí),并沒有傳入?yún)?shù),沒有復(fù)制,所以x值的
變化直接改變了x本身的值
13?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
first,c文件
intfunc(inta,intb)
(
returna+b;
)
second,c文件
sLeilicinLfunc(inLa,intb)
returnab;
)
voidmain()
(
intx=5,y=2;
printf("%d\n”,func(5,2));
)
答案:3
解析:當(dāng)內(nèi)部函數(shù)與外部函數(shù)重名時(shí),會(huì)優(yōu)先調(diào)用內(nèi)部函數(shù)
14?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
first,c源文件
intfunc(inta,intb)
returna+b;
}
second,c源文件
externintfunc(inta,intb);
voidmain()
(
intx=5,y=2;
printf("%d\n”,func(5,2));
)
答案:7
解析:在second,c中聲明了intfunc(inta,intb);函數(shù)原型,可以調(diào)用first,c中
的函數(shù)。
15?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,實(shí)現(xiàn)下列功能。
有一個(gè)外部函數(shù),用戶輸入一個(gè)數(shù)字,可以實(shí)現(xiàn)奇偶數(shù)的判斷。實(shí)現(xiàn)在主函數(shù)中調(diào)用這個(gè)
外部函數(shù)。
first,c源文件
voidfunc(intnum)
if(num%2==0)
printf(“這是一個(gè)偶數(shù)!\n");
)
second,c源文件
9
voidmain()
(
intnum;
scanf(飛d”,&num);
func(num);
)
答案:externvoidfunc(intnum);
解析:調(diào)用外部函數(shù),可以包含函數(shù)所在的頭文件,也可以在本文件中聲明函數(shù)原型。
16、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidshow()
intx=0;
)
voidmain()
(
printf("x的值為:%d\n",x);
}
答案:不能運(yùn)行
解析:變量x為函數(shù)show:)的局部變量,只在show。函數(shù)范圍內(nèi)有效,在main。中無(wú)法
調(diào)用。
17?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intshow()
{
intx=0;
returnx;
}
voidmain()
(
intx=10;
show();
printf(〃x的值為:%d\n〃,x);
)
答案:x的值為:10
解析:main。函數(shù)中的x是局部變量,不受show。函數(shù)調(diào)用的影響。
18、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intx=10;
voidmainO
(
intx=100;
printf(“%d”,x);
}
答案:100
解析:當(dāng)全局變量與局部變量重名時(shí),全局變量會(huì)被屏蔽掉。
19?、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intx=2;
voidfunc(intx)
(
X=X*X*X;
)
voidmain()
(
func(x);
printf(zz%d\nz/,x);
)
答案:2
解析:全局變量作為實(shí)參傳遞給函數(shù),在函數(shù)中的運(yùn)算并不改變其原來(lái)的值。
20、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
intx=l0;
voidshow()
(
intx=20;
printf(z/show()函數(shù)中x的值為:%d\n",x);
}
voidmain()
(
intx=30;
printf("main0函數(shù)中x的值為:%d\n〃,x);
show();
)
答案:?main()函數(shù)中x的值為:30
show。函數(shù)中x的值為:20
解析:局部變量只在它所在的函數(shù)內(nèi)部有效,且當(dāng)全局變量與局部變量重名時(shí),局部變量
會(huì)屏蔽掉全局變量
21、?請(qǐng)閱讀下面的程序,分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因:如
果能,請(qǐng)寫出運(yùn)行結(jié)果。
inta,b;
voidfunc0
(
a=100;
b=200;
)
voidmain()
(
inta=5,b=7;
func();
printf(/za=%d,b=%d\n,,,a,b);
}
答案:a=5,b=7
解析:全局變量與局部變量重名時(shí),局部變量會(huì)屏蔽掉全局變量
22?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:用函數(shù)求x的絕對(duì)
值。
voidmain()
(
intx,y;
scanf(〃%d〃,&x);
printf(〃y=%d\n〃,y);
}
intabs(inta)
(
intb;
if(a>=0)
b二a;
else
答案:?y=abs(x);b=-a;returnb;
解析:abs()函數(shù)是求絕對(duì)值的函數(shù)。
23、?以卜check函數(shù)的功能是對(duì)value中的值進(jìn)行四舍五入計(jì)算,若計(jì)算后的值與ponse
的值相等,則顯示“WELLDONE!!”,否則顯示計(jì)算后的值。請(qǐng)?zhí)羁铡?/p>
voidcheck(intponse,floatvalue)
(
intval;
val=;
print(〃計(jì)算后的值:%d”,val);
if()
printfC\nWELLD0NE!!\n〃);
else
printf(〃\nSorrythecorrectansweris%d\n,z,val);
)
答案:?(int)((value*10+5)/10)val==ponse
解析:第一個(gè)填空處利用float型轉(zhuǎn)int型的規(guī)則實(shí)現(xiàn)四舍五入的計(jì)算;第二個(gè)填空處判
斷是否計(jì)算后的值與ponse的值相等。
24、?請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:求整數(shù)numl和num2
的最大公約數(shù),并返回該值。
intgongyue(intnuml,intnum2)
{
inttemp;
while()
(
temp=numl%num2;
numl=num2;
num2=temp;
)
return;
}
答案:?num2!=0numl
解析:循環(huán)條件是num2!=0,因?yàn)楸荒?shù)不能為0;nuiil在對(duì)num2取模的過程中一直在改
變,最后返回numl的值。
25?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:根據(jù)對(duì)x的輸入,
求1到x的累加和。
intfun(intn)
(
inti,c;
c=0;
for(i=l;i<=n;i++)
c=c+i;
}
voidmain()
intx;
scanf(線d〃,);
printf(〃%d\n〃,fun(x));
)
答案:?returnc;&x
解析:函數(shù)fun()中求總和,c是總和變量,最后返回c;
從鍵盤輸入x,則要對(duì)scanf()函數(shù)傳入變量x的地址。
26?、請(qǐng)閱讀卜面的程序,在空白處填寫止確的代碼,該程序的功能是:先輸入10個(gè)數(shù)據(jù)
到數(shù)組a中,再輸入x,然后在a數(shù)組中查找與x值相同的元素的所在位置。
voidmain()
(
inta[ll],x,i;
printf(''Enter10integers:Xn^);
for(i=l;;i++)
scanf(〃%d〃,a+i);
printf(z,Enterx:〃);
*a=x;i=10;
while(x!=*(a+i))
if(i>0)
printf("%5d'spositionis:%4d\n”,x,i);
else
printfC%dNotbeenfound!\n',x);
)
答案:?i<=10scanf(飛d〃,&x);break;
27?、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:輸入10個(gè)整數(shù)存
人數(shù)組x中,然后計(jì)算各元素的和,并將和存入S中。
voidmain()
(
intx[10],i,s;
for(i=0;i<10;i++)
s=0;
for(i=l;i<10;i++)
printf(〃/d〃,s);
)
答案:?scanf(,z%d*,&x[i]);s+=i;
解析:第一個(gè)空格從鍵盤輸入兀素的值;
第二個(gè)空格將元素存入變量s中;
28、?請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:讀入一個(gè)兩位的正
整數(shù),按字符型形式輸出。
voidmain()
(
intn;
scanf();
printf();
}
答案:?〃%d〃,&n〃機(jī)〃,n
29、?請(qǐng)閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請(qǐng)列出運(yùn)行的結(jié)
果,否則請(qǐng)說明編譯失敗的原因。
ttinclude<stdio.h>
intsum(inta)
(
intc=0;
staticintb=3;
c+=l;
b+=2;
returna+b+c;
}
voidmainO
(
inti;
inta=2;
for(i=0;i<5;i++)
printf(〃%d,〃,sum(a));
)
答案:8,10,12,14,16,
解析:sum()函數(shù)體中的靜態(tài)局部變量b會(huì)一直存在,其值不隨函數(shù)調(diào)用結(jié)束而銷毀。
30、編寫一個(gè)函數(shù),判斷一個(gè)數(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;
}
解析:?func0函數(shù)對(duì)傳入進(jìn)來(lái)的參數(shù)num進(jìn)行奇偶判斷;
主困數(shù)中調(diào)用funcO函數(shù),傳入?yún)?shù)得到判斷結(jié)果。
31、編寫一個(gè)函數(shù),實(shí)現(xiàn)1T00的相加和,并在主函數(shù)中調(diào)用。
答案:?#include<stdio.h>
intfunc()
{
intnum,sum=1;
for(num=1;num<=100;num++)
(
sum+=num;
}
returnsum;
}
intmainO
{
intsum=0;
sum=func0;
printf(**sum=%d”,sum);
return0;
}
解析:?func()函數(shù)實(shí)現(xiàn)卜100的相加和,并將結(jié)果返回給調(diào)用者.
主函數(shù)中的sum接收調(diào)用func函數(shù)的返回值,并將其打印
32、?請(qǐng)編寫一個(gè)程序,用戶從鍵盤輸入英文字母,如果是大寫,將其轉(zhuǎn)換成小寫輸出;如
果是小寫,將其轉(zhuǎn)換成大寫輸出。
提示:英文字母在計(jì)算機(jī)中以ASCII碼表形式存在。
答案:?#include<stdio.h>
intmain()
charch;
printf(〃請(qǐng)輸入英文字母:\n〃);
scanf(〃%c〃,&ch);
if(ch>='A'&&ch<='Z')
printf("%c\n”,ch+32);
elseif(ch>='a'&&ch<='z')
printf(z,%c\n,z,ch-32);
return0;
)
解析:英文字母對(duì)應(yīng)的ASCH碼值,大寫比對(duì)應(yīng)小寫小32
33、請(qǐng)編寫一個(gè)程序,用戶輸入一個(gè)十進(jìn)制整數(shù),分別輸出其十進(jìn)制、八進(jìn)制、十六進(jìn)制
對(duì)應(yīng)的數(shù)值。
答案:?#include<stdio.h>
intmain()
intnum;
scanf(“%d”,&num);
printf(“十進(jìn)制為:%d\n八進(jìn)制為:%o\n十六進(jìn)制為:%x\nw,num,num,num);
return0;
}
解析:十進(jìn)制輸入格式符為國(guó)d,八進(jìn)制輸出格式符為加,十六進(jìn)制輸出格式符為歌。
34、請(qǐng)編寫一個(gè)程序,實(shí)現(xiàn)兩個(gè)數(shù)的求和,并打印出來(lái)。
答案:?#include<stdio.h>
voidshow(ints)
(
printf("兩個(gè)數(shù)的和為:%d",s);
return;
}
voidadd(inta,intb)
ints=a+b;
show(s);
return;
)
intmain()
(
ints=a+b;
show(s);
return0;
}
解析:add()函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)相加,show。函數(shù)將兩個(gè)數(shù)相加的結(jié)果打印出來(lái)“
35?、請(qǐng)編寫一個(gè)程序,用戶從鍵盤隨機(jī)輸入四個(gè)數(shù),比較這個(gè)四個(gè)數(shù)得出其中最大值并輸
出。
提不:
1)編寫一個(gè)兩個(gè)數(shù)值比較的函數(shù)
2)編寫一個(gè)四個(gè)數(shù)值比較的函數(shù),調(diào)用這個(gè)函數(shù),在該函數(shù)中調(diào)用兩個(gè)數(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);
resmax2(res,d);
returnres;
}
intmainO
{
inta,b,c,d,max;
printf(〃請(qǐng)輸入四個(gè)整數(shù):〃);
scanf(M%d%d%d%d,,,&a,&b,&c,&d);
max=max4(a,b,c,d);
printf(〃max趣d\n”,max);
return0;
}
解析:輸入四個(gè)數(shù),調(diào)用max4()函數(shù),在max4()函數(shù)中乂調(diào)用max2()函數(shù)進(jìn)行兩兩比較,
最后得HI最大值,返回給調(diào)用函數(shù)。
36、?請(qǐng)編寫一個(gè)程序,計(jì)算s=2-2!+3-2!;
提示:
1)編寫一個(gè)函數(shù)計(jì)算平方值
2)編寫一個(gè)函數(shù)計(jì)算階乘
答案:?#include<stdio.h>
longfl(intp){
intk;
longr;
longf2(int);
k=p*p;
r=f2(k);
returnr;
}
longf2(intq){
longc=1;
inti;
for(i=1;i<=q;i++)
c=c*i;
returnc;
}
intmainO
{
inti;
longs=0;
for(i=2;i<=3;i++)
s=s+fl(i);
printf("\ns=%ld\n”,s);
return0;
}
解析:函數(shù)fl()實(shí)現(xiàn)了計(jì)算數(shù)值的平方,函數(shù)f2()實(shí)現(xiàn)了階乘計(jì)算,在fl()中調(diào)用f2()
實(shí)現(xiàn)了計(jì)算表達(dá)式的值。
37、?請(qǐng)編寫一個(gè)程序,用遞歸方法實(shí)現(xiàn)n!。
提示:
1)遞歸調(diào)用是函數(shù)自身調(diào)用自身的過程
2)每遞歸調(diào)用一次n就要自減一次
答案:?#include<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ù)實(shí)現(xiàn)遞歸,每調(diào)用一次n要減1.
38?、請(qǐng)編寫一個(gè)程序,求出口的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(〃%d\n〃,sum);
return0;
}
解析:func()實(shí)現(xiàn)遞歸調(diào)用,每乘上一個(gè)m,再用nT調(diào)用函數(shù),實(shí)現(xiàn)m的n次方。
39?、假設(shè)有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后
每個(gè)月又生一對(duì)兔子,假如兔子都存活,問一年之后(第13個(gè)月)月兔子總數(shù)為多少對(duì)?
提示:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,-
答案:?#incl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年國(guó)際貿(mào)易實(shí)務(wù)考試題國(guó)際貿(mào)易規(guī)則與操作流程
- 2026年人工智能技術(shù)與應(yīng)用專業(yè)考試題集
- 2026年公務(wù)員考試行測(cè)邏輯推理與判斷能力提升題集
- 2026年財(cái)經(jīng)法規(guī)與職業(yè)道德規(guī)范題庫(kù)
- 中石油消防管理規(guī)范
- 客訴知識(shí)培訓(xùn)
- 2026上海中醫(yī)藥大學(xué)國(guó)際教育學(xué)院英語(yǔ)教師招聘1人考試重點(diǎn)試題及答案解析
- 2026年上海大學(xué)單招綜合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026山西白求恩醫(yī)院 山西醫(yī)學(xué)科學(xué)院急需緊缺高層次人才招聘5人參考考試試題及答案解析
- 2026年鄭州電力職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 大采高綜采工作面操作規(guī)程
- 保密車間出入管理制度
- 肯德基副經(jīng)理養(yǎng)成課程
- 鐵路勞動(dòng)安全 課件 第四章 機(jī)務(wù)勞動(dòng)安全
- 智慧人社大數(shù)據(jù)綜合分析平臺(tái)整體解決方案智慧社保大數(shù)據(jù)綜合分析平臺(tái)整體解決方案
- 脊柱與四肢檢查課件
- 2024年河北省供銷合作總社招聘筆試參考題庫(kù)附帶答案詳解
- 宅基地及地上房屋確權(quán)登記申請(qǐng)審批表
- 醫(yī)療衛(wèi)生輿情課件
- 2024年甘肅省安全員A證考試題庫(kù)及答案
- 數(shù)據(jù)安全保護(hù)與隱私保護(hù)
評(píng)論
0/150
提交評(píng)論