区块链技术博客
www.b2bchain.cn

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

这篇文章主要介绍了20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21的讲解,通过具体代码实例进行20529 讲解,并且分析了20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=20529

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

  • 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21
  • P717
  • P420
  • P262
  • P222
  • P274
  • P719

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

P717

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P717.C实现以下功能   输入10个整型数存入一维数组,输出值和下标都为奇数(数组第1个元素的下标为0)的元素及其个数,要求先输出个数。 编程可用素材: printf("Input 10 integers: "); printf("ncount=…n"…); printf("a[…]=…n"…);   程序的运行效果应类似地如图1所示,图1中的2 45 34 56 78 12 41 55 86 37是从键盘输入的内容。  Input 10 integers: 2 45 34 56 78 12 41 55 86 37  count=3 a[1]=45 a[7]=55 a[9]=37 */  #include <stdio.h>  #define N 10  int main(void) {     int arr[N];     int i;     int count = 0;     printf("Input 10 integers: ");     for (i = 0; i < N; i++)     {         scanf("%d", &arr[i]);     }          // 第一轮循环完成计数     for (i = 0; i < N; i++)     {         if (arr[i]%2!=0 && i%2!=0)  // 值和下标都为奇数         {             count++;         }     }     printf("ncount=%dn", count);      // 第二轮循环做输出     for ( i = 0; i < N; i++)     {         if (arr[i]%2!=0 && i%2!=0)  // 值和下标都为奇数         {             printf("a[%d]=%dn", i, arr[i]);         }            }          return 0; } 

P420

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P420.C实现以下功能   ①程序运行时先显示Input:,再从键盘上读入一组数(小数部分最多1位),数与数之间只使用空格或回车作分隔。         数可正可负,最多100个,但若读入的数为-567时,则表示输入结束且-567不算在该组数内。   ②对这一组数按从大到小的顺序进行排序。   ③将排序后的这一组数输出到屏幕上。 编程可用素材: printf("Input: "); printf("nResult: "); printf("%.1f "…);   程序的运行效果应类似地如图1所示,其中的红色部分是从键盘输入的内容。  Input: 100.2 120.1 89 72.5 -19 200.3 500.7 210 235 6 24.3 -567  Result: 500.7 235.0 210.0 200.3 120.1 100.2 89.0 72.5 24.3 6.0 -19.0 */  #include <stdio.h>  #define N 100  int main(void) {     double arr[N];     int i;  // 输入的循环控制变量,同时完成计数器功能     int j, k;     double tmp;      // 输入     printf("Input: ");     for ( i = 0; i < N; i++)     {         scanf("%lf", &arr[i]);         if(arr[i]==-567)    // 从这里跳出,i正好是有效数据个数         {             break;         }     }          /*          排序 从大到小的顺序 冒泡         冒泡排序的注意事项:             1. 外层循环,一次即为一轮排序,让一个元素归位,最后一个自然归位,故只需i-1轮             2. 内层循环,即两两交换,只有顺序不符合要求的,才交换             3. 最后一个归位了的,不再参与下一轮的,故,内层循环的终点是i-1-j             4. 交换算法,需要借助一个临时变量空间来完成             5. 从大到小顺序,故 小的往右移 一个个从小到大归位      */     for ( j = 0; j < i - 1; j++)     {         for (k = 0; k < i - 1 - j;k++)         {             if (arr[k] < arr[k+1])             {                 tmp = arr[k];                 arr[k] = arr[k + 1];                 arr[k + 1] = tmp;             }         }     }          // 输出     printf("nResult: ");     for (j = 0; j < i; j++)     {         printf("%.1lf ", arr[j]);     }               return 0; } 

