填空

题号:4752

a为任意整数,能将变量a中的各二进制位均置1的表达式是:

空 1:

a = a | ~a


题号:9064

已知 int a[10] = {11, 2, 31, 4, 5, 6, 7, 8, 9, 10};

最大的元素的下标值是:

空 1:

2


题号:9464

函数体的前面是_____部分,其后面是_____部分。

空 1:

函数首部

空 2:

函数体


题号:10303

float 定义单精度实型变量,分配_____个字节的存储单元。

空 1:

4


题号:7861

int x = 2; z = (x++) - 1;x 的值为_____。

空 1:

3


题号:8138

已知int x=2,y=3,z=4; 则表达式!(x+y)>z的值为:

空 1: 0


题号:9875

把a1、a2定义成单精度实型变量,并赋初值1的说明语句是:

空 1: float a1=1.0, a2=1.0;


题号:10114

执行下列语句的结果是:


a=3;

printf("%d,",++a);

printf("%d",a++);

空 1: 4,4


题号:8721

以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。请填空。


main()

{

    float x, amax, amin;

    scanf("%f", &x);

    amax=x;

    amin=x;

    while(______)

    {

        if(x > amax) amax=x;

        if(______) amin=x;

        scanf("%f", &x);

    }

    printf("\namax=%f\namin=%f\n",amax,amin);

}

空 1: x>=0

空 2: x<amin


题号:5656

若输入3个整数3 2 1,则以下程序的输出结果是:


void sub(int n, int uu[])

{

    int t;

    t = uu[n--];

    t += 3 * uu[n];

    n++;

    if(t >= 10)

    {

        uu[n++] = t / 10;

        uu[n] = t % 10;

    }

    else uu[n] = t;

}

main()

{

    int i, n, aa[10] = {0};

    scanf("%d%d%d", &n, &aa[0], &aa[1]);

    for(i = 1; i < n; i++)

        sub(i, aa);

    for(i = 0; i <= n; i++)

        printf("%d", aa[i]);

    printf("\n");

}

空 1: 2721


题号:9012

已知 float a[3][4]; 则a数组中共有___个元素。

空 1: 12


题号:10772

以下程序运行时输出到屏幕的结果是 __ 。


#include <stdio.h>

#include <string.h>

void main()

{

    int i=0, n=0;

    char s[80], *p;

    strcpy(s, "It is a book.");

    for(p=s; *p!='\0'; p++)

        if(*p==' ')

            i=0;

        else

            if(i==0)

            {

                n++;

                i=1;

            }

    printf("%d", n);

}

空 1: 4


题号:10920

以下程序的功能是:统计一个字符串中数字字符 “0” 到 “9” 各自出现的次数,统计结果保存在数组count中。例如,如果字符串为 “lenterschar4543123564879ffgh”,则统计结果为:1:2 2:1 3:2 4:3 5:2 6:1 7:1 8:1 9:1。试完善程序以达到要求的功能。


#include <stdio.h>

void fun(char *t, int count[])

{

    char *p=t;

    while((空1))

    {

        if(*p>='0' && *p<='9')

            count[空2]++;

        p++;

    }

}

空 1: *p*p!='\0'p[0]!='\0'

空 2: *p - '0'p[0] - '0'


题号:10495

执行下面两个语句,输出的结果是________。


char c1=97, c2=98;

printf("%d,%c", c1, c2);

空 1: 97,b


题号:10534

以下程序的运行结果是______ 。


#include <stdio.h>

main()

{

    int a=123, b=456, o, p, q, x, y, z;

    long vi;

    o = a / 100;

    p = a / 10 % 10;

    q = a % 10;

    x = b % 10;

    y = b / 100;

    z = b % 100 / 10;

    vi = p * 100000L + x * 10000L + q * 1000 + z * 100 + o * 10 + y;

    printf("%ld", vi);

}

空 1: 263514


题号:9172

执行语句 char str[81]="abcdef"; 后,字符串 str 结束标志存储在 str[______] 中。

空 1: 6


题号:9623

a 是 int 型变量,且 a 的初值为 5,则计算表达式 a += 1a 的值为______ 。

空 1: 6


题号:10332

下列程序的运行结果是______ 。


main()

{

    unsigned x1;

    int b = -1;

    x1 = b;

    printf("%u", x1);

}

空 1: 65535


题号:2138

函数 void fun(float *sn, int n) 的功能是根据以下公式计算 S,计算结果通过形参指针 sn 传回,n 通过形参传入,n 的值大于等于 0。请填空。

$$

S = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \dots + (-1)^n \frac{1}{2n+1}

$$


