C语言基础—习题及代码(一)

1.读取一个65到122之间的整型数,然后以字符形式输出它,比如读取了97,输出字符a

#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    if(n>=65 && n<=122){
        printf("%c\n",n);
    }
}

2.判断某个年份是不是闰年,如果是闰年,请输出“yes”,否则请输出“no”

int main(){    
    int year;
    scanf("%d",&year);
    if(year%4==0&&year%100!=0||year%400==0){
        printf("yes\n");
    } else{
        printf("no\n");
    }
    return 0;
}

3.读取一个整型数,字符,浮点数,分别到变量i,j,k中,然后将i,j,k直接相加并输出,小数点后保留两位小数,不用考虑输入的浮点数的小数部分超过了两位

int main(){
    int i;
      char j;
      float k;
      int ret = scanf("%d %c%f",&i,&j,&k);
    printf("%5.2f\n",i+j+k);
    return 0 ;

}

4.输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值;
例如 12321是对称数,输出yes,124421是对称数,输出yes,1231不是对称数,输出no

int main(){
    int a,b,backupa;
    scanf("%d",&a);
    backupa = a;    //给a做备份
    b=0;
    while (a){
        b=b*10+a%10;        //b把原有的值*10,再加上余数
        a=a/10;
    }
    if(b==backupa){
        printf("yes");
    } else{
        printf("no");
    }
}

5.利用while或者for循环计算n!的值。(提示:n!=1*2*3…*n)

int main(){
      int n;
    scanf("%d",&n);
    int result =1;
    for(int i=1;i<=n;i++){
        result*=i;
    }
    printf("%d\n",result);
    return 0;
}

6.某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?

#include <stdio.h>
int main() {
    int a,b,c,d,count=0;
    for(a=1;a<=10;a++)
    {
        for(b=1;b<=20;b++)
        {
            for(c=1;c<=37;c++)
            {
                for(d=1;d<=37;d++)
                {
                    if(a+b+c+d ==40 && 10*a+5*b+2*c+d==100)
                    {
                        count++;//换法加1
                    }
                }
            }
        }
    }
    printf("%d\n",count);
    return 0;
}

7.输入N个数(N小于等于100),输出数字2的出现次数;

int main() {
    int elementcount;   //元素个数
    int arr[100];//存储的元素
    scanf("%d",&elementcount);
    int i;
    for(i=0;i<elementcount;i++){
        scanf("%d",&arr[i]);
    }
    //判断2出现的次数
    int count=0;
    for(i=0;i<elementcount;i++){
        if(arr[i]==2){
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

8.读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1。
例如输入 hello,逆转后的字符串为 olleh,因为hello 小于 olleh,所以输出-1

#include <stdio.h>
#include <string.h>
//字符翻转,反转后比较与原字符串是否相等
int main() {
    char c[100]; //翻转前的字符串
    char d[100]={0};//翻转后的字符串
    gets(c);
    int i,j;    //用来控制循环翻转的次数
    for(i=0,j= strlen(c)-1;i< strlen(c);i++,j--){
        d[j]=c[i];
    }
    //puts(d);
    int result = strcmp(c, d);
    if (result < 0)
    {
        printf("%d\n",-1);
    }
    else if (result > 0)
    {
        printf("%d\n", 1);
    }
    else {
        printf("%d\n", 0);
    }
    return 0;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值