上海市高等学校计算机等级考试试卷二级C语言程序设计( B 卷) 下载本文

上海市高等学校计算机等级考试试卷 二级 C语言程序设计 ( B 卷)

一、单选题

1. 下列C语言的标识符中,不合法的标识符为____________ A. star B. 1234 C. _a100 D. circuit9

2. 若已定义: int x=10;

则表达式 x=(4*5,x*5,x+25) 的值是 ______ 。 A. 20 B. 45 C. 125 D. 35

3. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“%d, %f”,&x,&y,); 时,正确的键盘输入是 ______ 。 A. 55,55.5↙ B. x=55, y=55.5↙ C. 55↙55.5↙ D. x=55↙y=55.5↙

4. 若有说明语句:int x=25,y=20,z=30;

则执行语句:if(x>y) {y=z; z=x;} x=y; printf(“%d,%d,%d”,x,y,z); 后,输出是____________ A. 25,20,30 B. 30,30,25 C. 25,30,30 D. 25,30,25

5. 程序段:int num=2; while(num)

printf(“%d ,”,num--);

的运行结果是_______________ A. 2,1, B. 2,1 C. 2,1,0 D. 2,1,0,

6. 若有说明:int a[3][4],s;则对数组a的元素引用正确的是____________ A. s=0; for(i=0;i<=3;i++) for(j=0;j<4;j++) s+=a[i][j]; B. s=0; for(j=0;j<=4;j++) for(i=0;i<3;i++) s+=a[i][j]; C. s=0; for(i=0;i<4;i++) for(j=0;j<=3;j++) s+=a[j][i]; D. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[i][j];

7. 如果形参获取实参的地址,则____________作为函数调用时的实参。 A. 数组名

B. 全局量

C. 数组中全部元素的值 D. 数组中的元素个数

8. 若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是____________ A. i==*pi B. *pi ==*&j C. i==&j D. i==**pi

9. 若有定义:struct person{ int id ; char name[20]; } per,*s=&per;

则以下对结构体成员的引用中正确的____________ A. per.name[0] B. s->name[0] C. per.name[8] D. per.id

10. 若有以下语句:char x=5,y=9,z; z=(y|x)<<2; 则z的二进制值是________________ A. 00011011 B. 00001010 C. 00110100 D. 00001100 二、填空题

1. 设有说明语句:int a=15, b=6; 则a/b的十进制数值为________

2. 设有说明语句:int x=3, y=2; 则计算表达式(x=0)&& (y=6*x) 后变量y的值是_____________

3. 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1||b+c/2后,t的值是_____________

4. 定义函数时,将其类型定义为void 则表示所定义的函数返回值为____________. 5. 下列程序的输出结果是________________ f(int a[]) { int i=0;

while (a[i]<=10)

{ printf(“%d ”, a[i]); i++; } }

main()

{ int a[]={8,4,10,11,9,20}; f(a);

}

6. 下列程序的输出结果是______________ long fib(int g) { switch(g){

case 0: return(0); case 1:

case 2: return(2); }

return ( fib(g-1) + fib(g-2) ); } main()

{ long k; k = fib(5);

printf(\}

7. 假定建立了以下链表结构:struct node{

int id ;

struct node *next; } *head,*p;

如图6-11所示:指针p指向一个新结点,将新结点插入到链表中的两条C语言语句是【 】 hea 插入P后的链表 7 2 2 9 p

图6-11 新结点插入到链表

三、程序填空题 ( 本大题 3 道小题 ,每空 3 分,共 30 分)。 1. 下列程序的功能是:计算机给出10个不大于31的正整数让人猜,并根据猜中的情况统计总得分后输出。具体规则如下:

(1) 计算机每给出一个要猜的数最多允许中5次,第一次猜对得10分,第二次猜对得8分,第三次猜对得6分,第四次猜对得4分,最后一次猜对得2分,否则不得分。 (2) 若人猜的数太小,计算机给出提示“too small !”;若人猜的数太大,计算机给出提示“too large !”;若人猜对这个数,计算机给出提示“right !”, 并给出下一个数继续让人猜;若一个数已经猜了5次都猜错,计算机给出提示“out of time !”,也给出下一个数继续让人猜。直至猜完10个数。

下面是人猜一个数的过程,有下划线的部分是人猜的数:(假设机器产生的随机数为9) 请输入你猜测的数y= 16 too large !

请输入你猜测的数y= 4 too small !

请输入你猜测的数y= 9

right ! (本题是第三次猜对,得6分)

#include #include void main()