山东理工大学:2021级-程序设计基础I-期末测试题:参考答案

*****************0-0目录***********************

6-1 找两个数中最大者 

1.题目

2.参考代码

6-2 字符串复制

1.题目

2.参考代码

7-1 sdut-C语言实验-虎子分糖果

1.题目

2.参考代码

7-2 sdut-C语言实验-虎子查找指定字符

1.题目

2.参考代码

7-3 sdut-C语言实验-虎子算电费

1.题目

2.参考代码

7-4 sdut-C语言实验-虎子的虎年理财计划

1.题目

2.参考代码

7-5 sdut-C语言实验-虎子助人为乐之判断上三角矩阵

1.题目

2.参考代码

7-6 sdut-C语言实验- 虎子认识新朋友之字符串排序 

1.题目

2.参考代码



6-1 找两个数中最大者 

1.题目

本题要求对两个整数a和b,输出其中较大的数。

函数接口定义:

int max( int a, int b );

其中ab是用户传入的参数,函数返回的是两者中较大的数。

裁判测试程序样例:

#include <stdio.h>

int max( int a, int b );

int main()
{    
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

-5 8

输出样例:

max = 8

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

int max(int a,int b){
    int max;
    max = (a>b?a:b);


    return max;
}

6-2 字符串复制

1.题目

将一个字符串复制到另外一个字符串中。

函数接口定义:

void fun(char a[],char b[]);

参数ab是用户传入的参数。 函数将字符串a复制到字符串b中。

裁判测试程序样例:

#include "stdio.h"
void fun(char a[],char b[]);
int main()
 {char a[80],b[80];
  gets(a);
  fun(a,b);
  puts(b);
  return 0;
 }


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

输入样例:

abc

输出样例:

abc

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

void fun(char a[],char b[]){

    for(int i=0;*(a+i)!='\0';i++){
        *(b+i) = *(a+i); 
    }

    return a;
}

7-1 sdut-C语言实验-虎子分糖果

1.题目

我们中国各个地区都有拜年的美好习俗,小朋友最喜欢走亲访友了,因为亲戚们会给准备很多糖果吃。虎子家也不例外,妈妈买了很多俄罗斯糖果准备给前来拜年的小朋友分。为了公平,给每个小朋友的糖果数一定得是一样的。

假设虎子妈妈准备了m块俄罗斯糖果,来了n位小朋友,请问每个小朋友可以分到多少块糖?还剩多少块?

输入格式:

输入n和m,其中n>0,m>0。

输出格式:

输出每个小朋友分到的糖果数和剩余的糖果数。

输入样例:

3 31

输出样例:

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

10 1

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>

int main(){
    int m,n;
    scanf("%d %d",&n,&m);


    
    int result = m/n;
    int surplus = m%n;


    
    printf("%d %d",result,surplus);
    return 0;
}

7-2 sdut-C语言实验-虎子查找指定字符

1.题目

山东理工大学与爱尔兰利莫瑞克大学是中外合作院校,许多优秀的学长学姐通过自己努力获得了留学爱尔兰的机会。

虎子作为优秀的学长已经在爱村求学半年了,也认识了很多国外的同学,他们为了更加熟悉,会玩一个从从某个同学的名字中查找某指定的字符的游戏。

现在请你帮助虎子编写一个程序,从输入的英文名字中查找指定的字符。

输入格式:

输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过30个字符)。

输出格式:

如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最小下标(下标从0开始);否则输出"Not Found"。

输入样例1:

M
Maggie Ma

输出样例1:

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

index = 0

输入样例2:

a
Ken Thompson

输出样例2:

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

Not Found

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>
#include<string.h>

int main(){
    int index = -1;
    
    char ch;
    char str[81];
    ch = getchar();                     //输入时要考虑含空格的字符串的情况,所以这里不能用scanf
    getchar();
    gets(str);



    int length = strlen(str);
    for(int i=0;i<length;i++){
        if(str[i]==ch){
            index = i;
            break;                     //因为是找最小下标,所以这里要加break
        }
    }


    
    if(index == -1){
        printf("Not Found");
    }
    else{
        printf("index = %d",index);
    }
    
} 

7-3 sdut-C语言实验-虎子算电费

1.题目

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。

虎子决定编写程序计算一算家里电费。你也会编写这个程序吧?

输入格式:

输入在一行中给出虎子家的月用电量(单位:千瓦时)。

输出格式:

在一行中输出虎子家应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

输入样例1:

10

输出样例1:

cost = 5.30

输入样例2:

100

输出样例2:

