单选题以下选项中,不能对主函数中变量i和j的值进行交换的程序是(  )。A #include <stdio.h>void swap(int *p, int *q){ int *t; *t = *p; *p = *q; *q = *t;}main(){ int i=10, j=20,*a=&i,*b=&j; swap(a,b); printf(i=%d j=%d,i,j);}B #include <stdio.h>void swap(int *p, int *q){ int t; t = *p; *p =

题目
单选题
以下选项中,不能对主函数中变量i和j的值进行交换的程序是(  )。
A



#include <stdio.h>
void swap(int *p, int *q)
{
 int *t;
 *t = *p;
 *p = *q;
 *q = *t;
}
main()
{
 int i=10, j=20,*a=&i,*b=&j;
 swap(a,b);
 printf(i=%d j=%d,i,j);
}

B



#include <stdio.h>
void swap(int *p, int *q)
{
 int t;
 t = *p;
 *p = *q;
 *q = t;
}
main()
{
 int i=10,j=20,*a=&i,*b=&j;
 swap(a,b);
 printf(i=%d j=%d,i,j);
}

C



#include <stdio.h>
#include <stdlib.h>
void swap(int *p, int *q)
{
 int *t;
 t = (int *)malloc(sizeof(int));
 *t = *p;
 *p = *q;
 *q = *t;
 free(t);
}
main()
{
 int i=10,j=20;
 swap(&i,&j);
 printf(i=%d j=%d,i,j);
}

D



#include <stdio.h>
void swap( int *p, int *q)
{
 int t;
 t = *p;
 *p = *q;
 *q = t;
}
main()
{
 int i=10,j=20,*x=&i,*y=&j;
 swap(x,y);
 printf(i=%d j=%d,i,j);
}


