嵌入式软件助理工程师

若定义了charch[]={″abc/0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是()A、defB、dC、eD、0

题目

若定义了charch[]={″abc/0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是()

  • A、def
  • B、d
  • C、e
  • D、0
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有定义:int X=0,* P=&x;,则语句printf(”%d\n”,* P.的输出结果是( )。

A.随机值

B.0

C.X的地址

D.P的地址


正确答案:B
题中定义的语句等价于以下语句。故本题定义一个整型变量x和一个指向整型的指针P,并把变量X的地址赋值给P,即P为指向整型变量x的指针,则*P表示P所指向的整型变量x的数值。

第2题:

若有如下定义并赋值: char ch='a', a; 则执行语句"printf("%d",a=ch+2.6);”后的输出结果是( )

A.c

B.d

C.99

D.100


正确答案:C

第3题:

程序includevoidmain(){charch='A';ch=ch+32;printf(“%c%d\n”,ch,ch);}执行后的输出结果是()。

A.aa

B.AA

C.a97

D.A65


正确答案:C

第4题:

下面程序的输出结果是()。includemain(){char a[]={'a','b','c','d','f','g'},*p;p=a;p

下面程序的输出结果是( )。 #include<stdio.h> main() {char a[]={'a','b','c','d','f','g'},*p; p=a; printf("%c\n",*p+4); }

A.a

B.b

C.e

D.f


正确答案:C
解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针p指向的是数组的首地址,因此*p=a,再加4得'e'。

第5题:

若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是( )。

A.随机值

B.0

C.x的地址

D.P的地址


正确答案:A
*P的意思是取其指向地址的内容,P是指向x地址的指针,因此输出*p也就是输出x的内容,即0,故选择B选项。

第6题:

以下程序的输出结果是()。includecharcchar(chareh){if(ch>='A,&&ch<='Z')ch=c

以下程序的输出结果是( )。 #include <stdio.h> charcchar(char eh) { if(ch>='A,&&ch<='Z') ch=ch-'A'+'a'; return ch; } main() { char s[]="ABC+abc=defDEF",*p=s; while(*p) { *p=cchsr(*p); p++; } printf("%s\n",s); }

A.abc+ABC=DEFdef

B.abc+abc=defdef

C.abcABCDEFdef

D.abcabcdefdef


正确答案:B
解析:本题中cchar函数的作用是:如果参数ch是大写字母,则将它转换成小写字母,而对大写字母以外的字符不起作用。

第7题:

有以下程序includemain(){ char*p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf(

有以下程序 #include<stdlib.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)*20);q=p; scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q); } 若从键盘输入:abc def<回车>,则输出结果是

A.def def

B.abc def

C.abc d

D.d d


正确答案:A
解析:本题首先定义两个字符型指针变量p和q,通过malloc()函数申请 20个字符的存储空间,并把它的首地址赋给p,再把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到P指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出为def,def。

第8题:

有以下程序: includemain(){char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; sca

有以下程序: # include<stdio.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; scanf("%s %s",p,q);printf("%s %s\n",p,q); } 若从键盘输入;abc def<回车>,则输出结果是 ______。

A.def def

B.abc def

C.abe d

D.d d


正确答案:A
解析:本题考查%s控制符在scanf函数中的应用。scanf函数中%s控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句scanf("%s%s",p,q)时,从键盘输入abc def回车>后,指针变量p指向字符串"abc\0",q指向字符串"def\0",但是由于p和q指向同一个存储单元,所以存储单元中存放的是"def\0",printf函数的输出结果为def def。

第9题:

有以下程序include main(){ char *p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf

有以下程序 #include <stdlib.h> main() { char *p,*q; p=(char*)malloc(sizeof(char)*20); q=p; scanf("%s %s",p,q); printf("%s %s\n",p,q); } 若从键盘输入:abc def<回车>, 则输出结果是

A.def def

B.abc del

C.abc d

D.d d


正确答案:A
解析:本题考查的知识点是字符型指针变量、malloc()函数的使用。本题首先定义两个字符型指针变量p和q,通过malloc()函数申请20个字符的存储空间,并把它的首地址赋给p,在把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到p指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出的def,clef.所以4个选项中A正确。

第10题:

有如下定义:charstr[3][2]={’a’,’b’,’c’,’\0’,’e’,’f’};则语句:printf("%s",str[0]);的输出结果是()

A.ab

B.abcef

C.abc\0

D.abc


参考答案:D

更多相关问题