衡水学院新人百题练2022(61-80)

61 查找整数

分数 10

作者 杨起帆单位 浙大城市学院

本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。

输入格式:

输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。

输出格式:

在一行中输出X的位置,或者“Not Found”。

输入样例1:

5 7
3 5 7 1 9

输出样例1:

2

输入样例2:

5 7
3 5 8 1 9

输出样例2:

Not Found
#include <stdio.h>
int main()
{
int n,b,i;
scanf("%d %d", &n,&b);
int search[20];
for(i=0;i<n;i++){
scanf("%d", &search[i]);
}
for(i=0; i<n; i++){
if(b==search[i]){
printf("%d", i);
break;
}
}
if(i==n){
printf("Not Found");
}
}

62 数字加密

分数 15

作者 陈建海单位 浙江大学

输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

输入格式:

输入在一行中给出一个四位的整数x,即要求被加密的数。

输出格式:

在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。

输入样例:

1257

输出样例:

The encrypted number is 4601
#include<stdio.h>
int main()
{
    int number;
    int i;
    int a[4]={0};//数组初始化
    int b,c,d,e;//个、十、百、千
    int sum;
    scanf("%d",&number);//是四位数字
    for(i=0;i<4;i++)
    {
        a[i]=number%10;
        number=number/10;
        //从个位数字开始倒序输出,把四位数代入数组中
    }
     b=(a[0]+9)%10;//个
     c=(a[1]+9)%10;//十
     d=(a[2]+9)%10;//百
     e=(a[3]+9)%10;//千
     sum=c*1000+b*100+e*10+d;//注意乘的顺序
     printf("The encrypted number is %04d",sum);
    return 0;
}

63 求整数序列中出现次数最多的数

分数 15

作者 张彤彧单位 浙江大学

本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

输入格式:

输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式:

在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

输入样例:

10 3 2 -1 5 3 4 3 0 3 2

输出样例:

3 4
#include<stdio.h>
int main() 
{
    int n;
    scanf("%d", &n);
    int a[1000];
    int count=0;
    int max = 0, maxcount = 0;
    int i,j;
    for (i = 0; i < n; i++)//将数字填入数组
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            if (a[i] == a[j])//计算i的次数
            {
                count++;
            }
        }
        if (count > maxcount)//比较i的次数
        {
            maxcount = count;
            max = a[i];
        }
        count = 0;//这里一定要清零,否则会记录所有元素的次数
    }
    printf("%d %d", max, maxcount);
    return 0;
}

64 输出数组元素

分数 15

作者 颜晖单位 浙江大学

本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。

输入格式:

输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。

输出格式:

顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。

输入样例:

10
5 1 7 14 6 36 4 28 50 100

输出样例:

-4 6 7
-8 30 -32
24 22 50
#include<stdio.h>
int main()
{
int i, j, n;
int arr[100];
scanf("%d", &n);
for (i = 0;i < n;i++)
{
scanf("%d", &arr[i]);
}
for (i = 1;i < n;i++)
{
if (i == 4 || i == 1||i==7)
{
printf("%d", arr[i] - arr[i - 1]);
}
else {
printf(" %d", arr[i] - arr[i - 1]);
if (i % 3 == 0)
printf("\n");
}
}
return 0;
}

65 二维数组中每行最大值和每行和

分数 10

作者 王跃萍单位 东北石油大学

求一个3*3二维数组中每行的最大值和每行的和。

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔

输出格式:

输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

输入样例:

3 6 5 9 8 2 1 4 5

输出样例:

   3   6   5   6  14
   9   8   2   9  19
   1   4   5   5  10
#include<stdio.h>
int main()
{
    int i, j, a[3][3], sum=0, max;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
    {
        max=a[i][0];
        for(j=0;j<3;j++)
        {
            if(max<a[i][j])
            {
                max=a[i][j];
            }
            printf("%4d",a[i][j]);
            sum+=a[i][j];
        }
        printf("%4d%4d\n",max, sum);
        sum=0;
    }
    return 0;
}

66 简化的插入排序

分数 15

作者 C课程组单位 浙江大学

本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

输入格式:

输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。

输出格式:

在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。

输入样例:

5
1 2 4 5 7
3

输出样例:

1 2 3 4 5 7 
#include<stdio.h>
int main(){
    int n,i,j;
    scanf("%d",&n);
    int a[n+1];
    for(i=0;i<=n;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n;i++) 
    if(a[i]>a[n])
    {a[i]=a[i]+a[n];a[n]=a[i]-a[n];a[i]=a[i]-a[n];}//交换
    for(i=0;i<=n;i++)
    printf("%d ",a[i]);
    return 0;
}

