给定程序中,函数fun的功能是:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小写与形参c一致,数量由形参d指定。若输出字母中有字母Z或z,则应从A或a开始接续,直到输出指定数量的字母。例如:c为’Y’,d为4,则程序输出ZABC;

admin2020-06-02  15

问题 给定程序中,函数fun的功能是:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小写与形参c一致,数量由形参d指定。若输出字母中有字母Z或z,则应从A或a开始接续,直到输出指定数量的字母。例如:c为’Y’,d为4,则程序输出ZABC;c为’z’,d为2,则程序输出ab。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#pragma warning(disable:4996)
void fun(char c,int d)  {
  int i;
  char A[26],a[26],*ptr;
/*********found*********/
for(i=0;i<(【1】; i++) {
    A  =’A’+i;
    a  = ’a’  +i;
  }
/*********found*********/
if((c>=’a’)&&(c(【2】’z’))
ptr=a:
    else ptr=A;
/*********found*********/
  for(i=1;i<=d;i++)
  printf("%c",ptr[(c-ptr[0]+i)%(【3】]);
}
main() {
  char c;int d;
  printf("please input c&d:\n");
  scanf("%c%d",  &c,  &d),
  fun(c,d);
}

选项

答案(1)26 (2)<= (3)26

解析 函数fun()中首先将大写字母按照字母表的顺序存放到数组A中,将小写字母按照字母表的顺序存放到数组a中;然后判断输入的字符c,若字符c是小写字母,则将指针ptr指向数组a,若是大写字母,将指针ptr指向数组A;然后使用变量i遍历1到d,输出ptr所指数组中,偏移量为c-ptr[0]+i的元素,若偏移量c-ptr[0]+i>=26,则对26求余,循环输出数组开始部分的元素。注意:题意要求输出当前字符的后继字符,所以c-ptr[0]+i是将当前字符c减去ptr所指元素,然后与i相加,得到后继第i个字符的下标。
转载请注明原文地址:https://kaotiyun.com/show/ReCp777K
0

最新回复(0)