fpower2的c语言程序,2013年计算机二级C语言课后模拟题七及答案

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

一 单项选择题

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

}

A) 7

B) 7

C) 7

D) 7

8 9 10 7

9 11 13 7

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

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

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) 数组名不能作形参

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

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)

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

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

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

二 填空题

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

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

{int i, j, p;

for(i=0; i

{p=0;

for(j=1; j

if(x[i][p]

printf("The max value in line %d is %d\n", i, x[i][p] );

}

}

main()

{int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

LineMax(x)

}

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

}

2013年计算机二级、一级、三级等更多考试考前培训请进入教育联展网-中国教育培训第一门户,助您顺利通过计算机等级考试!

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 prime number. 。

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

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个计算一个数的平方的C语言程序: ```c #include <stdio.h> int main() { int num; printf("请输入一个数:"); scanf("%d", &num); int result = num * num; printf("%d的平方是%d\n", num, result); return 0; } ``` 这个程序首先让用户输入一个数,然后计算它的平方并输出结果。 ### 回答2: fpower2的C语言程序如下所示: ```c #include <stdio.h> // 函数声明 int fpower2(int num); int main() { int num, result; printf("请输入一个整数:"); scanf("%d", &num); result = fpower2(num); printf("结果为:%d\n", result); return 0; } // 函数定义 int fpower2(int num) { return num * num; } ``` 这个程序实现了一个求给定整数的平方的函数fpower2。程序首先在主函数中接收一个整数输入,并调用fpower2函数进行计算。然后打印出计算结果。fpower2函数接收一个整数作为参数,返回该整数的平方。 程序运行时,会先从用户输入中获取一个整数,将其传递给fpower2函数进行计算,然后将结果打印出来。 ### 回答3: fpower2的C语言程序是一个函数,用于计算给定的浮点数x的2次方。 ```c #include <stdio.h> float fpower2(float x) { float result = x * x; return result; } int main() { float num; printf("请输入一个浮点数:"); scanf("%f", &num); float result = fpower2(num); printf("%.2f的2次方是:%.2f\n", num, result); return 0; } ``` 该源程序首先包含了stdio.h头文件,以便使用printf和scanf函数。然后定义了一个名为fpower2的函数,该函数以一个浮点数x作为参数,并返回计算结果(x的2次方)。在函数内部,通过将x乘以自身,得到了x的2次方,并将结果保存在result变量中。最后,函数返回result值。 在main函数中,先定义了一个浮点数num,然后使用printf函数提示用户输入一个浮点数,并通过scanf函数将用户输入的值赋给num。接下来,调用fpower2函数,将num作为参数传递给该函数,并将结果保存在result变量中。最后,使用printf函数将输出结果显示给用户。 用户可以输入一个浮点数,然后程序将计算该数的2次方,并将结果输出给用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值