diff --git "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/config.json" "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/config.json" index 23efc59213d31168f3cfdd68583cdd2b58829e58..728d10cf99405b37fa58679f1b2b711c58a77759 100644 --- "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/config.json" +++ "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/config.json" @@ -6,5 +6,5 @@ "C语言" ], "children": [], - "export": [] + "export": ["ex_in_function.json"] } \ No newline at end of file diff --git "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.c" "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.c" new file mode 100644 index 0000000000000000000000000000000000000000..832f24e26a899d9a7c136147d4c5015632c00dd8 --- /dev/null +++ "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.c" @@ -0,0 +1,19 @@ +#include +#define ARR_LEN 10 + +void selection_sort(int array[], int len); +void print_array(int array[], int len); + +int main(int argc, char** argv) +{ + int i; + int array[ARR_LEN] = {8, 1, 4, 10, 3, 6, 2, 7, 9, 5}; + + printf("排序前:\n"); + print_array(array, ARR_LEN); + selection_sort(array, ARR_LEN); + printf("排序后:\n"); + print_array(array, ARR_LEN); + + return 0; +} \ No newline at end of file diff --git "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.json" "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.json" new file mode 100644 index 0000000000000000000000000000000000000000..d2964fa402e8b96f17c468b49707b8d2d145379b --- /dev/null +++ "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "卢昕", + "source": "ex_in_function.md", + "exercise_id":"1e8ee7c442374a44984851637673653f" +} \ No newline at end of file diff --git "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.md" "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.md" new file mode 100644 index 0000000000000000000000000000000000000000..9e9fbe8778e643b1ad1cb919243847b4e6dbe706 --- /dev/null +++ "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ex_in_function.md" @@ -0,0 +1,229 @@ +# 简单选择排序 + +定义选择排序和使用选择排序分别在不同的文件中,其中包含了内部函数与外部函数。请选出不能正确实现升序排序的选项。 + +## 答案 +```c +// ssort.c +#include + +static void swap(int *a,int *b) +{ + int temp = *a; + *a = *b; + *b = temp; +} + +static void print_array(int array[], int len) +{ + for (int i = 0; i < len; ++i) + printf("%d ", array[i]); + printf("\n"); +} + +extern void selection_sort(int array[], int len) +{ + int i,j,temp,min; + + for (i = 0 ; i < len - 1 ; ++i) + { + min = i; + for (j = i + 1; j < len; ++j) + if (array[j] < array[min]) + min = j; + if(min != i) + swap(&array[min], &array[i]); + } +} + +//ex_in_function.c +#include +#define ARR_LEN 10 + +void selection_sort(int array[], int len); +void print_array(int array[], int len); + +int main() +{ + int i; + int array[ARR_LEN] = {8, 1, 4, 10, 3, 6, 2, 7, 9, 5}; + + printf("排序前:\n"); + print_array(array, ARR_LEN); + selection_sort(array, ARR_LEN); + printf("排序后:\n"); + print_array(array, ARR_LEN); + + return 0; +} +``` + +## 选项 +### A +```c +// ssort.c +#include + +static void swap(int *a,int *b) +{ + int temp = *a; + *a = *b; + *b = temp; +} + +extern void selection_sort(int array[], int len) +{ + int i,j,temp,min; + + for (i = 0 ; i < len - 1 ; ++i) + { + min = i; + for (j = i + 1; j < len; ++j) + if (array[j] < array[min]) + min = j; + if(min != i) + swap(&array[min], &array[i]); + } +} + +// ex_in_function.c +#include +#define ARR_LEN 10 + +void selection_sort(int array[], int len); + +static void print_array(int array[], int len) +{ + for (int i = 0; i < len; ++i) + printf("%d ", array[i]); + printf("\n"); +} + +int main() +{ + int i; + int array[ARR_LEN] = {8, 1, 4, 10, 3, 6, 2, 7, 9, 5}; + + printf("排序前:\n"); + print_array(array, ARR_LEN); + selection_sort(array, ARR_LEN); + printf("排序后:\n"); + print_array(array, ARR_LEN); + + return 0; +} +``` + +### B +```c +// ssort.c +#include + +void print_array(int array[], int len); + +static void swap(int *a,int *b) +{ + int temp = *a; + *a = *b; + *b = temp; +} + +extern void selection_sort(int array[], int len) +{ + int i,j,temp,min; + + printf("排序前:\n"); + print_array(array, len); + for (i = 0 ; i < len - 1 ; ++i) + { + min = i; + for (j = i + 1; j < len; ++j) + if (array[j] < array[min]) + min = j; + if(min != i) + swap(&array[min], &array[i]); + } + + printf("排序后:\n"); + print_array(array, len); +} + +// ex_in_function.c +#include +#define ARR_LEN 10 + +void selection_sort(int array[], int len); + +extern void print_array(int array[], int len) +{ + for (int i = 0; i < len; ++i) + printf("%d ", array[i]); + printf("\n"); +} + +int main() +{ + int i; + int array[ARR_LEN] = {8, 1, 4, 10, 3, 6, 2, 7, 9, 5}; + selection_sort(array, ARR_LEN); + + return 0; +} +``` + +### C +```c +// ssort.c +#include + +void print_array(int array[], int len); + +static void swap(int *a,int *b) +{ + int temp = *a; + *a = *b; + *b = temp; +} + +void selection_sort(int array[], int len) +{ + int i,j,temp,min; + + printf("排序前:\n"); + print_array(array, len); + for (i = 0 ; i < len - 1 ; ++i) + { + min = i; + for (j = i + 1; j < len; ++j) + if (array[j] < array[min]) + min = j; + if(min != i) + swap(&array[min], &array[i]); + } + + printf("排序后:\n"); + print_array(array, len); +} + +// ex_in_function.c +#include +#define ARR_LEN 10 + +void selection_sort(int array[], int len); + +void print_array(int array[], int len) +{ + for (int i = 0; i < len; ++i) + printf("%d ", array[i]); + printf("\n"); +} + +int main() +{ + int i; + int array[ARR_LEN] = {8, 1, 4, 10, 3, 6, 2, 7, 9, 5}; + selection_sort(array, ARR_LEN); + + return 0; +} +``` diff --git "a/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ssort.c" "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ssort.c" new file mode 100644 index 0000000000000000000000000000000000000000..fdcf6b0b6507b7a883ac1fe36dc7afe96e078fa4 --- /dev/null +++ "b/data/2.C\350\257\255\350\250\200\344\270\255\351\230\266/1.\345\207\275\346\225\260\344\270\216\347\250\213\345\272\217\347\273\223\346\236\204/8.\345\206\205\351\203\250\345\207\275\346\225\260\345\222\214\345\244\226\351\203\250\345\207\275\346\225\260/ssort.c" @@ -0,0 +1,30 @@ +#include + +static void swap(int *a,int *b) +{ + int temp = *a; + *a = *b; + *b = temp; +} + +static void print_array(int array[], int len) +{ + for (int i = 0; i < len; ++i) + printf("%d ", array[i]); + printf("\n"); +} + +extern void selection_sort(int array[], int len) +{ + int i,j,temp,min; + + for (i = 0 ; i < len - 1 ; ++i) + { + min = i; + for (j = i + 1; j < len; ++j) + if (array[j] < array[min]) + min = j; + if(min != i) + swap(&array[min], &array[i]); + } +} \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/config.json" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/config.json" index a004067a900bacf9be527d4532d4299b92b62c7e..fc0c612b76a46b1dadf167603a380489d6604e3e 100644 --- "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/config.json" +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/config.json" @@ -6,5 +6,5 @@ "C语言" ], "children": [], - "export": [] + "export": ["storage_categories.json"] } \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.c" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.c" new file mode 100644 index 0000000000000000000000000000000000000000..48068a36a6406db43e46445fe46716d6fe34d654 --- /dev/null +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.c" @@ -0,0 +1,28 @@ +#include + +void func_1() +{ + int num = 0; + ++num; + printf("第%d次调用函数func_1()\n", num); +} + +void func_2() +{ + func_1(); +} + +void func_3() +{ + func_1(); + func_2(); +} + +int main(int argc, char** argv) +{ + func_1(); + func_2(); + func_3(); + + return 0; +} \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.json" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.json" new file mode 100644 index 0000000000000000000000000000000000000000..ec4d59e211e04a9c6721eac4bb445b931809b1fc --- /dev/null +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.json" @@ -0,0 +1,6 @@ +{ + "type": "code_options", + "author": "卢昕", + "source": "storage_categories.md", + "exercise_id":"089799ddb1c3419a836a94abe8b39270" +} \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.md" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.md" new file mode 100644 index 0000000000000000000000000000000000000000..44bf38de2bf24f701ef965c1c539ccc346c70c35 --- /dev/null +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/6.\345\255\230\345\202\250\347\256\241\347\220\206/1.\345\255\230\345\202\250\347\261\273\345\210\253/storage_categories.md" @@ -0,0 +1,134 @@ +# 统计函数调用次数 + +正确输出 **func_1()** 函数在当前程序中为第几次被调用。请选出错误答案。 + +## 答案 +```c +#include + +void func_1() +{ + int num = 0; + ++num; + printf("第%d次调用函数func_1()\n", num); +} + +void func_2() +{ + func_1(); +} + +void func_3() +{ + func_1(); + func_2(); +} + +int main(int argc, char** argv) +{ + func_1(); + func_2(); + func_3(); + + return 0; +} +``` + +## 选项 +### A +```c +#include + +int num = 0; + +void func_1() +{ + ++num; + printf("第%d次调用函数func_1()\n", num); +} + +void func_2() +{ + func_1(); +} + +void func_3() +{ + func_1(); + func_2(); +} + +int main(int argc, char** argv) +{ + func_1(); + func_2(); + func_3(); + + return 0; +} +``` + +### B +```c +#include + +void func_1() +{ + static int num = 0; + ++num; + printf("第%d次调用函数func_1()\n", num); +} + +void func_2() +{ + func_1(); +} + +void func_3() +{ + func_1(); + func_2(); +} + +int main(int argc, char** argv) +{ + func_1(); + func_2(); + func_3(); + + return 0; +} +``` + +### C +```c +#include + +void func_1(int *num) +{ + printf("第%d次调用函数func_1()\n", *num); + ++(*num); +} + +void func_2(int *num) +{ + func_1(num); +} + +void func_3(int *num) +{ + func_1(num); + func_2(num); +} + +int main(int argc, char** argv) +{ + int num = 1; + + func_1(&num); + func_2(&num); + func_3(&num); + + return 0; +} +```