67 冒泡法排序

分数 20

作者 徐镜春单位 浙江大学

N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

输入格式:

输入在第1行中给出NK(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

输入样例:

6 2
2 3 5 1 6 4

输出样例:

2 1 3 4 5 6
#include <stdio.h>
int main()
{
    int N,M;
    scanf("%d%d",&N,&M);
    int ar[N];
    for(int i=0;i<N;i++){
        scanf("%d",&ar[i]);
    }
    for(int i=0;i<M;i++){
        for(int j=0;j<N-i-1;j++){
            if(ar[j]>ar[j+1]){
                int temp=ar[j];
                ar[j]=ar[j+1];
                ar[j+1]=temp;
            }
        }
    }
    printf("%d",ar[0]);
    for(int i=1;i<N;i++){
        printf(" %d",ar[i])
    ;}
}

68 猴子选大王

分数 25

作者 徐镜春单位 浙江大学

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

输入格式:

输入在一行中给一个正整数N(≤1000)。

输出格式:

在一行中输出当选猴王的编号。

输入样例:

11

输出样例:

7
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n],i;
for(i=0;i<n;i++)
a[i]=1;
int count=0,sum=0;
while(1)
{
for(i=0;i<n;i++)
{
if(a[i]==0) continue;
count++;
if(count==3)
{
a[i]=0;count=0;sum++;
}
}
if(sum==n-1) break;
}
for(i=0;i<n;i++)
if(a[i]==1) printf("%d",i+1);
}

69 判断回文

分数 15

作者 张墨逸单位 兰州理工大学

输入一个以回车符为结束标志的字符串(少于80个字符),判断该字符串是否为回文。

回文就是字符串中心对称,如“abcba”、“abccba”是回文,“abcdba”不是回文。

输入格式:

输入一个以回车符为结束标志的字符串(少于80个字符)

输出格式:

为回文,输出yes; 非回文,输出no,注意输出的结果后面有回车符

输入样例:

abccba

输出样例:

yes
#include<stdio.h>
int main()
{
    char a[80];
    int i, n, falg=1;
    gets(a);
    i=strlen(a);
    for(n=0;n<i;n++)
    {
        if(a[n]!=a[i-1])
            falg=0;
        i--;
    }
        if(falg==1)
            printf("yes");
            else
                printf("no");
    return 0;
}

70 统计一行文本的单词个数

分数 15

作者 张彤彧单位 浙江大学

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5
#include <stdio.h>
int main()
{
    int count=0;    //count用来计算单词数
    char ch;
    ch=getchar ();//首次输入,根据输入设置while循环的条件
    while(ch!='\n'){      //单词计数循环,若非回车则执行循环
        if(ch!=' '){     //若为ch为非空格
            ch=getchar ();          //则继续输入字符
            if (ch == ' '||ch=='\n')       //对输入的下一个字符进行判断,如果下一个输入的字符是空格或者回车
                count++;    //则可以确定这个单词已经结束,单词计数+1
            continue;          //此时ch只可能是带着是空格或者回车的字符变量,把其中的值带给while进行下一轮输入条件判断
        }
        else if(ch == ' ')           //若为空格,则继续输入下一个字符
            ch=getchar (); //while循环变量控制
    }
    printf("%d", count);
    return 0;
}

71 字符串循环左移

分数 20

作者 白洪欢单位 浙江大学

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

输入格式:

输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N

输出格式:

在一行中输出循环左移N次后的字符串。

输入样例:

Hello World!
2

输出样例:

llo World!He
#include <stdio.h>
int main()
{
    int n,i,l;
    char s[1000];
    gets(s);
    scanf("%d",&n);
    l=strlen(s);
    for(i=0;i<n;i++)        //前n项挪到最后去
        s[l+i]=s[i];
    for(i=n;i<=l+n;i++)     //再把每一项前移即可   
        s[i-n]=s[i];
    for(i=0;i<l;i++)
        printf("%c",s[i]);
    return 0;
}

72 二维数组求左下三角元素之和

分数 10

作者 时贵英单位 东北石油大学

求一个n*n(n<10)数组左下三角(包括主对角线)元素的和。

输入格式:

先输入n(n<10)值,然后再输入各个数组元素值。

输入样例:

2
1 2
3 4[回车]

输出格式:

输出左下三角(包括主对角线)全部元素的和。

输出样例:

