怎么查题,怎么复制,在此就不再赘述了,下面看视频!

这绝对是全网最好的题库,尤其是编程题容不得一个符号错误,所以我整理了这个题库,好不好用自己品,细品!

练习1

第1 题

计算机硬件系统由________、运算器、存储器、输入设备、输出设备五部分组成。

【参考答案】 控制器

第2 题

ASCII码(含扩展)可以用一个字节表示,则可以表示的ASCII码值个数为________ 。

【参考答案】 256

第3 题

C语言源程序文件的扩展名通常为________。

【参考答案】 .c / c

第4 题

C程序中,为了使用scanf、printf等输入输出函数,需要包含________头文件。

【参考答案】 stdio.h / <stdio.h>

第5 题

C语言中,表示语句结束的符号是________。

【参考答案】 ;/ 分号

练习2

第1 题

表达式ch = 'B' + '8' - '3'表示的字符是________ 。

【参考答案】 G

第2 题

表达式(double)(10/4*4)的结果是________。

【参考答案】 8.000000 / 8.0

第3 题

若有变量声明:

float x;double y; int a; long b; char c;
并都已赋确定的值。则表达式:x+ y * a / x + b / y + c的计算结果值的类型为________。

【参考答案】double / 双精度浮点型 / 双精度浮点数类型 / 双精度实型

第4 题

若有定义:int i = 1, j= 2, k = 3; k *=i + j;

则k最后的值是________。

【参考答案】 9

第5 题

表达式3 + 4 4 > 5 (4 + 3) - 1的结果是________。

【参考答案】 0

第6 题

表达式x || y + z && y == z(设x的值为3,y的值为4,z的值为5)的结果是________。

【参考答案】 1

第7 题

设:int a=7,b=6,c=5;

表达式a+b>c+c&&b==c||c>b的值为________。

【参考答案】 0

第8 题

条件:判断x为偶数且个位数不为0,其对应的逻辑表达式是________。注意不需要任何空格。

【参考答案】 (x%2==0)&&(x%10!=0) / x%2==0&&x%10!=0 / (x%10!=0)&&(x%2==0) / `x%10!=0&&x%2==0
`

第9 题

条件:x的值等于1与y的值等于2有且只有一个成立,其对应的逻辑表达式是________。注意不需要任何空格。

【参考答案】 (x==1&&y!=2)||(x!=1&&y==2) / (y!=2&&x==1)||(y==2&&x!=1) / (x!=1&&y==2)||(x==1&&y!=2) / (y==2&&x!=1)||(y!=2&&x==1)

第10 题

判断变量a、b是否绝对值相等而符号相反的逻辑表达式为________。注意不需要任何空格。

【参考答案】a==-b / -a==b / a+b==0

第11 题

以下代码的输出是________。

int x=0,y=0, z=0;
z =(x==1) && (y=2);
printf("%d",y);

【参考答案】 0

第12 题

下列数学式对应的正确表达式是________。注意不需要任何空格。

【参考答案】 sqrt(fabs(sin(x)))

第13 题

设int i = 10;表达式30 - i <= i <= 9的值是________。

【参考答案】 1

第14 题

已有定义int x = 3, y = 4, z = 5;则表达式!(x + y) + z - 1 && y + z / 2的值是________。

【参考答案】 1

第15 题

设int a = -3, b = 7, c = -1;则执行(a == 0) && (a = a % b < b / c)后变量a的值是________。

【参考答案】 -3

第16 题

在________处填写适当内容,使得如下程序完成所述功能:输入一个大写字母,然后顺序输出该字母的前驱字母、该字母本身、它的后继字母。

#include <stdio.h>
int main(void) {
    char value;
    printf("请输入一个大写字母: ");
    scanf("%c",________value);
    printf("%c,%c, %c\n", value - 1, value, value + 1);
    return 0;
}

【参考答案】 &

第17 题

执行如下程序,从键盘输入三个整数3、33和333,则程序会输出________。

