上海市高等学校计算机等级考试试卷二级C语言程序设计( B 卷)
- 格式:docx
- 大小:27.69 KB
- 文档页数:7
上海市高等学校计算机等级考试试卷
二级 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. [0]
B. s->name[0]
C. [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("k=%ld\n", k);
}
7. 假定建立了以下链表结构:struct node{
int id ;
struct node *next;
} *head,*p;
如图6-11所示:指针p指向一个新结点,将新结点插入到链表中的两条C语言语句是【】
图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()