内容正文:
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第77卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①函数的定义。②形参与实参之间的传递。③函数的调用与返回值。④变量的作用域及存储方式。⑤数组与函数在程序中的应用
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第77卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.下列关于自定义一个函数的说法中,正确的是( )
A.提高程序的执行效率 B.减少程序的篇幅
C.提高程序的可读性 D.减少程序文件所占内存
2.下列函数定义形式正确的是( )
A.double fun(char x,double y) B.int fun(int x;int y)
C.char *fun(int x,int y); D.int *fun(int x;int y);
3.C语言允许函数值类型缺省定义,此时函数值隐含的类型是( )
A.float型 B.int型 C.long型 D.double型
4.若调用一个函数,且此函数中没有return语句,则下列说法中正确的是( )
A.没有返回值 B.返回若干个系统默认值
C.能返回一个用户所希望的函数值 D.返回一个不确定的值
5.下列说法中不正确的一项是( )
A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式
C.实参可以是任意类型 D.形参应与其对立的实参类型一致
6.下列说法中,正确的一项是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值的类型不一致,那么以函数值类型为准
D.如果形参与实参的类型不一致,那么以实参类型为准
7.若使用一维数组名作为函数实参,则下列说法中正确的一项是( )
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.被调函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
8.下列选项中说法错误的一项是( )
A.形式参数是局部变量
B.在不同函数中可以使用相同名字的变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
9.执行以下程序的运行结果是( )
void fun(int a)
{a=20;}
main()
{int a=10;
fun(100);
printf("%d",a);getch();}
A.10 B.20 C.100 D.编译出错
10.执行以下程序的输出结果是( )
int a=123;
int fun(int a)
{return ++a;}
main()
{static int a=10;
printf("%d",fun(fun(a)));getch();}
A.10 B.11 C.12 D.123
11.执行以下程序的输出结果是( )
void fun(int x)
{if(x<10)printf("yes");
else printf("no");}
main()
{fun(10);getch();}
A.no B.yes C.有语法错误 D.可以通过编译但不能执行
12. 设有如下函数定义,若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;}
A.2 B.3 C.4 D.5
13.执行以下程序的输出结果是( )
int fun (int x,int y)
{ if (x!=y) return ((x+y)/2);
else return (x);}
main()
{ int a=4,b=5,c=6;
printf("%d
",fun(2*a,fun(b,c)));getch();}
A.3 B.6 C.8 D.12
14.执行以下程序的输出结果是( )
int fun()
{static int x=1;
x*=2;
return x;}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d
",s);getch();}
A.0 B.10 C.30 D.64
15.执行以下程序的输出结果是( )
void fun(int *p)
{printf("%d
", p[5]); }
main( )
{int a[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);getch();}
A.5 B.6 C.8 D.9
16. 有如下函数,函数的功效是( )
int fun(char *x, char *y)
{ int n=0;
while ( (*x==*y) && *x!='\0') {x++; y++; n++; }
return n;}
A.查找x和y所指字符串中是否有'\0'
B.统计x和y所指字符串中最前面连续相同的字符个数
C.将y所指字符串赋给x所指存储空间
D.统计x和y所指字符串中相同的字符个数
17. 如下程序的主函数中调用了在其前面定义的fun函数,则如下选项中错误的fun函数首部是( )
#include <stdio.h>
∶
main( )
{ double a[15],k;
k=fun(a)
∶}
A.double fun( double a[15]) B.double fun( double *a)
C.double fun( double a[]) D.double fun( double a)
18.执行以下程序的输出结果是( )
void fun (int x)
{ if (x/5>0) fun(x/5);
printf("%d ",x) ;}
main( )
{ fun(11); printf("
");getch();}
A.2 11 B.3 11 C.2 12 D.2 17
19.执行以下程序的输出结果是( )
void fun(char c)
{if(c>'x') fun(c-1);
printf ("%c",c);}
main()
{fun('z');getch();}
A.xyz B.wxyz C.zyxw D.zyx
20.执行以下程序的输出结果是( )
void func(int n)
{int i;
for(i=0;i<=n;i++) printf("*");
printf("#");}
main()
{ func(3); printf("????"); func(4); printf("
"); getch();}
A.****#????***# B.***#????*****#
C.**#????*****# D.****#????*****#
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int x=3;
int f(int x)
{if(x/2>1)
f(x/2);
printf("%d",x);
return 1;}
main()
{int x=5;
f(x);
getch();}
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
#define M 3
#define N 3
void f(int a[M][N],int m[N])
{int i,j,t;
for(j=0;j<N;j++)
{t=a[0][j];
for(i=1;i<M;i++)
if(a[i][j]>t)
t=a[i][j];
m[j]=t;}}
main()
{
int d[M][N]={2,10,3,23,45,32,78,1,34};
int m[N],i;
f(d,m);
for(i=0;i<N;i++)
printf("%4d",m[i]);
printf("
");
getch();}
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int fun(int m)
{int n=0;
m/=2;
if(m)
{n*=m;
return (fun(m-2));}
else return n;}
main()
{int i;
for(i=0;i<2;i++)
printf("fun(%d)=%d+",4+i,fun(4+i));
getch();}
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int a[ ],int n)
{int i,t;
for(i=0;i<n/2;i++)
{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;}}
main()
{int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)
printf("%d",k[i]);
printf("
");
getch();}
25.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
void fun(char a[ ],int k)
{int i,len;
len=strlen(a);
for(i=0;i<k;i++)
a[i]=a[i+1];
for(i=len-1;i>k;i--)
a[i]=a[i-1];}
main()
{char a[20]="12345678910";
fun(a,4);
puts(a);
getch();}
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int w=3;
int fun(int x)
{static int a=5;
int b=2;
a+=x+b;
w++;
return a+w;}
main()
{int i,k;
k=1;
for(i=0;i<3;i++)
printf("fun(%d)=%d
",i,fun(i+k)+w);
getch();}
三、程序填空题(共1小题,每空4分,合计16分)
27.以下程序的功能是求整数n(1~10)的阶乘的位数,例如5!=120,输出结果是3。
#include <stdio.h>
#include<conio.h>
【1】
int fun(int n)
{int i,d=0;
double s=0;
for(i=1;i<=n;i++)
s+=log10【2】;
【3】;
return d;}
main()
{int n=5;
printf("s=%d",【4】);
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第77卷,是第二部分常考题训练卷,根据考纲进行解读,本试卷的知识要点如下所示:
①函数的定义。②形参与实参之间的传递。③函数的调用与返回值。④变量的作用域及存储方式。⑤数组与函数在程序中的应用
湖南省《计算机应用考纲百套卷》
《计算机编程语言—C语言》
第77卷
常考题训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题3分,合计60分)
1.下列关于自定义一个函数的说法中,正确的是( )
A.提高程序的执行效率 B.减少程序的篇幅
C.提高程序的可读性 D.减少程序文件所占内存
【答案】C
2.下列函数定义形式正确的是( )
A.double fun(char x,double y) B.int fun(int x;int y)
C.char *fun(int x,int y); D.int *fun(int x;int y);
【答案】A
3.C语言允许函数值类型缺省定义,此时函数值隐含的类型是( )
A.float型 B.int型 C.long型 D.double型
【答案】B
4.若调用一个函数,且此函数中没有return语句,则下列说法中正确的是( )
A.没有返回值 B.返回若干个系统默认值
C.能返回一个用户所希望的函数值 D.返回一个不确定的值
【答案】D
5.下列说法中不正确的一项是( )
A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式
C.实参可以是任意类型 D.形参应与其对立的实参类型一致
【答案】B
6.下列说法中,正确的一项是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值的类型不一致,那么以函数值类型为准
D.如果形参与实参的类型不一致,那么以实参类型为准
【答案】C
7.若使用一维数组名作为函数实参,则下列说法中正确的一项是( )
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.被调函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
【答案】A
8.下列选项中说法错误的一项是( )
A.形式参数是局部变量
B.在不同函数中可以使用相同名字的变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
【答案】D
9.执行以下程序的运行结果是( )
void fun(int a)
{a=20;}
main()
{int a=10;
fun(100);
printf("%d",a);getch();}
A.10 B.20 C.100 D.编译出错
【答案】A
10.执行以下程序的输出结果是( )
int a=123;
int fun(int a)
{return ++a;}
main()
{static int a=10;
printf("%d",fun(fun(a)));getch();}
A.10 B.11 C.12 D.123
【答案】C
11.执行以下程序的输出结果是( )
void fun(int x)
{if(x<10)printf("yes");
else printf("no");}
main()
{fun(10);getch();}
A.no B.yes C.有语法错误 D.可以通过编译但不能执行
【答案】A
12. 设有如下函数定义,若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;}
A.2 B.3 C.4 D.5
【答案】B
13.执行以下程序的输出结果是( )
int fun (int x,int y)
{ if (x!=y) return ((x+y)/2);
else return (x);}
main()
{ int a=4,b=5,c=6;
printf("%d
",fun(2*a,fun(b,c)));getch();}
A.3 B.6 C.8 D.12
【答案】B
14.执行以下程序的输出结果是( )
int fun()
{static int x=1;
x*=2;
return x;}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d
",s);getch();}
A.0 B.10 C.30 D.64
【答案】D
15.执行以下程序的输出结果是( )
void fun(int *p)
{printf("%d
", p[5]); }
main( )
{int a[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);getch();}
A.5 B.6 C.8 D.9
【答案】D
16. 有如下函数,函数的功效是( )
int fun(char *x, char *y)
{ int n=0;
while ( (*x==*y) && *x!='\0') {x++; y++; n++; }
return n;}
A.查找x和y所指字符串中是否有'\0'
B.统计x和y所指字符串中最前面连续相同的字符个数
C.将y所指字符串赋给x所指存储空间
D.统计x和y所指字符串中相同的字符个数
【答案】B
17. 如下程序的主函数中调用了在其前面定义的fun函数,则如下选项中错误的fun函数首部是( )
#include <stdio.h>
∶
main( )
{ double a[15],k;
k=fun(a)
∶}
A.double fun( double a[15]) B.double fun( double *a)
C.double fun( double a[]) D.double fun( double a)
【答案】D
18.执行以下程序的输出结果是( )
void fun (int x)
{ if (x/5>0) fun(x/5);
printf("%d ",x) ;}
main( )
{ fun(11); printf("
");getch();}
A.2 11 B.3 11 C.2 12 D.2 17
【答案】A
19.执行以下程序的输出结果是( )
void fun(char c)
{if(c>'x') fun(c-1);
printf ("%c",c);}
main()
{fun('z');getch();}
A.xyz B.wxyz C.zyxw D.zyx
【答案】A
20.执行以下程序的输出结果是( )
void func(int n)
{int i;
for(i=0;i<=n;i++) printf("*");
printf("#");}
main()
{ func(3); printf("????"); func(4); printf("
"); getch();}
A.****#????***# B.***#????*****#
C.**#????*****# D.****#????*****#
【答案】D
二、程序运行结果题(共6小题,每小题4分,共24分)
21.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int x=3;
int f(int x)
{if(x/2>1)
f(x/2);
printf("%d",x);
return 1;}
main()
{int x=5;
f(x);
getch();}
【答案】25
22.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
#define M 3
#define N 3
void f(int a[M][N],int m[N])
{int i,j,t;
for(j=0;j<N;j++)
{t=a[0][j];
for(i=1;i<M;i++)
if(a[i][j]>t)
t=a[i][j];
m[j]=t;}}
main()
{
int d[M][N]={2,10,3,23,45,32,78,1,34};
int m[N],i;
f(d,m);
for(i=0;i<N;i++)
printf("%4d",m[i]);
printf("
");
getch();}
【答案】 78 45 34
23.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int fun(int m)
{int n=0;
m/=2;
if(m)
{n*=m;
return (fun(m-2));}
else return n;}
main()
{int i;
for(i=0;i<2;i++)
printf("fun(%d)=%d+",4+i,fun(4+i));
getch();}
【答案】fun(4)=0+fun(5)=0+
24.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
void fun(int a[ ],int n)
{int i,t;
for(i=0;i<n/2;i++)
{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;}}
main()
{int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)
printf("%d",k[i]);
printf("
");
getch();}
【答案】321678
25.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
void fun(char a[ ],int k)
{int i,len;
len=strlen(a);
for(i=0;i<k;i++)
a[i]=a[i+1];
for(i=len-1;i>k;i--)
a[i]=a[i-1];}
main()
{char a[20]="12345678910";
fun(a,4);
puts(a);
getch();}
【答案】23455567891
26.执行以下程序的输出结果是( )
#include <stdio.h>
#include<conio.h>
int w=3;
int fun(int x)
{static int a=5;
int b=2;
a+=x+b;
w++;
return a+w;}
main()
{int i,k;
k=1;
for(i=0;i<3;i++)
printf("fun(%d)=%d
",i,fun(i+k)+w);
getch();}
【答案】
fun(0)=16
fun(1)=22
fun(2)=29
三、程序填空题(共1小题,每空4分,合计16分)
27.以下程序的功能是求整数n(1~10)的阶乘的位数,例如5!=120,输出结果是3。
#include <stdio.h>
#include<conio.h>
【1】
int fun(int n)
{int i,d=0;
double s=0;
for(i=1;i<=n;i++)
s+=log10【2】;
【3】;
return d;}
main()
{int n=5;
printf("s=%d",【4】);
getch();}
【答案】①#include<math.h> ②(i) ③d=s+1 ④fun(n)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$