#include <stdio.h>
int main(void) {
    int x,y,z;
    printf("请输入3个整数: ");
    scanf("%d%d%d", &x, &y, &z);
    printf("%d\n", (x+y+z)/3);
    return 0;
}

【参考答案】 123

第18 题

执行如下程序,从键盘输入两个整数10和 3,则程序输出________。

#include <stdio.h>
int main(void) {
    int a,b;
    int add, sub, mul, div, mod;
    printf("Input two integer number: ");
    scanf("%d%d", &a, &b);
    add = a + b;
    sub = a - b;
    mul = a * b;
    div = a / b;
    mod = a % b;
    printf("%d", add + sub + mul + div + mod);
    return 0;
}

【参考答案】 54

第19 题

执行如下程序,则程序输出________。

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

【参考答案】 3

第20 题

有以下程序:

#include <stdio.h>
int main(void) {
    char a;
    int b;
    a = getchar();
    scanf("%d", &b);
    a = a - 'A' + '0';
    b = b * 2;
    printf("%c%c\n", a, b);
    return 0;
}

若从键盘输入:B33<回车>,程序运行后输出的结果是________。

【参考答案】 1B

练习3

第1 题

结构化程序设计的三种控制结构是顺序结构、选择结构、________。

【参考答案】 循环结构

第2 题

若变量已正确定义,执行

scanf("%d%c%f", &op1, &op, &op2);
输入________ 之后,op1的值为1,op的值为'*',op2的值为2.0。(如果小数点后有零,请以一个0表示)

【参考答案】 1*2 / 1*2.0 / 1*2.

第3 题

设int a = 1234; 执行语句printf("%2d", a); 后的输出结果是________。

【参考答案】1234

第4 题

下面程序段执行后的输出结果是________。

int x = 'f';
printf("%c", 'A' + (x - 'a' + 1));

【参考答案】 G

第5 题

下面程序段执行后的输出结果是________。

int x = 13, y = 5;
printf("%d", x% = (y /= 2));

【参考答案】 1

第6 题

设char c1 = 'A'; 执行语句printf("%%", c1); 的输出结果是________。

【参考答案】 %

第7 题

执行语句printf("abre'hi'y\bou"); 后的输出结果是________。

【参考答案】 re'hi'you

第8 题

设int a = 7, b = 8; 执行语句printf("%d,%d", (a+b,a), (b,a+b)); 后的输出结果是________。

【参考答案】 7,15

第9 题

下面程序段执行后的输出结果是________。

int x = 102, y = 012;
printf("%2d,%2d", x, y);

【参考答案】 102,10

第10 题

下面程序段执行后的输出结果是________。

char a = '1', b = '2';
printf("%c,", b++);
printf("%d", b-a);

【参考答案】 2,2

第11 题

下面程序段执行后的输出结果是________。

float x = -1023.012;
printf("%8.3f,", x);
printf("%10.3f", x);

【参考答案】 -1023.012, -1023.012

第12 题

表达式:!!"2010-01-27"的值为________ 。(以1表示真,0表示假)

【参考答案】 1

第13 题

若变量x已正确定义并赋值,则表达式(-10 < x < 0)的值为________ 。

【参考答案】0

第14 题

若有:int x = 5;

则:!x < 10的值是________。(以1表示真,0表示假)

【参考答案】 1

第15 题

现有:int x= 0, y = 4;

表达式-10 < x && y < 0的结果是________ 。

【参考答案】 0

第16 题

若:int a = 6, b = 0, c = 3;

则表达式:a && b || b - c的结果是________ 。(以1表示真,0表示假)

【参考答案】 1

第17 题

写出表示“ x 的取值在 [-10, 0] 的范围内,结果为真,否则为假”表达式________ 。注意不需要任何空格。

【参考答案】 x>=-10&&x<=0 / x<=0&&x>=-10 / !(x<-10||x>0)

第18 题

语句:

if(4/5 > 3/4) 
    a = 1; 
else 
    a = 0;

运行后,a的值是________ 。

【参考答案】 0

第19 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int a = 10, b = 4, c = 3;
    if(a < b)
        a = b;
    if(a < c)
        a = c ;
    printf("%d,%d,%d\n", a, b, c);
    return 0;
}

