单选题以下选项中,不能对主函数中变量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选项。
相关考题:
以下程序的输出结果是 【 11 】 。#include stdio.hvoid swap(int *a,int *b){ int *t;t=a; a=b; b=t;}main(){ int i=3,j=5,*p=i,*q=j;swap(p,q); printf("%d %d\n",*p,*q);}
有以下程序 include void f(char p[][10],int n)/*字符串从小到大排序*/ { 有以下程序 #include<string.h> void f(char p[][10],int n)/*字符串从小到大排序*/ { char t[10];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { char p[5][10]={"abc","aabdfg:,"abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是A.2B.4C.6D.3
有以下程序:includevoid f(char p[][10],int n)/* 字符串从小到大排序*/{char t[10]; 有以下程序: #include<string.h> void f(char p[][10],int n) /* 字符串从小到大排序 */ {char t[10];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy([i],t);} } main() {char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果( )。A.2B.4C.6D.3
下面程序应能对两个整型变量的值进行交换。以下正确的说法是main(){int a=10,b=20;printf("(1)a=%d,b=%d\n",a,b);swap(a,b);printf("(2)a=%d,b=%d\n",a,b);}swap(int p,int q){int t;t=p;p=q;q=t;}A.该程序完全正确B.该程序有错,只要将语句swap(a,b);中的参数改为a,b即可C.该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D.以上说法都不对
下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>include <stdlib.h>fun(int n, int *a){ int i,j,p,t;for (j=0;j<n-1;j++){ P=j;/***************found*******************/for(i=j+l;i<n-1;i++)if (a[p]>a[i])/***************found*******************/t=i;if (p!=j){t=a[j];a[j]=a[p];a[p]=t;}}}putarr( iht n,int *z){int i;for (i=l;i<=n;i++,z++){ printf("%4d",*z);if (!(i%10)) printf("\n");} printf ("\n");}main (){int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;clrscr();printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);fun(n,aa);printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);}
下列程序的输出结果是【 】。include void swap(int *a, int *B) { int *t; t=a;a=b;b=t; 下列程序的输出结果是【 】。include <stdio.h>void swap(int *a, int *B){int *t;t=a;a=b;b=t;}main(){int i=3,j=5,*p=i,*q=j;swap(p,q);printf("%d %d\n",*p,*q);}
下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include<stdio.h>define N 20void fun(int a[ ],int n){int i,j,t,p;/*************found*************/for(j=0;j<n-1;j++) ;{p=j;for(i=j;i<n;i++)if(a[i)>a[p])p=i;t=a[p];a[p]=a[i];/*************found**************/a[p]=t;}}main(){int a[N]={11,32,-5,2,14},i,m=5;printf(“排序前的数据:”);for(i=0;i<m;i++)printf(“%d”,a[i]);printf(“\n”);fun(a,m);printf(“排序后的顺序:”);for(i=0;i<m;i++)printf(“%d”,a[i]);printf(“\n”);}
下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include<stdio.h>define N 20void fun(int a[],int n){int i,j,t,p;for (j=0;j<n-1;j++)/*************found**************/{p=jfor(i=j;i<n;i++)if(a[i]<a[p])/*************found**************/p=j;t=a[p]; a[p]=a[j]; a[j]=t;}}main(){int a[N]={9.6,8,3,-1},i,m=5;printf("排序前的数据: ");for(i=0;i<m;i++) printf("%d",a[i]);printf("\n");fun(a,m);printf("排序后的顺序: ");for(i=0;i<m;i++) printf("%d",a[i]);printf("\n");}
以下程序的输出结果是______。include void swap(int *a, int *b){ int *t;}{ int i=3,j 以下程序的输出结果是______。include <stdio.h>void swap(int *a, int *b){ int *t;}{ int i=3,j=5,*p=i,*q=j;swap(p,q); printf("%d %d\n",*p,*q);
有以下程序: include usingnamespacestd; intmain() { intnum[2][3],*p; intt,i,j,k= 有以下程序: #include <iostream> using namespace std; int main() { int num[2][3],*p; int t,i,j,k=10; p=num[0]; for(i=0;i<2;i++) { for(j=0;j<3;j++) { k++; *p=k; for(t=2;t<*p;t++) { if(!(*p%t)) { j--; *p--; break; } *p++; } } cout<<*(p-1)<<end1; return 0; } 程序运行后的输出结果是( )。A.19B.11C.29D.23
下面程序应能对两个整型变量的值进行交换。以下正确的说法是 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.以上说法都不对
有以下程序:includevoid f(char p[][10],int n){char t[10];int i,j;for(i=0;i 有以下程序: #include<string.h> void f(char p[][10],int n) {char t[10];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() {char p[5][10]={"abc","aabdfg","abbd","dedbe","cd"}; f(p,5); printf("%d\n",strlen(p[0]));} 程序运行后的输出结果是( )。A.2B.4C.6D.3
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。includevoid f(char p 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char p[][10],int n) { char t[20];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j]<0) {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,”cd”};int i; f(p,5);printf(“%d\n”,strlen(P[0])); } 程序运行后的输出结果是A.6B.4C.5D.3
有以下程序:include void fun(iht * a,int i,int j){int t;if(i 有以下程序:#include <stdio, h>void fun(iht * a,int i,int j){ int t; if(i < j) { t=a[i];a[i] =a[j] ;a[j]=t; i++;j--; fun(a,i,j);main ( ) int x[ ]: {2,6,1,8} ,i; fun(x,0,3); for( i=0;i <4;i ++ ) printf( "%2d" ,x[i] ); printf(" \n");A.1268B.8621C.8162D.8612
下面程序的运行结果是void swap(int *a,int *b){ int *t; t=a;a=b;b=t;}main(){ int x=3,y=5,*p=x,*q=y; swap(p,q); printf("%d%d\n",*p,*q);}
请完成函数fun(),它的功能是:用选择法对数组中n个元素按从大到小的顺序进行排序。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在下划线上填入所需的内容。include<stdio.h>define N 20void fun(int a[],int n){int i,j,t,p;for(j=0;j<n-1; 1 ){ p=j;for(i=j;i<n;i++)if(a[i] 2 a[p]p=i;t=a[p];a[p]=a[j];a[ 3 ]=t;}}main(){int a[N]={11,32,-5,2,14},i,m=5;for(i=0;i<m;i++)printf("%d\n",a[i});fun(a,m);for(i=0;i<m;i++)printf("%d"a[i]);}
有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo 有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。A.3B.4C.5D.6
有以下程序:include struct STU{char name[10]; int num; int Score;};main(){struct 有以下程序: #include <stdio.h> struct STU { char name[10]; int num; int Score; }; main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}}, *p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf("%d%d\n",s[1].Score,p[1]->Score); } 执行后的输出结果是( )。A.550 550B.680 680C.580 550D.580 680
以下程序中函数f( )的功能是将n个字符串按由大到小的顺序进行排序。 include void f 以下程序中函数f( )的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char p[ ][10],int n) { char t[20]; int i,j; for(i =O;i <n-1 ;i ++ ) for(j =i + 1 ;j < n;j ++ ) if(strcmp(p [i] ,p[j] ) <0) { strcpy(t,p[i]);strcpy(p[i] ,p[j] );strcpy(p[j] ,t); } } main ( ) { char p [ ] [ 10 ] = { "abc","aabdfg","abbd","dcdbe", "cd" }; int i; f(p,5); printf("%d\n",strlen(p[O] ) ); } 程序运行后的输出结果是A.6B.4C.5D.3
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序:includevoid f(char p 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序: #include <string.h> void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++ if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t); } } main() {char p[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);int i; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是( )。A.6B.4C.5D.3
有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in 有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。A.8,2,3,4.,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 include void f(char 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include <string.h> void f(char p[][10], int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+l;j<n;j++) if(strcmp (p[i],p[j])<0) { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { char p[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};int i; f(p,5); printf("%dkn",strlen(p[0])); } 程序运{亍后的输出结果是A.6B.4C.5D.3
有以下程序:include void f(char p[][10],int n)/* 字符串从小到大排序 */{ char t[1 有以下程序: #include <string.h> void f(char p[][10],int n)/* 字符串从小到大排序 */ { char t[10]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } } main() {char p[5][10]={"abc","aabdog","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是( )。A.2B.4C.6D.3
下面程序和运行运行结果是【 】。void swap(int * a,int * b){ int * t;t=a; a=b; b=t;}main( ){ intx=3,y=5,* p=&x,* q=&y;swap(p,q);prinff("%d %d\n", *p, *q);}
以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main 以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=i,*q=j; swap(p,q);printf("%d %d\n",*p,*q); }
单选题有以下程序#include void fun(int *p,int *q){ int t; t = *p; *p = *q; *q = t; *q = *p;}main(){ int a = 0,b = 9; fun(a,b); printf(%d %d,a,b);}程序的输出结果是( )。A0 9B0 0C9 0D9 9
单选题有以下程序:#include int *f(int *s,int *t){ if(*s *t)*s=*t; return s;}main(){ int i=3,j=5,*p=i,*q=j,*r; r=f(p,q); printf("%d,%d,%d,%d,%d",i,j,*p,*q,*r);}程序的运行结果是( )。A5,5,5,5,5B3,5,5,5,5C5,3,3,3,5D3,5,3,5,5