问题 问答题

[函数2.1说明] 下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。[函数2.1]#include <stdio.h>main(){ char b[16]={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’}; int c[64],n,i=0,base; printf("Enter a number:");scaaf("%d",&n); printf("Enter new base:");scanf("%d",&base); do{c[i]= (1) ; i++; n=n/base; }while( (2) ); printf("Transmit new base:"); for(- -i;i>=0;- -i)printf("%c", (3) );}[函数2.2说明] 所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。[函数2.2]int fun(char *str){ int i,j,l; for(i=0;str[i]! =’\0’;i++); l=i/2; for(j=0,i- -;j<=1; (4) ) if( (5) ) return 0; return 1;}

答案

参考答案:

解析:(1) n% base (2) n! =0 (3) b[c[i]] (4) j++, i-- (5) str[i]! =str[j][考点分析] 考查C语言程序设计,包括数值和字符中的处理。 (1)~(3)函数2.1的基本思想是“除base取余”,即从低位开始以n除以base的余数作为转化后的一位c[i],再以n除以base的商作为新的n,继续进行转化,直至除法商0为止。最后将所得的c[i]作为下标,从数组b中找出对应的数码表示,即b[c[i]]。(4)~(5)此循环初始时,i和j充当str的头和尾指针,循环执行过程中,两指针同时以步长1向str的中间移动,比较所指字符是否相等,若不等则表明str不是回文字符串。

单项选择题 A1/A2型题
判断题