【参考答案】 10,4,3

第20 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int x, a = 10, b = 20, ok1 = 5, ok2 = 0;
    if(a < b)
        if(b != 15)
            if(!ok1)
                x = 1;
            else if(ok2)
                x = 10;
            else
                x = -1;
    printf("%d\n", x);
    return 0;
}

【参考答案】 -1

练习4

第1 题

已知:enum {a, b = 5, c, d} e; 枚举常量d的值是________。

【参考答案】 7

第2 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int x = 15;
    while(x > 10 && x < 50) {
        ++x;
        if(x / 3) {
            ++x;
            break;
        }
        else
            continue;
    }
    printf("%d\n", x);
    return 0;
}

【参考答案】 17

第3 题

以下代码段的输出结果是________ 。

int i, x, y;
i = x =y = 0;
do {
    ++i;
    if(i % 2)
        x += i, i++;
    y += i++;
} while(i <= 7);
printf("%d#%d#%d", i, x, y);

【参考答案】 9#1#20

第4 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int i = 2;
    do {
        switch(i % 2) {
            case 0: i--;
            case 1: i--;
        }
        printf("%d", i);
    } while(i >= 0);
    return 0;
}

【参考答案】 0-2

第5 题

在程序中横线上填上恰当的成分,使完成题目要求的功能。注意不需要任何空格。

从键盘输入20个整数,输出它们的和。

#include <stdio.h> 
int main(void) { 
    int a, i, sum = 0; 
    for(i = 1; i <= 20; ++i) { 
        scanf("%d", &a);    
        sum=________; 
    } 
    printf("sum=%d\n", sum); 
    return 0;       
}

【参考答案】 sum+a

第6 题

在程序中横线上填上恰当的成分,使完成题目要求的功能。注意不需要任何空格。

输入10个整数,找出最大数。

#include <stdio.h> 
int main(void) { 
    int k, x, max; 
    scanf("%d", &x); 
    max = x;
    for(k = 2;  k <= 10; ++k) { 
        scanf("%d", &x); 
        if(________)
            max = x; 
    } 
    printf("max=%d\n", max); 
    return 0;      
} 

【参考答案】max<x / x>max

第7 题

在程序中横线上填上恰当的成分,使完成题目要求的功能。注意不需要任何空格。

输出1000以内能被3整除且个位数为6的所有整数。

#include <stdio.h> 
int main(void) { 
    int i, j; 
    for(i = 0; ________; ++i) {   
        j = i * 10 + 6;
        if(j % 3 == 0) 
            printf("%d ", j); 
    } 
    printf("\n"); 
    return 0;      
} 

【参考答案】 i<100 / i<=99

第8 题

如下程序功能是打印100以内可以被11整除的自然数。请在划线处________填写适当内容,完成上述功能。注意不需要任何空格。

#include <stdio.h>
int main(void) {
    int i;
    for(i = 0; i < 100; ________)
        if(i % 11 == 0)
            printf("%d\n", i);
    return 0;
}

i++ / ++i / i=i+1 / i+=1 / i+=11 / i=i+11
【参考答案】

第9 题

以下代码段的输出是________。

int number, right_digit;
number = 15292;
if(number == 0) {
    printf("0");
} 
else
    while(number != 0) {
        right_digit = number % 10;
        printf("%d", right_digit);
        number /= 10;
    }

【参考答案】 29251

第10 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int i, k = 19;
    while(i = k - 1) {
        k -= 3;
        if(k % 5 == 0) {
            i++;
            continue;
        }
        else if(k < 5)
            break;
        i++;
    }
    printf("i=%d,k=%d", i, k);
    return 0;
}

【参考答案】i=6,k=4

第11 题

下面程序运行时从键盘上输入:420↙,写出程序的运行结果。↙表示回车。

#include <stdio.h>
int main(void) {
    char c;
    while((c = getchar()) != '\n')
        switch(c - '0') {
            case 0:
            case 1:
                putchar(c + 2);
            case 2:
                putchar(c + 3);
                break;
            case 3:
                putchar(c + 4);
            default:
                putchar(c + 1);
                break;
        }
    return 0;
}

