c程序设计期末练习
说明:程序考题中,有些程序不太完整,如:无^include、主函 数无类型或无return等,答题时可忽略这些细节。 _、选择题 1. 设 char x= a ;则 printf (〃x=%d, y=%d\n〃,x, 97);的输出是(C )。 A. x=a, y=97 B. x=97, y=a C. x=97, y=97 D. x=a, y=a 2. 下列选项中非法的用户标识符是(B ) A. Scanf B. 4n C. _book D. _45 3. 设有整型变量y,执行语句y=(y=3,y*y);后y的值是(A )。 A. 9 B. 3 C. 12 D. 0 4. 下列整型常数的表示中正确的是(D )o A. 085 B. 16B C. 07A D. OxAF 5. 下列程序的输出结果是(C )o #include int main() ( int i, s; for(i=l; iy?x:y;} int main () ( int a=4, b=3, c=5, d=2, e; e=fl (fl (a, b), fl (c, d)); printf(〃%d\n〃, e); return 0; } 程序运行后的输出结果是(D )o A. 2 B. 3 C. 4 D. 5 14. 下面程序运行后的输出结果是(B )。 int main() { char arr[2][4]; strcpy(arr[0], 〃you〃); strcpy(arr[1], 〃me〃); arr [0] [3]=, printf (“%d”, *(p+2)); A 1 B 2 C 3D 4 16. 设有以下定义: int a[3] [4] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); int (*p)[4]=a; 则下列能够正确表示数组元素a[2] [2]的表达式是(D )o A. * ((*p+2) [2]) B. * (p+2) +2 C. (*p+2) +2 D. * (* (p+2) +2) 17. 有以下C程序 int main() ( int c=10; printf(〃%d\n〃,c|c); return 0; } 程序运行后的输出结果是(C )o A. 0 B. 20 C. 10 D. 1 18.若fp是指向某文件的指针,且已读到此文件末尾,则库函数 feof (fp)的返回值是(C )。 A. EOF B. 0 C.非零值 D. NULL 二、填空题 1. 以下程序运行后的输出结果是23 。 ttdefine S(x) x*x int main() { printf(〃%d\n〃,S(3+5)); return 0; ) 2. 整型变量a、b、c的初值都是0,运行表达式:++a a+=5; printf(〃%d 〃, a); } int main() ( int i; for (i=l; i<5; i++) f (); printf (〃\n〃); return 0; } 三、程序改错 1. 用选择法对数组中的n个元素按从大到小的顺序进行排序。 #include void fun(int a[], int n) { int i, j, p; for (i二0;i<=n~l;i++) { P= i; for(j=i+l;ja[p]) p二j; t=a[p]; a[p]=a[i] ; a[i]=t; i