对下述程序,正确的判断是()。main(){int a,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b

题目

对下述程序,正确的判断是( )。 main() { int a,b; scanf("%d",&a); scanf("%d",&b); if(a>b) a+=b; b++; else b+=a; a++; printf("%d,%d",a,b); }

A.有语法错误,不能通过编译

B.若输入数据2和5,则输出3和7

C.若输入数据5和2,则输出7和3

D.若输入数据5和5,则输出6和10

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 include main() { int n,*p=NULL; *p=&n; printf("

有以下程序 #include <stdio.h> main() { int n,*p=NULL; *p=&n; printf("Input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是

A.int n,*p=NULL;

B.*p=&n;

C.scanf("%d",&p)

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


正确答案:A
解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf()函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项C)中多了取地址运算符,选项D)中少了指针运算符。

第2题:

以下程序段完全正确的是( )。

A.int*P;scanf("%d",&p);

B.int*P;scanf("%d",p);

C.int k,*p=&k;scanf("%d",p);

D.int k,*p;*p=&k;scanf("%d¨,p);


正确答案:C
A中P是指针,没有初始化,且取P的地址即类型为指向地址的地址,与输出参数类型不符。B中指针P没有初始化,且P所指变量值不明。D*p是整型变量,&k是整型变量的地址。所以选C。

第3题:

若有说明:int *p, a=1, b 以下正确的程序段是()。

A.p=&b

B.scanf("%d",&b)

scanf("%d", &p) *p=b

C.p=&b

D.p=&b

scanf("%d", *p) *p=a


答案:D

第4题:

改正下列程序中不正确的语句。 main( ) { int a; scanf(“%d”, a); if (a = 1) printf(“One\n”) ; }


正确答案:
printf("%d,",&a); if (a==1)

第5题:

下列程序的输出结果是()。includevoid main(){int b[6]={2,4,6,8,10,12};int*p--b,**q=

下列程序的输出结果是( )。 #include<stdio.h> void main() { int b[6]={2,4,6,8,10,12}; int*p--b,**q=&p; printf("%d",*(p++)); printf("%d",**q); }

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);


正确答案:D
解析: double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf("%1f",p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%1e)。否则,数据不能正确输入。所以选项D)为正确答案。

第6题:

有以下程序:inlucdemain()D)2 3 3{int n,*P=NULL;*p=&n;printf("input n:");scanf("%d

有以下程序: #inlucde<stdio.h> main()D)2 3 3 {int n,*P=NULL; *p=&n; printf("input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。

A.int n,*P=NULL;

B.*P=&n;

C.scanf(“%d",&p)

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


正确答案:A

第7题:

若有说明:int *p,m=5,n;,以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;


正确答案:D
解析:&是求址运算符,"*"是指变量说明符。选项A)、B)应改为scanf("%d",p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

第8题:

有以下程序 #include main() {int n,*p=NULL; *p=&n; printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\\n”,p); }

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。

A.int n,*p=NULL;

B.*p=&n;

C.scanf(“%d”, &p)

D.printf(“%d\n”,p);


正确答案:A

第9题:

若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);


正确答案:D

第10题:

若执行下述程序时从键盘输入3 4,则输出结果是( )。include main( ) { int a,b,s;scanf("%d%d",&a,&b);s=a; if (a

A.186

B.256

C.324

D.400


参考答案B

更多相关问题