28.若有以下程序
<>
(a[],n)
{;
(1;i(2;j(a[i]>a[j]){[i];a[i][j][j];}
}
()
{c[10]={10,9,8,7,6,5,4,3,2,1};
(c,10);
(0<10;)(",",c[i]);
("\n");
}
则程序的输出结果是
A)1,10,3,8,5,6,7,4,9,2,
B)10,9,8,7,6,5,4,3,2,1,
C)2,9,4,7,6,5,8,3,10,1,
D)10,1,8,3,6,5,4,7,2,9,
参考答案:
D
【解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1;(c,10);语句调用函数,函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。
因此D选项正确。
29.若有以下程序
<>
()
{0;
a[]="!
";
(0;a[i];)
(a[i]'')a[][i];
a[j]='\0';
("\n");
}
则程序的输出结果是
A)!
B)
C)!
D)!
参考答案:
C
【解析】主函数中首先定义字符数组a[]="!
";执行循环语句,语句(a[i]'')a[][i];其功能是将字符数组中的空格去掉。
因此C选项正确。
30.若有以下程序
<>
*"";
b[]="!
";
()
{i,0;*p;
(0;b[i]'\0';)
{(*ab[i])
{;
(;*'\0';)
{(*pb[j]);
;
}
(*'\0');
}
}
("",[i]);
}
则程序的输出结果是
A)!
B)!
C)!
D)!
参考答案:
D
【解析】该程序首先定义*a和b[],并进行初始化。
主函数中通过外层循环语句,遍历字符数组b[],并且将符合条件语句的字符赋给数组p;内层循环语句,遍历字符数组a[]。
再将符合条件语句的结果输出。
因此D选项正确。
31.若有以下程序
<>
()
{a[20],b[]=".";i;
(0;i<7;)("",[i]);
(a);("\n",);
}
执行时若输入:
(其中<>表示回车符)
.<>
则输出结果是
A).
B)
C).
D).
参考答案:
A
【解析】程序首先初始化字符数组b[],执行循环语句,循环变量i的取值范围从0到6。在循环语句中通过函数将从键盘上输入的数据输入到b[]中,即b的值为.。退出循环语句,执行语句(a);()函数的调用形式为(),其中是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止,即a的值为.。因此A选项正确。
32.若有以下程序
<>
()
{w[20],a[5][10]={"","","","",""};
p[6][2]={{0,1},{1,5},{0,0},{0,2},{1,4},{4,4}},i;
(0;i<6;)w[i][p[i][0]][p[i][1]];
(w);
}
则程序的输出结果是
A)
B)
C)
D)
参考答案:
D
【解析】程序首先初始化字符数组a[5][10]和二维数组p[6][2]。
执行循环语句,循环变量i从0取值到5,得到字符数组w[]的值,并通过字符串输出函数进行输出操作。
w[0][0][1]、w[1][1][5]、w[2][0][0]、w[3][0][2]、w[4][1][4]、w[5][4][4];因此最后字符数组w的结果为。
因此D选项正确。
33.若有以下程序
<>
f(x)
{(x>=10)
{("",10);f(10);}
("",x);
}
()
{z=123456;
f(z);
}
则程序的输出结果是
A)6-5-4-3-2-1-
B)6-5-4-3-2-1
C)1-2-3-4-5-6
D)1-2-3-4-5-6-
参考答案:
B
【解析】本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。
f函数中首先通过条件语句判断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行10运算,同时调用函数f。
如果条件不成立,直接输出变量x。
因此第1次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。
因此B选项正确。
34.若有以下程序
<>
2;
f(m)
{n;
0;;;
;
}
()
{k;
(0;k<4;)(",",f(k));
}
则程序的输出结果是
A)4,5,6,7,
B)4,7,10,13,
C)4,6,8,10,
D)3,5,7,9,
参考答案:
C
【解析】主函数中变量k作为语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。
由于变量a是全局变量,变量n是静态变量,因此0时,f函数中,语句;即1+0+3=4;1时,f函数中,语句;即2+1+3=6;2时,f函数中,语句;即3+2+3=8;3时,f函数中,语句;即4+3+3=10。
因此C选项正确。
35.若有以下程序
<>
S(x)x*x
T(x)S(x)*S(x)
()
{5,2;
("\n",S()());
}
则程序的输出结果是
A)17,289
B)49,2401
C)17,37
D)49,289
参考答案:
C
【解析】本题考查宏定义,宏定义只是做个简单的替换,执行S()*17()()*S()***37,选项C正确。
36.若有以下程序
<>
<>
<>
{
*,;
;
};
()
{
{,'m',290},b;
(*)(10);
(,"");
b=a;='f';=350;
(,"");
(",",,,);
("\n",,,);
}
则程序的输出结果是
A),290,350
B),290,350
C),350,350
D),290,350
参考答案:
D
【解析】本题中考查结构体中变量的引用,a结构体中被修改为,所以本题答案为D。
37.若有以下程序
<>
<>
<>
{
*,;
;
};
f(*p)
{
(*)(10);
(p,"");
}
()
{
{,'m',290},b;
(*)(10);
(,"");
b=a;
f();
='f';=350;
(",",,,);
("\n",,,);
}
则程序的输出结果是
A),290,350
B),290,350
C),350,350
D),290,350
参考答案:
B
【解析】本题考查结构体变量中的引用,其中a的为,b执行函数f()后b的并没有改变,还是,所以答案为B选项。
38.若有定义
*T;
Ta[10];
则a的定义与下面哪个语句等价
A)(*a)[10];
B)*a[10];
C)*a;
D)a[10];
参考答案:
B
【解析】本题考查的使用方法,对已存在的类型使用一个新的名字,其中本题中*用T来代替,所以定义Ta[10];就相当于是*a[10];选项B正确。
39.若有以下程序
<>
()
{c;
10^5;
("\n",c);
}
则程序的输出结果是
A)5
B)15