《程序设计基础2021》题目集2 题解一

目录

5-1 表达式求值:

5-2 学而不思则罔

tips:

5-3 学须静也

5-4 一年之计在于春

5-5 

5-6 

5-7

 tips:

5-8 善学者尽其理,善行者究其难

5-9 业精于勤荒于嬉

tips:

5-10 若希望输出墨子的名言

5-11

5-12

5-13

篇尾


5-1 表达式求值:

#include<stdio.h>
int main(){
	int a=1,b=2,c=3;
	printf("%d#%d#",(a, b), a>b?(c=4):(c=5)); 
	return 0;
}

这,直接在自己编译器跑一遍就出来了吧。 ¬_¬

5-2 学而不思则罔

#include <stdio.h>
int main(){
    printf("学而不思则罔,\n");
	printf("思而不学则殆。\n");
    return 0;
}

tips:

全角是中文符号,占用2个字符。

半角则是英文的标点符号,占用1个字符。

(一字节有8位,共256个编码空间)

5-3 学须静也

#include<stdio.h>
int main(){
    printf("夫学须静也,\n"
	       "才须学也。\n"
           "非学无以广才,\n"
           "非志无以成学。\n");
    return 0;
}

5-4 一年之计在于春

#include<stdio.h>
int main(){
    printf("一年之计在于春,\n");
	printf("一日之计在于晨。\n");
    return 0;
}

5-5 

#include<stdio.h>
int main(){
    int n;
	double x;
	scanf("%d-%lf",&n,&x);
	printf("%.1f-%d\n",x,n); 
    return 0;
}

5-6 

#include<stdio.h>
int main(){
    char ch;
	ch=getchar();
	putchar('('); 
	putchar(ch);
	putchar(')');
    return 0;
}

5-7

#include<stdio.h>
int main(){    
    char ch;
    int first=1,k,n; 
    scanf("%d\n",&n);
    for(k=1;k<=n;k++){
		ch=getchar();
        if(first==k){ 
            putchar(ch);     
			continue;
        }else{
			putchar(32);  
            putchar(ch);
        }
    }
    return 0;
}

感觉这里加不加 continue; 都无所谓,我只是不知道要填啥了,我不喜欢这种填空题,要揣摩别人的想法,明明可以更简单,为了考 putchar 和 getchar 两个函数搞得这么麻烦。

我平时也不怎么用这两个函数,还有后面的 puts() 和 gets() 就当补缺吧U_U

好,上面方法中,continue; 作用不大,换一个方法,然后,这个和标答思路差不多

这两个思路区别是,一个变的是 k ,一个变的是 first 

#include<stdio.h>
int main(){    
    char ch;
    int first=1,k,n; 
    scanf("%d\n",&n);
    for(k=1;k<=n;k++){
		ch=getchar();
        if(first==1){ 
            putchar(ch);     
			first++;	   
        }else{
			putchar(32);  
            putchar(ch);
        }
    }
    return 0;
}

 tips:

我之前用 putchar(0); 是错的,在ASCII码中,0对应的是空字符,而不是空格,空格的ASCII码是32,但是在Dev c++ 中,输出的内容是一样的

5-8 善学者尽其理,善行者究其难

#include<stdio.h>
int main(){
    printf("善学者尽其理,善行者究其难。\n");
    return 0;
}

5-9 业精于勤荒于嬉

#include<stdio.h>
int main(){
    puts("业精于勤荒于嬉,");
	puts("行成于思毁于随。");
    return 0;
}

啧,老师,我悟了。 

tips:

相比于 printf() 函数, puts() 函数在输出字符串时会将’\0’自动转换成’\n’进行输出,也就是说,puts() 函数输出完字符串后会自动换行。

5-10 若希望输出墨子的名言

#include<stdio.h>
int main(){
    puts("志不强者智不达,");
	puts("言不信者行不果。");
    return 0;
}

5-11

别急,待我明天想想,今天肝不动了(= ̄ ρ ̄=) ..zzZZ
这道题,我喜欢,细讲一下。:]

 这个明天就很久,

这个考的是位运算,之前发过投票,不需要讲的居多,我就认为大家都懂

#include "stdio.h"
int main(){
    char a=((char)1<<(sizeof(char)*8-1));
    short b=((short)1<<(sizeof(short)*8-1));
    int c=((int)1<<(sizeof(int)*8-1));
    long d=((long)1<<(sizeof(long)*8-1));
    long long e=((long long)1<<(sizeof(long long)*8-1));

    printf("char:[%d,%d,%u]\n",a,-a-1,((a-1)<<1)+1);
    printf("short[%hd,%hd,%hu]\n",b,b-1,((b-1)<<1)+1);
    printf("int:[%d,%d,%u]\n",c,c-1,((c-1)<<1)+1);
    printf("long:[%ld,%ld,%lu]\n",d,d-1,((d-1)<<1)+1);
    printf("long long:[%lld,%lld,%llu]\n",e,e-1,((e-1)<<1)+1);

    return 0;
}

5-12

#include<stdio.h>
int main(){
	int t,b;
	scanf("%d",&t);
	b=((8+t)%24);
    printf("%d",b);
    return 0;
}

这道题,我有两个顾虑,

首先,题目的时间是24小时制还是12小时制。先按二十四小时制来吧。

还有就是,0点和24点写那个,可能是想得太多了O_O

5-13

#include<stdio.h>
int main(){
	int a,b;
	scanf("%d",&a);
	b=a%10+a/10;
	printf("%d",b);
	return 0;
}

篇尾

 又是一个兴奋难眠的夜晚,话说夜猫子算是一种病吗 눈_눈

我觉得这次填空题非常水,基本上全是考输入、输出,Ctrl+C、Ctrl+V一下题干就可以了,应该是每次侧重点不一样吧!

填空这种东西,我也不好说,可能我比较喜欢自己敲,不太喜欢揣摩别人的思路吧!

最后,我只是提供一种思路,如果有更好的方法,欢迎评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值