全国计算机等级考试二级教程——C语言程序设计(2021年版)

编程题答案(第9章):

[9.27]

输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符’0’的个数,用下标为1的元素统计字符1的个数……

#include<stdio.h>
#include<ctype.h>
main()
{char c;int k,a[10]={0};while((c=getchar())!='\n')if(isdigit(c)) a[c-'0']+=1;/*isdigit见附录6*/for(k=0;k<10;k++)printf("%d的个数:%d\n",k,a[k]);} 

[9.28]

编写函数,对具有10个整数的数组进行如下操作:从下标为n的元素开始直到最后一个元素,依次向前移动一个位置。输出移动后的结果。

#include<stdio.h>
void fun(int a[],int n)
{int i,t; for(i=n;i<10;i++)a[i-1]=a[i];
}
main()
{int a[10]={0,1,2,3,4,5,6,7,8,9},n,i;scanf("%d",&n);fun(a,n);for(i=0;i<9;i++)printf("a[%d]=%d\n",i,a[i]);
}

[9.29]

编写函数,把数组中所有奇数放在另一个数组中返回。

#include<stdio.h>
#define N 10/*用10替换N*/
int fun(int a[],int b[])
{int i,k=0;for(i=0;i<N;i++)if(a[i]%2)/*判断奇数*/ {b[k]=a[i];k++; }return k;/*k是b[]实际大小*/
}
main()
{int a[N]={0,1,2,3,4,5,6,7,8,9};int b[N],k,i;k=fun(a,b);for(i=0;i<k;i++)printf("b[%d]=%d\n",i,b[i]);
}

[9.30]

编写函数,对字符数组中的字母按由大到小的字母顺序进行排序。

#include<stdio.h>
#include<ctype.h>
int fun(char a[],char b[])
{int i,j,n,k=0;char m;for(i=0;i<9;i++){if(isalpha(a[i]))/*判断字母*/b[k]=a[i],k++;  } /*将是字母的a[]赋值给b[]*/for(j=0;j<k;j++){for(n=j+1;n<k;n++){if(b[j]<b[n])m=b[j],b[j]=b[n],b[n]=m;}}/*b[]大小排序*/return k;
}
main()
{char b[9],a[9]={'a','9','d','8','g','h','j','k','6'};int n,k;k=fun(a,b);for(n=0;n<k;n++)printf("b[%d]=%c\n",n,b[n]);
}

[9.31]

输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对插在最前,插在最后,插在中间三种情况运行程序,以便验证程序是否正确。

#include<stdio.h>
void fun(int [],int);
main()
{int i,x,k,a[10];printf("请输入9个有序数:");/*留一个位置*/ for(i=0;i<9;i++)scanf("%d",&a[i]);/*a[]赋值*/for(k=0;k<9;k++)printf("a[%d]=%d\n",k,a[k]);printf("请输入一个数:"); scanf("%d",&x);fun(a,x);for(k=0;k<10;k++)printf("a[%d]=%d\n",k,a[k]);
}
/*只考虑了从小到大的情况*/
void fun(int a[],int x)
{int i,j=0,k;for(i=0;i<9;i++){if(x>a[i]) j++;/*判断插入位置*/}for(k=8;k>=j;k--)a[k+1]=a[k];/*后移*/a[j]=x;
}

[9.32]

编写函数,把任意十进制正整数转换成二进制数。提示:把十进制数不断被2除的余数放在一个一维数组中,直到商数为零。在主函数中进行输出,要求不得按逆序输出。

#include<stdio.h>
int fun(int ,int []);
main()
{int x,n,k,a[35];printf("十进制数:");scanf("%d",&x);n=fun(x,a);printf("二进制数:");for(k=0;k<n;k++)printf("%d",a[k]);
}
int fun(int x,int a[])
{int i,j,k,t;for(i=0,j=x;j!=0;j/=2)a[i]=j%2,i++;for(k=0;k<i/2;k++)t=a[k],a[k]=a[i-k-1],a[i-k-1]=t;return i;
}

[9.33]

编写函数,调用随机函数产生0到19之间的随机数,在数组中存入15个互不重复的整数。要求在主函数中进行输出结果。若已定义x为int类型,调用随机函数步骤如下:

#include<stdlib.h>

x=rand()%20;/*产生0到19的随机数*/

#include<stdio.h>
#include<stdlib.h>
void fun(int a[])
{int i,j,k,x;for(i=0;i<15;){for(j=0,k=0,x=rand()%20;j<i;j++){if(x!=a[j]) k++;}if(k==j) a[i]=x,i++;}
}
main()
{int i,a[15]={0};fun(a);for(i=0;i<15;i++)printf("a[%d]=%d\n",i,a[i]);
}

