编程题小练

简介: 编程题小练

编程题小练


1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。

#include <stdio.h>
#include <time.h>
void srand(unsigned seed);
int rand(void);
void getArr(int *a,int l){
    int i=0;
    srand(time(NULL));  
    printf("\n你生成的数组为:");
    while (i < l) printf("%d,",a[i++] = rand()%(2*l+1)-l);  //限制范围[-l,l]
}

int main(){
  int a,b,c,i;
  int arr[50];
  getArr(arr,50);
  a=b=c=0;
  for(i=0;i<50;i++)
    if(arr[i]>0) a++;
    else if(arr[i]<0) b++;
    else c++;
  printf("\n正数:%d\n负数:%d\n0:%d\n",a,b,c);
    return 0;
}

2. 编程,计算并输出方程X2+Y2=1989的所有整数解。

#include <stdio.h>
#include <math.h>
#define NUM 1989.0

int main(){
  int x,y;
  for(x=0;x<sqrt(NUM);x++)
    for(y=0;y<sqrt(NUM);y++)
      if(y*y+x*x==NUM)
        printf("x:%d , y:%d\n",x,y);
    return 0;
}

3. 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。

#include <stdio.h>

int main(){
  int num;
  scanf("%d",&num);
  printf("八进制:%o , 十六进制:%x",num,num);
    return 0;
}

4. 一个数如恰好等于它的因子之和,这个数就称为“完数”。编程序找出1000以内的所有完数,并输出其因子(6是一个"完数",它的因子是1,2,3)。

#include <stdio.h>
int ispnum(int n){
  int i=1,sum=0;
  for(;i<n;i++)
    if(n%i==0) sum+=i;
  return sum==n?1:0;
}
void print(int n){
  int i=1;
  printf("%d是一个'完数',它的因子是:",n);
  for(;i<n;i++)
    if(n%i==0) printf("%d, ",i);
  putchar(10);
}
int main(){
  int i;
  for(i=1;i<1000;i++)
    if(ispnum(i)) print(i);
    return 0;
}

5. 输入一个正整数,输出它的所有质数因子(如180的质数因子为 2、2、3、3、5)。

#include <stdio.h>
int ispnum(int n){
  int i;
  for(i=2;i<n;i++)
    if(n%i==0) return 0;
  return 1;
}

void print(int n){
  int i;
  for(i=2;i<n;i++)
    if(n%i==0 && ispnum(i)) printf("%d, ",i);
}

int main(){
  int num;
  scanf("%d",&num);
  print(num);
    return 0;
}

6. 输入20个整数存入一数组,输出其中能被数组中其它元素整除的那些数组元素。

7. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。

#include <stdio.h>
#include <time.h>
#define M 5
#define N 8
void srand(unsigned seed);
int rand(void);
void getArr(int *a,int l){
    int i=0;
    srand(time(NULL));  
    printf("\n你生成的数组为:");
    while (i < l) printf("%d,",a[i++] = rand()%(2*l+1)-l);  //限制范围[-l,l]
}
//在数组a中查找是否存在num
int find(int *a,int n,int num){
  int i;
  for(i=0;i<n;i++)
    if(a[i]==num) return 1;
  return 0;
}
int main(){
  int a[M],b[N],i;
  getArr(a,M);
  getArr(b,N);
  printf("\n共同存在的元素有:");
  for(i=0;i<N;i++)
    if(find(a,M,b[i])) printf("%d, ",b[i]);
    return 0;
}

8. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、7、9、10、-1)。

#include <stdio.h>
#include <time.h>
#define M 5
#define N 8
void srand(unsigned seed);
int rand(void);
void getArr(int *a,int l){
    int i=0;
    srand(time(NULL));  
    printf("\n你生成的数组为:");
    while (i < l) printf("%d,",a[i++] = rand()%(2*l+1)-l);  //限制范围[0,2*l]
}
//在数组a中查找是否存在num
int find(int *a,int n,int num){
  int i;
  for(i=0;i<n;i++)
    if(a[i]==num) return 1;
  return 0;
}
int main(){
    int a[M]={2,3,4,5,6},b[N]={3,5,7,9,10,-1},i;  
  //int a[M],b[N],i;
  //getArr(a,M);
  //getArr(b,N);
  printf("\n不共同存在的元素有:");
  for(i=0;i<N;i++)
    if(!find(a,M,b[i])) printf("%d, ",b[i]);
  for(i=0;i<M;i++)
    if(!find(b,N,a[i])) printf("%d, ",a[i]);
    return 0;
}

