1、从键盘输入一个整数,判断该数是否为素数。

  • 素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
#include<stdio.h>
#include<math.h>/*num 输入的数,1 是素数  2 不是素数*/
int isPrime(int num){int flag=1;int i;/*排除小于等于1的数*/if(num<=1){return 2;}else{for(i=2;i<=sqrt(num);i++){if(num%i==0){flag++;break;}}}return flag;
}int main(void){int num;scanf("%d",&num);if(isPrime(num)==1){printf("%d is Prime.\n",num);}else{printf("%d is not Prime.\n",num);}return 0;
}

2、求解从1到20000内的所有水仙花数。水仙花数是每位数字的n次方之和等于本身,n是这个数的位数。

  • 题解一 不太好,我电脑没跑出来
// 题解一
#include<stdio.h>/*num的美味数存储到数组bArray 中 num 数;bArrayLength :num数的长度*/
void getPerBite4(int num,int bArray[],int *bArrayLength){while(num>0){bArray[*bArrayLength]=num%10;num/=10;*bArrayLength++;}
}/*求n次方: 求x的y次方*/
int POW(int x,int y){int sum=1,i;for(i=0;i<y;i++){sum*=x;}return sum;
}/*判断num是否是水仙花数*/
void isNarchNum(int num,int bArray[],int bArrayLength){int bSum=0;int i;for(i=0;i<bArrayLength;i++){bSum+=POW(bArray[i],bArrayLength);}if (bSum==num){printf("%d 是水仙花数。\n",num);}
}int main(void){int isNum;for(isNum=1;isNum<=20000;isNum++){int bArray[10]={0};int bArrayLength=0;getPerBite4(isNum,bArray,&bArrayLength);isNarchNum(isNum,bArray,bArrayLength);}
}
  • 题解二
    • 这里其实n 的取值也就是1 2 3 4 5 位,其实可以逻辑上直接解决
    • 另外 1~9 的 每一位数的1次方 都等于它本身,so
#include<stdio.h>/*x 的 y 次方*/
int POW(int x,int y){int sum = 1;int i;for(i=0;i<y;i++){sum*=x;}return sum;
}int main(void){int n=1;int i,j,num;for(num=1;num<=20000;num++){if(num<10){n=1;}else if(num<100){n=2;}else if(num<1000){n=3;}else if(num<10000){n=4;}else{n=5;}int temp = num;int tSum=0;while(temp>0){int part = temp%10;tSum+=POW(part,n);temp/=10;}if(tSum==num){printf("%d 是水仙数。\n",num);}}return 0;
}

3、求解从2到20000的所有完数。所有的真因数的和等于本身的数字称为完数。

#include<stdio.h>int main(void){int n,i;for(n=2;n<=20000;n++){int tSum=0;for(i=1;i<n;i++){if(n%i==0){tSum+=i;}}if(tSum==n){printf("%d ",n);}}return 0;
}

6 28 496 8128

4、从键盘输入两个数字n,m,求解m和n的最小公倍数。

  • 最小公倍数= m*n / 最大公因数
  • 最大公因数,辗转相除法
#include<stdio.h>/*求a 和 b最大公因数*/
int getMaxCom(int a,int b){int temp;while(b>0){temp = a%b;a = b;b = temp;}return a;
}int main(void){int n,m;scanf("%d %d",&n,&m);int MaxCom = getMaxCom(n,m);//获取最大公因数/*最小公倍数=n*m / 最大公约数 */int result = n*m / MaxCom;printf("%d %d 的最小公倍数是 %d\n",n,m,result);return 0;
}

5、一个小球从10m处落下,每次的弹回之前的高度一半,请问小球在静止之前一共走过多少距离。

#include<stdio.h>int main(void){double len = 10.0;/*第一次落下*/double sumDistance = 10.0;while(len>0){len/=2;sumDistance+=len*2;//每次反弹的上升与下降}printf("一共走过了%lfm距离",sumDistance);return 0;
}

6、斐波拉契数列。输入数列项数n=9,输出数列为:1 1 2 3 5 8 12 21 34

#include<stdio.h>int main(void){int n;scanf("%d",&n);int i,j,t,k;j = 1;t = 1;for(i=0;i<n;i++){if(i==0 || i==1){printf("1 ");}else{k = j+t;t = j;j = k;printf("%d ",j);}}return 0;
}

