文档库 最新最全的文档下载
当前位置:文档库 › 指针进阶部分作业

指针进阶部分作业

指针进阶部分作业

11-1:输入月份,输出对应的英文名称。例如,输入5,输出May。要求用指针数组表示12个月的英文名称。

11-2:输入5个字符串,输出其中最长的字符串,要求用指针数组实现。11-3:有两个单向链表,头指针分别为list1、list2,链表中每一结点信息为姓名、基本工资,请编写程序将单向链表list1拼接在list2后面,然后输出拼组后的链表。

循环结构程序设计课后习题及答案

循环结构程序设计习题及答案 1、循环语句的三要素分别是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整 地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0) { printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。 for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97);

13、下列程序段的运行结果是。 for(i=1,j=5 ; i100) break; } C、int a=0; D、int x=21; do while(x) { ++a; --x; }while(a>=0); 三、阅读程序,写出程序运行结果。 1、#include"stdio.h" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf("%d\n",sum); } 程序运行结果: 2、 #include"stdio.h" main() { int a,b;

第七次作业(指针)

习题十 一、选择题 10-1.已知:int *p, a;则语句"p=&a;"中的运算符"&"的含义是。 A.位与运算B.逻辑与运算C.取指针内容D.取变量地址 10-2.已知:int a,x;则正确的赋值语句是。 A.a=(a[1]+a[2])/2; B.a*=*a+1; C.a=(x=1,x++,x+2); D.a="good"; 10-3.已知:int a, *p=&a;则下列函数调用中错误的是。 A.scanf("%d", &a); B.scanf("%d", p); C.printf("%d", a); D.printf("%d", p); 10-4.main(argc, argv)中形式参数argv的正确说明形式应当为。 ?? A.char *argv[ ] B.char argv[ ][ ] C.char argv[ ] D.char *argv 10-5.说明语句"int (*p)( );"的含义是。 A.p是一个指向一维数组的指针变量 B.p是指针变量,指向一个整型数据 C.p是一个指向函数的指针,该函数的返回值是一个整型 D.以上都不对 10-6.设有说明int (* ptr)[M];其中的标识符ptr是。 A.M个指向整型变量的指针 B.指向M个整型变量的函数指针 C.一个指向具有M个整型元素的一维数组的指针 D.具有M个指针元素的一维指针数组,每个元素都只能指向整型变量 10-7.已知:double *p[6];它的含义是。 A.p是指向double型变量的指针B.p是double型数组 C.p是指针数组D.p是数组指针 10-8.已知函数说明语句:void *f( );则它的含义是。 A.函数f的返回值是一个通用型的指针 B.函数f的返回值可以是任意的数据类型 C.函数f无返回值 D.指针f指向一个函数,该函数无返回值 10-9.已知:char s[10], *p=s,则在下列语句中,错误的语句是。 A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0]; 10-10.已知:char b[5], *p=b;则正确的赋值语句是。 A.b="abcd"; B.*b="abcd"; C.p="abcd"; D.*p="abcd";

循环结构程序设计练习题 内含答案

第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是( D )。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( A )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、以下程序程序的执行后的输出结果是( c )。 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} A.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( A )。 void fun(char*s) { while(*s) { if(*s%2==0) printf(“%c”,*s); s++;} } main() { char a[]={“good”};fun(a);printf(“\n”);} 注意:字母a的ASCⅡ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构 一、选择题 1、有以下程序段 int k=0; while(k=1)k++; while 循环执行的次数是( A) A) 无限次B) 有语法错,不能执行 C) 一次也不执行D) 执行1次 2、t为int类型,进入下面的循环之前,t的值为0 while( t=1) { …… } 则以下叙述中正确的是( B) A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对 3、在C程序中,与while(m)中表达式m完全等价的是(B ) A) m==0 B) m!=0 C) m==1 D) m!=1 4、有以下程序,程序运行后的输出结果是(C )。 main() {int i=1,sum=0; while(i<=4) { sum=sum+i; i=i+1; } printf(“%d\n”,sum);} A)4 B)5 C)10 D)死循环 5、有以下程序,程序运行后的输出结果是(D )。 main() { int i=1,sum=0; while(i<=4) sum=sum+i; i=i+1; printf(“%d\n”,sum); } A)4 B)5 C)10 D)死循环 6、有如下程序 main(){ int n=9; while(n>6){n--;printf(“%d”,n);} } 该程序段的输出结果是(B) A) 987 B) 876 C) 8765 D) 9876

