sdut-程序设计基础Ⅰ-期末测试(重现)

6-1 sdut-C语言实验-老师在哪里(字符串查找)

2023年是令人难忘的一年,这一年我们终于打败了新冠,人们重新自由地生活。对于山东理工大学计算机学院来说,又迎来了一群可爱的新生,他们龙腾虎跃,积极投入到了大学的学习生活。大一的第一门专业课是《程序设计基础》,给他们上课的老师分别是MaXinjuan、LiuShushu、Tianaikui、JiangGuihong、YuXiao、SunYong、LiXinxin。现在要求把老师们的名字升序排序,并找出自己的老师的位置。

函数接口定义:

void Sort_Tea ( char *p[], int n );

其中 数组p 是接收用户传过来的地址参数,n为指针数组的长度 。

裁判测试程序样例:

#include <stdio.h>

#include<string.h>

int main()

{

int i,k;

char *ptr[7]= {"MaXinjuan","LiuShushu","Tianaikui","JiangGuihong","YuXiao","SunYong","LiXinxin"};

char myTeacher[20];

Sort_Tea(ptr,7);

scanf("%s",myTeacher);

for(i=0; i<7; i++)

{

if(strcmp(myTeacher,ptr[i])==0)

{

k=i;

break;

}

}

printf("%d",k);

return 0;

}

/* 请在这里填写答案 */

输入样例:

MaXinjuan

输出样例:

3

实现代码:

cpp 复制代码
void Sort_Tea ( char *p[], int n ){
    char *temp;
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j++){
            if(strcmp(p[j],p[j+1])>0){
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
        }
    }
}

6-2 sdut-C语言实验-合数分解(选做)

分数 12

作者 马新娟

单位 山东理工大学

把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。输入一个正整数n,将n分解成质因数乘积的形式。

函数接口定义:

void primeFac(int n) ;

'n'是用户传入的参数。 n 值的范围2到20000。

裁判测试程序样例:

#include <stdio.h>

void primeFac(int n) ;

int main()

{

int num;

scanf("%d", &num);

primeFac(num);

return 0;

}

/* 请在这里填写答案 */

输入样例1:

20000

输出样例1:

20000=2*2*2*2*2*5*5*5*5

输入样例2:

369

输出样例2:

369=3*3*41

实现代码:

cpp 复制代码
void primeFac(int n){
    printf("%d=",n);
    while(n!=1){
        int i;
        for(i=2;i<=n;i++){
        if(n%i==0){
        printf("%d",i);
        n=n/i;
        if(n!=1) printf("*");
        break;
        }
    }
    }
}

6-3 sdut-C语言实验-交换两个整数(函数)

分数 12

作者 马新娟

单位 山东理工大学

本题要求实现一个函数,可实现两个整数的交换,不需要返回。

函数接口定义:

void swap( int *p1, int *p2);

其中 p1和 p2 都是用户传入的参数,接受地址。

裁判测试程序样例:

#include <stdio.h>

void swap( int *p1, int *p2);

int main()

{

int x, y;

int *p1,*p2;

scanf("%d %d", &x, &y);

p1=&x;

p2=&y;

swap(p1,p2);

printf("x=%d,y=%d", x,y);

return 0;

}

/* 请在这里填写答案 */

输入样例:

21 2

输出样例:

x=2,y=21

实现代码:

cpp 复制代码
void swap( int *p1, int *p2){
    int t=*p1;
    *p1=*p2;
    *p2=t;
}

7-1 sdut-C语言实验-幸福其实很简单

分数 12

作者 马新娟

单位 山东理工大学

人间总有一两风,填我十万八千梦。元旦前后,SDUT很多班级组织包饺子的活动,这让大一学子倍感幸福。现在请编写一个程序,输入饺子数和班级人数,如果饺子数恰好是人数的倍数,则输出"HAPPY NEW YEAR",否则输出"Who can eat the rest of the dumplings?"。

输入格式:

输入两个整数,分别表示饺子数和班级人数。

输出格式:

根据饺子数是否为人数的倍数输出相应结果。

输入样例:

400 20

输出样例:

HAPPY NEW YEAR

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    if(m%n==0) cout<<"HAPPY NEW YEAR";
    else cout<<"Who can eat the rest of the dumplings?";
    return 0;
}

7-2 sdut-C语言实验-计算油费

分数 13

作者 马新娟

单位 山东理工大学

已经大四的龙龙,目前在外实习。很有规划的他用自己的工资买了一辆二手车,计划元旦期间贵州自驾游。要行万里路,得先加油。现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了"自助服务"和"协助服务"两个服务等级,分别可得到5%和3%的折扣。

本题要求编写程序,根据输入龙龙的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出龙龙加油的应付款。如果输入的油号不是这三类的一种,则输出"The input should be 90 or 93 or 97."。(题目来源:浙江大学 颜晖老师)

输入格式:

输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。

输出格式:

在一行中输出应付款额,保留小数点后2位。

输入样例:

40 97 m

输出样例:

在这里给出相应的输出。例如:

