收藏 分销(赏)

成都信息工程学院C语言题库答案.docx

上传人:仙人****88 文档编号:5913019 上传时间:2024-11-23 格式:DOCX 页数:17 大小:13.93KB 下载积分:10 金币
下载 相关 举报
成都信息工程学院C语言题库答案.docx_第1页
第1页 / 共17页
成都信息工程学院C语言题库答案.docx_第2页
第2页 / 共17页


点击查看更多>>
资源描述
第九次课上课程序及习题参考程序 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; } 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> 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++) { scanf("%d", &arr[i]); } 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; printf("Input array(5):\n"); for (i = 0; i < 5; 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 a[], int n, int num) { int i, j; i=0; while (num > a[i]) /*寻找位置*/ { i++; } for (j=n-1; j>i; j--) /*移动*/ { 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; } 使用指针: #include <stdio.h> 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", &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; 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) { int arr[20][20]; int i, j, m, sum; printf("Please input m: "); scanf("%d", &m); printf("\nPlease input array:\n"); for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { 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); 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++) { for (j = 0; j < m; j++) { scanf("%d", p1+i*20+j); } } p2 = arr; sum = 0; for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { if (i == j || i + j == m - 1) { 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); 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) { int i, j; char temp[10]; for (i=0; i<n-1; i++) { for (j=0; j<n-1-i; j++) { 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]; 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++) { puts(ptr[i]); } return 0; } void bubble_sort(char *ps[], int n) { int i, j; char *temp; 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) { 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> 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) { 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++) { puts(str[i]); } return 0; } void bubble_sort(char s[][81], int n) { int i, j; char temp[81]; for (i=0; i<n-1; i++) { for (j=0; j<n-1-i; j++) { if (str_compare(s[j], s[j+1]) > 0) { 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]) { i++; } 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> void bubble_sort(char *ps[], int n); int str_compare(char *p1, char *p2); int main(void) { int i; char str[5][81], *ptr[5]; 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++) { puts(ptr[i]); } return 0; } void bubble_sort(char *ps[], int n) { int i, j; char *temp; for (i=0; i<n-1; i++) { for (j=0; j<n-1-i; j++) { if (str_compare(ps[j], ps[j+1]) > 0) { temp = ps[j]; ps[j] = ps[j + 1]; ps[j + 1] = temp; } } } } int str_compare(char *p1, char *p2) { while ( (*p1) == (*p2)) { p1++; p2++; } return ((*p1) - (*p2)); } 17
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服