7、以下程序的输出结果是( B ) main() { int num= 0; while(num<=2) { num++; printf(“%d\n”,num);} } A) 1 B) 1 C)1 D) l 2 2 2 3 3 4 8、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。main() {float x,y,z; scanf(“%f%f”,&x,&y); z=x/y; while(1){ if(fabs(z)>1.0) { x=y; y=z; z=x/y;} else break;} printf(“%f\n”,y);} A)1.500000 B)1.600000 C)2.000000 D)2.400000 9、执行以下程序段时 x=-1; do { x=x*x; } while(! x); 则下面描述正确的是(A ) A) 循环体将执行一次B) 循环体将执行两次 C) 循环体将执行无限次D) 系统将提示有语法错误 10、有以下程序段其输出结果是(C ) int x=3; do { printf("%d",x-=2); } while (!(--x)); A) 1 B) 3 0 C) 1 -2D) 死循环 11、有如下程序 main(){ int x=23; do {

指针数组函数练习(含参考答案).

作业(使用指针、数组、函数完成) 1. 编写一个通用函数,该函数可以实现判断:一个含有五位数字的整数是否是回文数。回文数的含义是从左向右与从右向左看,数是相同的。如:23732是回文数,而23564则不是。编写主程序调用该函数实现求所有5位数字中满足条件的数的个数。 #include int Judge(long num { int m,t,h,s,g; m=num/10000; t=(num-m*10000/1000; h=(num-m*10000-t*1000/100; s=(num-m*10000-t*1000-h*100/10; g=num-m*10000-t*1000-h*100-s*10; if((m==g&&(t==s return 1; else return 0; } void main( { int count=0; long i; for(i=10000;i<=99999;i++ if(Judge(i count++; printf("%d\n",count;

} 2.编写一个通用函数,该函数可以实现对数值型数组的倒序。倒序的含义是把数组的元素值前后颠倒。例数组:20,19,18,15,13,10倒序的结果为:10,13,15,18,19,20。编写主程序,数组初始化方式不限,并输出,然后调用该函数实现倒序后再输出倒序的结果。 #include #define N 6 void Transfer(double *b,int n { double temp; double *i=b; double *j=b+n-1; while(j>i { temp=*i; *i=*j; *j=temp; i++; j--; } } void main( { double array[N]={20,19,18,15,13,10}; int i; for(i=0;i printf("%.0f\t",array[i];

循环结构程序设计课后习题及答案

循环结构程序设计习题及答案1、循环语句的三要素分别 是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for 语句,分别执行循环体次、次、 次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0)

{ printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。

for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i

作业2答案

第2次作业 第2章作业: 3、程序计数器(PC)作为不可寻址寄存器有哪些特点?数据指针DPTR有哪些特点?与程序计数器(PC)有何异同? 程序计数器(PC)的特点: (1)PC是中央控制器中最基本的寄存器,是一个独立的计数器,存放着下一条将要从程序存储器中取出的指令地址; (2)PC具有自动加1的功能,这是最基本的工作方式,PC变化的轨迹决定着程序的流程; (3)PC的宽度决定着程序存储器可以直接寻找的范围。 数据指针DPTR的特点: (1)DPTR是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器寻址的地址寄存器(间接地址); (2)DPTR寄存器既可以作为16位寄存器处理,也可以作为两个8位寄存器处理。 异同: (1)两者都是与地址有关的16位寄存器,其中,PC与程序存储器的地址有关;DPTR与数据存储器有关,作为地址寄存器使用时,PC与DPTR都是通过P0和P2口输出的,但是,PC的输出与ALE和PSEN有关,DPTR的输出则与ALE,WR,RD有关; (2)PC只能作为16位寄存器对待,由于有自动加1的功能,故又称计数器。PC是不可访问的,有其独特的变化方式,它的变化轨迹决定了程序执行的流程;DPTR可以作为16位寄存器对峙,也可以作为两个8位寄存器对待,是可以访问的。 4、80C51存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间? 80C51存储器采用哈佛结构,即将程序存储器和数据存储器截然分开,程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统。这种结构对于单片机“面向控制”的实际应用极为方便、有利。在80C51单片机中,不仅在片内驻留了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有极强的外部存储器扩展能力,寻址范围分别可达64KB,寻址和操作方便简单。 物理地址空间上; (1)内部程序寄存器4KB; (2)外部程序寄存器64KB; (3)内部数据寄存器256B; (4)外部数据寄存器64KB。 逻辑地址空间上: (1)片内片外统一的64KB程序存储器地址空间; (2)片内128(或者256)字节数据存储器的空间; (3)片外64KB的数据存储器地址空间。 6、片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么? 片内RAM低128单元划分为三个主要部分: (1)工作寄存器区(00H~1FH),这是一个用寄存器寻址的区域,指令的数量最多,均为单周期指令,执行的速度最快; (2)位寻址区(20H~2FH),包含128位(位地址00H~7FH),是可位寻址的RAM区。这16字节单元即可进行字节寻址,又可实现位寻址。

C语言循环结构测习题带答案

精心整理 第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ? ? ? ? 1. C. A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; } while(!x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误 (6)下列语句段中不是死循环的是__C__。 A.i=100; while(1) { i=i%100+1; if(i==20)break; } B.for(i=1;;i++) sum=sum+1; C. C. COUT< main() { intnum=0; while(num<=2) {

num++; cout< else ++i; }while(s<15); Cout< main() { inti,j; for(i=4;i>=1;i--) {

循环结构(答案)

作业3 循环结构学号姓名 1.有以下程序 main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是B A)y=0 B)y=-1C)y=1 D)while构成无限循环2.有以下程序 main() { int k=5; while(--k) printf("%d",k-=3); printf("\n"); } 执行后的输出结果是A A)1 B)2 C)4 D)死循环 3.若变量已正确定义,有以下程序段 i=0; do printf("%d,",i); while(i++); printf("%d\n",i) 其输出结果是B A)0,0 B)0,1 C)1,1 D)程序进入无限循环4.有以下程序段D int n,t=1,s=0; scanf("%d",&n); do{ s=s+t; t=t-2; }while (t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 A)任意正奇数B)任意负偶数C)任意正偶数 D)任意负奇数 5.有以下程序 #include main() { int x=8; for( ; x>0; x--) { if(x%3) {

printf("%d, ",x--); continue; } printf("%d, ",--x); } } 程序的运行结果是D A)7,4,2 B)8,7,5,2 C)9,7,6,4 D)8,5,4,2 6.以下不构成无限循环的语句或者语句组是A A)n=0; B)n=0; do{++n;}while(n<=0); while(1){n++;} C)n=10; D)for(n=0,i=1; ;i++) n+=i; while(n); {n--;} 7.有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是D A)n=5 B)n=2 C)n=3 D)n=4 8.有以下程序 main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++;

链表作业

一、选择 1.下述哪一条是顺序存储结构的优点?() A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示 2.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n 个()的有限序列(n>0)。 A.表元素 B.字符 C.数据元素 D.数据项 E.信息项 4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。 A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。 A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表 6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。 A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表 8. 静态链表中指针表示的是(). A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址 9. 链表不具有的特点是() A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 10. 下面的叙述不正确的是() A.线性表在链式存储时,查找第i 个元素的时间同i 的值成正比 B. 线性表在链式存储时,查找第i 个元素的时间同i 的值无关 C. 线性表在顺序存储时,查找第i 个元素的时间同i 的值成正比 D. 线性表在顺序存储时,查找第i 个元素的时间同i 的值无关 13. 若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。 A. O(0) B. O(1) C. O(n) D. O(n2) 14. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。 A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 15.线性表( a1,a2,…,an)以链接方式存储时,访问第i 位置元素的时间复杂性为()A.O(i) B.O(1) C.O(n) D.O(i-1) 23.在双向链表指针p 的结点前插入一个指针q 的结点操作是()。 A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q; B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink; C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q; D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;

C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

第5章 循环结构程序设计作业参考答案

第5章循环结构程序设计作业参考答案 班级学号姓名 【第140页】 5-1、请画出课本里5.6中给出的3个程序段的传统流程图。 (1)程序1: #include int main() { int i,j,n=0; for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 printf("%d\t",i*j); } printf("\n"); return 0; } (2)程序2: #include int main() { int i,j,n=0; for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 if (i==3 && j==1) break; //遇到第3行第1列,终止内循环 printf("%d\t",i*j); } printf("\n"); return 0; } (3)程序3: #include int main() { int i,j,n=0; for (i=1;i<=4;i++)