【参考答案】 5523

第12 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int k = 1, n = 263;
    do {
        k *= n % 10;
        n /= 10;
    } while(n);
    printf("%d", k);
    return 0;
}

【参考答案】 36

第13 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int i = 5;
    do {
        switch(i % 10) {
            case 4:
                i--;
                break;
            case 6:
                i--;
                continue;
        }
        i--;
        i--;
        printf("%d", i);
    } while(i > 0);
    return 0;
}

【参考答案】 31-1

第14 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int x, i;
    for(i = 1; i <= 100; i++) {
        x = i;
        if(++x % 2 == 0)
            if(++x % 3 == 0)
                if(++x % 7 == 0)
                    printf("%d,", x);
    }
    return 0;
}

【参考答案】 28,70,

第15 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int i;
    for(i = 0; i < 5; ++i)
        switch(i % 2) {
            case 0:
                printf("1");
                break;
            case 1:
                printf("0");
                break;
        }
    return 0;
}

【参考答案】 10101

第16 题

下面程序按公式


求和并输出结果。请填空使程序完整、正确。注意不需要任何空格。

#include <stdio.h>
int main(void) {
    int k;
    double s = 0;
    for(k = 1; k <= 100; k++)
        s += k;
    for(k = 1; k <= 50; k++)
        s += ________;
    for(k = 1; k <= 10; k++)
        s += 1.0 / k;
    printf("sum=%f", s);
    return 0;
}

【参考答案】 k*k

第17 题

以下程序的输出结果是________ 。

#include <stdio.h>
int main(void) {
    int i = 0, a = 0;
    while(i < 40) {
        for( ; ; ) {
            if((i % 10) == 0)
                break;
            else
                i--;
        }
        i += 11;
        a += i;
    }
    printf("%d", a);
    return 0;
}

【参考答案】 104

第18 题

下面程序的功能是计算s=1+12+123+1234+12345+……+123456789,请填空下划线处,使程序完整、正确。注意不需要任何空格。

#include <stdio.h>
int main(void) {
    int t = 0, s = 0, i;
    for(i = 1; i <= 9; i++) { 
        t = ________; 
        s = s + t;
    }
    printf("s=%d", s);    
    return 0;
}

【参考答案】10*t+i / i+10*t / t*10+i / i+t*10

第19 题

下面程序的功能是计算两个整数的________。

#include <stdio.h>
int main(void) {
    int m, n, k;
    scanf("%d%d", &m, &n);
    while(n) { 
        k = m;
        m = n;
        n = k % n;
    }
    printf("%d", m);    
    return 0;
}

【参考答案】 最大公约数

第20 题

下面程序的功能是计算1000!的末尾有多少个零。请填空使程序完整、正确。

提示:只要偶数乘5就会产生0,因为1000!中有一半是偶数,所以求1000!的末尾有多少个零,其方法就是统计1000!中有多少5的因子。例如10有1个5的因子,25有2个5的因子,100有2个5的因子等。注意不需要任何空格。

#include <stdio.h>
int main(void) {
    int i, k, m;
    for(k = 0, i = 5; i <= 1000; i += 5) {
        m = i;
        while(________) {
            k++;
            m = m / 5;
        }
    }
    return 0;
}

【参考答案】 m%5==0

练习5

第1 题

在C程序中,如果要使用数学函数,如sinx、lnx等,需要在程序中包含________ 头文件。

【参考答案】 math.h / <math.h>

第2 题

静态整型变量有确定的初始值,其默认初始值为________。

【参考答案】 0

第3 题

利用随机数函数产生1~100(含)范围内随机数的表达式是________。注意不需要任何空格。

【参考答案】 1+rand()%100

第4 题

若有以下函数调用语句:

fun(a + b, (y = 10, y), fun(n, k, d));

则在此函数调用语句中实参的个数是________。

【参考答案】 3 /

第5 题

以下程序的输出结果是________。

