单选题以下选项中,不能对主函数中变量i和j的值进行交换的程序是( )。A#include stdio.hvoid 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.hvoid 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.hvoid 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.hvoid 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的值进行交换的程序是( )。
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);
}
参考解析
解析:
A项,定义了一个临时指针t,实现两个指针地址的交换,而传入的参数是两个变量i和j的地址,但是函数内部交换的是地址值,并没有交换主函数中变量i与j的值;B项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型变量,能实现i与j值交换;C项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型指针,且已正确开辟内存,能实现i与j值交换;D项与B项相同,能实现i与j值交换。答案选择A选项。
A项,定义了一个临时指针t,实现两个指针地址的交换,而传入的参数是两个变量i和j的地址,但是函数内部交换的是地址值,并没有交换主函数中变量i与j的值;B项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型变量,能实现i与j值交换;C项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型指针,且已正确开辟内存,能实现i与j值交换;D项与B项相同,能实现i与j值交换。答案选择A选项。
相关考题:
若各选项中所用变量已正确定义,函数 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(int a,int b) { …… }D)main(){ float fun(int i,int j);…… x=fun(i,j); …… }float fun(int a,int b){ …… }
若有以下程序includevoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}则以下叙述中不的是()。 A、若只在主函数中对函数f进行说明,则只能在主函数中调用函数fB、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以调用函数fC、对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型
以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。#define N 3#define M 3select(int a[N][M],int *n){int i,j,row=0,colum=0;for(i=0;iN;i++)for(j=0;jM;j++)if(a[i][j]a[row][colum]){row=i;colum=j;}*n=;return();}
请补充函数fun(),该函数的功能是把数组bb中的数按从小到大的排列(数组的值及元素个数从土函数中输入)。例如,输入2 3 5 4 1,结果为1 2 3 4 5。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()吧的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 100void fun(int bb[], int n){int i,j,t;for (i=0;【 】;i++)for(j=0;【 】;j++)if(bb[j]bb[j+1] ){t=bb[j];bb [j]=bb [j+1];bb[j+1]=t;}}main(){int i=0, n=0;int bb[N];clrscr ();printf("\nInput n: \n");scanf ("%d", n);printf ("\nInput data: \n");while (i<n){printf ("bb [%d] =", i);scanf ("%d", bb [i]);i++;}fun (bb, n);printf("\n*** the result ***\n");for (i=0; i<n; i++ )printf ( "%4d'', bb [i]);}
下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0。例如a数组中的值为a=4 5 61 7 93 2 6,则返回主程序后a数组中的值应为0 0 01 0 03 2 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<conio.h>include<stdio.h>include<stdlib.h>define N 5int 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”);}}
请补充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",【 】);}}
已知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);
程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是使数组左下半三角元素中的值加上n。例如:若n的值为3,a数组中的值为a=2 5 41 6 95 3 7则返回主程序后a数组中的值应为5 5 44 9 98 6 10注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数full的花括号中填入所编写的若干语句。试题程序:include <stdio.h>include <conio.h>include <stdlib.h>define N 5fun(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");}don=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");}}
已知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);
下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为a= 0 1 2 7 91 9 7 4 52 3 8 3 14 5 6 8 25 9 1 4 1则返回土程序后s的值应为3.375。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的仟何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <stdio.h>include<conio.h>include<stdlib.h>define N 5double 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);}
下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的S。例如:若a数组中的值为a=0 1 2 7 91 11 21 5 52 21 6 11 19 7 9 10 25 4 1 4 1则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<stdio.h>include<conio.h>include<stdlib.h>define N 5int 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);}
请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>include<stdlib.h>define N 20void 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]);}
下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为a=1 9 72 3 84 5 6则返回主程序后a数组中的值应为0 9 70 0 80 0 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <conio.h>include <stdio.h>include <stdlib.h>define N 5int 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");}}
下面程序应能对两个整型变量的值进行交换。以下正确的说法是 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.以上说法都不对
以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。define M 2define N 4void 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);}
已知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);
下列程序定义了N×N的二维数组,并在主函数中赋值。请编写一个函数fun(),函数的功能是:求数组周边元素的平方和并作为函数值返回给主函数。例如,若数组a中的值为0 1 2 7 91 11 21 5 52 21 6 11 19 7 9 10 25 4 1 4 1则返回主程序后s的值应为310。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。[试题源程序]include <stdio.h>include <conio.h>include <stdlib.h>define N 5int 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);}
已知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);
若各选项中所有变量已正确定义,函数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){ ……}
若下列各选项中所有变量已正确定义,函数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) {......}
试题39以下选项中的叙述错误的是()A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次值B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C程序函数中定义的自动变量,系统不自动赋确定的初值D.C程序函数的形参不可以说明为static型变量
单选题下列()是宏程序中的绝对值函数运算式。A#i=SQRT[#j]B#i=SIN[#j]C#i=TANN[#j]D#i=ABS[#j]