第六章函数Read.docx
- 文档编号:4336533
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:48
- 大小:35.96KB
第六章函数Read.docx
《第六章函数Read.docx》由会员分享,可在线阅读,更多相关《第六章函数Read.docx(48页珍藏版)》请在冰豆网上搜索。
第六章函数Read
第六章函数
一、选择题
1.有以下程序
#include
floatf1(floatn)
{
returnn*n;
}
floatf2(floatn)
{
return2*n;
}
voidmain()
{
float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=p1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序运行后的输出结果是______。
A)8,16B)8,8C)16,16D)4,8
答案:
A
2.有以下函数
intfun(char*a,char*b)
{
while((*a!
='\0')&&(*b!
='\0')&&(*a==*b))
{
a++;b++;
}
return(*a-*b);
}
该函数的功能是______。
A)计算a和b所指字符串的长度之差
B)将b所指字符串连接到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
答案:
D
3.有以下程序
#include
#include
structSTU
{
charname[10];
intnum;
};
voidf(char*name,intnum)
{
structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
voidmain()
{
structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是______。
A)SunDan20042B)SunDan20044
C)LiSiGuo20042D)YangSan20041
答案:
A
4.有以下程序
#include
structSTU
{
charname[10];intnum;floatTotalScore;
};
voidf(structSTU*p)
{
structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;
++p;++q;*p=*q;
}
voidmain()
{
structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};
f(s);
printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);
}
程序运行后的输出结果是______。
A)SunDan20044550B)Penghua20045537
C)LiSiGuo20042580D)SunDan20041703
答案:
B
5.有以下程序
#include
structSTU
{
charname[10];
intnum;
};
voidf1(structSTUc)
{
structSTUb={"LiSiGuo",2042};
c=b;
}
voidf2(structSTU*c)
{
structSTUb={"SunDan",2044};
*c=b;
}
voidmain()
{
structSTUa={"YangSan",2041},b={"WangYin",2043};
f1(a);
f2(&b);
printf("%d%d\n",a.num,b.num);
}
执行后的输出结果是
A)20412044B)20412043C)20422044D)20422043
答案:
A
13.以下程序的输出结果。
#include
voidfunc(char**m);
voidmain()
{
staticchar*a[]={"MORNING","AFTERTOON","EVENING"};
char**n;
n=a;
func(n);
}
voidfunc(char**m)
{
++m;
printf("%s\n",*m);
}
A.为空B.MORNINGC.AFTERTOOND.EVENING
答案:
C
15.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是。
A)fun(inty,doublem);B)k=fun(10,12.5);
C)fun(x,n);D)voidfun(n,x);
答案:
C
16.以下程序运行后,输出结果是。
#include
intd=1;
voidfun(intp)
{
intd=5;
d+=p++;
printf("%d",d);
}
voidmain()
{
inta=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84B)99C)95D)44
答案:
A
17.以下程序的输出结果是。
#include
intx=3;
voidincre()
{
staticintx=1;
x*=x+1;
printf("%d",x);
}
voidmain()
{
inti;
for(i=1;i incre(); } A)33B)22C)26D)25 答案: C 18.若程序中定义了以下函数: doublemyadd(doublea,doubleb) {return(a+b);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是。 A)doublemyadd(doublea,b); B)doublemyadd(double,double); C)doublemyadd(doubleb,doublea); D)doublemyadd(doublex,doubley); 答案: A 21.以下叙述中正确的是。 A)全局变量的的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 答案: B 22.以下函数 fff(floatx) {printf(“%d\n”,x*x);} 的类型是 A)与参数x的类型相同B)void类型 C)int类型D)无法确定 答案: C) 23.以下程序: #include intfunc(inta,intb) { intc; c=a+b; returnc; } voidmain() { intx=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); } 其输出结果是 A)11B)20C)21D)31 答案: C) 26.有如下函数调用语句 fuc(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是。 A)3B)4C)5D)有语法错 答案: A 29.有以下程序 #include voidfun(int*a,inti,intj) { intt; if(i { t=a[i];a[i]=a[j];a[j]=t; i++;j--; fun(a,i,j); } } voidmain() { intx[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<4;i++)printf("%2d",x[i]); } 程序运行后的输出结果是。 A)1268B)8621C)8162D)8612 答案: C 35.若函数的形参为一维数组,则下列说法中正确的是()。 (A)调用函数时的对应实参必为数组名 (B)形参数组可以不指定大小 (C)形参数组的元素个数必须等于实参数组的元素个数 (D)形参数组的元素个数必须多于实参数组的元素个数 答案;(B) 40.C语言程序由函数组成。 以下说法正确的是()。 A)主函数必须在其它函数之前,函数内可以嵌套定义函数 B)主函数可以在其它函数之后,函数内不可以嵌套定义函数 C)主函数必须在其它函数之前,函数内不可以嵌套定义函数 D)主函数必须在其它函数之后,函数内可以定义函数 答案: B 41.返回值为void的函数,其含义是()。 A)调用函数之后,被调用的函数没有返回值 B)调用函数之后,被调用的函数不返回 C)调用函数之后,被调用的函数的返回值为任意的类型 D)以上三种说法都是错误的 答案: A 42.若用数组名作为函数调用的实参,传递给形参的是()。 A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 答案: A 43.一个函数返回值的类型是由()。 A)return语句中的表达式类型决定 B)定义函数时所指定的函数类型决定 C)调用该函数的主调函数的类型决定 D)在调用函数时临时指定 答案: B 44.关于C语言以下说法正确的是()。 A)只有当实参和与其对应的形参同名时才共占用存储单元 B)形参是虚拟的,不占用存储单元 C)实参和与其对应的形参各占用独立的存储单元 D)实参和与其对应的形参共占用一个存储单元 答案: .C 47.有以下程序 #include intfun(intx) { intp; if(x==0||x==1) return3; else p=x-fun(x-2); returnp; } voidmain() { printf("\n%d",fun(9)); } 程序执行后的输出结果是_______。 A)10B)9 C)8D)7 答案: .D 50.以下关于函数的叙述中正确的是______。 A)每个函数都可以被其它函数调用(包括main函数) B)每个函数都可以被单独编译 C)每个函数都可以单独运行 D)在一个函数内部可以定义另一个函数 答案: B; 54.以下程序 #include #include voidf(char*s,char*t) { chark; k=*s;*s=*t;*t=k; s++;t--; if(*s)f(s,t); } voidmain() { charstr[10]="abcdefg",*p; p=str+strlen(str)/2+1; f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是______。 A)abcdefgB)gfedcbaC)gbcdefaD)abedcfg 答案: B 55.有以下程序 #include intf1(intx,inty) { returnx>y? x: y; } intf2(intx,inty) { returnx>y? y: x; } voidmain() { inta=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); } 程序运行后的输出结果是______。 A)4,3,7B)3,4,7C)5,2,7D)2,5,7 答案: A 59.下面函数的功能是。 intfun1(char*x) { char*y=x; while(*y++); return(y-x-1); } A)求字符串的的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串y D)将字符串x连接到字符串y后面 答案: A 60.要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。 能正确表示此功能的函数是。 A)funa(int*x,int*y)B)funb(intx,inty) {int*p;{intt; *p=*x;*x=*y,*y=*p;}t=x;x=y;y=t;} C)func(int*x,int*y)D)fund(int*x,int*y) {*x=*y;*y=*x;}{*x=*x+*y;*y=*x-*y; *x=*x-*y;} 答案: D 65.以下程序: #include #include voidfut(int**s,intp[2][3]) { **s=p[1][1]; } voidmain() { inta[2][3]={1,3,5,7,9,11},*p; p=(int*)malloc(sizeof(int)); fut(&p,a); printf("%d\n",*p); } 其输出结果是 A)1B)7C)9D)11 答案: C) 73.下面程序中存在语法错误,关于错误的原因正确说法是()。 #include voidp_ch1(); voidmain() { inta=5,b; … b=p_ch1(A); } A)语句voidp_ch1();有错,它是函数调用语句,不能使用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名中不能使用下划线 答案: C 76.若定义了以下函数: voidf(……) {…… *p=(double*)malloc(10*sizeof(double)); …… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是。 A)double*pB)float**pC)double**pD)float*p 答案: C 二、填空题 2.可以将结构体变量作为函数参数,采用_【_1_】_调用方式比较好,能提高运行效率。 答案: 【1】传址 4.下列函数在一维数组v上将x插入到下标为i的元素前,i≥0。 如果i≥元素的个数,则x插到末尾。 原有的元素个数存放在指针n所指向的变量中,插入后元素个数加1。 请填空。 voidinsline(intv[],int*n,intx,inti) { intj; if(【1】) for(j=*n-1;【2】;j--) 【3】=v[j]; else i=*n; v[i]=【4】; *n=(*n)+1; return; } 答案: 【1】i<*n【2】j>=i【3】v[j+1]【4】x 6.下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在main()函数的max和min中,请填空。 #include voidfind(int*a,intn,int*max,int*min); voidmain() { intmax,min,a[]={5,3,7,9,2,0,4,1,6,8}; find(【1】); printf("%d,%d\n",max,min); } voidfind(int*a,intn,int*max,int*min) { inti; *max=*min=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 函数 Read