for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 if (i==3 && j==1) continue; //遇到第3行第1列,提前结束执行本次内循环体 printf("%d\t",i*j); } printf("\n"); return 0; } (1)程序1流程图(2)程序2流程图(3)程序3流程图 5-3、输入两个正整数m和n,求其最大公约数和最小公倍数。 #include int main()

数据结构作业题

答案出错,本宝宝概不负责, 应该没错 作业题 一、填空题: (1) 一个有向图G中若有弧, 则在图G的拓扑序列中,顶点vi,vj 和vk的相对位置为_____ i,j,k _____。 (2)队列是一种_ 线性的结构。 (3) 在单链表中,指针p 所指结点为最后一个结点的条件是p->next == NULL。 (4) 二路归并排序的时间复杂度是__nlogn______。 (5)栈是一种_ 线性的结构。 (6) 由____树____转换成二叉树时,其根结点的右子树总是空的。 (7) 直接选择排序是不稳定的,其时间复杂性为__n2______。 (8) 对无向图,其邻接矩阵是一个关于__ 对角线______对称的矩阵。 (9) 由________转换成二叉树时,其根结点的右子树总是空的。 (10) 归并排序要求待排序列由若干个____有序_______的子序列组成。 (11) 已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有___ 12 _______ 个叶子的结点。 二、单项选择题: (1)设有一个无向图G=(V,E)和G’=(V’,E’)如果G’为G的生成树,则下面不正确的说法是(B )。 A.G’为G 的子图; B.G’为G 的边通分量; C.G’为G的极小连通子图且V’=V; D.G’为G的一个无环子图。 (2)单链表的一个存储结点包含( D )。 A.数据域或指针域; B.指针域或链域; C.指针域和链域; D.数据域和链域。

(3)二分查找要求被查找的表是( C )。 A. 键值有序的链接表; B.链接表但键值不一定有序; C. 键值有序的顺序表; D.顺序表但键值不一定有序。 (4)设指针P指向双链表的某一结点,则双链表结构的对称性可用(C )式来刻画。 A.p->prior->next->==p->next->next; B.p->prior->prior->==p->next->prior; C.p->prior->next->==p->next->prior; D.p->next->next==p->prior->prior。 (5)顺序查找法适合于( D )存储结构的查找表。 A.压缩; B.散列; C.索引; D.顺序或链式。 (6)在循环链表中,将头指针改设为尾指针(rear)后,其头结点和尾结点的存储位置分别是(B )。 A.real和rear->next->next; B.rear->next 和rear; C.rear->next->next和rear; D.rear和rear->next。 (7)堆是一个键值序列{k1,k2,…, kn},对i=1,2,…,|_n/2_|,满足( C )。 A.ki≤k2i≤k2i+1; B.ki

指针作业

1、有以下程序b main() { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s[2]); } 执行后输出结果是 A)随机值B)0 C)5 D)6 2、执行以下程序后,a,b的值分别为c main() {int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(-*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } A)-1,5 B)1,6 C)0,7 D)4,10 3、下面程序中,当输入3个数为4 8 1后,该程序将输出的结果是___d__. main() { int i,j,k,temp; int *p1,*p2,*p3; printf(“Inut 3 number:”); scanf(“%d%d%d”,&i,&j,&k); p1=&i; p2=&j; p3=&k; temp = *p3; *p3 = *p2; *p2 = *p1; *p1 = temp; printf("%d %d %d", i, j, k); } A)4 8 1 B)4 1 8 C)1 8 4 D)1 4 8 4、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是a 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是一个指针变量 5、有以下程序c main() { char str[]="xyz",*ps=str; while(*ps)ps++; for(ps--;ps-str>=0;ps--) puts(ps); } 执行后的输出结果是 A)yz xyz B)z yz C)z yz xyz D)x xy xyz 6、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是c A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 7、下面能正确进行字符串赋值操作的是c A)char s[5]={"ABCDE"}; B)char s[5]={'A','B','C','D','E'}; C)char *s;s="ABCDE"; D)char *s;scanf("%s",s); 8、下面程序段的运行结果是a char *s="abcde"; s+=2;printf("%d",s); A)cde B)字符'c' C)字符'c'的地址D)无确定的输出结果 9、若有下面的程序段:d char s[]="china";char *p; p=s; 则下列叙述正确的是 A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)sizeof(s)和sizeof(p)相等 D)*p与s[0]相等 编程题:(用指针实现) 1.有一个一维数组int a[]={1,2,3,4,5,6}; 有一个int *p=a;,通过指针p打印出这个一维数 组的每个元素和每个元素的地址。 2.char acbuf[]={“hello”}; char *pstr=acbuf; char *p="hello"; 通过指针打印acbuf的值,并通过指针把acbuf值改为“world”,将p改为"world"。 3.将用户输入的一个正整数n(长整型)输出成“千分位”形式,即从各位数起,每三位间 加一个逗号。如:7654321,输出7,654,321。 4.用指针输入一组数,找出其中最大的数,并把最大的数与第一个互换。

