31、读懂以下程序,说明程序的功能
#include<stdio.h>
int main()
{
int m,n,r,m1,m2;
printf("请输入2个正整数:");
scanf("%d%d",&m1,&m2);
m=m1;
n=m2;
do{
r=m%n;
m=n;
n=r;
}while(r!=0);
printf("%d\n",m);
return 0;
}

//31、读懂以下程序,说明程序的功能
#include<stdio.h>
int main()
{
int m,n,r,m1,m2;
printf("请输入2个正整数:");
scanf("%d%d",&m1,&m2);
m=m1;
n=m2;
do{
r=m%n;
m=n;
n=r;
}while(r!=);
printf("%d\n",m);
return ;
}

32、一个数如果恰好等于它的所有的因子之和,则这个数就称为“完数”。例如6的因子有1、2、3,而1+2+3=6,因此6是一个完数。编程找出1000内所有的完数。


  #if 0
  32、一个数如果恰好等于它的所有的因子之和,则这个数就称为“完数”。例如6的因子有1、2、3,而1+2+3=6,因此6是一个完数。
  编程找出1000内所有的完数。

  思路分级:
  一。遍历2-1000内的所有数。
  二。寻找每个数所有的公约数累加等于本身则为完数。
  #endif

 #include<stdio.h>
int main(){ int num=;
for(num=;num<;num++){
int sum=;
int i=;
for(i=;i<=num/;i++){
if(num%i==){ sum+=i;
}
}
if(num==sum){
printf("%d:是一个完数\n",sum);
}
} return ;
}

33、(课堂)思考这个宏定义错在哪里
#define S (r) PI*r*r//注意S与(r)之间有空格

34、我们在头文件(.h文件)中,经常看到这样的内容
#ifndef __H_INCLUDE__
#define __H_INCLUDE__
//头文件的实际内容
#endif
思考头文件的开头和结尾需要这样书写的原因。

35、(课堂)运行以下程序
int main()
{
char a,b;
a = getchar();
b = getchar();
putchar(a);
putchar(b);
return 0;
}
运行程序,输入x回车y回车,会发现输出的并不是xy,而是
x

思考这是为什么。

36、(课堂)使用数组存储斐波那契数列前40项,并输出


  #if 0
  36、(课堂)使用数组存储斐波那契数列前40项,并输出

  解题思路:
  一。创建一个长度为40的数组。
  二。将第一第二个元素置为1;
  三。遍历数组 第N个元素的值为 元素(N-1)+元素(N-2);
  #endif

 #include<stdio.h>
#include<stdlib.h>
int *fibonacci(int len){
int *p;
int i; if(NULL==(p=(int *)malloc(sizeof(int)*len))){
perror("cannot malloc");
return NULL;
}
p[]=;
p[]=;
for(i=;i<len;i++){
p[i]=p[i-]+p[i-]; }
return p;
}
void print(int p[],int len){
int i;
for(i=;i<len;i++){
printf("p[%d]=%d\t",i+,p[i]); } } int main(){
int *fib;
fib=fibonacci(); print(fib,); return ;
}

37、(课堂)从键盘输入10个学生的成绩,如果遇到大于100或者小于0的成绩需要提示输入错误重新输入。之后计算10个学生的总成绩和平均成绩

  #if 0
  37、(课堂)从键盘输入10个学生的成绩,如果遇到大于100或者小于0的成绩需要提示输入错误重新输入。
  之后计算10个学生的总成绩和平均成绩

  解题思路:
  一。创建长度为十的数组表示学生成绩
  二。在输入时判断数值是否合法。
  三。遍历数组累加 求总成绩和平均成绩
  #endif

 #include<stdio.h>
