2022年湖北专升本C语言函数模拟题

浏览次数:次 发布时间:2023-04-07

2022年湖北专升本C语言函数模拟题

湖南专升本问答

一、单项选择题

湖南专升本刷题方法

1.以下程序的输出结果是(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.下列程序执行后的输出结果是( 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.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)。

A) 地址传递

B) 单向值传递

C) 由实参传给形参,再由形参传回实参

D) 传递方式由用户指定

4.以下函数值的类型是( A )。

fun( float x )

{float y;

y=3*x-4;

return y;

}

A) int

B) 不确定

C) void

D) float

5.设有以下函数:

f( int a)

{int b=0;

static int c=3;

b++; c++;

return(a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是(A)。

main()

{int a=2, i;

for(i=0;i<3;i++) printf("%d\n", f(a));

}

image.png

6.以下程序的输出结果是(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.以下所列的各函数首部中,正确的是(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.以下程序的输出结果是(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.当调用函数时,实参是一个数组名,则实参向形参传递的是( B)。

A) 数组的长度

B) 数组的首地址

C) 数组每一个元素的地址

D) 数组每个元素中的值

10.以下程序的输出结果是(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.有如下函数调用语句:

func(rec1, rec2+rec3, (rec4, rec5));

在该函数调用语句中,含有的实参个数是( A)。

A) 3

B) 4

C) 5

D) 有语法错

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);

}

该程序的输出的结果是( D )。

A) 12

B) 13

C) 14

D) 15

13.以下程序的输出结果是( 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 语言中,变量的隐含存储类别是( A )。

A) auto

B) static

C) extern

D) 无存储类别

15.在下列的函数调用中,不正确的是( D )。

A) max(a,b);

B) max(3,a+b);

C) max(3,5);

D) int max(a,b);

16.以下程序的输出结果是( 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.现有以下程序:

#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,该程序的输出结果是(D)。

A) an anple

B) elpna na

C) an

D) na

18.在下列叙述中,正确的一条是( A )。

A) puts 和 gets 函数只能输入或输出一个字符串

B) 在 C 语言中,函数可以递归调用或递归定义

C) 用 scanf 函数输入数据时可以规定精度,例如 scanf(“%7.2f”,&a);

D) 外部变量只限于本文件中使用

19.以下程序的输出结果是( 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 语言的函数中( C)。

A) 必须有形参

B) 形参必须是变量名

C) 可以有也可以没有形参

D) 数组名不能作形参

21.当输入 a1b2c3d4e 时,以下程序的输出结果为( A )。

#include

main( )

{char str[40];

printf(“请输入含有四个数字字符的字符串:\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 结果是:%s”, str);

}

A) a 1 b 2 c 3 d 4 e

B) 1 2 3 4

C) a 1 b 2

D) 因输入错误,程序出错

22.在下列叙述中,错误的一条是( A )。

A) 主函数 main 中定义的变量在整个文件或程序中有效

B) 不同函数中,可以使用相同名字的变量

C) 函数中的形式参数是局部变量

D) 在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效

23.以下程序的输出结果是( A)。

#include

main( )

{int i;

for(i=0; i<2; i++)

as ( );

}

as( )

{int lv=0;

static int sv=0;

printf(“lv=%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.在下列叙述中,错误的一条是( B )。

A) 全局变量存放在静态存储区中,在程序开始执行时就给全局变量分配存储区,程序执行完才释放

B) 在有参函数中,形参在整个程序一开始执行时便分配内存单元

C) 用数组名作函数实参和形参时,应在主调函数和被调用函数中分别定义数组

D) 在同一个源文件中,全局变量与局部变量同名时,在局部变量的作用范围内,全局变量不起作用

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,以下程序的输出结果为( 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.下列程序结构中,正确的是( 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.在下列叙述中,错误的一条是( B)。

A) scanf 函数可以用来输入任何类型的多个数据

B) 数组名作函数参数时,也采用“值传递”方式

C) 如果形参发生改变,不会改变主调函数的实参值

D) 函数的实参与形参的类型应一致

29.以下程序的输出结果是( 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 语言中形参的缺省存储类别是( A)。

A) 自动(auto)

B) 静态(static)

C) 寄存器(register)

D) 外部(extern)

31.设有如下函数:

ggg(float x)

{printf(“\n%d”, x*x);}

则函数的类型为( C )。

A) 与参数 x 的类型相同 B) void

C) int D) 无法确定

32.C 语言规定,程序中各函数之间( A)

A) 既允许直接递归调用也允许间接递归调用

B) 不允许直接递归调用也不允许间接递归调用

C) 允许直接递归调用不允许间接递归调用

D) 不允许直接递归调用允许间接递归调用

33.下面程序的输出结果是( 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.以下程序的输出结果为(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.下列程序执行后的输出结果是( 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.下列程序执行后输出的结果是( 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.以下程序的输出结果是( 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 语言程序总是从第一个定义的函数开始执行

B) 在 C 语言程序中,被调用的函数必须在 main()函数中定义

C) C 语言程序总是从 main()函数开始执行

D) C 语言程序中的 main()函数必须放在程序的开始部分

39.以下程序的输出结果是( 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.下列程序的输出结果是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.以下程序的运行结果是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.以下程序输出的最后一个值是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.以下函数的功能是:求 x 的 y 次方,请填空。

double fun(double x, int y)

{int i;

double z;

for(i=1, z=x; ix;

return z;

}

5.若变量 n 中的值为 24,则 prnt 函数共输出5行,最后一行有4个数。

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.以下程序中,主函数调用了 LineMax 函数,实现在 N 行 M 列的二维数组中,找出每一行上的最大值。请填空。

#define N 3

#define M 4

void LineMax(int x[N][M])

image.png

7.函数 pi 的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+ … +1/(n*n)请在下面的函数中填空,完成求π的功能。

#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.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;请写出 fun 函数的首部void fun( double b[10][22])。要求形参名为 b。

main()

{double s[10][22];

int n;

fun(s);

}

9.输入 12 时,程序输出结果为12 is not prime number.;若输入 17,输出结果为 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.下面程序的输出结果是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 函数返回数组 s 中值为最大的元素的下标,数组中元素的个数由 t 传人,请填空。

findmax(int s[ ], int t)

{int k, p;

for(p=0, k=p; p

if(s[p]>s[k]) p=k;

return k;

}

13.下面程序的输出结果是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.函数 fun 的功能是:使一个字符串按逆序存放,请填空。

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);

}

以上就是关于2022年湖北专升本C语言函数模拟题的全部内容了,如果你还有专升本相关的疑惑(如专升本报名、考试动态、院校招生简章、统考动态、湖南专升本院校、历年真题、考试大纲、专升本等相关信息),可以在文章下方留下你的联系方式,老师会第一时间联系到你,为你答疑解惑哦!


湖南专升本最新资料领取

部分内容来源于网络转载、学生投稿,如有侵权或对本站有任何意见、建议或者投诉,请联系邮箱(1296178999@qq.com)反馈。 未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!


本文标签: 统招专升本全日制专升本统招

上一篇:2022年湖北专升本C语言数组模拟题                  下一篇:2022年湖北专升本C语言预处理命令模拟题

湖南3+2 统招专升本

一键查询