void fun(float *sn, int n)

{

    float s = 0.0, w, f = -1.0;

    int i = 0;

    for (i = 0; i <= n; i++)

    {

        f = ______ * f;

        w = f / (2 * i + 1);

        s += w;

    }

    ______ = s;

}

空 1: -1

空 2: * sn


题号:6721

以下程序的运行结果是______ 。


#include <string.h>

typedef struct student

{

    char name[10];

    long sno;

    float score;

} STU;

  

main()

{

    STU a = {"Zhangsan", 2001, 95},

        b = {"Shangxian", 2002, 90},

        c = {"Anhua", 2003, 95},

        d = a,

        *p = &d;

    if (strcmp(a.name, b.name) > 0)

        d = b;

    if (strcmp(c.name, b.name) > 0)

        d = c;

    printf("%ld %s\n", d.sno, p->name);

}

空 1: 2002 Shangxian


题号:8609

以下程序运行时输出到屏幕显示的结果是(______)。


#include <stdio.h>

int fun(int x)

{

    static int c, y;

    if (c == 0)

        y = 1;

    else

        y = y + x;

    c++;

    return y;

}

void main()

{

    int i;

    for (i = 0; i < 2; i++)

        printf("%d ", fun(2));

}

空 1: 1 3


题号:2713

以下程序段的输出结果是______ 。


printf("%d\n", strlen("s\n\016\0end"));

空 1: 3


题号:9783

复制字符串的库函数是______ (只写函数名即可,如:printf)。

空 1: strcpy


题号:6459

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


main()

{

    char *p[] = {"BOOL", "OPK", "H", "SP"};

    int i;

    for (i = 3; i >= 0; i--, i--)

        printf("%c", *p[i]);

    printf("\n");

}

空 1: SO


题号:8452

以下程序运行后的输出结果是______ 。


#include <stdio.h>

main()

{

    int k = 1, s = 0;

    do

    {

        if ((k % 2) != 0)

            continue;

        s += k;

        k++;

    } while (k > 10);

    printf("s=%d\n", s);

}

空 1: s=0


题号:505

计算机中内存储器的最小单位称为______ ,其中能容纳的数是______ 个。

空 1:

空 2: 0和1


题号:10204

以下程序将同时出现在数组 a 和 b 中的数据复制到数组 c 中。例如,如果数组 a 中的数据是 {8,5,7,1,6,4,9},数组 b 中的数据是 {2,9,3,7,4,5,10},则数组 c 中的结果数据为 {5,7,4,9}。以下程序中,in 函数判断 x 中存储的整数是否在 a 指向的数组前 n 个元素中出现,如果出现则函数返回 1,否则返回 0。请完善程序以达到要求的功能。


#include <stdio.h>

int in(int a[], int n, int x)

{

    int i;

    for (i = 0; i < n; i++)

        if (a[i] == x)  /* 空1 */

            return 1;

    return 0;

}

main()

{

    int a[7] = {8, 5, 7, 1, 6, 4, 9};

    int b[7] = {2, 9, 3, 7, 4, 5, 10};

    int c[7] = {0};

    int i, j = 0;

    for (i = 0; i < 7; i++)

        if (in(b, 7, a[i]))  /* 空2 */

            c[j++] = a[i];

    for (i = 0; i < j; i++)  /* 空3 */

        printf("%d ", c[i]);

    printf("\n");

}

空 1: a[i] == x

空 2: in(b, 7, a[i])

空 3: i < j


题号:7906

设 x 的值为 15,n 的值为 2,则表达式 x %= (n += 3) 运算后 x 的值是______ 。

空 1: 0


题号:8005

int x = 2, y = 2, z = 2; x = (y == z); 则 x 的值为______ 。

空 1: 1


题号:11414

以下 C 程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令中给出。请填空。


#include <stdio.h>

main(int argc, char *argv[])

{

    FILE *f1, *f2;  /* 空1 */

    char ch;

    if (argc < 3)

    {

        printf("命令行参数错!\n");

        exit(0);

    }

    f1 = fopen(argv[1], "r");

    f2 = fopen(argv[2], "w");

    while ((ch = fgetc(f1)) != EOF)

        fputc(ch, f2);

    fclose(f1);

    fclose(f2);

}

空 1: FILE


题号:7535

设 C 语言中,int 类型数据占 2 个字节,则 long 类型数据占______ 个字节,short 类型数据占______ 个字节。

空 1: 4

空 2: 2


题号:9436

已知字符 'a' 的 ASCII 码值为 97,执行下面语句后,输出的结果是______ 。


char c1 = 97, c2 = 98;