#include<stdlib.h> int *getmemory(int len){
int *p;
if(NULL==(p=(int *)malloc(sizeof(int)*len))){
perror("cannot malloc");
return NULL; }
return p;
} void my_scanf(int p[],int len){
int i; for(i=;i<len;i++){
printf("请输入第%d个学生成绩:\n",i+);
//scanf("%d",&p[i]);
int grade=;
scanf("%d",&grade);
if(grade<||grade>){
printf("成绩区间为1至100");
i--;
}else{
p[i]=grade;
}
} } void my_printf(int p[],int len){
int i; for(i=;i<len;i++){ printf("第 %d个学生的成绩;%d",i+,p[i]);
} } int my_sum(int p[],int len){
int i=;
int sum=; for(i=;i<len;i++){
sum+=p[i]; }
return sum; } double my_ave(int p[],int len){
double ave; ave=my_sum(p,len)/len; return ave; } int main(){
int num;
int *stu; printf("需要输入几个学生的成绩");
scanf("%d",&num);
stu=getmemory(num);//创建容器 my_scanf(stu,num);//输入数据 //my_printf(stu,num);//输出数据 int sum=my_sum(stu,num);//求和
printf("学生的总成绩:%d",sum); double ave=my_ave(stu,num);//求平均
printf("学生的平均成绩:%lf",ave); return ;
}

38、(课堂)冒泡排序
从键盘输入10个各不相同的整数,存储在数组中,使用冒泡排序法将数组排序并输出
冒泡排序:是一种简单的排序算法
1)比较相邻的元素和其身后的元素。如果第一个比第二个大,就交换他们两个。
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。一次循环过后,最后的元素应该会是最大的数。
3)针对所有的元素重复以上的步骤,除了最后一个。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

 #if 0
、(课堂)冒泡排序
从键盘输入10个各不相同的整数,存储在数组中,使用冒泡排序法将数组排序并输出
冒泡排序:是一种简单的排序算法
)比较相邻的元素和其身后的元素。如果第一个比第二个大,就交换他们两个。
)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。一次循环过后,最后的元素应该会是最大的数。
)针对所有的元素重复以上的步骤,除了最后一个。
)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 #endif
#include<stdio.h> void my_scanf(int a[],int len){
int i=;
for(i=;i<len;i++){ printf("请输入第 %d个元素",i+);
scanf("%d",&a[i]); } }
void bubblesort(int a[],int len){
int i,j;
for(i=;i<len-;i++){ for(j=;j<len--i;j++){
if(a[j]<a[j+]){
a[j]^=a[j+];
a[j+]^=a[j];
a[j]^=a[j+]; } }
} } void my_printf(int a[],int len){
int i=;
for(i=;i<len;i++){
printf("a[%d]=%d\n",i+,a[i]); } }
int main(){
int a[]={};
my_scanf(a,); bubblesort(a,); my_printf(a,); return ;
}

39、(课堂)自定义一个3*4的矩阵,输出矩阵中值最大的元素,并输入其数组下标


  #if 0
  39、(课堂)自定义一个3*4的矩阵,输出矩阵中值最大的元素,并输入其数组下标
  解题思路:
  一。构建一个3*4的矩阵,然后给矩阵内的每个元素赋值。
  二。创建三个变量分别存放最大值及其坐标
  三。遍历矩阵得到最大值及其坐标

  错误分析:
  应该定义一个结构体来存放最大值及其坐标
  #endif

 #include<stdio.h>
