有以下程序: #include 〈iostream〉 using namespace std; #define M 10 #define B4 void setstar(char *a, int n) {

admin2010-03-29  22

问题 有以下程序:    #include 〈iostream〉    using namespace std;    #define  M  10    #define  B4    void setstar(char *a, int n)    {       int i;       for (i=0; i

选项 A、AB   C   D  E   F   G   H   I   J
B、AB   C   D   *    *    *    *    *    *
C、AB   C   D   E   F   *    *    *    *
D、*  *    *    *    *    *    A   B   C   D

答案2

解析 本题考查对指针作为函数形参的掌握程度。根据程序代码逐步分析:
   ①第一个被调函数setstar()为void型。形参为一个char类型的指针变量a和一个整型变量n,函数体由for循环语句构成,给指针变量a所指的变量赋值,并对从a所指的存储单元开始的连续n个存储单元,进行赋值(*)。
   ②函数arrout()也是void类型,形参也是两个,一个为char类型的指针,另一个是整型变量n。函数体也是由for循环语句构成,不过setstar()函数是给指针变量所指的存储单元赋值,:而arrout()函数是输出指针变量所指的存储单元中的值。
   ③主函数中,程序首先定义并赋初值于数组c,调用setstar()函数,把实参数组元素c[4]的地址传递给setstar的形参变量a,并把M-B的值(即6)传递给n。这样最后的结果是数组元素c[0]、c[1]、c[2]和c[3]中的值不变,从c[4]开始以后的数组元素中的值都将被改变为字符’*’。调用函数arrout()输出改变后的数组c中的值。
转载请注明原文地址:https://jikaoti.com/ti/vfW0FFFM
0

最新回复(0)