301.34

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n;
    char ch;
    cin>>m>>n;
    cin>>ch;
    if(ch=='m'){
        if(n==90) printf("%.2lf",m*6.95*0.95);
        else if(n==93) printf("%.2lf",m*7.44*0.95);
        else if(n==97) printf("%.2lf",m*7.93*0.95);
        else return 0;
    }
    else if(ch=='e'){
        if(n==90) printf("%.2lf",m*6.95*0.97);
        else if(n==93) printf("%.2lf",m*7.44*0.97);
        else if(n==97) printf("%.2lf",m*7.93*0.97);
        else return 0;
    }
    return 0;
}

7-3 sdut-C语言实验-统计元音个数

分数 13

作者 马新娟

单位 山东理工大学

英文元音字母包括A(a)、E(e)、I(i)、O(o)、U(u)。本题要求编写程序,统计给定字符串中元音字母的个数。
多个字符串输入结束循环判断的条件为:while(gets(数组名)!=NULL)

输入格式:

输入多个不超过80个字符的字符串,每个字符串输入后以回车结束。

输出格式:

按格式输出每个字符串中元音字母的个数。

输入样例1:

I Love C !

I will continue to study hard next term.

输出样例1:

3

11

输入样例1:

Good health and kind character are the most important.

输出样例1:

16

代码长度限制

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[88];
    while(cin.getline(a,88)){
        int len=strlen(a);
        int sum=0;
        for(int i=0;i<len;i++){
            if(a[i]=='a'||a[i]=='A'||a[i]=='e'||a[i]=='E'||a[i]=='i'||a[i]=='I'||a[i]=='o'||a[i]=='O'||a[i]=='u'||a[i]=='U')
                sum++;
        }
        cout<<sum<<endl;
    }
    return 0;
}

7-4 sdut-C语言实验-顺序查找

分数 13

作者 马新娟

单位 山东理工大学

输入n个正整数(1<= n <= 100),查找n个数中是否存在数x。如果存在则返回第一次出现的下标,否则输出"NO"。

输入格式:

第一行输入n,然后输入n个正整数。

第二行输入x。

输出格式:

如果数列中存在x则输出其下标,否则输出"NO"。

输入样例1:

10 7 0 9 4 3 8 2 1 5 4

6

输出样例1:

NO

输入样例2:

5 8 7 8 3 9

8

输出样例2:

0

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
     int n;
    cin>>n;
    int a[111];
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int x;
    cin>>x;
    for(int i=0;i<n;i++){
        if(a[i]==x){
            cout<<i;
            return 0;
        }
    }
    cout<<"NO";
     return 0;
 }

7-5 sdut-C语言实验-去掉重复的数据

分数 12

作者 马新娟

单位 山东理工大学

给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。(题目来源:teacher 刘)

输入格式:

输入包含两行:第一行包含一个正整数n(1≤n≤20000),表示第二行序列中数字的个数;第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于5000。

输出格式:

输出去重之后的数据,数据之间用空格间隔。

输入样例1:

5

10 12 93 12 75

输出样例1:

10 12 93 75

输入样例2:

10

21 30 14 55 32 63 11 30 55 30

输出样例2:

21 30 14 55 32 63 11

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[20020];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(a[j]==a[i]){
                a[j]=0;
            }
        }
    }
    cout<<a[1];
    for(int i=2;i<=n;i++){
        if(a[i]!=0) cout<<" "<<a[i];
    }
    return 0;
}

7-6 sdut-C语言实验-谁可以获得奖学金?

分数 15

作者 马新娟

单位 山东理工大学

某班将根据英语、高数、程序设计基础三门课程的期末测试成绩颁发奖学金,三门课均在90分以上的同学可以获得。假设班级人数不超过40人,请编程输出获得奖学金的同学的序号,如果没满足条件的输出None.

输入格式:

第一行输入班级人数,后面输入全部成绩。

输出格式:

输出获得奖学金同学的序号,如有多个同学获得分行显示,如无则输出None.

输入样例:

5

90 87 98

90 99 98

67 78 89

90 60 78

91 92 95

输出样例:

1

4

实现代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[44][44];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=3;j++){
            cin>>a[i][j];
        }
    }
    int x=0;
    for(int i=1;i<=n;i++){
        int sum=0;
        for(int j=1;j<=3;j++){
            if(a[i][j]>=90) sum++;
        }
        if(sum==3){
            cout<<i-1<<endl;
            x++;
        }
    }
    if(x==0) cout<<"None.";
    return 0;
}
相关推荐
Ralph_Y2 小时前
C++ 常量的定义方式与内存存储位置全解析
c++
跨境卫士苏苏2 小时前
通过配件标准化降低售后复杂度
大数据·人工智能·跨境电商·亚马逊·营销策略
努力学算法的蒟蒻2 小时前
day114(3.16)——leetcode面试经典150
算法·leetcode·职场和发展
重庆兔巴哥2 小时前
如何在Dev-C++中使用MinGW-w64编译器?
linux·开发语言·c++
ysa0510302 小时前
贪心【逆向dp】
数据结构·c++·笔记·算法
夜月yeyue2 小时前
Linux 邻接(Neighbor)子系统架构与 NUD 状态机
linux·运维·服务器·嵌入式硬件·算法·系统架构
魔道不误砍柴功2 小时前
Java Function 高级使用技巧:从工程实战中来
java·开发语言·python
success1122 小时前
hadoop集群准备工作
大数据·hadoop·chrome
三佛科技-187366133972 小时前
LP3783A芯茂微5V2.1A低功耗原边反馈充电器芯片替代PL3378/C
c语言·开发语言