C语言第七章习题带答案.doc_第1页
C语言第七章习题带答案.doc_第2页
C语言第七章习题带答案.doc_第3页
C语言第七章习题带答案.doc_第4页
C语言第七章习题带答案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

练习7-1答案选择题1已知:int *p, a;,则语句“p=&a;”中的运算符“&”的含义是( D )。A位与运算B逻辑与运算C取指针内容D取变量地址2已知:int a, x;,则正确的赋值语句是( C )。Aa=(a1+a2)/2;Ba*=*a+1;Ca=(x=1, x+, x+2);Da=good;3已知:int a, *p=&a;,则下列函数调用中错误的是( D )。Ascanf(%d, &a);Bscanf(%d, p);Cprintf(%d, a);Dscanf(%d, *p);4已知:char *p, *q;,选择正确的语句( C )。Ap*=3;Bp/=q;Cp+=3;Dp+=q;5已知:int x;,则下面的说明指针变量pb的语句( C )是正确的。Aint pb=&x;Bint *pb=x;Cint *pb=&x;D*pb=*x;- 10 -练习7-2答案一、选择题1设有说明int (*ptr)M;,其中的标识符ptr是( C )。AM个指向整型变量的指针B指向M个整型变量的函数指针C一个指向具有M列的二维数组的一行的指针D具有M个指针元素的一维数组的指针2已知:double *p6;,它的含义是( C )。Ap是指向double型变量的指针Bp是double型数组Cp是指针数组Dp是数组指针3已知:char s10, *p=s,则在下列语句中,错误的语句是( B )。Ap=s+5;Bs=p+s;Cs2=p4;D*p=s0;4已知:char s100; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。Asi+10B*(s+i)C*(i+s)D*(s+)+i)5已知:char b5, *p=b;,则正确的赋值语句是( C )。Ab=abcd;B*b=abcd;Cp=abcd;D*p=abcd;6下列对字符串的定义中,错误的是( A )。Achar str7=FORTRAN;Bchar str=FORTRAN;Cchar *str=FORTRAN;Dchar str=F, O, R, T, R,A,N,0;7已知:char s20=programming, *ps=s;,则不能引用字母o的表达式是( A )。Aps+2Bs2Cps2Dps+=2,*ps8已知:char *s;,正确的语句是( B )。As=computer;B*s=computer;C*s=computer;D*s=A;9已知:char c8=beijing, *s=c; int i;,则下面的输出语句中,错误的是( B )。Aprintf(%sn, s);Bprintf(%sn, *s);Cfor (i=0; i7; i+)Dfor(i=0; i7; i+) printf(%c, ci); printf(%c, si);10已知:char *aa2=abcd, ABCD;,则以下说法正确的是( D )。Aaa数组元素的值分别是abcd序列和ABCD序列Baa是指针变量,它指向含有两个数组元素的字符型一维数组Caa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址Daa数组的两个元素中各自存放了字符a和A的地址11已知:int a34, *p=&a00; p+=6;,那么*p和( D )的值相同。A*(a+6)B*(&a0+6)C*a1+2Da1212已知:int a=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, *p=a;,则值为3的表达式是( A )。Ap+=2, *(p+)Bp+=2, *+pCp+=3, *p+D*(&a00+6)13已知:int *p;,则变量p是( B )。A指向int的指针B指向指针的指针Cint型变量D以上三种说法均是错误的14已知:int a=1, 2, 3, 4, y, *p=&a1;,则执行语句y=(*-p)+;之后,变量y的值为( A )。A1B2C3D415已知:int b=1, 2, 3, 4, y, *p=b;,则执行语句y=*p+;之后,变量y的值为( A )。A1B2C3D416已知:int x=1, 3, 5, 7, 9, 11, *ptr=x;,则能够正确引用数组元素的表达式是( B )。AxB*(ptr-)Cx6D*(-ptr)17已知:int x=1, 3, 5, 7, 9, 11, *ptr=x;,则不能够正确引用数组元素的表达式是( B )。A*(ptr-)B*(-ptr)C*(ptr+)D*(+ptr)18若有以下语句且0=k6,则正确表示数组元素地址的表达式是( C )。static int x=1, 3, 5, 7, 9, 11, *ptr=x, k;Ax+B&ptrC&ptrkD&(x+1)19已知:int i, x34;,则不能将x11的值赋给变量i的语句是( C )。Ai=*(*(x+1)+1);Bi=x11;Ci=*(*(x+1);Di=*(x1+1);20已知:int a23=2, 4, 6, 8, 10, 12;,正确表示数组元素的地址是( A )。A*(a+1)B*(a1+2)Ca1+3Da0021已知:int*p;,使用如下语句动态申请一个int型的存储单元,应当使用( D )。p=( )malloc(sizeof(int);AintBint *C(* int)D(int *)二、填空题22阅读程序,下面程序的输出结果是( 15 )。#include main()static int a23=1, 2, 3, 4, 5, 6;int m, *ptr;ptr=&a00;m=(*ptr)*(*(ptr+2)*(*(ptr+4);printf(%dn, m);23下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串则是( 0 或 0 )、是( + )。main()char str81, *sptr;int i;for (i=0; i80; i+)stri=getchar();if (stri=n) break;stri= ;sptr=str;while (*sptr) putchar(*sptr );24在下面的程序中若第一个printf语句的输出为ffe2,则其余语句的输出结果分别为:是( fff4 )、是( a )、是( 0 )、是( b )。main()static int a=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *p=a;printf(%xn, p);/*输出结果为ffe2*/printf(%xn, p+9);/*输出 */printf(%xn, *p+9);/*输出 */printf(%xn, *(p+9);/*输出 */printf(%xn, *+p+9);/*输出 */25下面程序的输出结果,是( m )、是( a )、是( w )、是( z )、是( mnopqr )。#include char *pp23=abc, defgh, ijkl, mnopqr, stuvw, xyz;main()printf(%cn, *(pp+1);/*输出 */printf(%cn, *pp0);/*输出 */printf(%cn, (*(*(pp+1)+1)4);/*输出 */printf(%cn, *(pp12+2);/*输出 */printf(%sn, *(pp+1);/*输出 */三、读程序,写结果26下面程序的运行结果是:( 1357 9111315 17192123 )。(注:表示空格。)#include main()int a34=1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23;int *p, i;for (p=a, i=0; p&a00+12; p+, i+)if (i%4=0) printf(n);printf(%4d, *p);27下面程序的运行结果是( 3,3,3 )。#include main()int a=2, *p, *pp;pp=&p; p=&a;a+;printf(%d,%d,%dn, a, *p, *pp); 练习7-3答案一、选择题1main(argc, argv)中形式参数argv的正确说明形式应当为( A ).Achar *argvBchar argvCchar argvDchar *argv2说明语句int (*p)();的含义是( C )。Ap是一个指向一维数组的指针变量Bp是指针变量,指向一个整型数据Cp是一个指向函数的指针,该函数的返回值是一个整型D以上都不对3说明语句int *(*p)();的含义是( D )。Ap是一个指向int型数据的指针Bp是指针变量,它构成了指针数组Cp是一个指向函数的指针,该函数的返回值是一个整型Dp是一个指向函数的指针,该函数的返回值是一个指向整型的指针4已知函数说明语句void *f();,则它的含义是( A )。A函数f的返回值是一个通用型指针B函数f的返回值可以是任意的数据类型C函数f无返回值D指针f指向一个函数,该函数无返回值5函数的功能是交换变量x和y中的值,并且通过正确调用返回交换的结果。能正确执行此功能的函数是( D )。Afuna(int *x, int *y)Bfunb(int x, int y) int *p; int t; *p=x; *x=*y; *y=*p; t=x; x=y; y=t; Cfunc(int *x, int *y)Dfund(int *x, int *y) *x=*y; *y=*x; *x=*x+*y; *y=*x-*y; *x=*x-*y; 6阅读程序,下面程序的输出结果是( B )。假设可执行文件的文件名为:PROG.EXE运行时键入的命令行为:PROG -386 NET3#include main(int argc, char *argv)int i;for (i=0; iargc; i+) printf(%sn, argvi);A-386BPROG.EXECPROG.EXEDPROG NET3 -386 - -386 NET3 386 NET3 NET37下面程序的运行结果是( A )。#include f(int x, int y)return(y-x);main()int a=5, b=6, c=2;int f();int (*g)()=f;c=(*g)(a, b);printf(%dn, c);A1B2C3D前面三个答案均是错误的8若用数组名作为函数调用的实参,传递给形参的是( A )。A数组的首地址B数组第一个元素的值C数组中全部元素的值D数组元素的个数二、填空题9下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,则是( 2 )、是( 2 )。fun(int x, int b)int k=0, r;dor=x% ;bk+=r;x/= ; while(x);10函数expand(char s, char t)在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符,即用n表示换行符,用t表示制表符。则是( j+ )、是( )、是( j+ )、是( )、是( j+ )、是( 0 )。expand(char s, char t)int i, j;for (i=j=0; si!=0; i+)switch (si)case n: t = ; tj+=n; break;case t: t = ; tj+=t; break;default: t =si; break;tj= ;三、读程序,写结果11以下程序的运行结果是( 10 7 5 3 -7 )。main()int a5=5, 10, -7, 3, 7, i, j, t;sort(a);for (i=0; i=4; i+) printf(%d , ai);sort(int a)int i, j, t;for (i=0; i4; i+)for (j=0; j4-i; j+)if (ajaj+1) t=aj; aj=aj+1; aj+1=t; 12以下程序的运行结果是( -1 3 6 8 9 )。main()int a5=9, 6, 8, 3, -1, i, j, t, p;sort(a);for (i=0; i=4; i+) printf(%d , ai);sort(int a)int i, j, t, p;for (j=0; j4; j+)p=j;for (i=j; i=4; i+) if (aiap) p=i;t=ap; ap=aj; aj=t;13以下程序的运行结果是( sum=6 )。main()int a33=1, 3, 5, 7, 9, 11, 13, 15, 17; int sum;sum=func(a);printf(nsum=%dn, sum);func(int a3)int i, j, sum=0;for (i=0; i3; i+)for (j=0; j3; j+)aij=i+j;if (i=j) sum=sum+aij;return(sum);14下面程序的运行结果是:( before swap a=5,b=10 in swap x=10,y=5 after swap a=10,b=5 )。#include main()int a, b;a=5; b=10;printf(before swap a=%d,b=%dn, a, b);swap(&a, &b);printf(after swap a=%d,b=%dn, a, b);swap(int *px, int

温馨提示

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

评论

0/150

提交评论