cost = 55.50

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>

int main(){
    int elec;
    scanf("%d",&elec);
    float result;

    

    if(elec<0){
        printf("Invalid Value!");
        return 0;
    }
    else if(elec<=50 && elec>0){
        result = elec*0.53;
    }
    else if(elec>50){
        result = (elec-50)*(0.53+0.05) + 26.5;
    }

    
    
    printf("cost = %.2f",result);
    
}

7-4 sdut-C语言实验-虎子的虎年理财计划

1.题目

传说西塔发明了国际象棋而使国王十分高兴,他决定要重赏西塔,西塔说:“我不要你的重赏,陛下,只要你在我的棋盘上赏一些麦子就行了。在棋盘的第1个格子里放1粒,在第2个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,依此类推,以后每一个格子里放的麦粒数都是前一个格子里放的麦粒数的2倍,直到放满第64个格子就行了”。国王觉得很容易就可以满足他的要求,于是就同意了。但很快国王就发现,即使将国库所有的粮食都给他,也不够百分之一。

虎子深受启发,他开始了自己伟大的理财梦想:如果按照上面的复利计算,从这个虎年开始,第一年存1元钱,第二年存2元钱,第三年存4元钱,以此类推。你帮他算算,如果存n年(1<=n<=18),到下一个虎年虎子会存多少钱?

输入格式:

输入一个n,表示存n年。

输出格式:

输出虎子n年后的存款数额。

输入样例:

12

输出样例:

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

4095

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    int sum = 0;


    int temp = 1;
    for(int i=0;i<n;i++){
        sum+=temp;
        temp*=2;
    }



    printf("%d",sum);
    
}

7-5 sdut-C语言实验-虎子助人为乐之判断上三角矩阵

1.题目

放寒假时要好的高中同学免不了要聚一聚,聊聊各自的大学生活和理想,相同专业的同学也会交流一个各自大学的学习情况。

这不,虎子一放假就和同学牛牛交流起程序设计课程来。牛牛对于如何编程判断上三角矩阵一直设计不出完善的程序,这对虎子来说可是信手拈来,我们可都是至少150题的练习量的。让我们一起来试试吧?

要求编写程序,判断一个给定的方阵是否上三角矩阵。

温馨提示:上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

在这里给出一组输入。例如:

3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
3
1 2 3
1 4 5
0 -1 6

输出样例:

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

YES
NO
NO

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>

int main(){
    int T;
    scanf("%d",&T);

    while(T--){
        int n;
        scanf("%d",&n);
        int arr[100][100];
        for(int i=0;i<n;i++){
            for(int k=0;k<n;k++){
               scanf("%d",&arr[i][k]);
            }
        }

        

        int flag=1;
     for(int i=1;i<n;i++){                    //这里需要列一遍数据来找规律
        for(int k=0;k<i;k++){
            if(arr[i][k]!=0){
                flag=0;
            }
        }
    }    


        
        if(flag==1){
            printf("YES\n");
        }
        else if(flag==0){
            printf("NO\n");
        }     
        
    }
    
    return 0;
}

7-6 sdut-C语言实验- 虎子认识新朋友之字符串排序 

1.题目

虎子寒假加入了一个实验室,认识了3个新同学,他决定将同学的名字按字母顺序存储到自己的电子通讯录上。

你知道如何编程实现吗?

请编程实现:输入3个字符串,按字典序从小到大进行排序。

输入格式:

输入数据有一行,分别为3个字符串,用空格分隔,每个字符串长度不超过100。

输出格式:

输出排序后的三个字符串,用空格分隔。

输入样例:

abcd cdef bcde

输出样例:

abcd bcde cdef

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

2.参考代码

/*@Date:2023/12/28 
                 */

#include<stdio.h>
#include<string.h>

int main(){
    char str[3][1000];
    for(int i=0;i<3;i++){
        scanf("%s",&str[i]);                       //题目:“以空格分隔”,所以可以用scanf
    }


    
    for(int i=0;i<3-1;i++){                        //冒泡排序
        for(int k=0;k<3-1-i;k++){
           if(strcmp(str[k],str[k+1])>0){
                    char temp_s[1000] = "\0";
                    strcpy(temp_s,str[k+1]);
                    strcpy(str[k+1],str[k]);
                    strcpy(str[k],temp_s);               
            }
        }
    }



    for(int i=0;i<3;i++){
        if(i!=2){
            printf("%s ",str[i]);
        }
        else{
            printf("%s",str[i]);
        }
    }
    return 0;
}

  • 37
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值