[9.34]

求任意方阵每行,每列,两对角线上元素之和。

#include<stdio.h>
#define n 3
void fun1(int a[][n])
{int i,j,s=0;for(i=0;i<n;i++,s=0)for(j=0;j<n;j++){s+=a[i][j];if(j==2) printf("第%d行的和:%d\n",i+1,s);}
}
void fun2(int a[][n])
{int i,j,s=0;for(i=0;i<n;i++,s=0)for(j=0;j<n;j++){s+=a[j][i];if(j==2) printf("第%d列的和:%d\n",i+1,s);}
}
void fun3(int a[][n])
{int i,j,s;for(i=0,j=0,s=0;i<n;i++,j++){s+=a[i][j];if(i==2) printf("正对角线的和:%d\n",s);}for(i=0,j=2,s=0;i<n;i++,j--){s+=a[i][j];if(i==2) printf("副对角线的和:%d\n",s);}
}
main()
{int i,j,a[n][n];printf("a[3][3]:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++)for(j=0;j<n;j++){printf("a[%d][%d]=%d ",i,j,a[i][j]);if(j==n-1) printf("\n");}fun1(a); fun2(a);fun3(a);
} 

[9.35]

求两个矩阵的和。

#include<stdio.h>
#define n 3
void fun(int a[][n],int b[][n],int c[][n])
{int i,j;for(i=0;i<n;i++)for(j=0;j<n;j++)c[i][j]=a[i][j]+b[i][j];printf("a[3][3]+b[3][3]=\n");for(i=0;i<n;i++)for(j=0;j<n;j++){printf("%-5d",c[i][j]);if(j==n-1) printf("\n");}
}
main()
{int a[n][n],b[n][n],c[n][n],i,j;printf("a[3][3]:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);printf("b[3][3]:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&b[i][j]);fun(a,b,c);
}

#include<stdio.h>
#define n 9
main()
{int i,j,a[n][n];printf("    ** A MULTIPLICATION TABLE **\n   ");for(i=1;i<10;i++)printf(" (%d)",i);printf("\n----------------------------------------\n");for(i=0;i<9;i++)for(j=0;j<9;j++)a[i][j]=(i+1)*(j+1);for(i=0;i<9;i++){printf("(%d)  ",i+1);for(j=0;j<9;j++)printf("%-4d",a[i][j]);printf("\n"); }
}

[9.37]

调用随机函数为5×4的矩阵置100以内的整数,输出该矩阵,求出每行元素之和,并把和值最大的那一行与第一行上的元素对调。若以定义x为int类型,请参考习题9.33调用随机函数。

#include<stdio.h>
#include<stdlib.h>
#define m 5
#define n 4
main()
{int a[m][n],s[m]={0},b,i,j,k;for(i=0;i<m;i++)/*矩阵赋值*/for(j=0;j<n;j++)a[i][j]=rand()%100;for(i=0;i<m;i++)/*矩阵输出*/{for(j=0;j<n;j++)printf("%-2d ",a[i][j]);printf("\n");}for(i=0;i<m;i++)/*每行求和*/for(j=0;j<n;j++){s[i]+=a[i][j];if(j==3) printf("第%d行的和:%d\n",i+1,s[i]);}for(i=1,k=0;i<m;i++)/*找最大行*/if(s[i]>s[k])    k=i;for(i=0;i<n;i++)/*行替换*/{b=a[0][i];a[0][i]=a[k][i];a[k][i]=b;}for(i=0;i<m;i++)/*输出矩阵*/{for(j=0;j<n;j++)printf("%-2d ",a[i][j]);printf("\n");}
}

[9.38]

调用随机函数为5×5的矩阵置100以内的整数,输出该矩阵,然后逆置该矩阵,即将第一列的元素放到第一行上,将第二列的元素放到第二行上,其他以此类推。

#include<stdio.h>
#include<stdlib.h>
#define m 5
#define n 5
main()
{int a[m][n],i,j,k;for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=rand()%100;for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%-2d ",a[i][j]);printf("\n");}for(i=0;i<m;i++)for(j=i;j<n;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}printf("逆置\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%-2d ",a[i][j]);printf("\n");}
}

【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第9章】相关推荐

  1. 2021c语言教程,全国计算机等级考试二级教程——C语言程序设计(2021年版)

    全国计算机等级考试二级教程--C语言程序设计(2021年版) 出版时间:2020年11月 定 价:36.00 I S B N :9787040545340 所属分类: 考试  >  计算机考试  ...

  2. 全国计算机等级考试python教材.pdf_全国计算机等级考试二级教程Python语言程序设计(2018年版).PDF...

    全国计算机等级考试二级教程Python语言程序设计(2018年版).PDF 全国计算机等级考试二级教程 Python语言程序设计 (2018年版) [第1章] 程序设计基本方法 考纲考点 n Pyth ...

  3. 全国计算机等级考试二级教程——c++语言程序设计答案,全国计算机等级考试二级教程--C++语言程序设计(2018年版)...

    全国计算机等级考试二级教程--C++语言程序设计(2018年版) 下载 mobi epub pdf ☆☆☆☆☆ 教育部考试中心 著 下载链接在页面底部 发表于2021-05-17 类似图书 点击查看全 ...

  4. 全国计算机等级考试二级教程:c语言程序设计(2013年版),全国计算机等级考试二级教程:C语言程序设计(2013年版)...

    全国计算机等级考试二级教程:C语言程序设计(2013年版) <全国计算机等级考试二级教程:C语言程序设计(2013年版)>根据教育部考试中心制订的<全国计算机等级考试二级C语言程序设 ...

  5. c语言基础教程吕答案,全国计算机等级考试二级教程C语言程序设计课后习题答案.docx...

    精品文档 精品文档 PAGE 精品文档 <全国计算机等级考试二级教程--C语言程序设计>课后习题答案 第一章1.1EXE1.2COBJEXE1.3顺序选择循环 第二章一.选择题2.1B2. ...

  6. 【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第7章】

    全国计算机等级考试二级教程--C语言程序设计(2021年版) 编程题答案(第7章): [7.14] 下面的fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正. int fun (int ...

  7. 【全国计算机等级考试二级教程——C语言程序设计(2021年版)编程题答案-第8章】

    全国计算机等级考试二级教程--C语言程序设计(2021年版) 编程题答案(第8章): [8.17] 请编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数. #includ ...

  8. 全国计算机等级考试二级教程——c语言程序设计》,格式为doc.,《全国计算机等级考试二级教程C语言程序设计》.doc...

    PAGE / NUMPAGES <全国计算机等级考试二级教程--C语言程序设计> 课后题及参考答案 第一章 程序设计基本概念 1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所 ...

  9. 全国计算机等级考试二级教程c语言程序设计的基本概念有哪些,《全国计算机等级考试二级教程C语言程序设计》讲解.doc...

    <全国计算机等级考试二级教程C语言程序设计>讲解.doc <全国计算机等级考试二级教程--C语言程序设计>课后题及参考答案 程序设计基本概念 1.1 在TRUBO C环境中用R ...

最新文章

  1. Python解密2021年最新富豪榜,马云居然连前三都没进
  2. 如何做产品路线图规划?
  3. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符
  4. Heap与Stack的区别- -
  5. BZOJ3999: [TJOI2015]旅游
  6. java图表标题_Java 创建Excel图表
  7. 再讨论下webdriver
  8. 古文构词之法、造词之法
  9. Wireshark实战分析之IP协议(三)
  10. 银河麒麟系统服务端命令_麒麟系统介绍
  11. POJO类中布尔类型的变量都不要加is前缀详解
  12. BAAF-Net源码阅读
  13. win8 性能测试软件,PassMark PerformanceTest(电脑性能测
  14. [exgcd] Jzoj P5855 吃蛋糕
  15. 盛世昊通上市美国纳斯达克,基建建设任重而道远
  16. Spring boot 集成 Kaptcha 实现前后端分离验证码功能
  17. 1,matlab仿真正运动学
  18. Python实现钉钉/企业微信自动打卡
  19. IOS之 上传App预览和截屏规范
  20. 关于移动端滚动列表,不发起请求刷新列表的解决思路

热门文章

  1. 名悦集团:新手买新车有些注意事项
  2. CSS透明效果的实现的三种方式
  3. 想调戏 modbus 吗?(哈哈) 就用它——MThings
  4. 解读北京天坛建筑文化
  5. SCT81620QSTER,升降压电源芯片
  6. 根据后台返回的值来select下拉框默认选中值
  7. hashmap源码1.7
  8. Program type already present: com.google.gson.FieldAttributes
  9. 威尔逊置信区间 php,Evvail | 威尔逊置信区间(Wilson confidence intervals )计算 | Omics - Hunter...
  10. Unity制作2D游戏FlappyBird