ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:19.81KB ,
资源ID:30248485      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30248485.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第8章补充作业.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第8章补充作业.docx

1、第8章补充作业 第8章补充作业 1、选择题 序号: 1)变量的指针,其含义是指该变量的 。 姓名: A值 B地址 C名 D一个标志 学号: 2)若有语句int *point, a=4; 和point=&a; 下面均代表地址的一组选项是 。Aa, point, *&a B&*a, &a, *pointC*&point, *point, &a D&a, &*point, point3)若已定义a为int型变量,则 是对指针p的正确说明和初始化。Aint *p=a; Bint *p=*a; Cint p=&a; Dint *p=&a;4)下面判断正确的是 。Achar *a=“china”; 等价于

2、char *a; *a=“china”;Bchar str10=“china”; 等价于char str10; str=“china”;Cchar *s=“china”; 等价于char *s; s=“china”;Dchar c4=“abc”,d4=“abc”; 等价于char c4=d4=“abc”;5)以下合法的定义是 。Astatic str =“china”; Bchar *p=“china”;Cchar *p; strcpy(p,”china”); Dchar str13; str =“china”;6)若有定义:int a46;则能正确表示a数组中任一元素aij(此处0i4,0j

3、6)地址的表达式是 。A&a00+6*i+j B&a00+4*j+iC&a00+4*i+j D&a00+6*j+i7)若有以下定义,则数值不为3的表达式是 。int x10=0,1,2,3,4,5,6,7,8,9,*p1;Ax3 Bp1=x+3, *p1+Cp1=x+2, *(p1+) Dp1=x+2, *+p18)若有说明语句:int x34;则以下关于x,*x,x0,&x00的正确描述是 。Ax,*x,x0,&x00均表示元素x00的地址B只有x,x0,&x00表示的是元素x00的地址C只有x0和&x00表示的是元素x00的地址D只有&x00表示的是元素x00的地址9)若有以下说明语句:s

4、tatic int i, a23=1, 3, 5, 7, 9,11;int m, n;且0m1,0n2,则 是对数组元素的正确引用。Aam+n B*(a+5) C*(*(a+m)+3) D*(*(a+m)+n)10)以下程序运行的结果是 。#include#includemain() char *p1,*p2,str50=“abc”; p1=“abc”; p2=“abc”; strcpy(str+1, strcat(p1,p2); printf(“%sn”,str); Aabcabcabc Bbcabcabc Caabcabc Dcabcabc11)下面程序的运行结果是 C 。#include

5、main() int b,a=28; char s10,*p; p=s; do b=a%16; if(b0); *p=0; puts(s); A10 B2 C51 D012)下面程序的运行结果是 A 。#includemain() static char a =“Language”,b =“programe”; char *p1,*p2; int k; p1=a; p2=b; for(k=0; k=7; k+) if(*(p1+k)= =*(p2+k) printf(“%c”,*(p1+k); Agae Bga CLanguage D有语法错误13)以下程序中调用scanf函数给变量a输入数值

6、的方法是错误,其错误原因是 。main() int *p,*q,a,b; p=&a; printf(“input a:”); scanf(“%d”,*p); A*p表示的是指针变量p的地址B*p表示的是变量a的值,而不是变量a的地址C*p表示的是指针变量p的值D*p只能用来说明p是一个指针变量14)以下程序运行的结果是 C 。#includemain() int a =2, 4, 6, 8, 10, y=1, x, *p; p=&a1; for(x=0; x3; x+) y+=*(p+x); printf(“%dn”, y); A17 B18 C19 D2015)有如下程序:#includem

7、ain() char ch25=“6937”, “8254”, *p2; int i, j, s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for(j=0;pij!=0; j+=2) s=10*s+pij-0; printf(“%dn”, s); 该程序的输出结果是 C 。A69825 B63825 C6385 D69382516)已有定义: int k=2; int *ptr1,*ptr2; 且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是 。Ak=*ptr1+*ptr2;Bptr2=k;Cptr1=ptr2Dk=*ptr1*(*ptr

8、2);17)若有说明: int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是 。Ap1=&m; p2=&p1;Bp1=&m; p2=&n; *p1=*p2;Cp1=&m; p2=p1;Dp1=&m; *p2=*p1;18)以下正确的程序段是 。Achar str1=“12345”,str2=“abcdef”; strcpy(str1,str2);Bchar str10,*st=“abcde”; strcat(str,st);Cchar str10=“ “, *st=“abcde”; strcat(str,st);Dchar *st1=“12345”,*st2=“abcde”; st

