*(a+i)=*(a+j); *(a+j)=t; i++;j--; }
for(i=0;i Q1601.(10分)按如下函数原型编写程序,输入10个整数,用函数编程将其中最大数与最小数位置互换,然后输出互换后的数组。 void MaxMinExchang(int a[], int n); int FindMaxPos(int s[], int n); int FindMinPos(int s[], int n); 输入提示信息:\输入格式:\ 输出提示信息:\输出格式:\参考答案 #include void MaxMinExchang(int a[], int n); int FindMaxPos(int s[], int n); int FindMinPos(int s[], int n); int main() { int i, a[10]; printf(\ for (i = 0; i < 10; i++) { scanf(\ } MaxMinExchang(a, 10); printf(\ for (i = 0; i < 10; i++) { printf(\ } printf(\ return 0; } /* 函数功能:将数组中的最大数与最小数位置互换 */ void MaxMinExchang(int a[], int n) { int maxPos, minPos, temp; maxPos = FindMaxPos(a, n); minPos = FindMinPos(a, n); temp = a[maxPos]; a[maxPos] = a[minPos]; a[minPos] = temp; } /* 函数功能:计算数组中的最大值在数组中的下标位置 */ int FindMaxPos(int s[], int n) { int maxPos = 0, max = s[0], i; for (i = 1; i < n; i++) { if (s[i] > max) { max = s[i]; maxPos = i; } } return maxPos; } /* 函数功能:计算数组中的最小值在数组中的下标位置 */ int FindMinPos(int s[], int n) { int minPos = 0, min = s[0], i; for (i = 1; i < n; i++) { if (s[i] < min) { min = s[i]; minPos = i; } } return minPos; } Q1687.(10分)用字符指针作函数参数编程实现如下功能:在字符串中删除与某字符相同的字符。 **提示信息: \ \ **输入格式要求:\ **输出格式要求:\程序运行示例1如下: Input a string:hello,world! Input a character:o Results:hell,wrld! 参考答案 #include void Squeeze(char *s, char c); int main() { char str[20], ch; printf(\ gets(str); printf(\ ch = getchar(); Squeeze(str, ch); printf(\ return 0; } void Squeeze(char *s, char c) { char str[N]; char *t = str; strcpy(t, s); for (; *t != '\\0'; t++) { if (*t != c) { *s = *t; s++; } } *s = '\\0'; /* 在字符串t2的末尾添加字符串结束标志 */ } Q1715.(10分)假设今年的工业产值为100万元,产值增长率为每年c%,请编程计算当c分别为6、8、10、12时工业产值分别过多少年可实现翻一番(即增加一倍)。 输入格式:无 输出格式:\参考答案 #include #define CURRENT 100 #define N 4 main() { int i; int year; /* 产值翻番所需年数 */ int growRate[N] = {6, 8, 10, 12}; /* 工业产值的增长率 */ double output; /* 工业总产值 */ for (i = 0; i < N; i++) { output = CURRENT; /* 当年产值为100万元 */ for (year = 0; output < 2 * CURRENT; year++) { output = output * (1 + growRate[i] / 100.0); } printf(\ %d years.\\n\ } } Q297.(15分)两个正整数的最大公约数是能够整除这两个整数的最大整数。 请按如下函数原型编写计算最大公约数的函数Gcd()。 int Gcd(int a, int b); 在主函数中调用该函数计算,并输出从键盘任意输入的两整数的最大公约数。 **要求输入提示信息为: \**要求输入格式为: \**要求输出格式为 如果a或b不是正整数,输出: \否则输出: \ 注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用int main和return 0。 参考答案 #include int a, b, c; printf(\ scanf(\ c = Gcd(a, b); //1 if (c != -1) //1 { printf(\ } else { printf(\ } } int Gcd(int a, int b) //1 { int i, t; if (a <= 0 || b <= 0) //1 { return -1; //1 } t = a < b ? a : b; //2 for (i = t; i > 0; i--)//2 { if (a % i == 0 && b % i == 0)//1 return i; //1 } return 1; //1 } Q320.(10分)请用循环语句,打印输出如下图所示的下三角形乘法九九表。 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 **输入提示信息格式: 无 **输入数据格式要求: 无 **输出数据格式要求: \参考答案 #include int i, j; for (i = 1; i < 10; i++) //2 { for (j = 1; j <= i; j++) //2 { printf(\ } printf(\ //1 } return 0; }