9.编程,将字符数组S2中的全部字符拷贝到字符数组S1中(不用strcpy函数)。

#include <stdio.h>

void strcopy(char *s1,char *s2){
  while(*s1++=*s2++);
}

int main(){
  char str[80];
  strcopy(str,"outstanding");
  puts(str);
    return 0;
}

10.给定年份year,判别该年份是否闰年(定义一个宏以判别该年份是否闰年)。

#include <stdio.h>
#define ISLEAP(year) (year%400==0||year%4==0&&year%100?1:0)

int main(){
  int year;
  for(year=1896;year<2010;year+=4)
    if(ISLEAP(year)) printf("%d 年是闰年\n",year);
    return 0;
}

11.输入一行小写字母后,将字母变成其下一字母(a变成b、b变成c、c变成d、…、x变成y、y变成z、z变成a)输出。

#include <stdio.h>

int main(){
  char str[80];
  int i;
  for(i=0;(str[i]=getchar())!='\n';i++)
    str[i]=='z'?str[i]='a':str[i]++;
  str[i]='\0';
  puts(str);
    return 0;
}

相关文章
|
7月前
|
C++ 开发者 Python
物理光学的编程
物理光学的编程
101 0
|
设计模式 算法 安全
给大家推荐10本最优秀的编程书
给大家推荐10本最优秀的编程书
440 0
|
Linux
linux模块化编程
linux模块化编程
275 0
|
算法 安全 开发者
小孩子学什么编程?
Scratch 是麻省理工学院(MIT)为儿童学习编程而设计开发的一款工具。使用者不用去记复杂的语法,甚至不需要会英语,就可以创建自己的程序、动画、游戏等作品。构成程序的命令和参数通过积木形状的模块来实现,用鼠标拖动模块到程序编辑栏,像搭积木一样就可以实现编程了。
|
程序员 测试技术 API
循序渐进学编程
软件开发人员是一个日新月异的领域—–IT中的大师,今天的编程方式与明天的编程或许截然不同,技术在不断地革新,新语言、新平台的如雨后春笋般出现、更好的解决方案的冒出,因此我们需要跟得上节奏,我们别无选择,唯有努力提高自己。
162 0
循序渐进学编程
|
机器学习/深度学习 人工智能 自然语言处理
编程需要了解的问题
  儿童编程则是一门有趣的课程 ,与成人编程相比学习编程有着明确的目的,或者是为了加薪、跳槽。接下来给大家讲讲家长要了解的编程问题,希望对你们有帮助。许多重视教育的家长都意识到,让孩子从小就开始编程,培养编程思维是一种顺应时代的选择。当孩子在学习编程时,作为父母,有五个方面必须明确。1.什么是steam教育儿童编程,从简单的角度来说就是教儿童学习编程。有些家长不明白,编程这种大学计算机专业才会涉及的专业知识,为什么孩子也要学呢?情况就是这样的,随着人工智能的发展,我们孩子未来生活的世界将是一个用代码编写的高科技智能世界。想象一下,如果孩子那时候还没有编程思维,那么就很难融入那样一个社会。儿童编
152 0
|
Java 程序员
我似乎理解了编程的意义
编程的意义是什么,我又为什么要编程呢? 这是一个不时会浮现在我脑海中的问题,它来得并不频繁,但每次却都伴随着对自己职业生涯或人生目标的质疑而产生,令我感到些许困惑和不安。而在这十几年的职业生涯中,我也似乎总能在每个阶段为自己找到一个继续热爱编程的理由,直到它已无法解答再一次疑惑的产生。
1112 0
为什么学编程
知识在于点滴积累
744 0
|
JavaScript 前端开发 机器人
你会教自己的孩子编程吗?
​​很多家长都想让孩子学编程。科技行业领导者和教育学家呼吁学校开设更多的计算机课程,家长也认为编程是未来社会的必备技能。 为什么要学编程?为了让计算机解决特定的问题,我们把指挥计算机工作的指令写在程序中,当计算机执行程序时,即可按照这些指令完成工作。
2986 0

热门文章

最新文章