C语言循环结构练习题带答案.doc

第 5 章循环结构程序 设计 练习题 1.单项选择题 ( 1)语句 while (!e);中的条件!e等价于A。 A. e==0 B. e!=1 C. e!=0 D. ~e ( 2)下面有关for循环的正确描述是D。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在 for循环中,不能用break 语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中D。 A.不能使用do-while语句构成的循环 B. do-while 语句构成的循环必须用break 语句才能退出 C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环 D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环 ( 4) C 语言中 while 和 do-while 循环的主要区别是A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 ( 5)以下程序段C。

int x=-1; do { x=x*x; } while (!x); A.是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误( 6)下列语句段中不是死循环的是__C__。 A.i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++;

C语言程序设计指针作业

C语言程序设计指针作业 一、选择题 【习题1】变量的指针,其含义是指该变量的________ A)值B)地址 C)名D)一个标志 【习题2】若有语句int *point,a; 则point=&a;中运算符&的含义是_____ A)位与运算B)逻辑与运算 C)取指针内容D)取地址 【习题3】若x是整型变量,pb是整型的指针变量,则正确的赋值表达式是 A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x 【习题4】下面程序段的运行结果是_________ char *s="abcde"; s+=2; printf("%d",s); A)cde B)字符’c’C)字符’c’的地址D)无确定的输出结果【习题5】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是______ A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2); 【习题6】若有定义语句 char a[]="It is mine"; char *p="It is mine"; 则以下不正确的叙述是________. A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 【习题7】若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为___ A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j 【习题8】设有如下定义:int (*ptr)( ); 则以下叙述中正确的是: A)ptr是指向一维组数的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针 【习题9】设有定义int (*ptr)[m];其中的标识符ptr是 A)m个指向整型变量的指针 B)指向m个整型变量的函数指针 C)一个指向具有m个整型元素的一维数组的指针 D)具有m个指针元素的一维指针数组,每个元素都只能指向整型量 【习题10】若要用下面的程序片段使指针变量p指向一个存储整型变量的动态

认识钟表前置性作业

《理解钟表》前置性作业 一年级《理解钟表》前置作业 一、教学内容:一年级上册第七单元第一课 二、教材分析:本节课教学目标是使学生结合实际初步学会看钟表,体会钟表在生活中的重要作用,并为今后进一步学习相关时间的知识打下基础。这部分内容在教材中虽然是第一次出现,但学生已具有这方面的一些生活经验。所以,教学中要结合学生的生活经验与实际,使用教材提供的现实情境,向学生充分提供观察、比较和动手操作的机会,展开好教学活动。 三、学情分析:一年级的学生年龄还太小,而且在这个课题的教学中不需考虑秒针,所以我在选用课件时,用了两根指针的钟面的课件(即只有时针和分针)。这样就避免了秒针在学生区分时针和分针时的干扰。在学生区分时针和分针的不同时,我采用的方式是多种多样的,不但安排了男女生互考,而且还安排了师生互考,多样化的记忆方式极大的提升了学生的学习兴趣,加深巩固了学生的印象,而且更为下一个环节初步理解整时奠定了基础。 四、教学目标: 1、借助已有的生活经验,在熟悉的生活情境中交流、合作,学会认读整时。 2、结合日常生活作息时间,培养学生珍惜时间的态度和合理安排时间的良好的习 惯。 3、通过观察、讨论、比较等活动,初步培养学生的探究合作的学习意识。 五、教学重点难点: 教学重点:学会理解钟表的时针和分针,会看钟表上的整时。 教学难点:学会两种表示时间的方法。 六、前置作业: 作业一:观察你家里的钟表,在空白的表盘里填上对应的数字。 作业二:在家长的协助下画出7时钟表两条指针所指的位置。 作业三:画一画。除了上面画的这种钟表,你还见过其他类型的钟表吗?请在下面画一画。(提前一周布置,和家长一起完成,第一课时使用。) 仔细观察下图中的钟面,完成填空。

相关文档