首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include<iostream.h> void main( ) { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0;
有如下程序 #include<iostream.h> void main( ) { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0;
admin
2013-02-27
30
问题
有如下程序 #include<iostream.h> void main( ) { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p
=ch
; for(i=0;i<2;i++) for(j=0;p
[j]>’\0’;j+=2) s=10*s+p
[j]-’0’;
选项
A、69825
B、63825
C、6385
D、693825
答案
4
解析
该题主要要搞清楚以下几点:
①定义了一个指针数组char*p[2]后,程序中第一个循环for(i=0;i<2;i++)p
=ch
;的作用是使指针数组的P[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式: ch
[j]或p
[j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[l]中的内容为字符串“8254”。③程序中第二个循环中的循环体s=s*10+p
[j]-’0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个o),再将当前P
[j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件
p
[j]>’\0’是指p
[j]中的字符只要不是字符串结束标志’\0’就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p
所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p [0]所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。
转载请注明原文地址:https://kaotiyun.com/show/UpVp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下关于指针的说法错误的是()。
有以下程序段 charstr[4][12]={"aaa","bbb","ccc","ddd"},*p[4]; inti:for(i=0;i<4;i++)p[i]=str[i]; 以下选项中不能正确引用字符串的是()。
下列语句中存在语法错误的是()。
C语言源程序的扩展名是()。
对于一个正常运行的C语言程序,以下叙述中正确的是()。
当变量c的值不为2、4、6时,值为“真”的表达式是()。
有以下程序(strcat函数用于连接两个字符串): #include<stdio.h> #include<string.h> main() { chara[20]="ABCD\0EFG\0",b[]="UK"; strcat(a,b)
以下关于C语言文件系统的叙述中正确的是()。
软件开发的结构化生命周期方法将软件生命周期划分成()。
关键字ASC和DESC分别表示【】的含义。
随机试题
cAMP作为第二信使,它先激活()。
妊娠合并糖尿病筛查的时间是
患儿,男,5岁。发热伴腮腺肿大2天,诊断为“流行性腮腺炎”。该患儿适宜的护理措施是
国际放射学界公认:当照片上的半影模糊值0.2mm时,开始有模糊感,故0.2mm是模糊阈值。某球管在实验时,发现放大倍数为1.15倍时,开始模糊,则该焦点大小可能为
柴油发电机房内应设置储油间,其总储存量不应超过12.0h的需要量,储油间应采用防火墙与发电机间隔开;当必须在防火墙上开门时,应设置能自行关闭的甲级防火门。()
在试运行阶段,可以直接用计算机输出的记账凭证替代手工记账凭证。()
下列哪一种观点是正确的()
对新录用的人民警察实行试用期制度,试用期为()。
我国以木结构为主体的建筑风格,大约形成于:
下列不是InputStream子类的是()。
最新回复
(
0
)