background image

10

 

  

   

  

char

 

str[2][10]={"abc"

"ABC"}

则 printf(" % d" , strcmp ( str[1] , str[0 ] ) ) 的 输 出 结 果 是 __________ ;
printf("%d",strcmp(strlwr(str[1],str[0])),str[0]))的输出结果是_______。

【分析】字符型数组 str 中,从 str[0]开始存放的字符串是"abc"、从 str[l]开始存放的字符

串是"ABC"。strcmp(str[l],str[0])是比较 str[l]和 str【0」处的两个字符串的大小,由
于"ABC"是小于"abc"的,按照 srrcmp 函数的功能可知,返回值是一个小于 0 的整数,
这是第 1 个空的答案。再来分析第 2 个空的答案,strlwr(str[l])函数的功能是将 str[l]
处 的 字 符 串 中 大 写 字 母 改 为 小 写 字 母 , 其 返 回 值 是 修 改 后 字 符 串 的 地 址 。
strcmp(stlwr(sir[1]),str[0]))函数的功能是比较 str[l]和 str[0]处的字符串,由
于 str[l]

 

处的字符串已经改为小写字母了,所以和 str[0]处的字符串完全相同,返回值是

0

2

[

]

0

  

   

 0

11 下列程序的功能是读取 10 个实数,然后依次输出前 l 个实数和、前 2

个实数和、 、前

9 个 实 数 和 、 前 10 个 实 数 和 。 请 填 写 程 序 中 缺 少 的 语 句 。
  

 main

  

 {float

 

f[10]

X

0

0

  

  

int

 

i

  

  

for

i=0

i

10

i++

  

   

  

scanf

"

 

 

f"

 

f

  

  

for

i=1;i

=10

i++

  

   

   {_______________________

            printf ( "sum   of   NO   % 2d - - - - % f \ n" , i , x ) ;
  

   

   

 }

  

  

}

 

【分析】浏览程序清单后,可以发现前一个次数型循环是输入 10

 

个实数存入数组 f 中。后

一个次数型循环是计算前 i 个实数和并存入变量 X 中,然后再输出这个 x 的值。程序中所
缺少的语句就是实现"计算前 i 个实数和并存入变量 X 中"的。当 i 等于 1 时,x 要等于
f[0]的值,即 f[i-l]的值;当 i 等于 2 时,x 要等于 f[0] +f[l]的值,即 f[0]+f[i-1」
的值,此时 f[0]的值已经计算并存入变量 x 中;当 i 等于 3 时,x 要等于 f[0]+f[1]+
f[2]的值,即 f[0]+f[1]+f[i-l]的值,此时 f[0]+f[1]的值已经计算并存入变量 x 中;
由此可以推出:前 i 个值的计算公式为:x=x+f[i-1],将这个表达式组成语句就是需

 

【 答 案 】

x=x + f[i - l

 

] ;

或   x + = f[i - l] ;

12

 

 

111ll

  

    llll

②   

   

  lll

③   

   

 

222

  

  

main

  

  

{int   a[]={1

2

3

4

 

5   }

i;

  

   for

 

i=1;i

 

5

 

i

  

   printf

"

 

1d"

 

a

 

a[i

1]

  

  

}

【分析】首先分析数组 a 各元素的值,由于是赋初值,很容易看出:a[0]  

= 1、a[1]=

2…、a[4]=5。再分析次数型循环共计执行 4 次(i=1、i=2、i=3、i=4),每次输出 1 位
整数;-a[i-1],当 i=1 时,输出的是 2-1=1;当 i=2 时,输出的是 3-2=l;当