7、输入一行英文,判断其一共有多少单词,不能包括冠词a,例如:A pen drop from tree. 一共有4个单词。

方法一:

#include<stdio.h>int isWord(char *pWord,int wordArrayLength){if(1==wordArrayLength && (('A'== *pWord) || ('a'==*pWord))){return 0;}return 1;
}int countWordIn(char *pStr){// 记录单词数目int cnt = 0;while(*pStr != '\0'){char wordArray[10]={0};int wordArrayLength=0;while(*pStr !='\0' && *pStr != ' '){wordArray[wordArrayLength++]=*pStr;pStr++;}// 判断是否为单词,排除冠词a的情况int ret = isWord(wordArray,wordArrayLength);if(ret==1){cnt++;}while(*pStr != '\0' && ' '== *pStr){pStr++;}}// 返回单词统计数目return cnt;
}int main(void){char sentence[1000];gets(sentence);//printf("%s",sentence);int cnt = countWordIn(sentence);printf("words is %d\n",cnt);return 0;
}

方法二

  • 我感觉上面的方法太啰嗦了,直接找冠词A 、a
  • 判断一个单词的开头是否是A/a ,然后判断一个单词后面是否是空格,否则的话,单词总数++
#include<stdio.h>int main(void){char sentence[1000];gets(sentence);int isBegin=0;//判断一个字母是否是单词的开头字母  0 是  1不是int i;int result=0;//单词数目除了冠词for(i=0;sentence[i]!='\0';i++){// 判断一个字母前边是否是空格if(sentence[i-1]==' ' || i==0){isBegin=0;}else{isBegin=1;}char zimu = sentence[i];if((isBegin==0) && ((zimu=='A')||(zimu=='a')) && ((sentence[i+1]==' ')||(sentence[i+1]=='\0'))){// 寻找冠词 a}else{if(sentence[i+1]==' '||(sentence[i+1]=='\0')){result++;}}}printf("%d\n",result);return 0;
}

8、两个乒乓球队,甲队有a,b,c三名队员,乙队有d,e,f三名队员,甲队a不愿意跟d比赛,c不愿意跟d,f比赛,求合适的名单。

  • 这一题不太会,看看题解
#include<stdio.h>void getSchedule(char fristTeam[],char secondTeam[]){int i,j;for(i=0;i<3;i++){for(j=0;j<3;j++){if(fristTeam[i]=='a' && secondTeam[j]=='d'){continue;}else if(fristTeam[i]=='c' && secondTeam[j]=='d'){continue;}else if(fristTeam[i]=='c' && secondTeam[j]=='f'){continue;}else{printf("%c %c\n",fristTeam[i],secondTeam[j]);}}}
}int main(void){char fristTeam[3]={'a','b','c'};char secondTeam[3]={'d','e','f'};getSchedule(fristTeam,secondTeam);return 0;
}

答案是错误的

//两个乒乓球队,甲队有a,b,c三名队员,乙队有d,e,f三名队员,甲队a不愿意跟d比赛,c不愿意跟d,f比赛,求合适的名单。
#include<stdio.h>int main(void){// 第二对的排位顺序  排除所有不可能,剩下的就是可能char one,two,three;for(one='d';one<='f';one++){for(two='d';two<='f';two++){for(three='d';three<='f';three++){/*甲队a不愿意跟d比赛,c不愿意跟d,f比赛  d 不能 排在第一位面对a  d,f 不能排在第三位跟c比赛*/if(one=='d'|| three=='d' || three=='f' ||one==two || one==three || two==three){continue;}else{printf("a:%c\nb:%c\nc:%c\n",one,two,three);}}}}return 0;
}

a:f
b:d
c:e

9、将三个字符串由小到大排序

#include<stdio.h>
#include<string.h>int main(void){char strings[3][100];int i,j;for(i=0;i<3;i++){scanf("%s",strings[i]);}char temp[100];for(i=0;i<2;i++){for(j=0;j<2-i;j++){//将三个字符串由小到大排序if(strcmp(strings[j],strings[j+1])>0){strcpy(temp,strings[j]);strcpy(strings[j],strings[j+1]);strcpy(strings[j+1],temp);}}}for(i=0;i<3;i++){printf("%s ",strings[i]);}return 0;
}

10、一篇文本中共有3行文字,每行不多于5个字符,要求分别统计出每行中的大写字母、小写字母、数字、空格、以及其他字符的个数。

  • 拜拜不想写了,明天见,对自己狠点!!!

