【考研复习】李春葆新编C语言习题与解析(错误答案订正)持续更新

新编C语言习题与解析

做习题时发现有些错误答案,写篇博客进行改正记录。不对地方欢迎指正~

第二章

在这里插入图片描述
C. 其中b的表达形式错误,若加上0x1e2b则正确。所以C错误。
D. e后为整数。指数命名规则:e前有数,后有整数。所以D错误。



乘除和求余的优先级一样高。 所以正确的解释如下:
2.5+1*7%2/4=2.5+7%2/4=2.5+1/4=2.5+0=2.5。
之后再统一精度。


第三章

【考研复习】李春葆新编C语言习题与解析(错误答案订正)持续更新_第1张图片
根据后面选项,可知题目为-1.


在这里插入图片描述

【考研复习】李春葆新编C语言习题与解析(错误答案订正)持续更新_第2张图片
A. case后的常量表达式不是整型,且switch后也不是整型;
B. switch(a);后有分号错误;
C. case后的常量表达式不是整型;
D. switch(a+b);后有分号。若无分号,正确答案为D。



少了个S,应该都看得出来。



输出部分偶数之和应该直接输出c,而不是c-11。

#include 
int main()
{
    int a,b,c;
    a=c=0;
    for (int i = 0; i < 10; i+=2)
    {
        a+=i;
        b=i+1;
        c+=b;
    }
    printf("even = %d\n",a);
    printf("odd = %d\n",c);
} // namespace std;


  1. j%2==1当判断条件为1的时候输出
  2. 每个集合之间有逗号(数字之间的逗号可以用个if做一下)
#include
int main(){
    int n,m,i,j,k;
    printf("n=");
    scanf("%d",&n);
    //计算具有子集的个数
    m=1;
    for(i=1;i<=n;i++){
        m=m*2;
    }
    m--;
    for(i=0;i<=m;i++){
        printf("{");
        j=i;
        k=0;
        while(j!=0){
            if(j%2==1) printf("%d",k);
            k++;
            j/=2;
        }
        printf("},");
        if((i+1)%5==0) printf("\n");
    }
    printf("\n");
}

你可能感兴趣的:(考研,c语言,专业课840)