有以下程序 struct s { int x,y; } data[2]={10,100,20,200};} main( ){ { struct s *p=data;} printf("%d\n",++(p->x));} 程序运行后的输出结果是 ()
A.10 B.11 C.20 D.21
有以下程序 main( ) { int k=4,n=0; for( ; n<k ; ) { n++; if(n%3!=0) continue; k--; } printf("%d,%d\n",k,n); } 程序运行后的输出结果是 ()
A.1,1 B.2,2 C.3,3 D.4,4
有以下程序 #include <string.h> main( ) { char str[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是 ()
A.0 B.5 C.7 D.20
有以下程序段 main( ) { int a=5,*b,**c; c=&b; b=&a; …… } 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是 ()
A.变量a的地址 B.变量b中的值 C.变量a中的值 D.变量b的地址
有以下程序 main( ) { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是()
A.-1 B.-3 C.-5 D.0
有以下程序 fun(int a, int b) { if(a>b) return(a); else return(b); } main( ) { int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf("%d\n", r); } 程序运行后的输出结果是 ()
A.3 B.6 C.8 D.12
有以下程序 main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d \n",a[1][2]); } 程序运行后的输出结果是 ()
A.3 B.6 C.9 D.2
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。struct node { int data; struct node *next; } *p, *q, *r; [*] 现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()
A.r->next=q; q->next=r->next; p->next=r; B.q->next=r->next; p->next=r; r->next=q; C.p->next=r; q->next=r->next; r->next=q; D.q->next=r->next; r->next=q; p->next=r;
要求以下程序的功能是计算:s=1+1/2+1/3+…+…1/10 main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是()
A.s=1.0; B.for(n=10;n>1;n--) C.s=s+1/n; D.printf("%6.4f\n",s);
有以下程序 main( ) { int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf("%d %d %3.1f %3.1f\n",a,c,f,x); } 程序运行后的输出结果是()
A.1 65 1 6.5 B.1 65 1.5 6.5 C.1 65 1.0 6.5 D.2 65 1.5 6.5
有以下程序 void fun(char *a, char *b) { a=b; (*a)++; } main() { char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是()
A.Ab B.aa C.Aa D.Bb
有以下程序 main( ) { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<B); printf("%d,%d\n",k,m); } 程序运行后的输出结果是 ()
A.0,0 B.0,1 C.1,0 D.1,1
有以下程序 #include <stdio.h> #define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; printf("%d\n", F(a++, b++)); } 程序运行后的输出结果是()
A.12 B.15 C.16 D.20
设有如下程序段: int x=2002, y=2003; printf("%d\n",(x,y)); 则以下叙述中正确的是 ()
A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B.运行时产生出错信息 C.输出值为2002 D.输出值为2003
已定义以下函数 fun(char *p2, char *p1) { while((*p2=*p1)!='\0'){ p1++;p2++; } } 此函数的功能是()
A.将p1所指字符串复制到p2所指内存空间 B.将p1所指字符串的地址赋给指针p2 C.对p1和p2两个指针所指字符串进行比较 D.检查p1和p2两个指针所指字符串中是否有''\0''
有以下程序 main( ) { int x=3, y=2, z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结果是()
A.3 B.2 C.1 D.0
有以下程序 #include <stdio.h> main( ) { printf("%d\n",NULL); } 程序运行后的输出结果是 ()
A.0 B.1 C.-1 D.NULL没定义,出错
已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是 ()
A.不确定的值 B.形参p中存放的值 C.形参p所指存储单元中的值 D.形参p的地址值