考研C语言程序练习0722相关推荐

  1. 833c语言程序是什么,江南大学

    考研是一场持久战,在江南大学833c语言程序考研复习的过程中,难免会遇到各种各样的问题和挑战.在进入强化冲刺阶段之后,高强度的学习和心里压力更是让很多学子身心疲惫!如何少走弯路,及时解决这些问题和挑战 ...

  2. 计算机考研C语言基础

    计算机考研C语言基础 概述 ​ C语言是一门面向过程的.抽象化的通用程序设计语言,广泛应用于底层开发.C语言能以简易的方式编译.处理低级存储器.C语言是役产生少量的机器语言以及不需要任何运行环境支持便 ...

  3. c语言程序灵魂编译后,谭浩强C程序设计第4版精讲视频课程

    谭浩强<C程序设计>(第4版)网授精讲班[教材精讲+考研真题串讲] 本课程由资深辅导教师马丽梅老师讲授,全面讲解教材的重点.难点.考点,教会学员理解并掌握该教材中的基本概念.基本原理和基本 ...

  4. 培训c语言程序,编程人员培训手册C语言程序设计基础

    <编程人员培训手册C语言程序设计基础>由会员分享,可在线阅读,更多相关<编程人员培训手册C语言程序设计基础(18页珍藏版)>请在人人文库网上搜索. 1.第2章:C语言程序设计基 ...

  5. 培训c语言程序,编程人员培训手册C语言程序设计基础.PPT

    编程人员培训手册C语言程序设计基础.PPT 第2章C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问为什么我们要学习C语言呢 理由1因为C语言流行. 理由2因为C ...

  6. 赣南师范大学考研c语言真题,赣南师范大学651C语言程序设计科目三考研真题详解...

    程序设计和C语言 1.1 复习笔记 一.计算机程序 1程序就是一组计算机能识别和执行的指令 2计算机的一切操作都是由程序控制的 二.计算机语言 1定义 人和计算机交流信息,要解决语言问题.需要创造一种 ...

  7. 江南大学c语言程序(本)期末考试2020,江南大学

    考研是一场持久战,在江南大学833c语言程序考研复习的过程中,难免会遇到各种各样的问题和挑战.在进入强化冲刺阶段之后,高强度的学习和心里压力更是让很多学子身心疲惫!如何少走弯路,及时解决这些问题和挑战 ...

  8. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  9. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx

    PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...

最新文章

  1. rpm安装的mysql如何数据迁移_【鲲鹏翱翔】数据库04-MySQL5.7.28移植安装指南-RPM包方式...
  2. 学习C#中调用COM,后期绑定(以及对WinHttp COM对象的C#封装)
  3. Knockout 监控数组对象属性
  4. oracle定时任务失效
  5. python中如何中止一个线程
  6. 线段分割法实现微信抢红包
  7. 从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...
  8. arduinowifi.send怎么获取响应_Vue3.0 响应式原理 (一)
  9. poj 3080 Blue Jeans kmp+枚举
  10. 【Maven】运行项目
  11. My97DatePicker JS时间控件 当前日期前后不能选
  12. verlay虚拟化技术_FPGA虚拟化:突破次元壁的技术
  13. 2022年国家自然基金标书撰写要点的全解
  14. 数据库里的数据模型是什么及三要素
  15. [CSS3] 使用边框和背景(设置元素的背景)
  16. 计算机系学生橱窗分析结果怎么写,2015年高职学生职业生涯规划书
  17. 【Vue基础知识总结 6,我的支付宝3面+美团4面+拼多多四面
  18. 网络攻防之——指纹识别工具
  19. flutter与android原生通信
  20. Unable to install breakpoint in

热门文章

  1. 【VS】error MSB8020: 无法找到 v142 的生成工具(平台工具集 =“v142”)。若要使用 v142 生成工具进行生成,请安装 v142 生成工具
  2. 谈谈汽车软件中间件(Autosar为例)
  3. 从讲座想到IT图书品牌
  4. Kafka 核心技术与实战学习笔记(二十四)请求处理过程
  5. Python破解验证码
  6. DD镜像和E01镜像的主要区别
  7. Python判断是否构成三角形,求三角形面积
  8. 基于JSP的网上服装销售系统
  9. 北航计算机是啥水平,北航一般人能考上吗?北航在985中什么水平?
  10. 山东专升本计算机知识点(上)