若有以下程序main(){ char a; a=’H’-’A’+’0’; printf("%c\n",a);}执行后的输出结果是

题目

若有以下程序main(){ char a; a=’H’-’A’+’0’; printf("%c\n",a);}执行后的输出结果是

参考答案和解析
正确答案:7
将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII代码放到存储单元中,由此可以看出,字符数据在内存中是以ASCII码存储的。字符’A’的ASCII码值为65,’H’的ASCII码值为72,’\0’是一个ASCII码值为0的字符,其作用是实现整型和字符型的转换。"%c"是用于输出字符的格式符,所以最后打印输出7。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序: include main( ) { char *p="abcde\0ghjik\0"; printf("%d\n",str

有以下程序: #include<string.h> main( ) { char *p="abcde\0ghjik\0"; printf("%d\n",strlen(p) ); } 程序运行后的输出结果是

A.12

B.15

C.6

D.5


正确答案:D

第2题:

有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

A.12

B.15

C.6

D.5


正确答案:D
解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。

第3题:

若有以下程序main(){ int p=5,a=5; if(p=1!=0) printf("%d\n",p); else printf("%d\n",p+2);}程序执行后的输出结果是


正确答案:√
在本题中,程序首先定义两个整型变量p和a,都被初始化为5,然后执行if语句,该语句的判断条件为p=1!=0,这也是求解这个题目的关键,由于运算符!=的优先级比运算符=高,因此,本判断条件表达式等价于p=(1!=0),很明显,1是不等于0的,返回的是一个真值结果1,因此,此时变量p的值为1,那么条件为真,if语句返回的结果也为真,因此,执行printf("%d\n",p);语句,由于此时变量p的值已经变为1,因此,程序运行后的输出结果为1。

第4题:

有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

有以下程序,程序执行后,输出结果是【 】

include<stdio.h>

void fun(int*A)

{ a[0]=a[1];}

main()

{ int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

for(i=2;i>1=0;i-) fun(&a[i]);

for(i=0;i<10;i++) printf("%d,a[i]);

printf("\n");

}


正确答案:7777654321
7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

第5题:

有以下程序:includemain(){char *p="abcde\Ofghjik\0";printf("%d\n",strlen(p));}程

有以下程序: #include <string.h> main() {char *p="abcde\Ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是( )。

A.12

B.15

C.6

D.5


正确答案:D
解析:本题首先定义了一个字符型指针变量p,并用一个字符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。由于字符串的结束标记为、0,其长度为第1个\0前的字符个数,故长度为5。所以4个选项中D正确。

第6题:

以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

以下程序运行后的输出结果是( )。

include<stdio.h>

main()

{ int x=20;

printf("%d", 0<x<20);

printf("%d\n", 0<x && x<20);

}


正确答案:10
10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

第7题:

以下程序的输出结果是【 】。

main()

{ char *p[]={" BOOL","OPK","H","SP"};

int i;

for(i=3; i>0;i--,i--)printf(" %c",*p[i]);

printf("\n");}


正确答案:SO
SO 解析:考查用指针引用字符串数组中元素的方法。题中需要注意两个问题:一是for循环的修正表达式共执行两次"i--"操作;二是*p[i]是对某个字符的引用。

第8题:

若有如下程序; main() {char *p="china"; p+=1; printf("%d\n",p); } 则程序运行后的输出结果是 ( )

A.china

B.字符h的地址

C.hina

D.字符h的ASCII码值


正确答案:B

第9题:

若有以下程序

main()

{ int p,a=5;

if(p=a!=0)

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

else

pfintf("%d\n",p+2);

}

执行后输出结果是【 】。


正确答案:√
1 解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=o”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。