1、1 若有语句 int *point,a=4;和 point=,则下面均代表地址的一组选项是( ) 。A. a,point,* B. *p=5; C. *q=2; D. q=p; 执行以下程序后,a,b 的值分别为( ) 。main() int a,b,k=4,m=6,*p1=a=p1=b=(*p1)/(*p2)+7;printf(“a=%dn“,a);printf(“b=%dn“,b);A. 0,7 B. -1,5 C. 1,6 D. 4,10 下列程序运行后的输出结果是( )。#define F(X,Y) (X)*(Y)main() int a=3,b=4;printf(“%dn”,F(a+
2、,b+);A. 15 B. 16 C. 12 D. 20 下列程序中,while 循环的循环次数是( ) 。main() int i=0;while(i10) if(i1) continue;if(i=5) break;i+; A. 1 B. 死循环,不能确定次数 C. 10 D. 6 下列程序段的输出结果是( ) 。int n=c;switch(n+) default: printf(“error”); break;case a: case A: case b:case B: printf(“good”); break;2case c: case C: printf(“pass”);case
3、 d: case D: printf(“warn”);A.error B. warn C. pass D. passwarn 下列程序中的 for 循环执行的次数是( )。#define N 2#define M N+1#define NUM 2*M+1main() int i;for(i=1;i=NUM;i+) printf(”%dn”,i);A. 6 B. 5 C. 7 D. 8 下列程序运行后的输出结果是( ) 。main() int a=2,b=-1,c=2;if(ab)if(b0) c=0;else c+;printf(“%dn”,c); A. 0 B. 2 C. 1 D. 3 下列
4、程序运行后的输出结果是( ) 。main() int i,n=0;for(i=2;i5;i+) do if(i%3) continue;n+; while(!i);n+;printf(“n=%dn”,n); A. n=4 B. n=5 C. n=2 D. n=3 以下叙述中不正确的是( ) 。A. 以下定义是正确的:#define PI 3.1415926;B. 预处理命令行都必须以#号开始C. 在程序中凡是以#号开始的语句行都是预处理命令行D. 宏替换不占用运行时间,只占编译时间3 若有说明 int a34;,则对 a 数组元素的非法引用是( ) 。A. a04 B. a02*1 C. a1
5、3 D. a4-20 下列程序运行后的输出结果是( )。main() char a=a,b,c,d,e,f,g,h,0;int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%db”,i,j);A. 9,8 B. 9 C. 9, D. 9 8 下列程序运行后的输出结果是( )。main() int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+) printf(“%d”,a2-ii);A. 753 B. 642 C. 751 D. 653 有下面的程序片段,则对数组元素的错误引用是( )。int a12=0,*p3,*pp,i
6、;for(i=0;i3;i+)pi=pp=p; A. pp01 B. a10 C. *(*(p+2)+2) D. p31 下列程序运行后的输出结果是( ) 。main() int i,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2) s+=*(t+i);printf(“%dn”,s);A. 45 B. 25 C. 20 D. 36 下列程序运行后的输出结果是( ) 。main() char arr24;strcpy(arr,”you”);strcpy(arr1,”me”);arr03=printf(“%sn”,arr);4A. you B. you,则下列程序段
7、中正确的是( )。A. char a11; strcpy(+a,st);B. char a11,*p; strcpy(p=a+1,C. char a11; strcpy(a,st);D. char a,*p; strcpy(p= 以下不正确的定义语句是( )。A. int y5=0,1,3,5,7,9;B. double x5=2.0,4.0,6.0,8.0,10.0;C. char c1=1,2,3,4,5;D. char c2=x10,xa,x8; 若有下面的程序段:char s=“china“;char *p; p=s;则下列叙述正确的是( ) 。A. s 和 p 完全相同B. *p 与
8、 s0相等C. 数组 s 中的内容和指针变量 p 中的内容相等D. s 数组长度和 p 所指向的字符串长度相等 下面程序段的运行结果是( ) 。char a=“lanuage“,*p;p=a;while(*p!=u) printf(“%c“,*p-32); p+; A. LANGUAGE B. LAN C. language D. langUAGE 有以下语句,则对 a 数组元素的引用不正确的是(0i9)( ) 。int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A. *(*(a+i) B. ap-a C. *(p=a;k=printf(“%d“,*(p+);printf(“%
9、dn“,*k);A. 4 B. 24 C. 22 D. 465 有定义语句:int (*prt)3,则标识符 prt( )。A. 是一个指向整型变量的指针B. 是一个指针数组名,每个元素都是一个指向整数变量的指针C. 定义不含法D. 是一个指针,它指向一个具有三个元素的一维数组 有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;,则数值为 9 的表达式是( )。A. *(p+8) B. *p+9 C. *p+=9 D. p+8 假定 int 类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组 x 在内存中所占字节数是( )。A. 3 B. 20
10、C. 6 D. 10 下面函数的类型是( )。fun(float x) printf(“n%d”,x*x); A. int B. 与参数 x 的类型相同 C. void D. 无法确定 下面函数的功能是( )。fun(char *p2, char *p1) while(*p2=*p1)!=0) p1+; p2+; A. 将 p1 所指字符串的地址赋给指针 p2B. 将 p1 所指字符串复制到 p2 所指内存空间 C. 对 p1 和 p2 两个指针所指字符串进行比较 D. 检查 p1 和 p2 两个指针所指字符串中是否有0 下列程序运行后的输出结果是( ) 。sub(int x,int y,in
11、t *z) *z=y-x; main() int a,b,c;sub(10,5,sub(7,a,sub(a,b,printf(“%d,%d,%dn”,a,b,c);A. -5,-12,-7 B. 5,2,3 C. -5,-12,-17 D. 5,-2,-7 下列程序执行后的输出结果是( ) 。void func(int *a,int b) b0=*a+6; 6main() int a,b5;a=0; b0=3;func( printf(“%dn“,b0);A. 7 B. 8 C. 6 D. 9 下列程序的运行结果是( )。void fun(int *a, int *b) int *k;k=a;
12、 a=b; b=k;main() int a=3,b=6,*x=fun(x,y);printf(“%d %d“,a,b);A. 3 6 B. 6 3 C. 编译出错 D. 0 0 以下叙述正确的是( ) 。A. 函数可以嵌套定义但不能嵌套调用B. 函数可以嵌套调用但不可以嵌套定义C. 函数既可以嵌套调用也可以嵌套定义D. 函数既不可以嵌套定义也不可以嵌套调用 下面对 C 语言的描述中,正确的是( ) 。A. 函数一定有返回值,否则无法使用函数B. 在 C 语言中,调用函数时,只能将实参的值传递给形参C. C 语言函数既可以嵌套定义又可以递归调用D. C 语言程序中有调用关系的所有函数都必须放在
13、同一源程序文件中 下列说法中错误的是( ) 。A. 静态全局变量可以被其他的编辑单位所引用B. 静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值C. 若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽D. 所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失 下列程序运行后的输出结果是( ) 。float fun(int x,int y) return (x+y);main()7 int a=2,b=5,c=8;printf(“%3.0fn“,fun(int)fun(a+c,b),a-c);A
14、. 9 B. 编译出错 C. 21 D. 9.0 若程序中定义了以下函数:double myadd(double a,double b) return(a+b);并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是( ) 。A. double myadd(double,double); B. double myadd(double a,b);C. double myadd(double b,double a); D. double myadd(double x,double y); 在说明语句:int *f();中,标识符 f 代表的是( ) 。A. 一个返回值为指针
15、型的函数名 B. 一个用于指向整型数据的指针变量C. 一个用于指向一维数组的行指针 D. 一个用于指向函数的指针变量 在 C 语言中,形参的缺省存储类别是( )。A. register B. auto C. static D. extern 若一个单向链表中的结点含有两个域,其中 data 是指向字符串的指针域,next 是指向结点的指针域,则此结构的类型定义为( ) 。A. struct link char data; struct link *next;B. struct link char *data; struct link *next; C. struct link char *data; struct link next; D. struct link char data; struct link next;