2012 年上海市高等学校计算机等级考试试卷 二级 C 语言程序设计 ( A 卷) (本试卷考试时间 120 分钟) 一、单选题 ( 本大题 10 道小题 ,每小题 1 分,共 10 分),从下面题目给出的 A、B、C、D 四个可供选择的答案中选择一个正确答案。 1.在一个 C 语言源程序中,main()函数的位置_________。 答案:C A.必须在最前面 B.必须在其它函数之前 C.可以在任意位置 D.必须在最后面 2. 设有变量定义:int a[ ]={5, 6, 1, 3, 7}, c, i; 当执行完语句: for(i=c=0; i<5; i++) { if(a[i]%3 = =0) continue; c++; } 之后,c 的值是_____。 答案:C A.1 B.2 C.3 D.4 3. 以下程序运行结果为_______ #define PII 3 #define S(x) PII*x*x main() { int a=1, b=2, c; c = a+b; printf("%d\n",S(c)); } 答案:B A.9 B.27 C.7 D.10 4.若有变量定义:int a[4], *p=a; 则以下对数组a 的元素不正确的引用是_____。 答案:D A.*a B.*(p+1) C.p[1] D.a[4] 5.设有变量定义:int d[50], *p=&d[0]; 下面表达式中________的计算结果为 int 类型的数值(非地址)。 答案:D A.p+=1 B.p++ C.&d[2] D.p-d 6.为了判断两个字符串 s1 和 s2 是否相等,应当使用_____。 答案:D A.if (s1==s2 ) B.if (s1 = s2 ) C.if ( strcpy (s1,s2 ) ) D.if ( strcmp( s1,s2) == 0 ) 7.设有变量定义int n; char str[80];与函数调用:n=hex2dec(str);则函数hex2dec 正确的函数说明应该是_______。 答案:A A.int hex2dec(char str[]); B.void hex2dec(char str[]); C.int hex2dec(char str); D.void hex2dec(char str); 8. 设有以下结构体定义及初始化,表达式(stu[0].score+stu[1].score)/2 的结果是_______。 struct student { int num; float score; } stu[2]={90,91.5,93,92.5}; 答案:C A.91.0 B.91.5 C.92.0 D.92.5 9.在 C 语言中,将文件内部的位置指针重新指向一个流(数据流/文件)的开头的库函数是_______。 答案:B A.fgetc B.rewind C.fscanf D.fread 10. 若建立了以下链表结构,head,p,q 是指向结点的指针,以下_____组语句的功能是输出如下图所示的中间结点(数据为E 的结点)的数据项。 答案:B A.q = p; printf("%c",q->data); B.q = p->next; printf("%c",q->data); C.q = p; pr...