#include <stdio.h>
void fun(int x, int y) {
    x = x + y;
    y = x - y;
    x = x - y;
}
int main(void) {
    int x = 2, y = 3;
    fun(x, y);
    printf("%d#%d\n", x, y);
    return 0;
}

【参考答案】 2#3

第6 题

以下程序的输出结果是________。

#include <stdio.h>
int f(int n) {
    if(n == 1)
        return 1;
    else
        return n + f(n - 1);
}
int main(void) {
    printf("%d\n", f(5));
    return 0;
}

【参考答案】 15

第7 题

以下程序的输出结果是________。

#include <stdio.h>
int a, b;
void fun(void) {
    a = 100;
    b = 200;
}
int main(void) {
    int a = 5, b = 7;
    fun();
    printf("%d#%d\n", a, b);
    return 0;
}

【参考答案】 5#7

第8 题

以下程序的输出结果是________。

#include <stdio.h>
int a =3;
int main(void) {
    int s = 0;
    {
        int a = 5;
        s += a++;
    }
    s += a++;
    printf("%d\n", s);
    return 0;
}

【参考答案】 8

第9 题

以下程序的输出结果是________。

#include <stdio.h>
int b =40;
void p() {
    int a = 5;
    static int b = 5;
    ++a;
    ++b;
    printf("%d%d", a, b);
}
int main(void) {
    p();
    p();
    return 0;
}

【参考答案】 6667

第10 题

以下程序的输出结果是________。

#include <stdio.h>
int x = 1;
int f(int x) {
    if(x == 3) {
        int x = 2;
        return x;
    }
    else
        return x;
}
int main(void) {
    int y;
    y = f(3);
    printf("%d#%d\n", x, y);
    return 0;
}

【参考答案】 1#2

第11 题

若有以下程序:

int x;
int f(int y) {
    return 标识符;
}
#include <stdio.h>
int w;
int main(void) {
    int z = 2;
    f(z);
    return 0;
}

则在函数f中,return语句允许出现的标识符是________。

【参考答案】 x / y

第12 题

下列代码段的输出结果是________。

#define DF(a, b)  (a + 2 * b) 
int s = 5;
int k = DF(s + 1, s - 3);
printf("%d", k);

【参考答案】 13

第13 题

根据下面的宏定义,F0(3+4)的输出结果是________。注意不需要任何空格。

#define  F1(var)  printf("var=%d", var)
#define  F0(var)  F1(var * var)

【参考答案】 var=19

第14 题

若有如下宏定义:

#define N 2
#define Y(n) ((N + 1) * n)

则执行语句:z = 2 * (N+ Y(N + 2)); 后,z的值为________。

【参考答案】 20

第15 题

以下程序的输出是________。

