标准C语言_08_01.doc_第1页
标准C语言_08_01.doc_第2页
标准C语言_08_01.doc_第3页
标准C语言_08_01.doc_第4页
标准C语言_08_01.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 选择题1. 以下程序: B#include void main( ) int aa33=2,4,6, i,*p=&aa00; /if是数组指针int (*p) /*p存的是一位数组,就是二维数组的第一行for(i=0;i2;i+) if(i =0) aaii+1=*p+1; /*p=2; aa01=3;else +p; /列地址加一为aa01printf(%d,* p);printf(n);其输出结果是A)23 B)26 C)33 D)362. 若有定义语句:int(*p)M; ,其中的标识符p是 AA)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个行指针,它指向具有M个整型元素的一维数组D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量3. 若有定义:int a34;不能表示数组元素a11的是_D_。A)*(a1+1) B)*(&a11) C)(*(a+1)1) D)*(a+5)/行地址超了4. 若有以下定义和语句:int s45,(*ps)5;ps=s;则对s数组元素的正确引用形式是 C 。A)ps+1 B) *(ps+3) C) ps02 D)* (ps+1)+35. 若有定义:int a23;则对a数组的第i行第j列元素值得正确引用为( A ) A、*(*(a+i)+j) B、(a+i)j C、*(a+i+j) D、*(a+i)+j6. 若有以下定义和语句,则对a数组元素地址的正确引用为( D ) int a23,(*p)3; p=a;A、*(p+2) B、p2 C、p1+1 D、(p+1)+27. 若有定义和语句: int c45, (*cp)5; cp=c;则对c数组元素的引用正确的是( D )A、 cp+1 B、*(cp+3) C、*(cp+1)+3 D、*(*cp+2)8. 以下与int *q5;等价的定义语句是( C )A、int q5; B、int *q; C、int *(q5) D、int (*q)59. 若有定义int a=2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;则下面程序段出是 指针数组*q4/存的是地址 数组指针(*q)4/存的是二维数组中首行地址; for(k=0;k4;k+) qk=&ak*3;/qk存的是ak*3的地址 q4=&a0, &a3, &a6, &a9 printf(“%dn”,q30); *q3= q30 A、8 B、16 C、20 D、输出项不合法,结果不确定10. 下面程序的输出结果是( D )。int a23=1,2,3,4,5,6,*p2,i;/指针数组保存地址for (i=0;i2;+i) *(p+i)=ai;/首行地址for (i=0;i3;i+) printf(%d,*(*(p+1)+i);A)编译出错,无法运行 B)3 4 5 C)2 3 4 D)4 5 611. 若已定义:int a43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p=a0;(*prt)3/数组指针,保存二维的首行*p=a0; /指针数组,保存一维地址则能够正确表示数组元素a12的表达式是( B )A、 *(*prt+1)2) B、*(*(p+5) C、(*prt+1)+2 D、*(*(a+1)+2)12. 如下程序的输出结果是( B )。#include void main( )static int a4=1,2,3,4;int *k,*j;j=a+1; k=&j; / 2的地址 printf(%dn,*(*k+2); *(*k+2) /*k=j=a+1;就是2的地址 /*(*k)+i=a2+i;A)运行错误 B)4 C)3 D)213. 以下程序:#include void main( ) int a5=2,4,6,8,10, *p, *k;p=a; k=&p;printf(%d ,*(p+);printf(%dn,*k);其输出结果是C A)4 4 B)2 2 C)2 4 D)4 614. 下面判断正确的是( C )A、char *a=”china”;等价于char *a;*a=”china”;B、char str10=“china”;等价于char str10;str=”china”; /在栈存储C、char *a=”china”;等价于char *s;s=”china”; /在常量存储区中D、char c4=”abc”,d4=”abc”;等价于char c4=d4=”abc”;15. 以下能正确进行字符串赋值、赋初值的语句组是( C )A、 char s5=a,e,i,o,u;B、 char *s; s=”good!”;C、 char s5=”good!”;D、 char s5; s=”good”;16. 有以下程序 main() char s=159,*p; p=s; printf(%c,*p+);printf(%c,*p+); 程序运行后的输出结果是 ( A )A、15 B、16 C、12 D、59 17. 以下程序段的输出结果是( )char str =”ABCD”,*p=str;printf(“%dn”,*(p+4); /字符串超出的部分默认为0A、 68 B、 0 C、 字符D的地址 D、不确定的值18. 库函数strcpy用以复制字符串。若有以下定义和语句:char str1=”string”,str28,*str3,*str4=”string”;则对库函数strcpy的不正确调用是( D )A、 strcpy(str1,”HELLO1”); B、 strcpy(str2,”HELLO2”);C、 strcpy(str3,”HEELO3”); D、 strcpy(str4,”HELLO4”);/常量19. 以下程序段的输出结果是( )printf(“%dn”,strlen(“ATSn0121”); /看书A、 11 B、 10 C、 9 D、 8 20. 以下程序的输出结果是( A )A、ABCD B、 AC、 DD、 ABCD BCD B C ABCCD C B ABD D A Amain() char s =”ABCD”, *p;for(p=s; ps+4;p+) printf(“%sn”,p); 21. 设有如下定义Char *aa2=“abcd”,”ABCD”; /数组指针,保存地址则以下叙述中正确的是( D )A、aa数组元素中的值分别是字符串”abcd” 和”ABCD”B、aa是指针变量,它指向含有两个数组元素的字符型一维数组C、aa数组的两个元素分别存放的是含有四个字符的一维数组的首地址D、aa数组的两个元素中各自存放了字符a和A的地址22. 以下程序的输出结果是( A )A、6385 B、69825 C、63825 D、693825main()char ch25=“6937”,”8254”,*p2; int i,j,s=0;for(i=0; i2; i+) pi=chi;for(i=0;i0&pij=9; j+=2)s=10*s+pij-0; p00 =6; p02 =3; p10 =8; p12 =5;printf(“%dn”,s);23. 以下程序的输出结果是( C )A、 ABCDEFGHIJKL B、 ABCD C、ABCDEFGHIJKLMNOP D、 AEIMmain() char *alpha6=“ABCD”,”EFGH”,”IJKL”,”MNOP”,”QRST”,”UVWX”;char *p;int i;p=alpha;for(i=0;i4;i+) printf(“%s”,pi);printf(“n”);24. 已有定义:char a=xyz,b=x,y,z;, 以下叙述中正确的是 ( C ) A、数组a和b的长度相同 B、a数组长度小于b数组长度 C、a数组长度大于b数组长度 D、上述说法都不对 二、编程题1. 用二维数组存储10个字符串,用数组的指针依次打印每一个字符串。#include#includevoid main() int i,j; char a1010= jncjdc,ywgu,yuwg,bcyuwc,uyw,rqwtuio,guqwdi,hfuiew,ysfyta,hvbc; char (*p)10=a; for(i=0;i!=10;i+) printf(%sn,p+); / p代表的是a的首地址, 2. 用指针数组存储10个字符串的首地址,用指针的指针依次打印每一个字符串。#include#includeint main() int i,j; char *p10= jncjdc,ywgu,yuwg,bcyuwc,uyw,rqwtuio,guqwdi,hfuiew,ysfyta,hvbc; for(i=0;i10;i+) printf(%sn,*(p+i); 3. 将字符串常量的首地址赋给字符指针变量,然后用下标法对字符串内的数据进行排序,并将排好序的字符串存入到另一字符数组内(问?为什么不能直接在字符常量内排序)#include#includevoid collate(char A,int N) int i; int j; int tmp; for(i=0;iN;i+) for(j=i+1;jAj) tmp = Ai; Ai = Aj; Aj = tmp; printf(%s,A); int main() / char *A=hwbkwweklw; / char *str1=sdghju; /str1 代表一个变量 4字节,存地址 存常量存储区内的地址 char B256=ucgwiunwwl; / /char str110=sdghju; /str1代表10字节内存 在栈里面 sdghju内存在常量存储区 str1是地址值 char B256; B=A; collate(B,strlen(B);4. 主函数使用main(int argc,char *argv),在程序调用时输入参数,打印该参数列表5. 编写函数sort(int n,char *list),实现字符列表内字符串的排序,用主函数调用该函数 /对列表内的首字母排序; /有问题,不知道怎么排序#include#includevoid main() char *a10= jncjdc,ywgu,yuwg,bcyuwc,uyw,rqwtuio,guqwdi,hfuiew,ysfyta,hvbc; / char (*p)10=a; / collate(a,10); /* char str120=beijing,str220=qindao, temp20; strcpy(temp,str1); strcpy(str1,str2); strcpy(str2,temp); /交换一个字符串 printf(%s%s,str1,str2);*/ int i,j; c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论