




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單選題1、關于C語言中的函數(shù),下列描述正確的是( )A.函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套B.函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套C.函數(shù)的定義和函數(shù)的嵌套均不可以嵌套D.函數(shù)的定義和函數(shù)的調用均不可以嵌套答案:B解析:函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套2、定義一個函數(shù):exce(v1, v2), (v3,v4,v5),v6); 在該函數(shù)調用時,實參的個數(shù)為( )個A.3B.4C.5D.6答案:A解析:(v1, v2), (v3,v4,v5)和v6一共三個實參3、關于C語言中print()函數(shù)與scanf()函數(shù),下列描述中正確的是( )A.printf()函數(shù)可以向任何
2、地方輸出數(shù)據B.printf()只向控制臺輸出數(shù)據C.scanf()只能輸入英文字母和數(shù)字D.scanf()函數(shù)可以識別輸入的空格答案:B解析:printf()是向控制臺輸出的函數(shù)4、在C語言中,內部函數(shù)需要添加的關鍵字是( )A.externB.staticC.thisD.auto答案:B解析:在定義內部函數(shù)時,需要在函數(shù)的返回值類型前面添加static關鍵字(又稱為靜態(tài)函數(shù))。5、當調用時,會調用內部函數(shù)A.當調用時,會調用內部函數(shù)B.當調用時,會調用外部函數(shù)C.當調用時,會調用兩次,先調用內部函數(shù)再調用外部函數(shù)D.都不調用,會報錯答案:A解析:當內部函數(shù)與外部函數(shù)重名時,會優(yōu)先調用內部函
3、數(shù)6、在C語言中,聲明外部函數(shù)需要添加的關鍵字是( )A.externB.staticC.thisD.auto答案:A解析:聲明外部函數(shù)的方式是在函數(shù)的返回值類型前面添加extern關鍵字7、關于C語言中的局部變量,下列描述中錯誤的是( )A.局部變量就是在函數(shù)內部聲明的變量B.局部變量只在函數(shù)內部有效C.局部變量只有當它所在的函數(shù)被調用時才會被使用D.局部變量一旦被調用,其生存周期持續(xù)到程序結束答案:D解析:當函數(shù)調用結束時局部變量就會失去作用8、關于C語言中的全局變量,下列描述中正確的是( )A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類別變量的生存周期貫穿于整個程序的運行期間
4、C.函數(shù)的形參都屬于全局變量D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值答案:B解析:選項1不對:如果程序中只有一個主函數(shù),則在整個程序運行中,局部變量都在起作用;選項3不對:除了C+的引用類型參數(shù),所有函數(shù)的形參都是局部變量;選項4不對:static變量定義時就存儲地全局區(qū),初始化為0;9、當全局變量與局部變量重名時,那么在調用時( )A.局部變量會被屏蔽B.全局變量會被屏蔽C.都不會調用,系統(tǒng)會報錯D.會調用兩次,先調用局部變量,再調用全局變量答案:B解析:當局部變量與全局變量重名時,全局變量會被屏蔽。10、在C語言中,關于變量的作用域,下列描述中錯誤的是( )
5、A.局部變量只在整個函數(shù)的運行周期中有效B.全局變量的作用域為整個程序的運行周期C.當全局變量與局部變量重名時,局部變量會屏蔽掉全局變量D.全局變量會覆蓋掉所有與它重名的局部變量答案:D解析:當全局變量與局部變量重名時,全局變量會被屏蔽掉11、在C語言中,如果在一個函數(shù)的復合語句中定義了一個變量,則該變量( )A.只在該復合語句中有效,在該復合語句外無效B.在該函數(shù)中任何位置都有效C.在本程序的原文件范圍內均有效D.此定義方法錯誤,其變量為非法變量答案:D解析:1、2與3錯:函數(shù)復合語句中定義的變量在該復合語句中引用;但如果函數(shù)含有該變量,則在函數(shù)中可以引用該變量4對:在C+中在復合語句中定義
6、變量為合法,但在C語言中是非法的12、C語言程序的基本單位是( )。A.程序行B.語句C.函數(shù)D.字符答案:C解析:函數(shù)是C語言程序的基本單位13、C語言中決定函數(shù)返回值的類型的是( )。A.return語句中的表達式類型B.調用函數(shù)的主調函數(shù)類型C.調用函數(shù)時臨時D.定義函數(shù)時所指定的函數(shù)類型答案:D解析:函數(shù)的返回值取決于定義函數(shù)時指定的返回值類型14、若有函數(shù)調用語句:fun(a+b, (x,y), fun(n+k,d,(a,b); 在此函數(shù)調用語句中實參的個數(shù)是( )。A.3B.4C.5D.6答案:A解析:a+b返回一個值,(x,y)返回一個值,fun(n+k,d,(a,b)返回一個值
7、。15、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據,正確的輸入語句是( )。A.input x,y,z;B.scanf("%d%d%d",&x,&y,&z);C.scanf("%d%d%d",x,y,z);D.read("%d%d%d",&x,&y,&z);答案:B解析:讀取鍵盤輸入的數(shù)據要用scanf()函數(shù),scanf()中的參數(shù)要傳入變量的地址16、若變量已正確說明為float類型,要通過語句 scanf("%f %f %f",&a,&
8、amp;b,&c); 給a賦予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是( )。A.10 22 33B.10.0,22.0,33.0C.10.0 22.0 33.0D.10; 22; 33答案:B解析:用scanf()讀取從鍵盤輸入的數(shù)據時,中間不能加逗號,要用空格隔開17、若有定義:int x,y; char a,b,c; 并有以下輸入數(shù)據(此處u代表空格):1u2uAuBuC,那么能給x賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C的正確程序段是( )。A.scanf("x=%d y=%d",&x,&y);a=
9、getchar();b=getchar();c=getchar();B.scanf("%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解析:空格也會作為一個字符賦給字符變量。18、對嵌套子程序調
10、用說法正確的是( )。A.外層子程序可以調用所有的內層子程序B.內層子程序只可以調用包含本身的外層子程序,不可以隔層調用C.外分程序必須能完全套住內分程序D.以上說法均不正確答案:C19、C語言中函數(shù)能否嵌套調用和遞歸調用?( )A.二者均不可B.前者可,后者不可C.前者不可,后者可D.二者均可答案:D解析:兩者調用都可以20、C語言規(guī)定,程序中各函數(shù)之間( )。A.既允許直接遞歸調用也允許間接遞歸調用B.不允許直接遞歸調用也不允許間接遞歸調用C.允許直接遞歸調用不允許間接遞歸調用D.不允許直接遞歸調用允許間接遞歸調用答案:A解析:各程序間既可以直接調用也可以間接調用。21、有如下程序:lon
11、g fib(int n)if (n>2)return fib(n-1)+fib(n-2);elsereturn 2;void main()printf("%dn",fib(3);該程序的輸出結果是( )。A.2B.4C.6D.8答案:B解析:向fib()函數(shù)傳入3時,返回fib(1)+fib(2)的值;向fib()函數(shù)傳入1和2時,都返回2,所以fib(3)返回2+2=4。22、以下程序的輸出結果是( )。long fun(int n)long s;if (n=1 | n=2)s=2;elses=n-fun(n-1);return s;void main()print
12、f("%ldn", fun(3);A.1B.2C.3D.4答案:A解析:fun()函數(shù)傳入3時,返回3-fun(2);fun()函數(shù)傳入2時,返回2。所以fun(3)返回3-2=1。23、在C語言中,函數(shù)的隱含存儲類別是( )。A.autoB.staticC.externD.無存儲類別答案:C解析:為簡化編程,C語言中允許在定義外部函數(shù)時省略關鍵字extern。24、以下敘述中不正確的是( )。A.在不同的函數(shù)中可以使用相同名字的變量B.函數(shù)中的形式參數(shù)是局部變量C.在一個函數(shù)內定義的變量只在本函數(shù)范圍內有效D.在一個函數(shù)內的復合語句中定義的變量在本函數(shù)范圍內有效答案:D解
13、析:函數(shù)內的復合語句中定義的變量僅僅在該復合語句中有效。25、以下程序運行后,輸出結果是( )。int func(int a, int b)static int m=0,i=2;i+=m+1;m=i+a+b;return m;void main()int k=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%dn",p);A.8,15B.8,16C.8,17D.8,8答案:C解析:函數(shù)體內的靜態(tài)局部變量不隨函數(shù)的調用結束而銷毀,而是一直存在。26、以下程序的輸出結果是( )。int d=1;
14、int fun(int p)static int d=5;d+=p;printf("%d ",d);return d;void main()int a=3;printf("%d n",fun(a+fun(d);A.6 9 9B.6 6 9C.6 15 15D.6 6 15答案:C解析:首先調用fun(d),將全局變量d=1帶入,此時fun()函數(shù)內的靜態(tài)局部變量d的值是1,d+=p后d的值是6,輸出d的值,返回d的值;然后調用fun(a+6),將局部變量a=3帶入,此時fun()函數(shù)內的靜態(tài)局部變量d的值是6,d+=p后d賦值15,輸出d的值,返回d的值
15、。27、在C語言中,若需一變量只在本文件中所有函數(shù)使用,則該變量的存儲類別是( )。A.externB.registerC.autoD.static答案:D解析:static修飾全局變量時,表示該變量僅在本文件中可使用。28、下列程序的輸出結果是( )。int b=2;int func(int *a)b += *a;return b;void main()int a=2, res=2;res += func(&a);printf("%dn",res);A.4B.6C.8D.10答案:B解析:func()函數(shù)中,對全局變量b自增a的值,func()函數(shù)返回4;res+
16、=4,res賦值為6。29、請讀程序:void main()int a=1,b=2,c=3;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf("first:%d,%d,%dn",a,b,c);a+=c;printf("Second:%d,%d,%dn",a,b,c);printf("third:%d,%d,%dn",a,b,c);該程序的輸出是( )A.first: 12,4,12 Second: 26,4,12 third: 4,3,6B.first: 14,4,12 Second: 26,12,12 thi
17、rd: 26,3,4C.first: 14,4,12 Second: 26,4,12 third: 26,3,6D.first: 14,4,12 Second: 26,6,12 third: 26,4,6答案:C解析:程序運行到第6行時,a=2,b=3,c=6;程序運行到第10行時,a=14,局部變量b=4,c=12;程序運行到第13行時,a=26,局部變量b=4,c=12;程序運行到第15行時,a=26,b=3,c=6。30、以下程序運行后,輸出結果是( )。int d=1;int fun(int p)int d=5;d+=p+;printf("%d",d);int ma
18、in()int a=3;fun(a);d+=a+;printf("%dn",d);A.84B.99C.95D.44答案:A解析:fun()函數(shù)調用時代入局部變量a的值,fun()函數(shù)體內局部變量d自增3,輸出d的值,即8,fun()函數(shù)返回8,此時全局變量d的值不變。d+=a+后,全局變量d自增3,此時全局變量d的值是4,輸出全局變量d的值。31、以下程序的輸出結果是( )。int a, b;void fun()a=100; b=200;void main()int a=5, b=7;fun();printf("%d%d n",a,b);A.100200
19、B.57C.200100D.75答案:B解析:fun()函數(shù)改變的是全局變量的值,printf()函數(shù)輸出的是局部變量的值,fun()函數(shù)不會改變局部變量a、b的值。多選題1、在調用外部函數(shù)時,下列描述中正確的是( )(多選)A.只要有函數(shù)名,就能調用外部函數(shù)B.調用外部函數(shù)要包含外部函數(shù)所在的頭文件C.外部函數(shù)與調用者定義在同一個源文件下D.在聲明外部函數(shù)時,外部函數(shù)與原函數(shù)定義的返回值類型、函數(shù)名稱和參數(shù)列表必須一致答案:B,D解析:外部函數(shù)調用時要包含其所在的頭文件,當調用者聲明了外部函數(shù)的原型,也可以不用包含頭文件判斷題1、局部變量就是在函數(shù)內部聲明的變量。答案:true解析:局部變量
20、就是在函數(shù)內部聲明的變量。2、局部變量只有當它所在的函數(shù)被調用時才會被使用,而當函數(shù)調用結束時局部變量就會失去作用。答案:true解析:局部變量只有當它所在的函數(shù)被調用時才會被使用,而當函數(shù)調用結束時局部變量就會失去作用。3、局部變量就是在函數(shù)內部聲明的變量,它只在本函數(shù)內有效。答案:true解析:局部變量就是在函數(shù)內部聲明的變量,它只在本函數(shù)內有效,也就是說,只能在本函數(shù)內使用它。4、局部變量只有當它所在的函數(shù)被調用時才會被使用,當函數(shù)調用結束時局部變量還會一直存在。答案:false解析:局部變量只有當它所在的函數(shù)被調用時才會被使用,而當函數(shù)調用結束時局部變量就會失去作用。簡答題1、請閱讀下
21、面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void func(int a, int b)printf(" %d",a + b);void main()func(3,2);printf("n");答案:5解析:fun()是一個實現(xiàn)兩個數(shù)相加的函數(shù),在主函數(shù)中調用并傳入值,得到兩個數(shù)的和2、請閱讀下面的程序,在空白處填寫正確的代碼,將函數(shù)的結果返回給調用者。int func(int a, int b) int sum = 0;sum = a + b; ;void main() int sum = 0; = fun
22、c(3,2);printf("兩個數(shù)相加的結果為%d",sum);答案:return sum;sum ;解析:return sum;return 將函數(shù)結果返回sum ;主函數(shù)中sum接收函數(shù)返回的值3、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void main()int num = 100; printf(“%d, %o, %xn”,num,num,num);答案:100 144 64解析:printf()函數(shù)將十進制數(shù)100分別以十進制,八進制,十六進制形式輸出。4、請閱讀下面的程序,當用戶從鍵盤輸入hello w
23、orld時,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void main()char str256;scanf(“%s”,str);printf(“%sn”,str);答案:hello解析:輸入hello world時,中間的空格對scanf()函數(shù)來說是終止符,后面的內容無法讀取。5、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。用戶從鍵盤輸入兩個整型數(shù)據,將兩個數(shù)據相加輸出。void main() int a,b; ; printf(“%dn”, );答案:scanf(“%d%d”,&a,&b);a + b;解析:鍵盤輸入數(shù)據,
24、用scanf()函數(shù);輸入兩個數(shù)據的和a + b; 6、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int func2(int a, int b)int c;c = a * b % 3;return c;int func1(int a, int b)int c;a += a;b += b;c = func2(a, b);return c * c;void main()int x = 11, y = 19;printf("the final result is:%dn", func1(x, y);答案:4解析:x = 11,
25、y = 19傳入func1()函數(shù),在func1()函數(shù)中經過運算變?yōu)?2,38,然后傳入給func2()函數(shù),返回運算結果2,func1()函數(shù)收到返回值2以后再經過運算返回給主調用函數(shù)結果為4。7、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void func2(int a, int b) a = a + 10;b = a + 10;void func(int a, int b)a = func2();b = func2();void main()int x = 1, y = 10; func1(x,y);printf("x =
26、 %d, y = %dn”,x, y);答案:x = 1, y = 10;解析:將實參傳遞給形參,只是復制了一份給x,y的值,參數(shù)在被調用函數(shù)內部改變,不影響其在調用函數(shù)中的值。8、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。用戶從鍵盤輸入四個數(shù),比較得出四個數(shù)中的最大值并輸出。int max2(int a, int b) if (a > b)return a;elsereturn b;int max4(int a, int b, int c, int d) int res;res = max2(a, b);res = ;res = max2(res, d); ;void m
27、ain() int a, b, c, d, max;printf("請輸入四個整數(shù):"); ;max = max4(a, b, c, d);printf("max=%d n", max);答案:max2(res,c);return res;scanf(“%d%d%d%d”,&a,&b,&c,&d);解析:在max4()函數(shù)中,res = max2(a,b)返回的是a,b中的最大值,這個最大值再與c進行比較,所以res = max2(res,c),返回的較大的值再與d作比較,再將比較得出的較大的值返回給主調用函數(shù),這個較大的
28、值就是四個數(shù)中的最大值。9、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int add(int n) if (n = 1)return 1;elsereturn n + add(n - 1);void main()int n = 5;int sum = add(5);printf(“結果為:%dn”,sum);答案:15解析:add()函數(shù)進行遞歸調用,傳入的參數(shù)5,會一直遞減相加直到遞減至1。10、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void fun(int n) if (n>
29、;0) printf("%dt", n);fun(-n); void main()int a = 5; fun(a); 答案:5 4 3 2 1解析:fun()函數(shù)遞歸調用,每打印一次就自減再調用一次自己。11、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。用遞歸方法求出n!。int fac(int n)int t;if( )return 1;elset = ;return t;void main() int m, y;printf("Enter m : n");scanf("%d", &m);if (m<0)
30、 printf("Input data Error!n");elsey = fac(m);printf("n%d!= %d n", m, y);答案:(n = 1) | (n = 0)n*fac(n - 1)解析:實現(xiàn)n的階乘,當n =0或者n=1時,階乘沒有意義,當n>1時,實現(xiàn)階乘,則為n*fun(n-1);12、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int x = 5;static void cude()x = x*x*x;void main()cude();printf("
31、x = %dn", x);答案:125解析:全局變量x,當調用cude()內部函數(shù)時,并沒有傳入參數(shù),沒有復制,所以x值的變化直接改變了x本身的值13、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。first.c文件int func(int a, int b) return a + b;second.c文件static int func(int a, int b) return a b;void main() int x = 5, y = 2; printf(“%dn”,func(5, 2);答案:3解析:當內部函數(shù)與外部函數(shù)重名時,
32、會優(yōu)先調用內部函數(shù)14、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。first.c源文件int func(int a, int b) return a + b;second.c源文件extern int func(int a, int b);void main() int x = 5, y = 2; printf(“%dn”,func(5, 2);答案:7解析:在second.c中聲明了int func(int a, int b);函數(shù)原型,可以調用first.c中的函數(shù)。15、請閱讀下面的程序,在空白處填寫正確的代碼,實現(xiàn)下列功能。有一個外
33、部函數(shù),用戶輸入一個數(shù)字,可以實現(xiàn)奇偶數(shù)的判斷。實現(xiàn)在主函數(shù)中調用這個外部函數(shù)。first.c源文件void func(int num) if(num %2 = 0) printf(“這是一個偶數(shù)!n”);second.c源文件 ;void main() int num; scanf(“%d”,&num); func(num);答案:extern void func(int num);解析:調用外部函數(shù),可以包含函數(shù)所在的頭文件,也可以在本文件中聲明函數(shù)原型。16、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。void show()in
34、t x = 0;void main() printf("x的值為:%dn", x);答案:不能運行解析:變量x為函數(shù)show()的局部變量,只在show()函數(shù)范圍內有效,在main()中無法調用。17、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int show()int x = 0;return x;void main() int x = 10; show(); printf("x的值為:%dn", x);答案:x的值為:10解析:main()函數(shù)中的x是局部變量,不受show()函數(shù)調用的影響。1
35、8、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int x = 10;void main() int x = 100; printf(“%d”,x);答案:100解析:當全局變量與局部變量重名時,全局變量會被屏蔽掉。19、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int x = 2;void func(int x)x = x * x * x;void main()func(x);printf("%dn", x);答案:2解析:全局變量作為實參傳遞給函數(shù),在函數(shù)中的運算并
36、不改變其原來的值。20、請閱讀下面的程序,分析程序是否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int x=10;void show() int x=20; printf("show()函數(shù)中x的值為:%dn",x);void main() int x=30; printf("main()函數(shù)中x的值為:%dn",x); show();答案:main()函數(shù)中x的值為:30show()函數(shù)中x的值為:20解析:局部變量只在它所在的函數(shù)內部有效,且當全局變量與局部變量重名時,局部變量會屏蔽掉全局變量21、請閱讀下面的程序,分析程序是
37、否能編繹通過并正確運行,如果不能,說明原因;如果能,請寫出運行結果。int a, b;void func()a = 100;b = 200;void main()int a = 5, b = 7;func();printf("a = %d, b = %dn", a, b);答案:a = 5, b = 7解析:全局變量與局部變量重名時,局部變量會屏蔽掉全局變量22、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:用函數(shù)求x的絕對值。void main()int x,y;scanf("%d",&x);_printf("y=%dn&
38、quot;,y);int abs(int a)int b;if (a>=0)b=a;else_答案:y=abs(x);b=-a;return b;解析:abs()函數(shù)是求絕對值的函數(shù)。23、以下check函數(shù)的功能是對value中的值進行四舍五入計算,若計算后的值與ponse的值相等,則顯示“WELL DONE!”,否則顯示計算后的值。請?zhí)羁?。void check(int ponse, float value)int val;val = _;print("計算后的值:%d", val);if (_)printf("n WELL DONE!n");e
39、lseprintf("nSorry the correct answer is %dn",val);答案:(int)(value*10 + 5)/10)val = ponse解析:第一個填空處利用float型轉int型的規(guī)則實現(xiàn)四舍五入的計算;第二個填空處判斷是否計算后的值與ponse的值相等。24、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:求整數(shù)num1和num2的最大公約數(shù),并返回該值。int gongyue(int num1, int num2)int temp;while (_)temp = num1 % num2;num1 = num2;num2
40、= temp;return _;答案:num2!=0num1解析:循環(huán)條件是num2!=0,因為被模數(shù)不能為0;num1在對num2取模的過程中一直在改變,最后返回num1的值。25、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:根據對x的輸入,求1到x的累加和。int fun(int n)int i,c;c=0;for (i=1;i<=n;i+)c=c+i;_void main()int x;scanf("%d", _);printf("%dn",fun(x);答案:return c;&x解析:函數(shù)fun()中求總和,c是總和
41、變量,最后返回c;從鍵盤輸入x,則要對scanf()函數(shù)傳入變量x的地址。26、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:先輸入10個數(shù)據到數(shù)組a中,再輸入x,然后在a數(shù)組中查找與x值相同的元素的所在位置。void main()int a11,x,i;printf("Enter 10 integers:n");for (i=1; _;i+)scanf("%d",a+i);printf("Enter x:");_*a=x;i=10;while (x!=*(a+i)_if (i>0)printf("%5d&
42、#39;s position is:%4dn",x,i);elseprintf("%d Not been found!n",x);答案:i<=10scanf("%d",&x);break;27、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:輸入10個整數(shù)存入數(shù)組x中,然后計算各元素的和,并將和存入S中。void main()int x10,i,s;for (i=0;i<10;i+)_s=0;for (i=1; i<10; i+)_printf("%d",s);答案:scanf("
43、;%d",&xi);s+=i;解析:第一個空格從鍵盤輸入元素的值;第二個空格將元素存入變量s中;28、請閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:讀入一個兩位的正整數(shù),按字符型形式輸出。void main()int n;scanf(_);printf(_);答案:"%d",&n"%c",n29、請閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請列出運行的結果,否則請說明編譯失敗的原因。#include<stdio.h>int sum(int a)int c=0;static int b=3;
44、c+=1;b+=2;return a+b+c;void main()int i;int a=2;for (i=0; i<5; i+)printf("%d,", sum(a);答案:8,10,12,14,16,解析:sum()函數(shù)體中的靜態(tài)局部變量b會一直存在,其值不隨函數(shù)調用結束而銷毀。30、編寫一個函數(shù),判斷一個數(shù)是奇數(shù)還是偶數(shù),并在主函數(shù)中調用。答案:#include <stdio.h>void func(int num) if(num %2 = 0) printf(“該數(shù)是偶數(shù)”); else printf(“該數(shù)是奇數(shù)”);int main() i
45、nt num; scanf(“%d”,&num); func(num); return 0;解析:func()函數(shù)對傳入進來的參數(shù)num進行奇偶判斷;主函數(shù)中調用func()函數(shù),傳入參數(shù)得到判斷結果。31、編寫一個函數(shù),實現(xiàn)1-100的相加和,并在主函數(shù)中調用。答案:#include <stdio.h>int func()int num, sum = 1;for(num = 1; num <= 100; num+) sum += num;return sum;int main() int sum = 0; sum = func(); printf(“sum = %d
46、”,sum); return 0;解析:func()函數(shù)實現(xiàn)1-100的相加和,并將結果返回給調用者。主函數(shù)中的sum接收調用func函數(shù)的返回值,并將其打印32、請編寫一個程序,用戶從鍵盤輸入英文字母,如果是大寫,將其轉換成小寫輸出;如果是小寫,將其轉換成大寫輸出。提示:英文字母在計算機中以ASCII碼表形式存在。答案:#include <stdio.h>int main() char ch;printf("請輸入英文字母:n");scanf("%c", &ch); if (ch >= 'A' &&am
47、p; ch <= 'Z')printf("%cn", ch + 32);else if (ch >= 'a' && ch <= 'z')printf("%cn", ch - 32); return 0;解析:英文字母對應的ASCII碼值,大寫比對應小寫小3233、請編寫一個程序, 用戶輸入一個十進制整數(shù),分別輸出其十進制、八進制、十六進制對應的數(shù)值。答案:#include <stdio.h>int main() int num; scanf(“%d”,&
48、num); printf(“十進制為:%dn八進制為:%on十六進制為:%xn”,num,num,num); return 0;解析:十進制輸入格式符為%d,八進制輸出格式符為%o,十六進制輸出格式符為%x。34、請編寫一個程序,實現(xiàn)兩個數(shù)的求和,并打印出來。答案:#include <stdio.h>void show(int s) printf("兩個數(shù)的和為:%d", s); return; void add(int a, int b) int s = a + b; show(s); return;int main() int s = a + b; show
49、(s); return 0;解析:add()函數(shù)實現(xiàn)兩個數(shù)相加,show()函數(shù)將兩個數(shù)相加的結果打印出來。35、請編寫一個程序,用戶從鍵盤隨機輸入四個數(shù),比較這個四個數(shù)得出其中最大值并輸出。提示:1)編寫一個兩個數(shù)值比較的函數(shù)2)編寫一個四個數(shù)值比較的函數(shù),調用這個函數(shù),在該函數(shù)中調用兩個數(shù)值比較的函數(shù)答案:#include <stdio.h>int max2(int a, int b) if (a > b)return a;elsereturn b;int max4(int a, int b, int c, int d) int res;res = max2(a, b);
50、res =max2(res,c);res = max2(res, d);return res;int main() int a, b, c, d, max;printf("請輸入四個整數(shù):");scanf(“%d%d%d%d”,&a,&b,&c,&d);max = max4(a, b, c, d);printf("max=%d n", max); return 0;解析:輸入四個數(shù),調用max4()函數(shù),在max4()函數(shù)中又調用max2()函數(shù)進行兩兩比較,最后得出最大值,返回給調用函數(shù)。36、請編寫一個程序,計算s =
51、 22! + 32!;提示:1)編寫一個函數(shù)計算平方值2)編寫一個函數(shù)計算階乘答案:#include <stdio.h>long f1(int p)int k;long r;long f2(int);k = p*p;r = f2(k);return r;long f2(int q)long c = 1;int i;for (i = 1; i <= q; i+)c = c*i;return c;int main() int i;long s = 0;for (i = 2; i <= 3; i+)s = s + f1(i);printf("ns=%ldn"
52、;, s); return 0;解析:函數(shù)f1()實現(xiàn)了計算數(shù)值的平方,函數(shù)f2()實現(xiàn)了階乘計算,在f1()中調用f2()實現(xiàn)了計算表達式的值。37、請編寫一個程序,用遞歸方法實現(xiàn)n!。提示:1)遞歸調用是函數(shù)自身調用自身的過程2)每遞歸調用一次n就要自減一次答案:#include <stdio.h>int add(int n) if (n = 1)return 1;elsereturn n + add(n - 1);int main() int n ;scanf(“%d”,&n);int sum = add(n);printf(“結果為:%dn”,sum); retur
53、n 0;解析:add()函數(shù)實現(xiàn)遞歸,每調用一次n要減1.38、請編寫一個程序,求出m的n次方。提示:編寫遞歸函數(shù)求解。答案:#include <stdio.h>int func(int m, int n)if (n = 1)return m;elsereturn m*func(m, n - 1);int main() int m, n,sum;scanf("%d%d", &m, &n);sum = func(m, n);printf("%dn", sum); return 0;解析:func()實現(xiàn)遞歸調用,每乘上一個m,再用n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漁業(yè)養(yǎng)殖與資源利用合作協(xié)議
- 監(jiān)理合同標準空白模板
- 租房合同完整版模板
- 醫(yī)院科室分類及功能簡介
- 高一人教版英語《Teenage Life Reading and Thinking》
- 領導力的多維發(fā)展培訓工程師視角
- 顧客行為分析在新零售市場營銷中的運用
- 項目施工中的跨部門人員協(xié)作培訓
- 非遺文化在文化節(jié)慶活動中的傳播效果評估
- 項目管理中的數(shù)據分析工具運用案例
- 污水廠防汛知識培訓課件
- 2025-2030中國定向能量激光系統(tǒng)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析研究報告
- 2025-2030中國醫(yī)療美容行業(yè)市場深度調研及競爭格局與投資研究報告
- 安徽省合肥市蜀山區(qū)2025年數(shù)學五下期末監(jiān)測試題含答案
- 門窗鋼副框施工方案
- 《測繪生產成本費用定額》(2025版)
- 2025年宿遷中考試題及答案英語
- 2025年麻精藥品考試試題及答案
- 全國2160個氣象臺站經緯度坐標
- 統(tǒng)計學-形考任務4-國開-參考資料
- 硬質景觀專項施工方案
評論
0/150
提交評論