#include<stdlib.h> void my_scanf(int (*a),int x,int y){
int i=,j=;
for(i=;i<x;i++){
for(j=;j<y;j++){
printf("请输入第 %d行%d 列的值:\n",i+,j+);
scanf("%d",&a[(i*(x+)+j)]); } } for(i=;i<x;i++){
for(j=;j<y;j++){
printf("a[%d][%d]=%d\t",i+,j+,a[(i*(x+)+j)]);
//printf("%d\n",(i*(x+1)+j)); } } } void max(int (*a),int x,int y){
int num,i=,j=,sub_i=,sub_j=;
num=a[];
for(i=;i<x;i++){
for(j=;j<y;j++){
if(num<a[(i*(x+)+j)]){
num=a[(i*(x+)+j)];
sub_i=i+;
sub_j=j+; } } } printf("\nmax:a[%d][%d]=%d",sub_i,sub_j,num); } int main(){
//printf("哈哈哈999\n");
int a[][]={};
//int (*a)=(int *)malloc(sizeof(int)*3*4); //int i=3,j=4;
my_scanf(a,,); max(a,,); //free(a);
//a=NULL; return ;
}

C基础的练习集及测试答案(31-39)的更多相关文章

  1. C基础的练习集及测试答案(提高题)

    提高题:1.编写程序,随机生成一个1~10内的数,让对方猜3次.如果3次内能猜中则输出“恭喜你”:若3次内猜不中则输出正确答案.C语言中提供生成随机数的函数rand()用法:①所需头文件:#inclu ...

  2. C基础的练习集及测试答案(1-15)

    练习题:注:标有(课堂)字样的为课上练习,其他为课下练习基础题(50题)1.(课堂)编写程序,输出“XXX欢迎来到动物园!”(XXX是自己的名字). //1.(课堂)编写程序,输出“XXX欢迎来到动物 ...

  3. C基础的练习集及测试答案(40-50)

    40.(课堂)打印杨辉三角型前10行 #if 0 40.(课堂)打印杨辉三角型前10行 思路分析: 一.打印十行杨辉三角得第十行长度为十,所以建立一个长度为十的数组,作为每行的数据存储 二.按 0-9 ...

  4. C基础的练习集及测试答案(16-30)

    16.(课堂)输入一个年份(正整数),判断这年是否是闰年.闰年判断标准:年份能被4整除:如若遇到100的倍数,则需判断年份能否被400整除.(逢4一闰,逢百不闰,逢400又闰) #if 0 .(课堂) ...

  5. ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set

    首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...

  6. Python sklearn拆分训练集、测试集及预测导出评分 决策树

    机器学习入门 (注:无基础可快速入门,想提高准确率还得多下功夫,文中各名词不做过多解释) Python语言.pandas包.sklearn包   建议在Jupyter环境操作 操作步骤 1.panda ...

  7. zookeeper部署及集群测试

    zookeeper部署及集群测试 环境 三台测试机 操作系统: centos7 ; hostname: c1 ; ip: 192.168.1.80 操作系统: centos7 ; hostname: ...

  8. hdu 1829 基础并查集,查同性恋

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  9. Dubbo入门实例 本地伪集群测试Demo

    1.   概述 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提 ...

随机推荐

  1. URL shortening service

    Use Cases 1, shortening : take a URL => return a much shorter URL 2, redirection : take a short U ...

  2. mysql连接错误解决

    EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  3. Spring入门第九课

    使用外部属性文件 在配置文件里面配置Bean时,有时需要在Bean的配置里面混入系统部署的细节信息(例如:文件路径,数据源配置信息等)而这些部署细节实际上需要和Bean配置相分离. Spring提供了 ...

  4. HTML页面弹出窗口调整代码总结

    弹出跟你当前的窗口有没有菜单工具栏没有关系,你只要在页面中写一个脚本它就弹出了.比如<a href=# onclick="window.open('xxx.aspx','窗口名称',' ...

  5. 判断ip地址是否为内网ip或局域网ip

    bool IsLanIp(string& ip) { ,) == ,) == ,) == "192.") { return true; } else { return fa ...

  6. 黑科技抢先尝(续2) - Windows terminal中Powershell Tab的极简美化指南

    目录 安装python 安装git 安装powerline字体 主题定制 安装oh-my-posh 查看策略组的执行权限 使用choco 安装终端模拟器 - ConEmu 优化 PowerShell ...

  7. 洛谷P3572 [POI2014]PTA-Little Bird

    P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top ...

  8. Glassfish 4 修改server.log 等配置

    如果所示:

  9. MyBatis入门Bug集锦X1

  10. shell编程 Shell script 的默认变量($0, $1...)

    Shell script 的默认变量($0, $1...) 我们知道指令可以带有选项与参数,例如 ls -la 可以察看包含隐藏文件的所有属性与权限.那么 shell script 能不能在脚本文件名 ...