9、rcat(st1,st2);19)下面程序段的运行结果是 。char *p=“abcdefgh”;p+=3;printf(“%dn”,strlen(strcpy(p,”ABCD”);A8 B12C4 D720)下面程序段的运行结果是 C 。char a=“language”,*p;p=a;while(*p!=u) printf(“%c”,*p-32); p+; ALANGUAGEBlanguageCLANGDlangUAGE2、填空题1)若p已指向存储单元a1。通过指针p给s赋值,使s指向最后一个存储单元a4的语句是 。2)若有以下定义和语句:则*-p的值是 。int a4=0,1,2,3,*

10、p;p=&a2;3)若有定义:int a23=2,4,6,8,10,12;则*(&a00+2*2+1)的值是 ;*(a1+2)的值是 。4)若有定义:int m106;在程序中引用数组元素mij的四种形式是: , , 和 。(假设i、j已正确说明并赋值)。 5)下面程序可通过行指针p输出数组a中任一行任一列元素的值。请填空。main() int a23=2,4,6,8,10,12; int (*p)3,i,j; p=a; scanf(“%d, %d”,&i,&j); /*0i2, 0j3*/ printf(“a%d%d=%dn”,i,j, ); 6)下面程序的运行结果是 sum=25 。mai

11、n() int x =0,1,2,3,4,5,6,7,8,9; int s,i,*p; s=0; p=&x0; for(i=1; i10; i+=2) s+=*(p+i); printf(“sum=%d”,s); 7)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str) char *p; for(p=str; !=0; p+);return( ); 8)下面程序段的运行结果是 12345 。char a =“12345”,*p;int s=0;for(p=a; *p!=0; p+) s=10*s+*p-0;printf

12、(“%dn”,s);9)下面程序的运行结果是 main() int va10,vb10,*pa,*pb,i; pa=va; pb=vb; for(i=0; i3; i+,pa+,pb+) *pa=i; *pb=2*i; printf(“%dt%dn”,*pa,*pb); pa=&va0; pb=&vb0; for(i=0; i3; i+) *pa=*pa+i; *pb=*pb*i; printf(“%dt%dn”,*pa+,*pb+); 10)若输入的值分别是1,3,5,下面程序的运行结果是 11 13 15 main() int a=0,i,*p,sum; p=&a; for(i=0;i=2

13、;i+) scanf(“%d”,p); sum=s(p); printf(“sum=%dn”,sum); s(int *p) int sum=10; sum=sum+*p; return(sum); 11)以下程序的运行结果是 0 1 3 6 。#includemain() int i,k; for(i=0; i4; i+) k=sub(&i); printf(“%3d”, k); printf(“n”); int sub(int *s) static int t=0; t=*s+t; return t; 12)以下程序的输出结果是 abcdeedcba 。#includemain() cha

14、r *ptr1, *ptr2; ptr1=ptr2=“abcde”; while(*ptr2!=0) putchar(*ptr2+); while(-ptr2=ptr1) putchar(*ptr2); putchar(n); 13)有以下程序,若从键盘输入:abc def,则输出结果是 def def 。#include#includemain() char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p; scanf(“%s%s”,p,q); printf(“%s %s”,p,q);14)以下程序的输出结果是 c/bc/abc #includem

15、ain() char str =“abc”, *ps=str; while(*ps) ps+; for(ps-; ps-str=0; ps-) puts(ps);15)设有以下程序:#includemain() int i, *p=&i; i=10; *p=i+5; i=2*i; printf(“%dn”,*p);程序执行的结果是 30 。16)设有两个字符串a、b,下面程序是将a、b的对应字符中的较大者存放在数组c的对应位置上。请填空。#include#includemain() int k=0; char a80,b80,c80=0,*p,*q; p=a; q=b; gets(a); ge

