(35)下面程序段的运行结果是 char str[]="abc",*p=str; printf("%d",*(p+3)); a)67 b)0 c)字符′c′的地址 d)字符′c′ (36)若有以下定义: struct link { int data; struct link *next; } a,b,c,*p,*q; 且变量 a 和 b 之间已有如下图所示的链表结构:
指针 p 指向变量 a,q 指向变量 c。则能够把 c 插入到 a 和 b 之间并形成新的链表的语句组是: a)a.next=c; c.next=b; b)p.next=q; q.next=p.next; c)p->next=&c; q->next=p->next; d)(*p).next=q; (*q).next=&b; (37)对于下述程序,在方式串分别采用"wt"和"wb"运行时,两次生成的文件 test 的长度分别是 #include<stdio.h> void main() { file *fp=fopen("test",); fputc(′a′,fp);fputc(′′,fp); fputc(′b′,fp);fputc(′′,fp); fputc(′c′,fp); fclose(fp); } a)7 字节、7 字节 b)7 字节、5 字节 c)5 字节、7 字节 d)5 字节、5 字节 (38)变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。
若要 求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是 a)a^b b)a|b c)a&b d)a<<4 (39)下面的程序段运行后,输出结果是 int i,j,x=0; static int a[8][8]; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=2*i+j; for(i=0;i<8;i++) x+=a[i][j]; printf("%d",x); a)9 b)不确定值 c)0 d)18 (40)下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d",b[0]);} a)6 b)7 c)8 d)9 二、填空题 请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。 (1)测试的目的是暴露错误,评价程序的可靠性;而 【1】 的目的是发现错误的位置并改正错误。 (2)某二叉树中度为 2 的结点有 18 个,则该二叉树中有 【2】 个叶子结点。 (3)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 【3】 。 (4)在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【4】 。 (5)在计算机软件系统的体系结构中,管理系统位于用户和 【5】 之间。 (6)以下程序的输出结果是 【6】 。
main() { char c=′z′; printf("%c",c-25); } (7)阅读下面语句,则程序的执行结果是 【7】 。 #include "stdio.h" main() { int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf("%d,%d",a,b); else printf("%d,%d",b,a);} (8)下列程序的输出结果是 【8】 。 main() { int i; for(i=1;i+1;i++) { if(i>4) { printf("%d",i); break; } printf("%d",i++);}} (9)以下程序的定义语句中,x[1]的初值是 【9】 ,程序运行后输出的内容是 【10】 。 #include <stdio.h> main() { int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, *p[4],i; for(i=0;i<4;i++) { p[i]=&x[2*i+1]; printf("%d",p[i][0]); } printf("");) } (10)以下程序的输出结果是 【11】 。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28349-3.html