择C选项?
23.若有以下程序 <> f( x) { x*'a'; } ()
{ a, 0; ( 0; a<4; 1 )
{ b = f(a); (b); } }
则程序的输出结果是 A) B) C) D)
参考答案:C
【解析】该题目首先初始化变量a和b,通过循环语句使a取值为0、1、2、3,f函数的功能是将a*'a'的值返回给b,即b为a、b、e、j。最后通过字符输出函数()将b输出。因此C选项正确。
16 / 36
24.若有以下程序 <> ( *a) { 2;
; *a = *a * 2; (\ } ()
{ 3, *;
(p); (\ }
则程序的输出结果是 A) 4,3,3 B) 4,3,4 C) 6,3,6 D) 6,6,6 参考答案:A
【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用函数,将实参p的值传给形参a,在函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和p的值为3和3。因此A选项正确。
17 / 36
25.若有以下程序 <> 7; f( **s) { *; *;
(\ } ()
{ 3,*, **r = ;
f(r); (\ }
则程序的输出结果是 A) 3,3,3,7,7,7 B) 3,7,7,7,7,7 C) 7,7,7,3,3,3 D) 7,7,7,3,7,7 参考答案:D
【解析】在主函数中分别给整型变量i,指针型变量p和指向指针的指针变量r赋初值;调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过(\语句输出7,7,7;返回
18 / 36
主函数,通过(\输出3,7,7?因此D选项正确?
26.若有以下程序 <>
*f( * *t) { *k;
(*s < *t){ k = s; ; ; } s; } ()
{ 3, 5, *, *, *r;
(); (\ }
则程序的输出结果是 A) 3,5,5,3,5 B) 3,5,3,5,5 C) 5,3,5,3,5 D) 5,3,3,5,5 参考答案:B
【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递
19 / 36
给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。最后输出i, j, *p, *q, *r的值,即3,5,3,5,5。因此B选项正确。
27.若有以下程序 <> N 4
( a[][N], b[], ) { ;
(0; i ( ? (b[i] > a[i][j]) : (b[i] < a[i][j])) b[i] = a[i][j]; } } ( ) { x[N][N]={1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16}, y[N]; (x, y, 1); ( 0; i 20 / 36