16、ts(b); while( ) if( ) ck=*q; else ck=*p; p+; q+; k+; if(*p!=0) strcat(c,p); else strcat(c,q); puts(c);17)以下程序的功能是:将无符号八进制数字字符串转换为十进制整数。例如,输入的字符串为556,则输出十进制整数366。请填空。#includemain() char *p, s6; int n; p=s;gets(p);n=*p-0;while( =0) n=n*8+*p-0;printf(“%dn”, n);18)假设a数组中的数据已按从小到大的顺序存放,以下程序可把a数组中相同的数据删得只

17、剩下一个,然后以每行4个数据的格式输出a数组。请填空。#define M 10main() int aM,i,j,n; for(i=0; i=0) if(*(a+i)= =*(a+i-1) for(j= ; j=n; j+) *(a+j-1)=*( ); n-; i-; for(i=1; i=n+1; i+) printf(“%4d”,*( ); if(i%4=0) printf(“n”); printf(“n”);19)下面程序是判断输入的字符串是否是”回文”,(顺读和倒读都一样的字符串称”回文”,如level)。请填空。#include#includemain() char s81,*p1

18、,*p2; int n; gets(s); n=strlen(s); p1=s; p2= ; while( ) if(*p1!=*p2) break; else p1+; ; if(p1p2) printf(“NOn”); else printf(“YESn”);20)下面程序的运行结果是 abcdefg/ADGH #includemain() char a80,b80,*p=“aAbcdDefgGH”; int i=0, j=0; while(*p!=0) if(*p=a & *p=z) ai=*p; i+; else bj=*p; j+; p+; ai=bj=0; puts(a); put

19、s(b);21)以下程序的执行结果是 8 。#includemain() static int a =1,3,5,7; int *p3=a+2,a+1,a; int *q=p; printf(“%dn”,*(p0+1)+*(q+2);22)以下程序能找出数组x中的最大值和该值所在的元素下标,数组元素值从键盘输入,请填空。main() int x10,*p1,*p2,k; for(k=0; k10; k+) scanf(“%d”,x+k); for(p1=x,p2=x; p1-x*p2) p2= ; printf(“MAX=%d, INDEX=%dn”,*p2, );23)以下程序的执行结果是T

20、he sentences can make statement about the topic 。#include#include#define P(x) printf(“%s”,x)main() static char *c =“you can make statement”, “for the topic”, “The sentences”, “How about”; static char *p =c+3,c+2,c+1,c; char *pp=p; P(*+pp); P(*-*+pp+3); P(*pp-2+3); P(pp-1-1+3); printf(“n”);24)下面程序的功能

21、是将字符串a的所有字符传送到字符串b中,要求每传送三个字符后再存放一个空格,例如字符串a为”abcdefg”,则字符串b为”abc def g”,请选择填空。#includemain() int i,k=0; char a80,b80,*p; p=a; gets(p); while(*p) for(i=1; 【1】 ; p+,k+,i+) bk=*p; if( 【2】 ) bk= ; k+; bk=0; puts(b);【1】Ai3 Bi=3 Ci3 & *p!=0 Di=3 & *p【2】Ai= =4 B*p= =0 C!*p Di!=425)下面程序的功能是在字符串str中找出最大的字符并

22、放在第一个位置上,并将该字符前面的原字符往后顺序移动,如chyab变成ychab。请选择填空。#includemain()char str80,*p,max,*q;p=str; gets(p); max=*(p+);while(*p!=0) if(maxstr Bp=str C*pstr0 D*p=str0【3】Ap+ Bstr- Cp- Di-26)下面程序的功能从终端读入一行字符作为字符串放在字符数组中,然后输出请填空。int i;char s80,*p;for(i=0;i79; i+)si=getchar(); if(si= =n) break;si= ; p= ;while(*p) p

23、utchar(*p+);27)下面程序的运行结果是 bcdABCD 。char s20=“abcd”;char *sp=s;sp+;puts(strcat(sp,”ABCD”);28)下面程序段的运行结果是 *2*4*6*8* 。char a =“123456789”,*p;int i=0;p=a;while(*p)if(i%2= =0) *p=*; p+; i+;puts(a);29)下面程序的输出结果是 2 4 6 8 10 12 。main() int b23=2,4,6,8,10,12; int *a23=*b,*b+1,*b+2,*(b+1),*(b+1)+1,*(b+1)+2; int *q,k; q=a0; for(k=0;k6;k+) printf(“%4d”,*q); q+;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1