成都信息工程学院C语言题库答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int main(void) {
int i; char str[5][10];
for (i=0; i<5; i++) {
gets(str[i]); } bubble_sort(str, 5); for (i=0; i<5; i++) {
puts(str[i]); } return 0; }
void bubble_sort(char str[][10], int n) {
void bubble_sort(char s[][81], int n); int str_compare(char s1[], char s2[]); void str_copy(char s1[], char s2[]);
int main(void) {
8
int i; char str[5][81];
return 0; } 使用行指针和列指针: #include <stdio.h>
int main(void) {
int arr[20][20], *p1, (*p2)[20]; int i, j, m, sum;
printf("Please input m: "); scanf("%d", &m); printf("\nPlease input array:\n"); p1 = *arr; for (i = 0; i < m; i++) {
printf("Input array(5):\n"); for (i = 0; i < 5; i++) {
scanf("%d", &a[i]);
2
} printf("Input the insert num:"); scanf("%d", &num); insert(a, 6, num); printf("Output:\n"); for (i = 0; i < 6; i++) {
} 2、一维数组的指针法访问: int main(void) {
int a[10]; int *p;
for(p=a;p<(a+10);p++) {
scanf("%d", p); } for(p=a;p<(a+10);p++)
{ printf("%d ", *p); } return 0; } 3、冒泡排序中指针做形参 #include <stdio.h>
#include <stdio.h>
/*寻找和移动*/
3
void insert(int a[], int n, int num); int main(void) {
int a[6], num, i;
printf("Input array(5):\n"); for (i = 0; i < 5; i++) {
i++;
9
} return (s1[i] - s2[i]); }
void str_copy(char s1[], char s2[]) {
int i;
for (i = 0; s2[i] != '\0'; i++) {
s1[i] = s2[i]; } s1[i] = '\0'; } 使用指针数组 #include <stdio.h>
printf("%d ", a[i]); } printf("\n"); return 0; } 从前向后找
void insert(int a[], int n, int num) {
int i, j;
i=0;
while (num > a[i]) /*寻找位置*/
{
i++;
}
for (j=n-1; j>i; j--) /*移动*/
puts(str[i]); } return 0; }
void bubble_sort(char s[][81], int n) {
int i, j; char temp[81wenku.baidu.com;
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++) {
if (str_compare(s[j], s[j+1]) > 0) {
}
bubble_sort(arr, 10);
printf("The sorted numbers:\n"); for ( i = 0; i< 10; i++) {
printf("%4d", arr[i]); } printf("\n");
return 0; }
void bubble_sort(int *p, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for ( j = 0; j< n - i - 1; j++) {
if(p[j] > p[j+1]) {
temp = p[j]; p[j] = p[j+1]; p[[j+1] = temp; } } } } 4、有序表的有序插入 #include <stdio.h> void insert(int a[], int n, int num); int main(void) { int a[6], num, i;
scanf("%d", &a[i]); } printf("Input the insert num:"); scanf("%d", &num); insert(a, 6, num); printf("Output:\n"); for (i = 0; i < 6; i++) {
printf("%d ", a[i]); } printf("\n"); return 0; } void insert(int *p, int n, int num) { int i;
int arr[20][20]; int i, j, m, sum;
printf("Please input m: "); scanf("%d", &m);
4
printf("\nPlease input array:\n"); for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
sum += *(*(p2 + i) + j); } } } printf("\nsum=%d\n", sum); return 0; } 6、输入 5 个字符串,按升序排序后输出,用字符数组处理 #include <stdio.h> #include <string.h>
void bubble_sort(char str[][10], int n);
temp = ps[j]; ps[j] = ps[j + 1]; ps[j + 1] = temp; } } } } 8、带参数的 main()函数 #include <stdio.h>
int main(int argc, char *argv[]) {
int i; printf("The program name is:%s\n", argv[0]); if (argc > 1) {
for (j = 0; j < m; j++) {
scanf("%d", p1+i*20+j); } } p2 = arr; sum = 0;
5
for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
if (i == j || i + j == m - 1) {
printf("Input 5 strings:\n"); for (i = 0; i < 5; i++) {
gets(str[i]); } bubble_sort(str, 5); printf("---------------------------\n"); for (i = 0; i < 5; i++) {
puts(ptr[i]); } return 0; }
void bubble_sort(char *ps[], int n) {
int i, j; char *temp;
7
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++) {
if (strcmp(ps[j], ps[j+1]) > 0) {
void bubble_sort(char *ps[], int n); int str_compare(char *p1, char *p2);
str_copy(temp, s[j]); str_copy(s[j], s[j+1]); str_copy(s[j+1], temp); } } } }
int str_compare(char s1[], char s2[]) {
int i;
i = 0; while ( s1[i] == s2[i]) {
printf("The other arguments are following:\n"); for (i = 1; i<argc; i++) {
printf("%s\n", argv[i]); } }
return 0; }
习题 9-7 参考程序 题库 104 题,输入 5 个字符串,排序,不能使用 strcpy()和 strcmp()函数 p7-781.c 只使用字符数组 #include <stdio.h>
for (i = 0; i < 5; i++) {
ptr[i] = str[i]; } printf("Input 5 strings:\n"); for (i = 0; i < 5; i++) {
gets(ptr[i]); } bubble_sort(ptr, 5); printf("---------------------------\n"); for (i = 0; i < 5; i++) {
i = n-1; while (i > 0 && num < p[i-1]) {
p[i] = p[i-1]; i--; } p[i] = num; } 5、题库 59 题,编写一程序 P2-217.C 实现以下功能 求任意的一个 m×m 矩阵的对角线上元素之和 #include <stdio.h>
int main(void) {
第九次课上课程序及习题参考程序 1、一维数组的下标法访问: int main(void) {
int a[10]; int i;
for(i=0; i<10; i++) {
scanf("%d", &a[i]); }
for(i=0; i<10; i++) { printf("%d", a[i]); } return 0;
void bubble_sort(int arr[], int n);
int main(void) {
int arr[10], i;
printf("Please input 10 numbers:\n"); for ( i = 0; i < 10; i++)
1
{ scanf("%d", &arr[i]);
int i, j; char temp[10];
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++)
6
{ if (strcmp(str[j], str[j+1]) > 0) { strcpy(temp, str[j]); strcpy(str[j], str[j+1]); strcpy(str[j+1], temp); }
} } } 7、输入 5 个字符串,按升序排序后输出,用指针数组完成 #include <stdio.h> #include <string.h>
void bubble_sort(char *ps[], int n);
int main(void) {
int i; char str[5][81], *ptr[5];
scanf("%d", &arr[i][j]); } } sum = 0; for (i = 0; i < m; i++) { for (j = 0; j < m; j++) {
if (i == j || i + j == m - 1) {
sum += arr[i][j]; } } } printf("\nsum=%d\n", sum);
{
a[j] = a[j-1];
}
a[i] = num;
/*插入*/
}
从后向前找 void insert(int a[], int n, int num) {
int i;
i = n-1; while (i > 0 && num < a[i-1]) {
a[i] = a[i-1]; i--; } a[i] = num; } 使用指针:
int i; char str[5][10];
for (i=0; i<5; i++) {
gets(str[i]); } bubble_sort(str, 5); for (i=0; i<5; i++) {
puts(str[i]); } return 0; }
void bubble_sort(char str[][10], int n) {
void bubble_sort(char s[][81], int n); int str_compare(char s1[], char s2[]); void str_copy(char s1[], char s2[]);
int main(void) {
8
int i; char str[5][81];
return 0; } 使用行指针和列指针: #include <stdio.h>
int main(void) {
int arr[20][20], *p1, (*p2)[20]; int i, j, m, sum;
printf("Please input m: "); scanf("%d", &m); printf("\nPlease input array:\n"); p1 = *arr; for (i = 0; i < m; i++) {
printf("Input array(5):\n"); for (i = 0; i < 5; i++) {
scanf("%d", &a[i]);
2
} printf("Input the insert num:"); scanf("%d", &num); insert(a, 6, num); printf("Output:\n"); for (i = 0; i < 6; i++) {
} 2、一维数组的指针法访问: int main(void) {
int a[10]; int *p;
for(p=a;p<(a+10);p++) {
scanf("%d", p); } for(p=a;p<(a+10);p++)
{ printf("%d ", *p); } return 0; } 3、冒泡排序中指针做形参 #include <stdio.h>
#include <stdio.h>
/*寻找和移动*/
3
void insert(int a[], int n, int num); int main(void) {
int a[6], num, i;
printf("Input array(5):\n"); for (i = 0; i < 5; i++) {
i++;
9
} return (s1[i] - s2[i]); }
void str_copy(char s1[], char s2[]) {
int i;
for (i = 0; s2[i] != '\0'; i++) {
s1[i] = s2[i]; } s1[i] = '\0'; } 使用指针数组 #include <stdio.h>
printf("%d ", a[i]); } printf("\n"); return 0; } 从前向后找
void insert(int a[], int n, int num) {
int i, j;
i=0;
while (num > a[i]) /*寻找位置*/
{
i++;
}
for (j=n-1; j>i; j--) /*移动*/
puts(str[i]); } return 0; }
void bubble_sort(char s[][81], int n) {
int i, j; char temp[81wenku.baidu.com;
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++) {
if (str_compare(s[j], s[j+1]) > 0) {
}
bubble_sort(arr, 10);
printf("The sorted numbers:\n"); for ( i = 0; i< 10; i++) {
printf("%4d", arr[i]); } printf("\n");
return 0; }
void bubble_sort(int *p, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for ( j = 0; j< n - i - 1; j++) {
if(p[j] > p[j+1]) {
temp = p[j]; p[j] = p[j+1]; p[[j+1] = temp; } } } } 4、有序表的有序插入 #include <stdio.h> void insert(int a[], int n, int num); int main(void) { int a[6], num, i;
scanf("%d", &a[i]); } printf("Input the insert num:"); scanf("%d", &num); insert(a, 6, num); printf("Output:\n"); for (i = 0; i < 6; i++) {
printf("%d ", a[i]); } printf("\n"); return 0; } void insert(int *p, int n, int num) { int i;
int arr[20][20]; int i, j, m, sum;
printf("Please input m: "); scanf("%d", &m);
4
printf("\nPlease input array:\n"); for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
sum += *(*(p2 + i) + j); } } } printf("\nsum=%d\n", sum); return 0; } 6、输入 5 个字符串,按升序排序后输出,用字符数组处理 #include <stdio.h> #include <string.h>
void bubble_sort(char str[][10], int n);
temp = ps[j]; ps[j] = ps[j + 1]; ps[j + 1] = temp; } } } } 8、带参数的 main()函数 #include <stdio.h>
int main(int argc, char *argv[]) {
int i; printf("The program name is:%s\n", argv[0]); if (argc > 1) {
for (j = 0; j < m; j++) {
scanf("%d", p1+i*20+j); } } p2 = arr; sum = 0;
5
for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
if (i == j || i + j == m - 1) {
printf("Input 5 strings:\n"); for (i = 0; i < 5; i++) {
gets(str[i]); } bubble_sort(str, 5); printf("---------------------------\n"); for (i = 0; i < 5; i++) {
puts(ptr[i]); } return 0; }
void bubble_sort(char *ps[], int n) {
int i, j; char *temp;
7
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++) {
if (strcmp(ps[j], ps[j+1]) > 0) {
void bubble_sort(char *ps[], int n); int str_compare(char *p1, char *p2);
str_copy(temp, s[j]); str_copy(s[j], s[j+1]); str_copy(s[j+1], temp); } } } }
int str_compare(char s1[], char s2[]) {
int i;
i = 0; while ( s1[i] == s2[i]) {
printf("The other arguments are following:\n"); for (i = 1; i<argc; i++) {
printf("%s\n", argv[i]); } }
return 0; }
习题 9-7 参考程序 题库 104 题,输入 5 个字符串,排序,不能使用 strcpy()和 strcmp()函数 p7-781.c 只使用字符数组 #include <stdio.h>
for (i = 0; i < 5; i++) {
ptr[i] = str[i]; } printf("Input 5 strings:\n"); for (i = 0; i < 5; i++) {
gets(ptr[i]); } bubble_sort(ptr, 5); printf("---------------------------\n"); for (i = 0; i < 5; i++) {
i = n-1; while (i > 0 && num < p[i-1]) {
p[i] = p[i-1]; i--; } p[i] = num; } 5、题库 59 题,编写一程序 P2-217.C 实现以下功能 求任意的一个 m×m 矩阵的对角线上元素之和 #include <stdio.h>
int main(void) {
第九次课上课程序及习题参考程序 1、一维数组的下标法访问: int main(void) {
int a[10]; int i;
for(i=0; i<10; i++) {
scanf("%d", &a[i]); }
for(i=0; i<10; i++) { printf("%d", a[i]); } return 0;
void bubble_sort(int arr[], int n);
int main(void) {
int arr[10], i;
printf("Please input 10 numbers:\n"); for ( i = 0; i < 10; i++)
1
{ scanf("%d", &arr[i]);
int i, j; char temp[10];
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++)
6
{ if (strcmp(str[j], str[j+1]) > 0) { strcpy(temp, str[j]); strcpy(str[j], str[j+1]); strcpy(str[j+1], temp); }
} } } 7、输入 5 个字符串,按升序排序后输出,用指针数组完成 #include <stdio.h> #include <string.h>
void bubble_sort(char *ps[], int n);
int main(void) {
int i; char str[5][81], *ptr[5];
scanf("%d", &arr[i][j]); } } sum = 0; for (i = 0; i < m; i++) { for (j = 0; j < m; j++) {
if (i == j || i + j == m - 1) {
sum += arr[i][j]; } } } printf("\nsum=%d\n", sum);
{
a[j] = a[j-1];
}
a[i] = num;
/*插入*/
}
从后向前找 void insert(int a[], int n, int num) {
int i;
i = n-1; while (i > 0 && num < a[i-1]) {
a[i] = a[i-1]; i--; } a[i] = num; } 使用指针: