重庆大学&安徽大学 上机题目
更多复试题目点击专栏:(考研复试刷题 - horx626的专栏 - 掘金 (juejin.cn))
第一题:
100以内的质数和
要求:
如题
输入格式:
无
输出格式:
质数和
思路:
写一个快速素数鉴别的函数 day2的第一题 上机复试练习day2(杭州电子科技大学&华东师范大学 2022.03.02) - 掘金 (juejin.cn))
#include <stdio.h>
#include <math.h>
bool isprime(int num){//快速判断是不是质数
if(num<=3){
return num>1;
}//不在6的倍数两侧的一定不是质数
if(num%6!=1&&num&&6!=5){
return false;
}
for(int i=5;i<=sqrt(num);i+=6){
if(num%i=0||(num)%(i+2)==0){
return false;
}
}
return true;
}
第二题:大写变小写
要求:输入任意的字符串,让字符串大写变小写
输入格式:
第一行输入大写的字母
输出格式:
第一行输出小写的字母
思路:
小写比大写的ASCLL大32
void capitaltolowercase(string s){
cin>>s;
for(int i=0;i<(int)s.size();i++){
if(s[i]>='A'&&s[i]<='Z'){
s[i]+=32;
}
}
cout<<s<<end1;
system("pause");
return 0;
}
第三题:回文数
要求:
判断输入的整数是不是回文数,输入的数据范围为(10,1000),回文数是一种数字,如999,121等
输入格式:
符合范围的数字若干
输出格式:
是就输出true, 不是就输出false
思路:
本题利用好范围分成2位数和3位数处理更快,两位数的回文数非常有限,
#include <stdio.h>
#include <math.h>
bool iscyclenum(int n){
int a[9]={11,22,33,44,55,66,77,88,99};
for(int i=0;i<9;i++){
if(a[i]==n){
return true;
}
}
int ge=n%10;
int bai=n/100;
if(ge==bai){
return true;
}
return false;
}
第四题:找出1000以内的所有完数
要求:
找出1000以内的完数,并输出完数和他的所有因子
输入格式:
无
输出格式:
同题
思路:
注意判别范围 n/2,一个数的因素不可能大于n/2,只能小于等于n/2,写一个判别函数,在写一个打印所有因素的函数
#include <stdio.h>
#include <math.h>
bool isperfect_number(int n){
int sum=0;
for(int i=1;i<=n/2;i++){
if(n%i==0){
sum+=i;
}
}
return sum==n;
}
void printf_num(int n){
for(int i=0;i<=n/2;i++){
if(n%i==0){
printf("%d ",i);
}
}
}
第五题:奇数和
要求:
输入10个正整数(有奇数也有偶数),要求输出其中的每个奇数,并输出奇数的个数,奇数和
输入格式:
第一行所有正整数
输出格式:
第一行所有奇数 第二行输出奇数的个数 第三行输出奇数值和
思路:
无
void printf_odd(int a[]){
int count=0,num=0;
for(int i=0;i<10;i++){
if(a[i]%2==1){
count++;
num+=a[i];
printf("%d ",a[i]);
}
}
printf("\n%d\n",count);
printf("%d",num);
}
参考书目
1.计算机软件相关专业复试指导 ————皮皮灰
2.2022年数据结构考研复试指导 ————王道论坛