printf("%d %c", c1, c2);

空 1: 97 b


题号:9297

已知 int b[] = {1, 2, 4}; 则 b 数组中含有______ 个元素。

空 1: 3


题号:7870

为了避免嵌套条件语句的二义性,C 语言规定 else 与其前面最近的未配对的且在同一复合语句内的______ 配对。

空 1: if


题号:1797

以下程序段,要求通过 scanf 语句给变量赋值,然后输出变量的值。写出运行时给 k 输入 100,给 a 输入 25.81,给 x 输入 1.89234 时的三种可能的输入形式___、___ 、___ 。


int k;

float a;

double x;

scanf("%d%f%lf", &k, &a, &x);

printf("k = %d, a = %f, x = %f\n", k, a, x);

空 1: 100 25.81 1.89234

空 2: 100 25.81 1.89234

空 3: 100 25.81 1.89234


题号:2389

给出以下程序,其功能是将a矩阵和b矩阵合并成c矩阵,最后将c矩阵按格式输出。请填空。


#include <stdio.h>

main()

{ int a[3][4] = {{3, 1, 7, 5},{1, 2, 4, 3},{6, 3, 0, 2}};

  int b[3][4] = {{2, 3, 1, 4},{5, 1, 3, 6},{1, 5, 2, 3}};

  int i, j, c[3][4];

  for(i = 0; i < 3; i++)

    for(j = 0; j < 4; j++)

      c[i][j] = ______ ;

  for(i = 0; i < 3; i++)

    { for(j = 0; j < 4; j++)

        pritnf("%5d", c[i][j]);

      ______;

    }

}

答案:

空1: a[i][j] + b[i][j]

空2: printf("\n")printf("\n");


题号:10559

有以下程序段:


s=1.0;

for(k=1; k <=n; k++)

  s=s + 1.0 /(k *(k + 1));

printf("%f\n", s);

请填空,使下面的程序段的功能完全与之等同。


s=0.0;

d=1.0;

k=0;

do

{ s +=d;

  k++;

  d=1.0 /(k *(k + 1));

}while(______);

答案:

空1: n>=kk<=n


题号:4474

填空:当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是______ 、最小十进制整数是______ ,它们的二进制形式是______ 。

答案:

空1: 65535

空2: -32768

空3: 1111 1111 1111 1111, 1000 0000 0000 0000


题号:7801

填空:当a=1,b=2,c=3时,执行以下程序段后a=______。


if(a>c) b=a; a=c; c=b;

答案:

空1: 3


题号:8100

填空:int x=2; z=x++-1; 则z的值为______ 。

答案:

1


题号:7440

填空:C程序的基本组成单位是______ 。

答案:

空1: 函数


题号:11140

填空:设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 ______。

(假设char型占一个字节,int型占2个字节,double型占4个字节)


struct stud {

  char num[6];

  int s[4];

  double ave;

} a,*p;

答案:

空1: 18


题号:10779

填空:设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 ______。


struct stud {

  char name[10];

  float s[4];

  double ave;

} a,*p;

答案:

空1: 34


题号:8860

填空:已知 int a[10]={3,2,4,1,5,6,7,8,9,10}; 最小的元素的下标值是______ 。

答案:

空1: 3


题号:10783

填空:以下程序求方程的一个近似根。root函数采用二分法计算并返回方程f(x)=0[a,b]内的一个近似根,main函数调用root函数求方程cos(x)=0[0,3.14]内的一个近似根。试完善程序以达到要求的功能。


#include <stdio.h>

#include <math.h>

double root(double a,double b,double(*f)(double))

{

  double x,y;

  if(______)

  {

    printf("区间内可能无根\n");

    return 0;

  }

  do {

    x=______;

    y=f(x);

    if(______>0) a=x;

    else b=x;

  } while(fabs(y)>1e-6);

  return x;

}

main()

{

  double x;

  x=root(0.0,3.14,______);

  printf("方程的一个近似根为%f\n",x);

}

答案:

空1: f(a)*f(b)>0

空2: (a+b)/2

空3: y*f(a)f(x)*f(a)

空4: cos


题号:7579

填空:已知:int i=8,j=6,m,n; m=i+1; n=j+4; 问语句执行后m=, n=

答案:

空1: 9

空2: 10


题号:7996

填空:以下程序运行时输出到屏幕的结果是(______)。


#include <stdio.h>

void fun(int m,int n)

{

  if(m>=n)

    printf("%d",m);

  else

    fun(m+1,n);

  printf("%d",m);

}

void main()

{

  fun(1,2);

}

答案:

空1: 2 2 1


题号:11080