8
#include<stdio.h>
int main()
{
    int n, i, j, a[10][10], sum;
    scanf("%d",&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<=i;j++)
            sum+=a[i][j];
    }
    printf("%d",sum);
    return 0;
}

73 方阵右上三角元素和

分数 10

作者 王跃萍单位 东北石油大学

求一个5×5数组右上三角(含对角线)元素的和。

输入格式:

输入5行5列的方阵,每行第一个数前没有空格,每行的每个数之间各有一个空格。

输出格式:

直接输出结果。没有其它任何附加字符。

输入样例:

1 2 4 5 8
1 4 7 4 1
1 2 3 6 9
5 6 9 8 4
7 5 3 6 8

输出样例:

74
#include<stdio.h>
int main()
{
    int i, j, a[5][5], sum=0;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<5;i++)
    {
        for(j=i;j<5;j++)
            sum+=a[i][j];
    }
    printf("%d",sum);
    return 0;
}

74 将下标为偶数的元素值赋值给数组n

分数 10

作者 王跃萍单位 东北石油大学

从键盘上输入10元素的值存入一维数组m中,然后将下标为(0. 2. 4. 6. 8)的元素值赋值给数组n,最后输出数组n的内容。

输入格式:

在一行中输入10个整数,数据之间各用一个空格间隔。

输出格式:

在一行中直接输出结果,每个数据输出占4列列宽。

输入样例:

1 4 7 8 5 2 6 9 3 1

输出样例:

   1   7   5   6   3
#include<stdio.h>
int main()
{
    int i, j, m[10], n[10];
    for(i=0;i<10;i++){
        scanf("%d",&m[i]);}
    i=0;
    for(j=0;j<10;j++)
    {
        if(j%2==0){
            n[i]=m[j];
        i++;}
    }
    for(i=0;i<5;i++)
        printf("%4d",n[i]);
    return 0;
}

75 输出整数各位数字

分数 15

作者 颜晖单位 浙大城市学院

本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

输入格式:

输入在一行中给出一个长整型范围内的非负整数。

输出格式:

从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。

输入样例:

123456

输出样例:

1 2 3 4 5 6 
#include<stdio.h>
int main()
{
char c;
do 
{
scanf("%c", &c);
if (!(c >= '0' && c <= '9'))    //利用最后输入的回车键也会被看做字符被scanf读取的特点跳出循环。 
break;
printf("%c ", c);
} while (c >= '0' && c <= '9') ;
return 0;
}

76 人民币兑换

分数 15

作者 林颖贤单位 浙江大学

1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。

输入格式:

输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。

输出格式:

显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。

注意:如果全部方案不到n种,就顺序输出全部可能的方案。

输入样例:

5

输出样例:

1 46 53  
2 42 56  
3 38 59  
4 34 62  
5 30 65
#include<stdio.h>
int main()
{
int i,j,k;
int wu,er,san;
int n;
int t=0;
scanf("%d",&n);
for(i=1;i<=150/5;i++)//5分一个,150分就有30个 
{
for(j=1;j<=150/2;j++)//2分一个,150分就有75个 
{
for(k=1;k<=100;k++)//因为硬币不能多于100枚,所以1分的情况最多只有100个 
{
if(i*5+j*2+k==150 && i+j+k==100 && t<n)//题目要求说输出n种可能的方案,所以输入到n种就可以了 
{
printf("%d %d %d\n",i,j,k);
t++;//每有一种方案就+1,最多n种 
}
}
}
}
}

77 输出各位数字之和能被15整除的所有数

分数 10

作者 王跃萍单位 东北石油大学

输出100到1000之间的各位数字之和能被15整除的所有数,输出时每5个一行,每个数输出占4列列宽。

输出格式:

在每行中输出5的满足要求的数值,每个数输出占4列列宽。

输出样例:

 159 168 177 186 195
 249 258 267 276 285
 294 339 348 357 366
 375 384 393 429 438
 447 456 465 474 483
 492 519 528 537 546
 555 564 573 582 591
 609 618 627 636 645
 654 663 672 681 690
 708 717 726 735 744
 753 762 771 780 807
 816 825 834 843 852
 861 870 906 915 924
 933 942 951 960
#include<stdio.h>
int main()
{
    int i, a, b, c, count=0;
    for(i=100;i<=1000;i++)
    {
        a=i/100;
        b=(i%100)/10;
        c=i%10;
        if((a+b+c)%15==0)
        {
            printf("%4d",i);
            count++;
        }
        if(count==5)
        {
            printf("\n");
            count=0;
        }
    }
    return 0;
}

