函数练习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
6.1 C语言中的简单数据类型有
A) 整型、实型、逻辑型 B) 整型、实型、字符型
C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型答案:B
6.2 C语言中,字符(char)型数据在微机内存中的存储形式是
A) 反码 B) 补码 C) EBCDIC码 D) ASCII码答案:D
6.3 设有语句char a=\'\'\\72\'\';,则变量a
A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法答案:A
6.4 C语言中不合法的字符常量是
A) \'\'\\0xff\'\' B) \'\'\\65\'\' C) \'\'&\'\' D) \'\'\\028\'\'
答案:本题A)和D)选项都是不合法的字符常量。若A)选项改为\'\'\\xff\'\',则正确。
6.5 C语言中不合法的字符串常量是
A) "\\121" B) \'\'y=\'\' C) "\\n\\n" D) "ABCD\\x6d" 答案:B
一、选择题
7.1 以下说法中正确的是
A) C语言程序总是从第一个定义的函数开始执行
B) 在C语言程序中,要调用的函数必须在main函数中定义
C) C语言程序总是从main函数开始执行
D) C语言程序中的main函数必须放在程序的开始部分答案:C
7.2 以下函数的类型是
A) 与参数x的类型相同 B) void类型 C) int类型 D) 无法确定
fff(float x)
{ printf("%d\\n",x*x); }
答案:C
7.3 以下函数调用语句中,含有的实参个数是
A) 1 B) 2 C) 4 D) 5
func( (exp1,exp2),(exp3,exp4,exp5));
答案:B
7.4 以下程序的输出结果是
A) 11 B) 20 C) 21 D) 31
fun(int a,int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\\n",r);
}
答案:C
7.5 以下程序的输出结果是
A) -1 B) 0 C) 1 D) 2
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
7.6 以下程序的输出结果是
A) 0 B) 1 C) 6 D) 无定值
fun(int a,int b,int c)
{ c=a*b; }
main()
{ int c;
fun(2,3,c);
printf("%d\\n",c);
}
答案:D
7.7 以下程序的输出结果是
A) 5.500000 B) 3.000000 C) 4.000000 D) 8.25
double f(int n)
{ int i; double s;
s=1.0;
for(i=1; i<=n; i++) s+=1.0/i;
return s;
}
main()
{ int i,m=3; float a=0.0;
for(i=0; i printf("%f\\n",a); } 答案:A 二、填空题 7.8 以下程序的输出结果是____。 unsigned fun6(unsigned num) { unsigned k=1; do { k*=num%10; num/=10; } while(num); return k; } main() { unsigned n=26; printf("%d\\n",fun6(n); } 答案:12 7.9 以下程序的输出结果是____。 double sub(double x,double y,double z) { y-=1.0; z=z+x; return z; } main() { double a=2.5,b=9.0; printf("%f\\n",sub(b-a,a,a)); } 答案:9.000000 7.10 以下程序的输出结果是____。 fun1(int a,int b) { int c; a+=a; b+=b; c=fun2(a,b); return c*c; } fun2(int a,int b) { int c; c=a*b%3; return c; } main() { int x=11,y=19; printf("%d\\n",fun1(x,y)); } 答案:4 第十一部分函数 一、选择题 11.1 以下叙述不正确的是 A) C程序的main函数可以没有参数。 B) C程序的main函数可以有参数。 C) C程序的main函数若有参数时,第一个参数的值最少是1。 D) main函数的第一个参数必须是整型,其名字必须是argv,第二个参数可以定义成:char *argv[],名字必须是argv。答案:D 11.2 若有以下定义和说明,则对fun函数的正确调用语句是 A) a=fun; a(w); B) a=fun; (*a)(&c); C) b=fun; *b(w); D) fun(b); main() { int (*a)(int *),*b(),w[10],c; . . . } fun(int *c) { ... } 答案:B 11.3 以下叙述正确的是 A) C程序中各函数之间既允许直接递归调用也允许间接递归调用 B) C程序中各函数之间不允许直接递归调用也不允许间接递归调用 C) C程序中各函数之间允许直接递归调用不允许间接递归调用 D) C程序中各函数之间不允许直接递归调用允许间接递归调用答案:A 11.4 以下程序的输出结果是 A) 8 B) 30 C) 16 D) 2 long fib(int n) { if(n>2) return (fib(n-1)+fib(n-2)); else return (2); } main() { printf("%ld\\n",fib(6)); } 答案:C 二、填空题 11.5 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入 PROG ABCD EFGH IJKL