作业本《C程序设计Ⅱ》答案.docx
- 文档编号:29302326
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:79
- 大小:95.30KB
作业本《C程序设计Ⅱ》答案.docx
《作业本《C程序设计Ⅱ》答案.docx》由会员分享,可在线阅读,更多相关《作业本《C程序设计Ⅱ》答案.docx(79页珍藏版)》请在冰豆网上搜索。
作业本《C程序设计Ⅱ》答案
《C程序设计Ⅱ》
作业本
学院计算机信息工程学院
班级
学号
姓名
2010年2月
第七部分函数
一、选择题(共20分,每题1分)
1.以下正确的函数形式是____D_ 。
A.doublefun(intx,inty)B.fun(intx,y)
{z=x+y;returnz;}{intz;returnz;}
C.fun(x,y)D.doublefun(intx,inty)
{intx,y;doublez;z=x+y;returnz;}{doublez;z=x+y;returnz;}
2.C语言中,简单变量做参数.以下正确的说法是_____A__ 。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参是虚拟的,不占用存储单元
3.若调用一个有返回类型的函数,且此函数中没有return语句,则该函数____D_______。
A.没有返回值B.返回若干个系统默认值
C.能返回一个用户所希望的函数值D.返回一个不确定的值
4.在C语言中,函数的数据类型是指_____A__ 。
A.函数返回值的数据类型B.函数形参的数据类型
C.调用该函数时的实参的数据类型D.任意指定的数据类型
5.以下不正确的说法是______A 。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值不一致,以函数值类型为准
D.如果形参与其实参的类型不一致,以形参类型为准
6.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是____B__ 。
A.地址传递B.单向值传递
C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式
7.C语言规定,函数返回值的类型是由 D_ 。
A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定
8.下面函数调用语句含有实参的个数为_____B 。
func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
9.C语言中,函数调用不可以 D 。
A.出现在执行语句中B.出现在一个表达式中
C.做为一个函数的实参D.做为一个函数的形参
10.以下正确的描述是___B__ 。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调数用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
11.若有数组名作为函数调用的实参,传递给形参的是____A_ 。
A.数组的首地址B.数组第一个元素的值
C.数组中全部元素的值D.数组元素的个数
12.如果在一个函数中的复合语句中定义了一个变量,则该变量___A_ 。
A.只在该复合语句中有效B.在该函数中有效
C.在本程序范围内均有效D.为非法变量
13.以下不正确的说法是___D__ 。
A.在不同函数中可以使用相同名字的变量
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
14.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为____A_ 。
A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register)
15.已有数组定义inta[3][4];和f函数调用语句f(a);,则在f函数的说明中,对形参数组array
的错误定义方式为____B_ 。
(A和D语法虽正确,千万别用)
A.f(intarray[][6])B.f(intarray[3][])C.f(intarray[][4])D.f(intarray[2][5])
16.以下正确的说法是____C_ 。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
17.如果程序中有static char c; 则编译程序会对其自动设置初值为____C_ 。
(ASCII码为0)
A.“\n”B.’\n’C.0D.“\0”
18.以下程序有语法性错误,有关错误原因的正确说法是____C_ 。
voidmain()
{intG=5,k;
voidprt_char();
……
k=prt_char(G);
……
}
A.语句voidprt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
19.在一个void类型函数的定义中,函数体中有return;语句,该语句____B__ 。
A.是错的B.表示向主调函数返回(程序控制)
C.在执行时不予理睬D.在执行时会中断程序运行
20.以下不正确的描述是_____D 。
A.在函数外部定义的变量是全局变量B.在函数内部定义的变量是局部变量
C.函数的形参是局部变量D.局部变量不能与全局变量同名
二、填空题(共40分,每题2.5分)
1.以下程序的运行结果是
#include”stdio.h”
voidadd(intx,inty,intz)
{z=x+y;x=x*x;y=y*y;
printf(“
(2)x=%dy=%dz=%d\n”,x,y,z);
}
voidmain()
{intx=2,y=3,z=0;
printf(“
(1)x=%dy=%dz=%d\n”,x,y,z);
add(x,y,z);
printf(“(3)x=%dy=%dz=%d\n”,x,y,z);
}
2.若输入一个整数30,以下程序的运行结果是
#include“stdio.h”
intpr(intn)
{inti,yes=1;
for(i=2;i if(n%i==0) yes=0; returnyes; } voidmain() {intm,k; scanf("%d",&m); for(k=3;k if(pr(k)&&pr(m-k)) printf("%d=%d+%d,",m,k,m-k); } 3.若输入的值是-125,以下程序的运行结果是 #include”stdio.h” #include”math.h” voidfun(intn) {intk,r; for(k=2;k<=sqrt(n);k++) {r=n%k; while(r==0) {printf(“%d”,k); n=n/k; if(n>1)printf(“*”); r=n%k; } } if(n! =1)printf(“%d\n”,n); } voidmain() {intn; scanf(“%d”,&n); printf(“%d=”,n); if(n<0) printf(“-“); n=fabs(n); fun(n); } 4.函数gongy的作用是求正整数num1和num2的最大公约数,并返回该值。 请填空 intgongy(intnum1,intnum2) {inttemp,a,b; if(num1num2) {temp=num1;num1=num2;num2=temp;} a=num1;b=num2; while() {temp=a%b;a=b;b=temp;} return(a); } 5.若输入一个整数10,以下程序的运行结果是 #include”stdio.h” intsub(inta) {intc; c=a%2; returnc; } voidmain() {inta,e[10],c,i=0; printf(“输入一整数\n”); scanf(“%d”,&a); while(a! =0) {c=sub(a); a=a/2; e[i]=c; i++; } for(;i>0;i--) printf(“%d”,e[i-1]); } 6.以下程序的运行结果是 #include”stdio.h” longfib(intg) {switch(g) {case0: return0; case1: case2: return1; } return(fib(g-1)+fib(g-2)); } voidmain() {longk; k=fib(7); printf(“k=%d\n”,k); } 7.以下程序的运行结果是 #include”stdio.h” intsub(intn) {inta; if(n==1)return1; a=n+sub(n-1); return(a); } voidmain() {inti=5; printf(“%d\n”,sub(i)); } 8.以下程序的运行结果是 #include”stdio.h” intfact(intvalue) {if(value<0) {printf(“FACT(-1): ERROR! \n”);return(-1);} elseif(value==1||value==0)return (1); elsereturn(value*fact(value-1)); } voidmain() {printf(“FACT(5): %d\n”,fact(5)); printf(“FACT (1): %d\n”,fact (1)); fact(-5); } 9. 下面程序的功能是用递归的方法将一个整型数num的各位数字转换为对应的数字字符输出,请填空完成程序。 #include ”stdio.h” void convert(int n) { int j; j=n/10; if( ) convert( ) putchar( ) } void main() { int num; scanf(“%d”,&num); if(num<0) { putchar(‘-‘); num= ; } convert(num); } 10.折半查找法的思路是: 先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值,如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中间点之前的元素,测试方式同前。 函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回下标值;反之,返回-1。 请填空。 intbinary(inta[10],intm) {intlow=0,high=9,mid; while(low<=high) {mid=(low+high)/2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 作业本 程序设计 答案