2023年湖北省专升本C语言程序设计大题真题解析

2023年湖北省的专升本考试已于5月7日举行,考试中,出现了许多不同的考试题目,我在网上找到一所高校专升本的大题(好像是湖北理工的,具体的我也不太清楚),那么我们今天就来看这几道真题到底难不难。(有不对的地方欢迎指正,边学习边成长!)

 题目:

  那么我们来看看怎么编写程序吧:

//第1题
#include <stdio.h>
int main() {
  int f1 = 0, f2 = 1, i;

  for (i = 0; i < 20; ++i) {
    if (i % 5 == 0 && i!=0) {
      printf("\n");
    }
    printf("%d ", f2);
    int ljt = f1 + f2;
    f1 = f2;
    f2 = ljt;
  }
}
//第2题
#include <stdio.h>
#include <ctype.h>
int isChineseCharacter(char ch) {
    return (ch & 0xF0) == 0xE0; // 判断是否为中文字符的简化实现,可根据需求进行调整
}

int main() {
    char str[100];
    int l = 0, s = 0, d = 0, o = 0;
    printf("请输入字符串: ");
    fgets(str, sizeof(str), stdin);

    for (int i = 0; str[i] != '\0'; i++) {
        if (isalpha(str[i])) {
            l++;
        } else if (isspace(str[i])) {
            s++;
        } else if (isdigit(str[i])) {
            d++;
        } else if (isChineseCharacter(str[i])) {
            l++; // 中文字符也计算为字母
        } else {
            o++;
        }
    }

    printf("字母个数: %d\n", l);
    printf("空格个数: %d\n", s);
    printf("数字个数: %d\n", d);
    printf("其他字符个数: %d\n", o);
    return 0;
}
//第3题
#include <stdio.h>
double fun(int n) {
    double s = (2 * n - 1) * (2 * n + 1) / (double)(2 * n * 2 * n);
    return s * s;
}

int main() {
    int n, i;
    double sum = 0.0; 
    printf("请输入n的值:");
    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        sum += fun(i);
    }
    printf("n=%d时的结果:%f\n", n, sum);
    return 0;
}
//第4题
#include <stdio.h>
typedef struct {
    int rp; // 实部
    int ip; // 虚部
} complex;
// 复数相加,参数为两个复数,返回值为相加后的结果
complex add(complex x, complex y) {
    complex ljt;
    ljt.rp = x.rp + y.rp;
    ljt.ip = x.ip + y.ip;
    return ljt;
}
// 复数相减,参数为两个复数,返回值为相减后的结果
complex sub(complex x, complex y) {
    complex ljt;
    ljt.rp = x.rp - y.rp;
    ljt.ip = x.ip - y.ip;
    return ljt;
}
int main() {
    complex x = {1, 2}; 
    complex y = {3, 4}; 
    complex ljt; 
    // 复数相加
    ljt = add(x,y); 
    printf("(%d + %di) + (%d + %di) = %d + %di\n", x.rp, x.ip, y.rp, y.ip, ljt.rp, ljt.ip);
    // 复数相减
    ljt = sub(x,y); 
    printf("(%d + %di) - (%d + %di) = %d + %di\n", x.rp, x.ip, y.rp, y.ip, ljt.rp, ljt.ip);

    return 0;
}
//第5题
#include <stdio.h>
int main(){
	int t,f=0,s=0,c=1;
	scanf("%d",&t);
	while(t!=0){
		if(t==1)f=1;
        if(t==2&&(f==1||c==1))f=2;
        else if(t==2 && f%2==0)f+2;
        s+=f;
        c++;
        scanf("%d",&t);
	}
	printf("%d",s);
	return 0;
}

总结:

           程序的思路并不复杂,可以说非常简单,其实专升本考试也就那么回事,24年备战的同学可以多看看书,多刷刷题,希望可以帮到正在备考的你!

【程序1】 题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数都是多少 1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i,j,k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数 1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型. 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); }
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Onlooker﹒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值