学号: 姓名
39. 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。 ??A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; 40.设有如下定义: struck sk { int a; float b; }data; int *p; 若要使P指向data中的a域,正确的赋值语句是______。 A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a; 二.写出下列程序的运行结果(6小题,每题4或5分,共25分) 1.(4分) #include void main( ) { int x; scanf(\ if(x++>5) printf(\ else printf(\ } 若输入5,其输出结果是 。 2.(4分) #include void main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(\ else if ((c-1>=d)==1) printf(\ else printf(\} 本题 9 页,本页为第 6 页 教务处试题编号:
学号: 姓名
3.(4分) #include void main() { int n; for(n=1;n<6;n++) { if(n%2) { printf(\ continue; } printf(\ } printf(\} 4.(4分) #include struct abc { int a, b, c; }; void main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf(\} 5.(5分) #include int a[ ]={2,4,6,8,10}; void main( ) { int i,t; int *p=a+1, *q=a+4; for(i=0;i<2;i++) { t=*p; *p++=*q; *q--=t; } printf(\} 本题 9 页,本页为第 7 页 教务处试题编号:
学号: 姓名
6.(4分)若运行时输入:2345<回车>,求程序的输出结果 #include #include void main( ) { char st[20]=\ printf(\} 三 程序填空(每空1.5分,共15分) 1. mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。 int mystrlen(char*str) { ` int i; for(i=0; (1) != '\\0';i++); return( (2) ); } 2. 设数组a中元素均为正整数,以下程序段是求a中偶数的个数和偶数的平均值。 int a[10]={1,2,3,4,5,6,7,8,9,10},k,s,i; float ave; for (k=s=i=0;i<10;i++) { if (a[i]%2!=0) (3) ; s+= (4) ; k++; } if (k!=0) { ave=s/k; printf (\ } 3. 下列程序用于求数组a中所有素数之和。prime( )用来判断自变量是否是素数。请填空。 #include int prime(int x); void main() { int i,a[10],*p=a,sum=0; printf(\ for(i=0;i<10;i++) scanf(\ 本题 9 页,本页为第 8 页
教务处试题编号:
学号: 姓名
for(i=0;i<10;i++) if(prime(*(p+ (5) ))==1) { printf(\ sum+=*(a+i); } printf(\} int prime(int x) { int i; for(i=2;i void main ( ) { float x[1000],sum=0.0,ave,a; int n=0,i; printf (\:\\n \scanf (\while (a>=0.0&& n<1000) { sum+ (7) ; x[n]= (8) ; n++; scanf (\} ave= (9) ; printf (\:\\n \printf (\for (i=0;i