78 剥洋葱

分数 15

作者 qdu_zhangzhimei单位 青岛大学

布告,布告!

应老师要求,我们要做一道打印图形的题目,这是程序员最基本的能力。

那废话不多说,我们来说要求的图形

AAAAA

ABBBA

ABCBA

ABBBA

AAAAA

就是外到内,从A到Z。每一层都是一种字母,最里面的一层为一个,即最中心的一个。

输入格式:

一行,一个整数,即图形的层数

输出格式:

如上述图形

输入样例:

3

输出样例:

AAAAA
ABBBA
ABCBA
ABBBA
AAAAA
#include<stdio.h>
int main()
{
int a,b,d,e,g;
char c1='A';//首字母为’A‘ 。 
scanf("%d",&a);
d=2*a-1;//计算每层有多少个字母。 
for(int c=0;c<=a-1;c++) //输出上层数 
{
for(b=0;b<c;b++)
{
printf("%c",c1+b); //输出外层边界 
}
for(e=1;e<d-(2*c);e++)//输出内部字母 
{
printf("%c",c1+c);
}
for(g=d-c;g<=d;g++)//输出 外层边界 
{
printf("%c",c1+d-g);
}
printf("\n");
}
for(int c=a-2;c>=0;c--)//输出下层 数 
{
for(b=0;b<c;b++)//输出外层边界 
{
printf("%c",c1+b); 
}
for(e=1;e<d-(2*c);e++)//输出内部字母 
{
printf("%c",c1+c);
}
for(g=d-c;g<=d;g++)//输出 外层边界
{
printf("%c",c1+d-g);
}
printf("\n");
}
}

79 大于m的最小素数

分数 10

作者 王跃萍单位 东北石油大学

编程求出大于m的最小素数。

输入格式:

直接输入一个正整数

输出格式:

直接输出结果,没有任何附加格式控制。

输入样例:

12

输出样例:

13
#include <stdio.h>
#include <math.h>
void main ()
{
int m,i,k=0,x;
scanf ("%d",&m);
for (i=m+1;k==0;i++)
{
for (x=2;x<=sqrt(i);x++)
if (i%x==0)
break;
if (x>sqrt(i))
{
    k=1;
printf ("%d",i); 
}
}
}

80 1/(1+2+3+...+n)

分数 10

作者 王跃萍单位 浙江大学

输入n,然后求下列表达式的值。

输入格式:

直接输入一个正整数。没有其它任何附加字符

输出格式:

直接输出保留6位小数的实型结果。没有其它任何附加字符。

输入样例:

10

输出样例:

1.818182
#include<stdio.h>
double fun(int n)
{
     double m = 0;
      if (n == 1) return 1.0;
      for (int i = 1; i <= n; i++)
     {
         m += i;
      }
  return 1 / m + fun(n - 1);
}
void main()
{
    int n; 
    double sum, m;
    scanf("%d",&n);
    sum= fun(n);
    printf("%lf",sum);
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2022衡水市建筑轮廓GIS数据是指在2022年针对衡水市的建筑物进行调查和收集的地理信息系统数据。GIS数据是指通过遥感技术、GPS定位和地理信息处理软件等手段获得的空间数据。其中建筑轮廓数据包括建筑物的位置、形状、高度、楼层等信息。 衡水市建筑轮廓GIS数据的收集可以通过遥感影像解译、航空摄影测量等手段获取。首先,可以利用高分辨率遥感影像来提取建筑物的轮廓信息。通过图像解译技术,可以较准确地识别出建筑物的位置和形状。其次,可以通过航空摄影测量获取建筑物的高度和楼层信息。通过飞机或无人机进行航拍,利用摄影测量技术可以测算建筑物的高度和楼层数。 2022衡水市建筑轮廓GIS数据的应用广泛。首先,可以用于城市规划和土地利用。通过分析建筑物分布和布局,可以评估土地利用效率和合理性,为城市规划提供科学依据。其次,可以用于市政设施的规划和建设。通过分析建筑物的高度和形状,可以确定市政设施的建设标准和位置。同时,还可以用于灾害风险评估和应急响应。通过分析建筑物的稠密程度和形状,可以评估灾害风险,为城市灾害防范和救援提供支持。 总之,2022衡水市建筑轮廓GIS数据是通过遥感和摄影测量等技术手段获取的建筑物位置、形状、高度和楼层等信息的地理信息系统数据。此数据的应用范围广泛,涵盖城市规划、土地利用、市政设施规划、灾害防范等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还没有名字哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值