P262

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P262.C实现以下功能   先从键盘读入整数m和n(约定(2<=m<=20、2<=n<=20)),再从键盘读入m行(每行n个,即一个m×n矩阵)整数,然后从键盘读入一个列序号, 按示例格式显示该列的内容。 编程可用素材: printf("请输入 m 和 n: ")、 printf("请输入 %d 行, 每行 %d 列整数:n"…、 printf("请输入要显示列的列号: ")、 printf("n该列的内容为: ")。   程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。  请输入 m 和 n: 5 6 请输入 5 行, 每行 6 列整数: 31   42   36  74  2358 88 1447 32   57  37  43   47 97   51   257 7   445  459 33   65   44  3   425  43 68   3425 82  789 123  2134 请输入要显示列的列号: 2   该列的内容为: 36 57 257 44 82 图1 程序运行效果示例 */  #include <stdio.h> #define N 20  int main(void) {     int arr[N][N];     int i, j;     int m, n;     int col;      // 数据输入     printf("请输入 m 和 n: ");     scanf("%d %d", &m, &n);     printf("请输入 %d 行, 每行 %d 列整数:n", m, n);     for ( i = 0; i < m; i++)     {         for ( j = 0; j < n; j++)         {             scanf("%d", &arr[i][j]);         }     }      printf("请输入要显示列的列号: ");     scanf("%d", &col);      printf("nn该列的内容为: ");     for (i = 0; i < m; i++)     {         printf("%d ", arr[i][col]);     // 即列固定为col,而行变化     }          return 0; } 

P222

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P222.C实现以下功能   从键盘上读入一行字符(约定:字符数≤127字节),按以下方法将其加密变换:     A->Z    a->z     B->Y    b->y     C->X    c->x     ……    ……     Z->A    z->a   即字母A变成Z、字母B变成Y、…,非字母字符不变。最后在屏幕上先显示这一行字符的长度,再显示生成的密文。 编程可用素材: printf("Please input string: "); printf("nzi fu chuan chang du: …); printf("nmi wen: …);   程序的运行效果应类似地如图1所示,图1中的sfasfk,lmw4tywerysfcvasgewr xfasftg是从键盘输入的内容。  Please input string: sfasfk,lmw4tywerysfcvasgewr xfasftg  zi fu chuan chang du: 35 mi wen: huzhup,ond4gbdvibhuxezhtvdi cuzhugt */  #include <stdio.h> #include <string.h>  #define N 128  int main(void) {     char str[N];     char show[N];      /*          思路:直接创建相应的字母库,然后按下标提取对应的元素,完成转换          */     // char mingAZ[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";      // 正库大写字母库     char miZA[27] = "ZYXWVUTSRQPONMLKJIHGFEDCBA";           // 逆序大写字母库     // char mingaz[27] = "abcdefghijklmnopqrstuvwxyz";     char miza[27] = "zyxwvutsrqponmlkjihgfedcba";     int i;     int len;      printf("Please input string: ");     gets(str);      len = strlen(str);     printf("nzi fu chuan chang du: %d", len);      // 字母A变成Z、字母B变成Y、…,非字母字符不变     for ( i = 0; i < len; i++)     {         if (str[i]>='A' && str[i]<='Z')             // 大写字母,要特别注意,是闭区间         {             show[i] = miZA[(int)(str[i] - 'A')];         }          else if (str[i]>='a' && str[i]<='z')        // 小写字母,要特别注意,是闭区间         {             show[i] = miza[(int)(str[i] - 'a')];         }         else         {             show[i] = str[i];         }     }     show[i] = '';     // 最后,让字符数组成为一个字符串,即加上串尾标识      printf("nmi wen: %s", show);          return 0; } 

P274

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P274.C实现以下功能   从键盘读入一行字符(约定:字符数≤127字节),统计并显示该行字符中26个英文字母(不区分大小写)各自出现的次数,没有出现的字符不显示。 编程可用素材: printf("请输入一行字符:"); printf("统计结果为:n"); printf("%c-%dn"…);   程序的运行效果应类似地如图1和图2所示,图1和图2中的红色部分是从键盘输入的内容。  请输入一行字符:a653  xAXaxii23523!=-xi351xizxiax 统计结果为: A-4 I-5 X-7 Z-1 图1 程序运行效果示例1  请输入一行字符:phr r'] rv45yj  hpRH sV5yy vy  y9 统计结果为: H-3 J-1 P-2 R-4 S-1 V-3 Y-5 */  #include <stdio.h> #include <string.h> #include <ctype.h>  #define N 128  int main(void) {     char str[N];     int count[26] = {0};        // 字母计数库,初始化为0     int i;     int len;      printf("请输入一行字符:");     gets(str);      // 统计     len = strlen(str);     for ( i = 0; i < len; i++)     {         if ((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))         {             count[toupper(str[i]) - (int)'A']++;        // 统一转为大写字母,再对索引计数         }     }          printf("统计结果为:n");     for ( i = 0; i < 26; i++)     {         if (count[i] != 0)         {             printf("%c-%dn", (char)((int)'A' + i), count[i]);         }              }          return 0; } 

P719

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

/* 编写一程序P719.C实现以下功能   从键盘上输入5个字符串(约定:每个字符串中字符数≤80字节),对其进行升序排序并输出。 编程可用素材: printf("Input 5 strings:n"); printf("---------------------------n");   程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。  Input 5 strings: hello My Friend are you ready? help me! --------------------------- Friend My are you ready? hello help me! */  #include <stdio.h> #include <string.h>  #define N 81 #define M 5  int main(void) {     char strs[M][N];     char tmp[N];     int i, j;      // 输入     printf("Input 5 strings:n");     for ( i = 0; i < M; i++)     {         gets(strs[i]);     }          // 排序 冒泡 升序排序     /*          关于冒泡排序             1. 趟数:外层循环控制,起点与终点             2. 相邻交换:内层循环控制,注意起点和终点             3. 一趟有一个元素归位,这里,元素换成了一个字符串             4. 字符串的比较和交换,要使用字符串库函数提供的功能,否则程序员要自己编写相应的功能函数           强调:             基本的数据,可以直接使用运算符进行比较操作             字符串数据,只能使用相应的功能函数来进行比较,复制等操作,不可以直接使用运算符号来完成操作          */     for ( i = 0; i < M - 1 ; i++)     {         for ( j = 0; j < M - 1 -i ; j++)         {             if (strcmp(strs[j],strs[j+1]) > 0)             {                 strcpy(tmp, strs[j]);                 strcpy(strs[j], strs[j + 1]);                 strcpy(strs[j + 1], tmp);             }         }     }          // 输出     printf("---------------------------n");     for ( i = 0; i < M; i++)     {         puts(strs[i]);     }      return 0; } 

本文转自互联网,侵权联系删除20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises21
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们