填空:设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 ______。


struct stud {

  char num[6];

  float s[4];

  double ave;

} a,*p;

答案:

空1: 30


题号:11308

填空:若有定义:int a[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是______.

答案:

空1: 8


题号:8040

填空:设int x;x=5>(1+2)运算后,x的值为______.

答案:

空1: 1


题号:10905

填空:若有以下定义和语句:int a[5]={1,3,5,7,9},*p; p=&a[2];++(*p)的值是______ .

答案:

空1: 6


题号:4473

填空:有以下程序段:


s = 1.0;

for(k = 1; k <= n; k++)

  s = s + 1.0 / (k * (k + 1));

printf("%f\n", s);

请填空,使下面的程序段的功能完全与之等同。


s = 0.0;

______;

k = 0;

do

{ s += d;

  ______;

  d = 1.0 / (k * (k + 1));

}while(______);

printf("%f\n", s);

答案:

空1: d = 1.0

空2: k++

空3: k <= n


题号:9865

填空:设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是  ___ 。


union stud {

  short int num;

  char name[8];

  float score[3];

  double ave;

} d,stu[3];

答案:

空1: 12


题号:8311

填空:假设有条件 int x=1,y=2,z=3; 则表达式 z=x<y?x:y 的值是______ .

答案:

空1: 1


题号:8033

填空:当 int a=2,b=3,c=4; 时,执行以下程序段后 b=______.


if(a<b) b=a; a=b; c=a;

答案:

空1: 2


题号:8256

int w=5;w+=-2;则w的值为___ .

答案:

空 1: 3


题号:1851

以下C程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令中给出。请填空。


#include <stdio.h>

main( int argc, char *argv[])

{ FILE *f1, *f2;

char ch;

if(argc <______)

{ printf("命令行参数错!\n");

exit(0);

}

f1 = fopen(argv[1], "r");

f2 = fopen(argv[2], "w");

while( _______ )

fputs( fget(f1), _______ );

_______;

_______;

}

答案:

空 1: 3

空 2: !feof(f1)

空 3: f2

空 4: fclose(f1)

空 5: fclose(f2)


题号:4765

以下程序编译、链接后生成可执行文件cpy.exe。假定磁盘当前目录下有

三个文本文件,其文件名和内容分别为:

文件名 内容

a aaaa#

b bbbb#

c cccc#

当在DOS当前目录下键入:cpy a b c<CR>,则程序输出______ 。


#include <stdio.h>

void fc( FILE *);

main( int argc, char *argv[ ] )

{ FILE *fp;

int i = 1;

while( --argc > 0 )

{ fp = fopen(argv[i++], "r");

fc(fp);

fclose(fp);

}

}

void fc( FILE *ifp)

{ char c;

while( ( c = getchar () ) != '#' )

putchar( c - 32);

}

答案:

空 1: AAAABBBBCCCC


题号:8815

已知int i,s=0;执行以下程序段后的i的值是_______.

for(i=6;i<4;i++){s+=i;}

答案:

空 1: 6


题号:10087

若所用变量均已正确定义,则执行下面程序段后的i的值是_______.

for(i=0 ; i<2 ; i++) printf("YES");

答案:

空 1: 2


题号:3686

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


void fun( )

{ static int a = 0;

a += 2; printf("%d ", a);

}

main()

{ int i;

for( i = 1; i < 4; i++)

fun();

printf("\n" );

}

答案:

空 1: 2 4 6


题号:9603

若x为int型变量,则执行以下两条语句后x的值是 ___ 。


x=7; x +=x -=x + x;

答案:

空 1: -14


题号:11230

若有定义:char ch,*p; 使指针p指向变量ch的赋值语句是 ___ 。

答案:

空 1: p=&ch;p=&ch


题号:9684

C语言中,格式输入操作是由库函数 __  完成的,格式输出操作是由库函数 ___ 完成的。

答案:

空 1: scanf

空 2: printf


题号:8807

以下程序运行时输出到屏幕的结果中,第一行是( ),第二行是( )。


#include <stdio.h>

#define M 3

#define N 4

void fun(int a[M][N])

{ int i, j, p;

for(i=0; i<M; i++)

{ p=0;

for(j=1; j<N; j++)

if(a[i][p]>a[i][j]) p=j;

printf("%d\n", p);

}

}

main()

{ int a[M][N]={{-1,5,7,4},{5,2,4,3},{8,2,3,0}};

fun(a);

}

答案:

空 1: -1

空 2: 2


题号:8020

int x=2,y=3,z=4; 则表达式(x+y)>!z的值为 ___

题号:10074

zint型变量,mlong型变量,则在16位微型机上执行赋值语句z=m=0xFFFF;后,z值为 ______。

答案:

空 1: -1


题号:561

阅读下面程序,程序执行后的输出结果是 ___ 。


#include "stdio.h"

main()

{

  int x,y,z;

  x = 1; y = 2; z = 3;

  if(x>y)

    if(x>z) printf("%d",x);

    else printf("%d",y);

  printf("%d\n",z);

}

答案:

空 1: 3


题号:8091

int x=2,y=3,z=4; 则表达式x+y>z&&y==z的值为 ___ 。

答案:

空 1: 0


题号:9553

以下程序的功能是将x字符串与y字符串连接并输出,请填空。注:程序中不能使用字符串连接函数。


#include <stdio.h>

main()

{ char x[80], y[40];

  int a, h=0;

  printf("Please input x string:");

  gets(x);

  printf("Please input y string:");

  gets(y);

  while(x[h]!='\0')

    ______;

  ______;

  while(y[a]!='\0')

    x[h++]=y[a++];

  ______;

  puts(x);

}

答案:

空 1: h++

空 2: a=0

空 3: x[h]='\0'


题号:10952

以下程序的执行结果是 ___ 。


main()

{

  int a, b, *p=&a, *q=&b;

  a=10;

  b=20;

  *p=b;

  *q=a;

  printf("a=%d, b=%d\n", a, b);

}

答案:

空 1: a=20, b=20


答案:

空 1: 1


题号:7868

int x=2,y=4,z=3时,执行以下程序段后z= __ 。


if(x>y) z=x-y; else z=x+y;

答案:

空 1: 6


题号:8822

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


main()

{ int arr[10], i, k=0;

  for(i=0; i < 10; i++)

    arr[i]=i;

  for(i=0; i < 4; i++)

    k += arr[i] + i;

  printf("%d\n", k);

}

答案:

空 1: 12


题号:8156

int x=72,表达式x=(x>=60)的值为 ___ 。

答案:

空 1: 1


题号:551

请写出以下程序的输出结果 ___ 。


main()

{ int a = 100;

  if( a > 100) printf("%d\n", a > 100);

  else printf("%d\n", a <= 100);

}

答案:

空 1: 1


题号:13562

已知a=13,b=6a&&b的十进制数值为 ___ 。

答案:

空 1: 1


题号:4073

若有以下定义,请写出以下程序段中输出语句执行后的结果。


int i = -200, j =2500;

printf("(1) %d %d", i, j);

printf("(2) i = %d, j = %d\n", i, j);

printf("(3) i = %d:j = %d\n", i, j);

答案:

空 1: -200 2500

空 2: i = -200,j = 2500

空 3: i = -200:j = 2500


题号:3299

若变量已正确定义,以下语句段的输出结果是 ___ 。


x = 0; y = 2; z = 3;

switch(x)

{

  case 0: switch( y == 2 )

          { case 1: printf("*"); break;

            case 2: printf("%"); break;

          }

  case 1: switch( z )

          { case 1: printf("$");

            case 2: printf("*"); break;

            default : printf("#");

          }

}

答案:

空 1: *#


题号:6975

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


#include<stdio.h>

void main()

{

  int x = 2;

  while ( x-- );

  printf("%d\n", x);

}

答案:

空 1: -1


题号:13792

设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是 ___ 。


for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y);

答案:

空 1: 3


题号:13854

若有以下数组a,数组元素:a[0]~a[9],其值为:9 4 12 8 2 10 7 5 1 3。该数组的元素中,数值最大的元素的下标是 ___ 。

答案:

空 1: 2


题号:13906

静态变量的类型说明符是 ___ 。

答案:

空 1: static


题号:13958

若有以下定义和语句:int a[5]={1,3,5,7,9},*p; p=&a[2];++(*p)的值是 ___ 。

答案:

空 1: 6


题号:13989

设有以下结构类型说明和变量定义(假定int型数据占两个字节),则变量a在内存所占字节数是 __ 。


struct stud { char num[6]; int s[4]; double ave; } a,*p;

答案:

空 1: 22


题号:14022

以下C程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令中给出。请填空。


#include <stdio.h>

main( int argc, char *argv[])

{

  FILE *f1, *f2;

  char ch;

  if(argc < 3)

  {

    printf("命令行参数错!\n");

    exit(0);

  }

  f1 = fopen(argv[1], "______");

  f2 = fopen(argv[2], "w");

  while(!feof(f1))

    fputs( fgets(f1), f2);

  fclose(f1); fclose(f2);

}

答案:

空 1: rr+