成都信息工程学院C语言题库答案
- 格式:pdf
- 大小:85.49 KB
- 文档页数:11
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;
} 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>
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--) /*移动*/
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++) {
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++) {
#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++) {
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);
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];
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++) {
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);
void bubble_sort(char *ps[], int n); int str_compare(char *p1, char *p2);
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;
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]);
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]) {
{
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; } 使用指针:
} } } 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];
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) {
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) {
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) {
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) {