相似考题
更多“以下选项中,不能对主函数中变量i和j的值进行交换的程序是(  )。”相关问题
  • 第1题:

    下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0。例如a数组中的值为

    a=4 5 6

    1 7 9

    3 2 6,

    则返回主程序后a数组中的值应为

    0 0 0

    1 0 0

    3 2 0

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    include<stdlib.h>

    define N 5

    int fun(int a[ ][N])

    {

    }

    main()

    {

    int a[N][N],i,j;

    clrscr( );

    printf("*****The array*****\n");

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

    /*产生—个随机的5*5矩阵*/

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

    {a[i][j]=rand( )%10;

    printf (“%4d”,a[i][j]);

    }

    printf(“\n”);

    }

    fun(a);

    printf(“THE RESULT\n”);

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

    { for(j=0;i<N;j++)

    printf(“%4d”,a[i][j]);

    printf(“\n”);

    }

    }


    正确答案:int fun (int a[][N)) { int ij; for(i=0;iN;i++) for(j=i;jN;j++) a[i][j]=0; /*将数组右上半三角元素中的值全部置成0*/ }
    int fun (int a[][N)) { int i,j; for(i=0;iN;i++) for(j=i;jN;j++) a[i][j]=0; /*将数组右上半三角元素中的值全部置成0*/ } 解析:本题旨在考查控制数组中右上半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。

  • 第2题:

    已知i、j、k为整型变量,若从键盘输入1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的

    已知i、j、k为整型变量,若从键盘输入1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( )。

    A.scanf("%2d%2d%2d",&i,&j,&k);

    B.scanf("%d %d %d",&i,&j,&k);

    C.scanf("%d,%d,%d",&i,&j,&k);

    D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);


    正确答案:C
    解析:使用scanf()函数时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,意思是输入一个长度为6的数字串,scanf()将每两个为一组读入3个变量中,不满足键盘输入1,2,3的条件,故A错误;选项B中,输入格式描述符为“%d%d%d”,输入要用空格隔开,故错误;选项D中,输入格式描述符为“i=%d,j=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3,故选项D错误。4个选项中C正确。

  • 第3题:

    已知i、j、k为iht型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确

    已知i、j、k为iht型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 ______。

    A.scanf("%d %d %d",&i,&j,&k);

    B.scanf("%d,%d,&d",&i,&i,&k);

    C.scanf("%2d %2d %2d",&i,&j,&k);

    D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);


    正确答案:A
    解析:scanf函数中格式控制后面应为变量地址列表,因此选项C和选项D都错误,选项B中“&d”是指针变量d的地址,与题目不符。由题目可知指针变量d中存放的是变量c的地址,所以正确答案为选项A。

  • 第4题:

    下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的S。例如:若a数组中的值为

    a=0 1 2 7 9

    1 11 21 5 5

    2 21 6 11 1

    9 7 9 10 2

    5 4 1 4 1

    则返回主程序后s的值应为310。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 5

    int fun (int w[][N])

    {

    }

    main()

    {

    int a[N)[N]={0,1,2,7,9,1,1l,2l,5,5,2, 21,6,11,1,9,7,9,10,2,5,4,1,4,1};

    int i,j;

    int S;

    clrscr( );

    printf("*****The array***+*\n");

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

    {for(j=0;j<N;i++)

    {printf(“%4d”,a[i][j]);}

    printf("\n");

    }

    s=fun(a);

    printf(“*****THE RESULT*****\n”);

    printf("The sum is:%d\n",s);

    }


    正确答案:int fun(int w[])[N]) { int ijk=0; int s=0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1则它一定是周边元素*/ {s=s+w[i][j]*w[i][j]; /*将周边元素求平方和*/ } return s; /+返回周边元素的平方和*/ }
    int fun(int w[])[N]) { int i,j,k=0; int s=0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ {s=s+w[i][j]*w[i][j]; /*将周边元素求平方和*/ } return s; /+返回周边元素的平方和*/ } 解析:该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。

  • 第5题:

    下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为

    a=1 9 7

    2 3 8

    4 5 6

    则返回主程序后a数组中的值应为

    0 9 7

    0 0 8

    0 0 0

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <stdlib.h>

    define N 5

    int fun (int a[] [N])

    {

    }

    main()

    {

    int a[N] [N],i,j;

    clrscr();

    printf("*****The array*****\n");

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

    /*产生—个随机的5*5矩阵*/

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

    {a[i][j]=rand()%10;

    printf("%4d", a[i][j]);

    }

    printf("\n");

    }

    fun (a);

    printf("THE RESULT\n");

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

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

    printf("%4d",a[i][j));

    printf("\n");

    }

    }


    正确答案:int fun (int a[][N]) { int ij; for(i=0;iN;i++) for(j=0;j=i;j++) a[i][j]=0; /*将数组左下半三角元素中的值全部置成0*/ }
    int fun (int a[][N]) { int i,j; for(i=0;iN;i++) for(j=0;j=i;j++) a[i][j]=0; /*将数组左下半三角元素中的值全部置成0*/ } 解析:本题旨在考查控制数组中左下半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。

  • 第6题:

    以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

    define M 2

    define N 4

    void SumColumMin(int a[M][N],int *sum)

    { int i,j,k,s=0;

    for(i=0;i〈N;i++)

    { k=0;

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

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

    s+=【 】;

    }

    【 】 =s;

    }

    main( )

    { int x[M][N]={3,2,5,1,4,1,8,3},s;

    SumColumMin(【 】);

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

    }


    正确答案:a[k][i] *sum x[M][N]&s
    a[k][i] *sum x[M][N],&s 解析:本题中if(a[k][I] >a [j] [I]) k=j;把一列中值较小的一个元素的索引存储到k中,所以[18]填[k] [i],[19]填返回值,右值为整型,所以应该填。sum,SnmColumMin(  )函数第一个参数为数组a[M][N],第二个参数为一个整型指针,所以[20]填x[M][N],&s。

  • 第7题:

    下列程序定义了N×N的二维数组,并在主函数中赋值。请编写一个函数fun(),函数的功能是:求数组周边元素的平方和并作为函数值返回给主函数。例如,若数组a中的值为

    0 1 2 7 9

    1 11 21 5 5

    2 21 6 11 1

    9 7 9 10 2

    5 4 1 4 1

    则返回主程序后s的值应为310。

    [注意] 部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    [试题源程序]

    include <stdio.h>

    include <conio.h>

    include <stdlib.h>

    define N 5

    int fun(int w[][N])

    {

    }

    main()

    {

    int a[N][N]={0, 1, 2, 7, 9, 1, 11, 21, 5, 5, 2, 21, 6, 11, 1, 9, 7, 9, 10, 2, 5, 4, 1, 4, 1};

    int i, j;

    int s;

    clrscr()

    printf("*****The array*****\n");

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

    {

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

    {

    printf("%4d", a[i][j]);

    }

    printf("\n');

    }

    s=fun(a);

    printf("*****THE RESULT*****\n");

    printf("The sum is: %d\n", s);

    }


    正确答案:
    int fun(int w[][N]) { int i, j, k=0; int s=0; for(i=0; iN; i++) for(j=0; jN; j++) if(i==0 || i==N-i || j==0 || j==N-1) { s=s+w[i][j]*w[i][j]; } return s; } 解析:该题采用逐一判断的方式,周边元素的下标一定有0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。

  • 第8题:

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确的输入语句是

    A.scanf(“%2d%2d%2d”,&i,&j,&k);

    B.scanf(“%d %d %d”,&i,&j,&k);

    C.scanf(“%d,%d,%d”,&i,&j,&k);

    D.scanf(“i=%d, j=%d,k=%d”,&i,&j,&k);


    正确答案:C
    解析:本题考查的知识点是输入函数scanf()基本用法。使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,输入要用空格隔开,不满足键盘输入1,2,3的条件,故A错误:选项B中,输入格式描述符为“%d%d%d”,输入也要用空格隔开,故错误:选项D中,输入格式描述符为“i=%d,i=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3,故选项D错误。4个选项中C正确。

  • 第9题:

    若下列各选项中所有变量已正确定义,函数fun通过return语句返回一个函数值,以下选项中错误的程序是( )。

    A.main( ) {...... x = fun(2,10);......} float fun(int a, int b){......}

    B.float fun( int a,int b){......} main( ) {......x = fun(i,j);......}

    C.float fun(int, int); main( ) {......x=fun(2,10);......} float fun(iht a, int b){......}

    D.main( ) { float fun(int i, int j); ...... x = fun(i,j);......} float fun(int a,int b) {......}


    正确答案:A
    解析:C语言程序从main函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用。若被调用函数定义在主调函数之后,则必须先声明后调用。在选项A)中,先执行main函数,并调用了fun函数,而fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以错误。

  • 第10题:

    下列选项中,表示求平方根的运算函数是()。

    • A、#i=ATAN[#j]
    • B、#i=SQRT[#j]
    • C、#i=ABS[#j]
    • D、#i=EXP[#j]

    正确答案:B

  • 第11题:

    下列()是宏程序中的绝对值函数运算式。

    • A、#i=SQRT[#j]
    • B、#i=SIN[#j]
    • C、#i=TANN[#j]
    • D、#i=ABS[#j]

    正确答案:D

  • 第12题:

    单选题
    下列()是宏程序中的绝对值函数运算式。
    A

    #i=SQRT[#j]

    B

    #i=SIN[#j]

    C

    #i=TANN[#j]

    D

    #i=ABS[#j]


    正确答案: D
    解析: 暂无解析

  • 第13题:

    请补充main函数,该函数的功能是:输出一个3×3的矩阵,要求必须使用行指针表示输出变量。

    注意;部分源程序给出如下.

    请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<s tdio. h>

    main()

    {

    static int array[3] [3]={{9,8,7}, {6,5,

    4}, (3,2,1}};

    iht (*p) [3],j,i;

    p=【 】

    clrscr ();

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

    {

    printf (" \n\n" );

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

    printf("%4d",【 】);

    }

    }


    正确答案:array *(*(p+i)+j)
    array *(*(p+i)+j) 解析:第一空:p是一个指针,指向大小为3的一维数组。首先要使指针p指向数组array的首地址,而数组名array即表示数组slray的首地址,所以将array赋给p。第二空:*(*(p+i+j)表示数组的第i行第j列元素,即array[i][j]。

  • 第14题:

    程序定义了N×N的二维数组,并在主函数中自动赋值。

    请编写函数fun(int a[][N],int n),该函数的功能是使数组左下半三角元素中的值加上n。

    例如:若n的值为3,a数组中的值为

    a=2 5 4

    1 6 9

    5 3 7

    则返回主程序后a数组中的值应为

    5 5 4

    4 9 9

    8 6 10

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数full的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    include <conio.h>

    include <stdlib.h>

    define N 5

    fun(int a[][N],int n)

    {

    }

    main()

    {

    int a[N][N],n,i,j;

    clrscr();

    printf("***** The array *****\n");

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

    /*产生—个随机5*5矩阵*/

    {

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

    {

    a[i][j]=rand()%10;

    printf("%4d",a[i][j]);

    }

    printf("\n");

    }

    do

    n=rand()%10;

    /*产生一个小于5的随机数n*/

    while(n>=5);

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

    fun(a,n);

    printf("*****THE RESULT*****\n");

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

    {

    for(j=0;j<N;i++)

    printf("%4d",a[i][j]);

    printf("\n");

    }

    }


    正确答案:fun (int a[ ][N] int n) { int ij; for(i=0; iN; i++) for(j=0; ji; j++) a[i][j]=a[i][j]+n /*使数组左下半三角元素中的值加上n*/ }
    fun (int a[ ][N], int n) { int i,j; for(i=0; iN; i++) for(j=0; ji; j++) a[i][j]=a[i][j]+n /*使数组左下半三角元素中的值加上n*/ } 解析:首先从数组中找出要被加上n的那部分元素,找的过程其实就是找出将被挑出的那部分元素在原数组中的分布规律的过程。通过观察得出,要被处理的那部分元素的下标值的范围是每行中从第一个元素开始,直到列数等于该行行数时为止。找到这个规律后,依次从数组中取得合乎要求的元素,然后再加上n。

  • 第15题:

    下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为

    a= 0 1 2 7 9

    1 9 7 4 5

    2 3 8 3 1

    4 5 6 8 2

    5 9 1 4 1

    则返回土程序后s的值应为3.375。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的仟何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 5

    double fun (int w[] [N])

    {

    }

    main()

    {

    int a[N] [N]={0,1,2,7,9,1,9,7,4,5,2,

    3,8,3,1,4,5,6,8,2,5,9,1,4,1};

    int i, j;

    double s;

    clrscr();

    printf("*****The array*****\n ");

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

    { for (j=0;j<N;i++)

    {printf("%4d ",a[i] [j]);}

    printf("\n ");

    }

    s=fun(a);

    printf("*****THE RESULT*****\n ");

    printf("The sum is : %lf\n ",s);

    }


    正确答案:double fun (int w[][N]) { int ijk=0; double av=0.0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1则它一定是周边元素*/ {av=av+w[i][j]; /*将周边元素求和*/ k++; } return av/k; /*求周边元素的平均值*/ }
    double fun (int w[][N]) { int i,j,k=0; double av=0.0; for(i=0;iN;i++) for(j=0;jN;j++) if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ {av=av+w[i][j]; /*将周边元素求和*/ k++; } return av/k; /*求周边元素的平均值*/ } 解析:该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。计算周边元素个数的方式是当给av加一个值时,则k加1。k也可用2*N+2*N-4求得。

  • 第16题:

    请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 20

    void fun(【 】)

    {

    int i j;

    int t;

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

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

    if(【 】)

    b[i]=a[i][j];

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

    {

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

    if(【 】)

    {

    t=b[i];

    b[i]=b[j];

    b[j]=t;

    }

    }

    }

    main()

    {

    int a[N][N];

    int b[N];

    int n;

    int i,j;

    clrscr();

    printf("*****Input the dimension of array N*****\n");

    scanf("%d",&n);

    printf("*****The array *****\n");

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

    {

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

    {

    a[i][j]=rand()%20;

    while(a[i][j]==0)

    a[i][j]=rand()%30;

    printf("%4d",a[i][j]);

    }

    printf(”\n\n”);

    }

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

    b[i]=0;

    fun(a,b,n);

    printf("***** THE RESULT *****\n");

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

    printf(“%d”,b[i]);

    }


    正确答案:int a[][N]int b[]int n b[i]a[i][j] b[i]b[j]
    int a[][N],int b[],int n b[i]a[i][j] b[i]b[j] 解析:第一空:根据主函数main()调用函数fun()的格式,可以知道函数fun()有3个参数,第一个参数是N×N整型二维数组,第二个参数是整型—维数组,第三个参数是整型变量。第二空:数组元素b[i]保存第i行的最大值,通过循环将第i行的各元素与b[i]进行比较,如果大于b[i],则将这个数赋给b[i].第三空:通过for循环嵌套,将数组b中的数按从小到大的顺序排列,依次将各元素与所有元素进行比较,如果有一个元素比当前元素大,就借助第三个变量交换这两个元素,最终使第一个元素保存数组中最小的数,最后一个元素保存数组中最大的数。

  • 第17题:

    下面程序应能对两个整型变量的值进行交换。以下正确的说法是 include void swap

    下面程序应能对两个整型变量的值进行交换。以下正确的说法是 #include<iostream.h> void swap(int p,int q) { int t; t=p; p=q; q=t;} void main( ) { int a=10,b=20; cout<<a<<" "<<b; swap(&a,&b); cout<<a<<" "<<b;}

    A.该程序完全正确

    B.该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C.该程序有错,只要将swap( )函数中的形参p和q以及t均定义为指针(执行语句不变)即可

    D.以上说法都不对


    正确答案:D
    解析:本题应该把swap()函数改成这样:swap(int*P,int*q){intt;t=*p;*p=*q;*q=t;}执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后将*p(a的值)的值传递给t,将*q(b的值)传递给*p,将t的值传递给*q,从而将a值和b值互换。

  • 第18题:

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

    A.scanf(“%2d%2d%2d”,&i,&j,&k);

    B.scanf(“%d%d%d”,&i,&j,&k);

    C.scant(“%d,%d,%d”,&i,&j,&k);

    D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);


    正确答案:C
    解析:输入函数scanf使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,输入要用空格隔开,不满足键盘输入1,2,3的条件;选项B中,输入格式描述符为“%d %。 d %d”,输入也要用空格隔开;选项D中,输入格式描述符为“i=%d,j=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3。

  • 第19题:

    以下四个程序中不能对两个整型值进行交换的是( )。A.B.C.D.A.AB.BC.C

    以下四个程序中不能对两个整型值进行交换的是( )。A.

    B.

    C.

    D.

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    main()

  • 第20题:

    若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是______。

    A.mam() {…… x=fun(2,10); ……} fioat fun(int a,int b) { ……}

    B.float fun (int a,int b) {……} main() {…… x=fun(i,j); ……}

    C.float fun (int int); main() {…… x=fun(2,10); ……} float fun (int a,int b){ ……}

    D.main() { float fun (int i, int j); …… x=fun(i,j); ……} float fun (int a,int b){ ……}


    正确答案:A
    解析:C语言程序是由—个主函数和若干个其他函数组成的,主函数的函数名为:main(),main()函数在程序中的位置是任意的。C语言程序是从main()函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用,若被调函数定义在主调函数之后,则必须先声明后调用。在选项A中,先执行main()函数,此时对fun()函数进行调用,由于fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以选项A的程序错误。

  • 第21题:

    试题39

    以下选项中的叙述错误的是()

    A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次值

    B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

    C.C程序函数中定义的自动变量,系统不自动赋确定的初值

    D.C程序函数的形参不可以说明为static型变量


    正确答案:A
    试题39分析
    静态变量在调用的时候会保留原来的值。
    试题39答案
    A

  • 第22题:

    下列()是宏程序中的正切函数运算式。

    • A、#i=SQRT[#j]
    • B、#i=SIN[#j]
    • C、#i=TAN[#j]
    • D、#i=ABS[#j]

    正确答案:C

  • 第23题:

    下列()是宏程序中的平方根函数运算式。

    • A、#i=SQRT[#j]
    • B、#i=SIN[#j]
    • C、#i=TANN[#j]
    • D、#i=ABS[#j]

    正确答案:A