1、1、以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。并把程序补充完成# define N 4void rotate(int aN, int bN) int i, j;for (i=0; imax,则 max=ai,maxindex=i,使用循环结构对每个元素与 max 比较、处理。/求有 10 个元素的数组中最大元素及其下标。#include #include int main(int argc, char *argv)
2、int a10;int i, index;/i 表示循环变量,index 用于存放值最大的元素下标 /输入数组元素 printf(“请输入 10 个元素的值:n“);for (i = 0; i r2),则交换;然后比较第二个元素与第三个元素;依次类推,经 n-1 次两两相邻比较后,最大的数已交换到最后一个位置;第一趟冒泡排序 第 2 趟:将前 n-1 个数(最大的数已在最后)按第 1 趟方法进行,经 n-2 次两两相邻比较后使得次大的数交换到倒数第二个位置;第二趟冒泡排序 依此类推,n 个数共进行 n-1 趟比较,在第 j 趟中要进行 n-j 次两两比较。最后使得第 n-1 大的元素交换到第二
3、个位置,排序结束。/冒泡排序。 #include #include #define N 6 /*数组元素个数 */ void input(int a, int n); /*输入数组的 n 个元素 */void output(int a, int n); /*输出数组的 n 个元素 */void bubblesort(int a, int n); /*对有 n 个元素的数组进行冒泡排序 */int main(int argc, char *argv)/定义数组printf(“输入数组的%d 个元素:n“, N);/输入数组的元素 printf(“排序前数组 a 的元素为: n“);/输出排序前的
4、数组元素的值 /排序 printf(“排序后数组 a 的元素为: n“);/输出排序后的数组元素的值 system(“pause“); return 0;void input(int a, int n)/*输入数组 a 的 n 个元素的值*/int i;for (i = 0; i aj+1) 4、选择排序基本思想:假设待排序的数组 a 有 n 个元素,选择排序法是:第一趟找出第一个位置应该放的元素,即从 n 个元素中找出最小的元素,因为排成非递增有序序列后,第一个元素必是整个数组中最小的,所以将找到的最小的元素与第一个元素交换,这样第一趟的结果使第一个元素最小;第二趟找出第二个位置应该放的元素
5、,再从第 2 至第 n 个元素中找出最小的,再将其与第二个元素交换,.第 n-1 趟找出第 n-1 个位置应该放的元素;最后剩的元素自然放在第 n 位,一共进行 n-1 趟。 /选择排序。#include #include #define N 6 /*数组元素个数 */ void input(int a, int n); /*输入数组的 n 个元素 */void output(int a, int n); /*输出数组的 n 个元素 */void selectsort(int a, int n); /*对有 n 个元素的数组进行冒泡排序*/int main(int argc, char *ar
6、gv)/定义数组; printf(“输入数组的%d 个元素:n“, N);/输入数组的元素;printf(“排序前数组 a 的元素为: n“);/输出排序前的数组元素的值; /排序; printf(“排序后数组 a 的元素为: n“);/输出排序后的数组元素的值。system(“pause“); return 0;void input(int a, int n)/*输入数组 a 的 n 个元素*/int i;for (i = 0; i 0 )时,若满足下列条件,则必然出现新单词:texti-1= =int word, i;printf(“输入一行字符:n“);gets( );if (text0
7、 = )word = 0; else if (text0 != 0)word = 1; i = 1;while (texti != 0)if ( )word+; i+; printf(“word=%dn“, word);system(“pause“); return 0;7、输入 20 个字符,分别统计其中的数字、其他字符的个数。分析:使用字符数组来存放 20 个字符,使用格式符%c 输入、输出字符。使用循环结构对字符数组中的字符进行输入和处理。#include #include int main(int argc, char *argv)char str20;int i, number =
8、0, other = 0;printf(“Input a string: “);for (i = 0; i #include void move(int n, char x, char y, char z)if ( )printf(“%c-%cn“, x, z);elseprintf(“%c-%cn“, x, z);int main(int argc, char *argv)int n; printf(“请输入盘子数:“);scanf(“%d“, printf(“移动步骤如下:n“);move(n, A, B, C); system(“pause“); return 0;9、求二维数组(3 行
9、 3 列)的对角线元素的和10 11 1213 14 1516 17 18 int main(void)int a33=10,12,13,14,15,16,17,18,19,sum=0;for(int i=0;iint main() char str11024 = “This is an sample text“;char str21024;char *p_str1;char *p_str2;p_str1 = ;= while (*p_str1 != 0) p_str2 = 0;printf(“str1 = %sn“, str1);printf(“str2 = %sn“, str2);retu
10、rn 0;11、写一个函数 isDigit(),判断一个字符是不是数字字符。格式如下:如果 ch 是一个数字字符(0到9 ) ,那么返回 1,否则返回 0。int isDigit(char ch) if ( ) return 1;else return 0; / main 函数测试int main(void) printf(“test1: %dn“, isDigit(a);printf(“test1: %dn“, isDigit(b);printf(“test1: %dn“, isDigit(0);printf(“test1: %dn“, isDigit(9);printf(“test1: %
11、dn“, isDigit(?);12、写一个函数 isAlphabet(),判断一个字符是不是字母。格式如下:如果 ch 是一个字母字符(A 到Z或者a到z ) ,那么返回 1,否则返回 0。int isAlphabet(char ch) if ( ) return 1;else if ( ) return 1;else return 0;/ main 函数测试int main(void) printf(“test2: %dn“, isAlphabet(a);printf(“test2: %dn“, isAlphabet(b);printf(“test2: %dn“, isAlphabet(0
12、);printf(“test2: %dn“, isAlphabet(9);printf(“test2: %dn“, isAlphabet(?);13、写一个函数 reverse(),将一个字符串中的内容倒置过来。格式如下:比方说,如果 text 的内容是”ABCDEFG” ,那么 reverse(text)后,text 变成”GFEDCBA” 。void reverse(char text) int len = strlen(text);char left = 0;char right = len - 1;char temp;while (left right) left+;right-;/ main 函数测试int main(void) char text1024 = “ABCDEFG“;reverse(text);