文档介绍:第二部分、 C 考试真题真题一一、选择题(每小题 1 分,共 10 分) 若有以下说明和语句,且 0<=i<10 ,则____C____ 是对数组元素的错误引用。 int a[10],*p=a; A *(a+i) B a[p-a] C p+ID p[i] 2 .现已定义: char b[6],*p=b; 选择正确的赋值语句_____C_____ 。 A b=” china ”B *b= ” china ”C p=” china ”D *p= ” china ”?3 .运行下列程序后, 全局变量 的正确结果为__B____ 。 struct tree { int x; char *s; }; fun(struct tree t) // 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量{ =10; = ” computer ”; return(0); } main() { struct tree t; =1; = ” puter ”; fun(t) ; printf( ”%d,%s\n ”,, );}A puter B 1,puter C puter D 10,puter fp 是指向某文件的指针, 且已读到文件的末尾, 则表达式 feof(fp) 的返回值是____C_____ 。 A0B -1C 非零值 D NULL 5 .正确的指针数组的描述是____C_____ 。 A int (*a)[10] B int a[i][j] C int *a[10] D 指针数组表示一个指针指向数组 6 .如下,哪个是 c 语言绘图时必须使用的语句____C_____ 。 A #include <> // 定义了通过控制台进行数据输入和数据输出的函数 B #include <> C gdriver=VGA // 图形驱动器为 VGA 图形适配器 D window(20,5,50,20); // 建立字符模式下的矩形字符窗口 window(left,top,right,bottom); 7. main() { int x=3,y=2,z=1; printf( “%s=%d\n ”,” x/y&z ”,x/y&z); } 程序的输出结果是: ____B______ 。 A x/y&z=0 B x/y&z=1 C x^y&z=0 D x^y&~z=1 // 优先诀括号成员第一; // 括号运算符[]() 成员运算符. -> 全体单目第二; // 所有的单目运算符比如++ -- +(正) -(负) 指针运算*& 乘除余三, 加减四; // 这个"余" 是指取余运算即% 移位五,关系六; // 移位运算符: << >> ,关系: >< >= <=等等于(与) 不等排第七; //即== != 位与异或和位或; // 这几个都是位运算: 位与(&) 异或(^) 位或(|) " 三分天下" 八九十; 逻辑或跟与; // 逻辑运算符:|| 和&& 十二和十一; // 注意顺序: 优先级(||) 底于优先级(&&) 条件高于赋值, // 三目运算符优先级排到 13 位只比赋值运算符和"," 高// 需要注意的是赋值运算符很多! 逗号运算级最低! // 逗号运算符优先级最低// 结合决每种运算符都有一个优先级,优先级是用来标志运算符在表达式中的运算顺序的。优先级高的先做运算,优先级低的后做运算,优先级相同的右结合性决定计算顺序。大多数运算符都是按从左到右计算, 只有三类运算符的结合性是从右到左。他们是: 单目、三目和赋值。 8. 定义一个返回值为整型的函数指针变量,下列哪一个是正确的___C___ 。 A int *p() B int (*p)[] C int (*p)() D int p() 9. main() { int i,j; do{ if(j%5==0) i++; j++; }while(i!=5) } 修订为: main() { int i=0,j=0; do{ if( j%5==0) i++; j++; }while( i!=5 );} 程序运行结束后 j 的值为____D___ 。 A 25B 20C 26D 21 10 .若 int x=2,y=1,z=0, 下列几个表达式的值分别为_____A_____ 。⑴ x|y&&z ⑵ x!=y!=z ⑶~x>y A 0,1,0 B 0,1,1 C 0,0,0 D 1,1,0 二读程序,并选出正确的答案(每空 3 分,共 45 分) 1. #include <> int find(char *s1, char *s2) { int t; char *p1,*p2; for(t=0