#include <stdio.h>
#define M 3
#define N M + 1
#define NN N * N / 2
int main(void) {
    printf(%d\n", NN);
    return 0;
}

【参考答案】 6

第16 题

以下程序的输出是________。

#include <stdio.h>
#define PI 3.14
#define S(x) PI * x * x
int main(void) {
    int a = 2;
    printf("%.1f\n", 6.28 / S(a));
    return 0;
}

【参考答案】 8.0

第17 题

若有以下宏定义和语句:

#define P(x, y) x / y
#define PP(a, b) a * b
int c = P(2 + 3, 2 + 3) + PP(2 + 3, 2 + 3);

则变量c的值为________。

【参考答案】 17

第18 题

以下程序的输出结果是________。

#include <stdio.h>
#define N 10
void f(void);
int main(void) {
    f();
    #ifdef N
        #undef N
    #endif
    return 0;
}
void f(void) {
    #if defined(N)
        printf("N is %d\n", N);
    #else
        printf("N is undefined\n");
    #endif
}

【参考答案】 N is undefined

第19 题

若有以下程序,函数maxCommonFactor利用欧几里德算法(辗转相除法)计算两个正整数的最大公约数。

1    #include <stdio.h>
2    int maxCommonFactor(int a, int b);
3    int main(void) {
4          int a, b, x;
5          printf("Input a,b:");
6          scanf("%d%d",a, b);
7          x =maxCommonFactor(a,b);
8          printf("MaxCommonFactor=%d\n",x);
9    }
10  int maxCommonFactor(int a, int b) {
11         int r;
12         do {
13                 r= a % b;
14                 a= b;
15                 b= r;
16         } while(r != 0);
17         return a;
18  }

程序中存在的错误在第________行。

【参考答案】 6

第20 题

若有以下程序,函数factorial计算阶乘, 程序调用factorial函数求组合数。

求组合数的公式为:

1    #include <stdio.h>
2    double factorial(int number);
3    int main(void) {
4          int n, k;
5          double c;
6          do {
7                  printf("Pleaseinput n, k:");
8                  scanf("%d%d",&n, &k);
9          } while(n <k);        
10         c = factorial(n) /(factorial(k) * factorial(n - k));
11         printf("c=%.0f\n",c);
12  }
13  double factorial(int x) {
14         int i;
15         doubler esult;        
16         for(i = 2; i <= x;++i)
17                 result *= i;
18         return result;
19  }

程序中存在的错误在第________行。

【参考答案】 15

练习6

第1 题

假设有如下代码段:

int *p, *q, u, v;
p = &u;
q = &v;
u = 3;
v = 5;

则表达式*p+*q的结果是________。

【参考答案】8

第2 题

用 typedef 写出类型定义语句,使得STR表示字符指针类型(注意必须出现空格的地方每处只能出现一个空格,不要添加不必要的空格,末尾要有分号)。

【参考答案】 typedef char *STR; / typedef char* STR; / `typedef char * STR;
`

第3 题

以下程序的输出结果是________。

#include <stdio.h>
int main(void) {
    int a = 5, *b, **c;
    c = &b;
    b = &a;
    printf("%d\n", **c);
    return 0;
}

【参考答案】 5

第4 题

以下程序的输出结果是________。

#include <stdio.h>
int main(void) {
    int a, b, k = 4, m = 6, *p1 = &k, *p2 = &m;
    a = p1 == &m;
    b = (*p1) / (*p2) + 7;
    printf("%d#%d\n", a, b);
    return 0;
}

【参考答案】 0#7

第5 题

以下程序的输出结果是________。

#include <stdio.h>
void swap(int *a, int *b) {
    int *t;
    t = a;
    a = b;
    b = t;
}
int main(void) {
    int x = 3, y = 5, *p = &x, *q = &y;
    swap(p, q);
    printf("%d#%d\n", *p, *q);
    return 0;
}

【参考答案】 3#5

第6 题

以下程序的输出结果是________。

#include <stdio.h>
int f(int);
int any_function(int (*pf)(int));
int main(void) {
    printf("%d\n", any_function(f));
    return 0;
}
int f(inti) {
    return i * i + i - 12;
}
int any_function(int (*pf)(int)) {
    int n = 0;
    while(pf(n))
        ++n;
    return n;
}

【参考答案】 3

第7 题

以下代码段的输出结果是________。

int x, y, z, w;
void p(int *y, int x){
    static int w;
    *y++;
    x++;
    w = x+*--y;
    printf("%d#%d#%d#%d#", x, *y, z, w);
}
int main(void) {
    int x, y, z, w;
    x=y=z=w=1;
    do {
        static int x;
        p(&x, y);
        printf("%d#%d#%d#%d", x, y, z, w);
    } while(0);
    return 0;
}

【参考答案】 2#0#0#2#0#1#1#1

第8 题

下面程序运行时,如果从键盘上输入3 5<回车>,程序输出的结果是________。

#include <stdio.h>
int main(void) {
    int a, b, *pa, *pb;
    pa = &a;
    pb = &b;
    scanf("%d%d", &*pa, &*pb);
    *pa = a + b;
    *pb = a + b;
    printf("a=%d,b=%d\n", a, b);
    return 0;
}

【参考答案】 a=8,b=13

最后修改:2020 年 06 月 19 日 01 : 32 PM
如果觉得我的文章对你有用,请随意赞赏