2022年湖北專升本C語言函數(shù)模擬題
一、單項(xiàng)選擇題
1.以下程序的輸出結(jié)果是(C)。
int d=1;
fun(int p)
{static int d=5;
d+=p;
printf("%d ",d);
return(d);
}
main( )
{ int a=3; printf("%d\n",fun(a+fun(d)));}
A) 6 9 9
B) 6 6 9
C) 6 15 15
D) 6 6 15
2.下列程序執(zhí)行后的輸出結(jié)果是( C)。
void func1(int i);
void func2(int i);
char st[ ]="hello,friend!";
void func1(int i)
{printf("%c", st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{printf("%c", st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{int i=0; func1(i); printf("\n");}
A) hello
B) hel
C) hlo
D) hlm
3.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是(B)。
A) 地址傳遞
B) 單向值傳遞
C) 由實(shí)參傳給形參,再由形參傳回實(shí)參
D) 傳遞方式由用戶指定
4.以下函數(shù)值的類型是( A )。
fun( float x )
{float y;
y=3*x-4;
return y;
}
A) int
B) 不確定
C) void
D) float
5.設(shè)有以下函數(shù):
f( int a)
{int b=0;
static int c=3;
b++; c++;
return(a+b+c);
}
如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是(A)。
main()
{int a=2, i;
for(i=0;i<3;i++) printf("%d\n", f(a));
}
6.以下程序的輸出結(jié)果是(B)。
int a, b;
void fun()
{a=100; b=200;}
main()
{int a=5, b=7;
fun();
printf("%d%d\n", a, b);
}
A) 100200
B) 57
C) 200100
D) 75
7.以下所列的各函數(shù)首部中,正確的是(C)。
A) void play(var a:Integer, var b:Integer)
B) void play(int a, b)
C) void play(int a, int b)
D) Sub play(a as integer, b as integer)
8.以下程序的輸出結(jié)果是(C)。
fun(int x, int y, int z)
{z=x*x+y*y; }
main()
{int a=31;
fun(5, 2, a);
printf("%d", a);
}
A) 0
B) 29
C) 31
D) 無定值}
9.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則實(shí)參向形參傳遞的是( B)。
A) 數(shù)組的長度
B) 數(shù)組的首地址
C) 數(shù)組每一個(gè)元素的地址
D) 數(shù)組每個(gè)元素中的值
10.以下程序的輸出結(jié)果是(A)。
long fun( int n)
{long s;
if(n= =1 || n= =2) s=2;
else s=n-fun(n-1);
return s;
}
main()
{printf("%ld\n", fun(3)); }
A) 1
B) 2
C) 3
D) 4
11.有如下函數(shù)調(diào)用語句:
func(rec1, rec2+rec3, (rec4, rec5));
在該函數(shù)調(diào)用語句中,含有的實(shí)參個(gè)數(shù)是( A)。
A) 3
B) 4
C) 5
D) 有語法錯(cuò)
12.有如下程序:
int func(int a,int b)
{return(a+b);}
main( )
{int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%d\n”,r);
}
該程序的輸出的結(jié)果是( D )。
A) 12
B) 13
C) 14
D) 15
13.以下程序的輸出結(jié)果是( B)。
long fib(int n)
{if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main( )
{printf(“%ld\n”,fib(3));}
A) 2
B) 4
C) 6
D) 8
14.在 C 語言中,變量的隱含存儲(chǔ)類別是( A )。
A) auto
B) static
C) extern
D) 無存儲(chǔ)類別
15.在下列的函數(shù)調(diào)用中,不正確的是( D )。
A) max(a,b);
B) max(3,a+b);
C) max(3,5);
D) int max(a,b);
16.以下程序的輸出結(jié)果是( C)。
func(int x, int y)
{int z;
z=x+y;
return z;
}
main( )
{int a=10, b=20, c=30, s;
s=func((a--, b++, a+b), c--);
printf(“%d\n”, s);
}
A) 30
B) 40
C) 60
D) 50
17.現(xiàn)有以下程序:
#include
inverse(char str[ ])
{char t;
int i, j;
for(i=0, j=strlen(str); i {t=str[i]; str[i]=str[j-1]; str[j-1]=t; } } main( ) {char str[100]; scanf(“%s”, str); inverse(str); printf(“%s\n”, str); } 如果輸入 an anple,該程序的輸出結(jié)果是(D)。 A) an anple B) elpna na C) an D) na 18.在下列敘述中,正確的一條是( A )。 A) puts 和 gets 函數(shù)只能輸入或輸出一個(gè)字符串 B) 在 C 語言中,函數(shù)可以遞歸調(diào)用或遞歸定義 C) 用 scanf 函數(shù)輸入數(shù)據(jù)時(shí)可以規(guī)定精度,例如 scanf(“%7.2f”,&a); D) 外部變量只限于本文件中使用 19.以下程序的輸出結(jié)果是( C)。 power(int x, int n) {int p; if(n>0) p=power(x, n-1)*x; else p=1; return (p); } main( ) {int x=2, n=3; printf(“%d\n”, power(x, n)); } A) 5 B) 6 C) 8 D) 9 20.在 C 語言的函數(shù)中( C)。 A) 必須有形參 B) 形參必須是變量名 C) 可以有也可以沒有形參 D) 數(shù)組名不能作形參 21.當(dāng)輸入 a1b2c3d4e 時(shí),以下程序的輸出結(jié)果為( A )。 #include main( ) {char str[40]; printf(“請(qǐng)輸入含有四個(gè)數(shù)字字符的字符串:\n”); scanf(“%s”,str); insert(str); } insert(char str[ ]) {int i; for(i=strlen(str);i>0;i--) {str[2*i]=str[i]; str[2*i-1]= ‘ ’; } printf(“\n 結(jié)果是:%s”, str); } A) a 1 b 2 c 3 d 4 e B) 1 2 3 4 C) a 1 b 2 D) 因輸入錯(cuò)誤,程序出錯(cuò) 22.在下列敘述中,錯(cuò)誤的一條是( A )。 A) 主函數(shù) main 中定義的變量在整個(gè)文件或程序中有效 B) 不同函數(shù)中,可以使用相同名字的變量 C) 函數(shù)中的形式參數(shù)是局部變量 D) 在一個(gè)函數(shù)內(nèi)部,可在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效 23.以下程序的輸出結(jié)果是( A)。 #include main( ) {int i; for(i=0; i<2; i++) as ( ); } as( ) {int lv=0; static int sv=0; printf(“l(fā)v=%d, sv=%d”, lv, sv); lv++; sv++; } A) lv=0,sv=0,lv=0,sv=1 B) lv=0,sv=0,lv=1,sv=1 C) lv=0,sv=0,lv=0,sv=0 D) lv=0,sv=1,lv=0,sv=1 24.在下列敘述中,錯(cuò)誤的一條是( B )。 A) 全局變量存放在靜態(tài)存儲(chǔ)區(qū)中,在程序開始執(zhí)行時(shí)就給全局變量分配存儲(chǔ)區(qū),程序執(zhí)行完才釋放 B) 在有參函數(shù)中,形參在整個(gè)程序一開始執(zhí)行時(shí)便分配內(nèi)存單元 C) 用數(shù)組名作函數(shù)實(shí)參和形參時(shí),應(yīng)在主調(diào)函數(shù)和被調(diào)用函數(shù)中分別定義數(shù)組 D) 在同一個(gè)源文件中,全局變量與局部變量同名時(shí),在局部變量的作用范圍內(nèi),全局變量不起作用 25.在下列語句中,不正確的是( D)。 A) c=2*max(a,b); B) m=max(a,max(b,c)); C) printf(“%d”,max(a,b)); D) int max(int x,int max(int y,int z)); 26.若輸入 1.5、2.5,以下程序的輸出結(jié)果為( C)。 main( ) {int max(float x, float y); float a, b; int c; scanf(“%f, %f” , &a, &b); c=max(a, b); printf(“%d”, c); } max(float x, float y) {float z; z=x>y ? x : y; return(z); } A) 1 B) 2.5 C) 2 D) 3 27.下列程序結(jié)構(gòu)中,正確的是( D)。 A) main() {float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a,b); … } int add(float x,float y) { … } B) main() {float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a,b); … } float add(float x,float y) { … } C) float add(); main() {float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a,b); … } float add(float x,float y) { … } D) float add(float x,float y) { … } main() {float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a,b); … } 28.在下列敘述中,錯(cuò)誤的一條是( B)。 A) scanf 函數(shù)可以用來輸入任何類型的多個(gè)數(shù)據(jù) B) 數(shù)組名作函數(shù)參數(shù)時(shí),也采用“值傳遞”方式 C) 如果形參發(fā)生改變,不會(huì)改變主調(diào)函數(shù)的實(shí)參值 D) 函數(shù)的實(shí)參與形參的類型應(yīng)一致 29.以下程序的輸出結(jié)果是( B)。 main() {int i=1,j=3; printf(“%d”,i++); {int i=0; i+=j*2; printf(“%d,%d”,i,j); } printf(“%d,%d\n”,i,j); } A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3 30.C 語言中形參的缺省存儲(chǔ)類別是( A)。 A) 自動(dòng)(auto) B) 靜態(tài)(static) C) 寄存器(register) D) 外部(extern) 31.設(shè)有如下函數(shù): ggg(float x) {printf(“\n%d”, x*x);} 則函數(shù)的類型為( C )。 A) 與參數(shù) x 的類型相同 B) void C) int D) 無法確定 32.C 語言規(guī)定,程序中各函數(shù)之間( A) A) 既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用 B) 不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用 C) 允許直接遞歸調(diào)用不允許間接遞歸調(diào)用 D) 不允許直接遞歸調(diào)用允許間接遞歸調(diào)用 33.下面程序的輸出結(jié)果是( A)。 main() {int i=2,p; p=f(i,i+1); printf(“%d”,p); } int f(int a,int b) {int c; c=a; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } A) -1 B) 0 C) 1 D) 2 34.以下程序的輸出結(jié)果為(B)。 f(int b[ ], int n) {int i, r; r=1; for(i=0; i<=n; i++) r=r*b[i]; return(r); } main() {int x, a[ ]={2,3,4,5,6,7,8,9}; x=f(a, 3); printf(“%d\n”, x); } A) 720 B) 120 C) 24 D) 6 35.下列程序執(zhí)行后的輸出結(jié)果是( D)。 f(int a) {int b=0; static c=3; a=c++, b++; return(a); } main( ) {int a=2, i, k; for(i=0;i<2;i++) k=f(a++); printf(“%d\n”, k); } A) 3 B) 0 C) 5 D) 4 36.下列程序執(zhí)行后輸出的結(jié)果是( A)。 int d=1; fun(int p) {int d=5; d+=p++; printf(“%d”, d); } main( ) {int a=3; fun(a); d+=a++; printf(“%d\n”, d); } A) 84 B) 96 C) 94 D) 85 37.以下程序的輸出結(jié)果是( B)。 fun(int k) {if(k>0) fun(k-1); printf(“%d”, k); } main( ) {int w=5; fun(w); } A) 54321 B) 012345 C) 12345 D) 543210 38.以下說法中正確的是( C )。 A) C 語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行 B) 在 C 語言程序中,被調(diào)用的函數(shù)必須在 main()函數(shù)中定義 C) C 語言程序總是從 main()函數(shù)開始執(zhí)行 D) C 語言程序中的 main()函數(shù)必須放在程序的開始部分 39.以下程序的輸出結(jié)果是( C )。 int abc(int u, int v); main() {int a=24, b=16, c; c=abc (a, b); printf(“%d\n”, c); } int abc(int u, int v) {int w; while(v) {w= u%v; u=v; v=w;} return u; } A) 6 B) 7 C) 8 D) 9 二、填空題 1.下列程序的輸出結(jié)果是5 6。 int t(int x, int y, int cp, int dp) {cp=x*x+y*y; dp=x*x-y*y; } main( ) {int a=4, b=3, c=5, d=6; t(a, b, c, d); printf("%d %d\n", c, d); } 2.以下程序的運(yùn)行結(jié)果是8,17。 #include main() {int k=4, m=1, p; p=func(k, m); printf("%d,", p); p=func(k, m); printf("%d\n", p); } func(int a, int b) {static int m=0, i=2; i+=m+1; m=i+a+b; return m; } 3.以下程序輸出的最后一個(gè)值是120。 int ff(int n) {static int f=l; f=f*n; return f; } main() {int i; for(i=1;i<=5;i++) printf("%d\n",ff(i)); } 4.以下函數(shù)的功能是:求 x 的 y 次方,請(qǐng)?zhí)羁铡?/p> double fun(double x, int y) {int i; double z; for(i=1, z=x; i return z; } 5.若變量 n 中的值為 24,則 prnt 函數(shù)共輸出5行,最后一行有4個(gè)數(shù)。 void prnt(int n, int aa[ ]) {int i; for(i=1; i<=n; i++) {printf("%6d", aa[i]); if(!(i%5)) printf("\n"); } printf("\n"); } 6.以下程序中,主函數(shù)調(diào)用了 LineMax 函數(shù),實(shí)現(xiàn)在 N 行 M 列的二維數(shù)組中,找出每一行上的最大值。請(qǐng)?zhí)羁铡?/p> #define N 3 #define M 4 void LineMax(int x[N][M]) 7.函數(shù) pi 的功能是根據(jù)以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+ … +1/(n*n)請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π的功能。 #include “math.h” double pi(long n) {double s=0.0; long i; for(i=1;i<=n; i++) s=s+1.0/i*i; return(sqrt(6*s)); } 8.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且 fun 函數(shù)為 void 類型;請(qǐng)寫出 fun 函數(shù)的首部void fun( double b[10][22])。要求形參名為 b。 main() {double s[10][22]; int n; … fun(s); … } 9.輸入 12 時(shí),程序輸出結(jié)果為12 is not prime number.;若輸入 17,輸出結(jié)果為 17 is primenumber.。 main() {int number; scanf(“%d”, &number); if(prime(number)) printf(“\n%d is prime number.”, number); else printf(“\n%d is not prime number.”, number); } int prime(int number) {int flag=1, n; for(n=2; n if(number%n= =0) flag=0; return(flag); } 10.理解下面的程序,填空完善程序。 main() {int a, b, c; scanf(“%d %d”,&a,%b); c=max(a, b); printf(“a=%d b=%d max=%d\n”, a, b, c); } int max(x, y) int x,int y; {int z; if(x>y) z=x; else z=y; return z; } 11.下面程序的輸出結(jié)果是2,5,1,2,3,-2。 main() {int a=3, b=2, c=1; c-=++b; b*=a+c; {int b=5, c=12; c/=b*2; a-=c; printf(“%d, %d, %d,”, a, b, c); a+=--c; } printf(“%d, %d, %d”, a, b, c); } 12.下面的 findmax 函數(shù)返回?cái)?shù)組 s 中值為最大的元素的下標(biāo),數(shù)組中元素的個(gè)數(shù)由 t 傳人,請(qǐng)?zhí)羁铡?/p> findmax(int s[ ], int t) {int k, p; for(p=0, k=p; p if(s[p]>s[k]) p=k; return k; } 13.下面程序的輸出結(jié)果是7。 fun(int x) {int p; if(x= =0||x= =1) return(3); p=x-fun(x-2); return p; } main() {printf(“%d\n”, fun(9));} 14.函數(shù) fun 的功能是:使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁铡?/p> void fun(char str[ ]) {char m; int i, j; for(i=0, j=strlen(str); i< strlen(str); i++, j--) {m=str[i]; str[i]=str[j-1]; str[j-1]=m; } printf(“%s\n”, str); } 以上就是關(guān)于2022年湖北專升本C語言函數(shù)模擬題的全部內(nèi)容了,如果你還有專升本相關(guān)的疑惑(如專升本報(bào)名、考試動(dòng)態(tài)、院校招生簡(jiǎn)章、統(tǒng)考動(dòng)態(tài)、湖南專升本院校、歷年真題、考試大綱、專升本等相關(guān)信息),可以在文章下方留下你的聯(lián)系方式,老師會(huì)第一時(shí)間聯(lián)系到你,為你答疑解惑哦! 部分內(nèi)容來源于網(wǎng)絡(luò)轉(zhuǎn)載、學(xué)生投稿,如有侵權(quán)或?qū)Ρ菊居腥魏我庖姟⒔ㄗh或者投訴,請(qǐng)聯(lián)系郵箱(1296178999@qq.com)反饋。
未經(jīng)本站授權(quán),不得轉(zhuǎn)載、摘編、復(fù)制或者建立鏡像, 如有違反,本站將追究法律責(zé)任!