2013自考“高级语言程序设计”习题答案详解(28)
7.设有以下定义和语句,则*(*(p+2)+l)的值为__________.
int a[3][2]={10,20,30,40,50,60},(*p)[2];
p= a;
「解」上述代码定义3行2列的二维数组a ,定义指向两个元素的一维数组指针p,并让p指向二维数组a的首行。则代码*(*(p+2)+l)中的p+2指向二维数组a的第2行a[2],*(p+2)指向a[2][o],*(p+2)+l指向a[2][l],*(*(p+2)+l)是引用a[2][l],其值是60.
8.以下程序的功能是从键盘上输入若干个字符(以回车符作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。请填空。
# include
# include
main()
{ char str[81],*sptr;
int i;
for(i=0;i<80;i++)
{ str=getchar();if(str==‘\n’) break;}
str=____________;
sptr=str;
while(* sptr) putchar(* sptr______________);
}
「解」从键盘输入字符行,通过循环逐一输入字符,当发现输入字符是换行符时,结束循环。为了使输入的字符列变成字符串,必须在输入字符列之后,原存储换行符的元素改为存储字符串的结束标记符,需用代码 str=‘\0’ ,所以在第一框填入代码‘\0’。当要将存于字符数组str中的字符串通过循环逐一输出字符串的字符时,可以用字符指针sptr,让sptr遍历整个字符串,每次循环时,输出sptr所指字符,并让sptr增1,即可用代码*sptr++实现,所以在第二框填入代码++.
5.3 程序分析题
1.阅读下列程序,写出程序的输出结果。
main()
{char *a[6]={“AB”,“CD”,“EF”,“GH”,U“,”KL“};
int i;
for(i=0;i<4;i++) printf(“%s”, a);
printf(“\n”);
}
「解」程序定义了有六个元素的字符指针数组a ,数组a 的各元素指向字符率常量。
程序的for循环遍历了a的前四个元素,用字符率输出格式,输出指针数组a前四个元素所指的字符串。所以程序输出: ABCDEFGH.
2.阅读下列程序,写出程序的主要功能。
main()
{ int i,a[l0],*p=&a[9] ;
for(i=0;i<10;i++) scanf(“%d”,&d);
for(; p>=a; p――) printf(“%d\n”,*p) ;
}
「解」程序定义了有10个元素的整型数组a,另定义指针变量p,并让它指向a的最后一个元素a[9].执行代码的第一个循环是顺序输人数组a的10个元素。第二个循环利用指针p逆序遍历数组a,将数组a的各元素逆序输出。所以程序的功能是输入10个整数,并逆序输出这10个整数。
最新资讯
- 备考资料:2024年自考《英语二》阅读判断模拟试题2024-04-05
- 2024年4月自学考试《马克思主义基本原理概论》模拟题——简答题2024-03-23
- 2024年4月自学考试《马克思主义基本原理概论》模拟题——论述题2024-03-21
- 2021年10月自考《思修》考前2天冲刺卷2021-10-14
- 2021年10月自考《马克思主义基本原理概论》考前2天冲刺卷!2021-10-14
- 2021年10月自考《中国近现代史纲要》模拟题(五)2021-08-01
- 2021年10月自考《中国近现代史纲要》模拟题(四)2021-07-31
- 2021年10月自考《中国近现代史纲要》模拟题(六)2021-07-30
- 2021年10月自考《中国近现代史纲要》模拟题(三)2021-07-30
- 2021年10月自考《中国近现代史纲要》模拟题(二)2021-07-29