班级: 学号: 姓名: 输入数据:第一行是测试数据的组数m,每组测试数据占1行,每行数据不超过1000个字符且非空。
输出要求:m行,每行对应一组输入,包括出现次数最多的字符和该字符出现的次数。如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个。
#include
int cases, sum[10], i, max;
char str[1001];
scanf(\两处错误, while (cases > 0) {
scanf(\
for( i = 0; i < 10; i++) sum[i] = 0; for(i < 0; i < strlen(str); i++) ++sum[str[i] – ‘0’]; max = 0; for (i = 1; i < 10; i++)
if(sum[i] > sum[max]) max = i;
printf(\ cases --; } }
2.交换两个整数的值,保证调用函数中实参的值交换。
void exchang(int *p1, int *p2) {
int p;
p = *p1; *p1 = *p2; *p2 = p; }
三、编程
1. 编写程序输出3到10000内的可逆素数。可逆素数是指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。如157和751均为素数,它们是可逆素数。 要求:使用子函数实现,至少两个子函数。其它自便。(21分) 参考答案一:
prime函数用于判定素数。invert(int a)函数用于倒序一个数,如a=123,则invert函数返回值为321。
9 班级: 学号: 姓名: // 缩进、空格、空行、标识符命名等编程规范 2分
#include
#include
int invert(int a) // 1分 {
int s = 0;
while (a > 0) // 1分 {
s = 10*s+ a % 10 ; // 2分 a /= 10; // 2分 }
return s; // 1分 }
int prime(int a) // 1分 {
int i;
for (i = 2; i <= (int)sqrt(a); i++) // 2分 if ( a % i==0) // 1分 return 0; // 1分 return 1; // 1分 }
int main() {
int i;
for (i = 3; i < 10000; i++) // 1分 if (prime(i)) // 1分
if (prime( invert(i) )) printf(\分 printf(\
return 0; }
2. 编写程序实现将一个文本文件TAB.TXT中的制表符'\\t'(ASCII码为0x09)换为8个空格并存入SPACE.TXT文本文件中。(19分) 参考答案一:
// 缩进、空格、空行、标识符命名等编程规范 2分
#include
#include
10 班级: 学号: 姓名:
int main() {
FILE *fpr, *fpw; //2分 char ch;
if ((fpr=fopen(\//1分 {
printf(\\\n\ exit(0); }
if ((fpw=fopen(\//1分 {
printf(\\\n\ exit(0); }
if (!feof(fpr)) // 1分 ch=fgetc(fpr); // 1分 while (ch!= EOF ) // while (ch!= -1 )//1分 {
if (ch!=9) // ch 1= 0x09 // 2分 fputc( ch, fpw ); // 1分 else
fprintf(fpw, \ // 2分 ch=fgetc(fpr); // 1分 }
fclose(fpr); //1分 fclose(fpw) ; //1分 return 0; }
11

