2010年上海市高等学校计算机等级考试试卷 二级 C语言程序设计 ( E 卷) (本试卷考试时间 120 分钟)
一、单选题 ( 本大题 15 道小题 ,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1. 以下C程序中预处理命令写法正确的是: 答案: D
A. #include (stdio.h) B. #include [stdio.h] C. #include {stdio.h} D. #include
2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。 答案: A A. a='&'; B. a=\C. a=' ' '; D. a='16' ;
3. 设有char ch; 与语句“ch=getchar();”等价的语句是: 答案:A. printf(\B. printf(\C. scanf(\D. scanf(\
4. int a=2, b=5;则表达式21%9/(float)a+4/b*b的运算结果为( )。 答案: C A. 2 B. 1 C. 1.5 D. 0
5. 能正确表示逻辑关系\或 a<=0\的C语言表达式是( )。 答案: C A. a>=10 or a<=0 B. a<=0|a>=10 C. a<=0||a>=10 D. a>=10 && a<=0
6. 设有int n=60;写出下列语句的运行结果 switch (n/10) {
case 6: printf(\ case 5: printf(\ default: printf(\ } 答案: D A. @#$ B. #$
D C. $ D. @
7. 设有int i; 以下语句中,循环次数为100次的语句是: 答案: D
A. for ( i=0; i<=100; i++ ) B. for ( i=0; i<99; i++ ) C. for ( i=1; i<99; i++ ) D. for ( i=0; i<100; i++ )
8. C程序中,用于提前结束本次循环、进行下一次循环的语句是( )。 答案: B A. break B. continue C. return D. exit
9. 若有数组定义语句:int t[3][2];则 t数组最后一个元素是: 答案: D A. t[3][2] B. t[2][3] C. t[2] D. t[2][1]
10. 设有定义int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 结果为7的表达式是: 答案: A A. *(p+2) B. *(p+3) C. *p+2 D. *p+3
11. char a[10];不能将字符串\存储在数组a中的是( )。 答案: C A. strcpy(a,\B. a[0]=0;strcat(a,\C. a=\
D. int i; for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
12. 设有下列函数原型和变量定义语句,则合法的函数调用语句是: int func( int a[], int n ); int a[10], n, x; 答案: B A. func( a, n ) = x; B. x = func( a, n ); C. x = func( a[], n ); D. x = func( a[10], n );
13. 若有以下定义,输出字母M的语句是: struct person {
char name[9];
int age; };
struct person st[10] =
{{\ 答案: D
A. printf(\B. printf(\C. printf(\D. printf(\
14. 需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是: 答案: B
A. fopen(\B. fopen(\C. fopen(\D. fopen(\
15. 假定建立了以下链表结构:struct node{
char id ; struct node *next; } *head,*p;
如下图所示:指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是【 】
答案: D
A. head=p->next; p=head; B. p->data=head; head=p; C. head=p->data; p=head; D. p->next=head; head=p;
二、程序填空题 ( 本大题 3 道小题 ,每空 2.5 分,共 30 分)。 1. 程序运行时输出如图所示的数字倒三角形 12345 123 1 源程序:
#include
int i,j;
____1____; for(i=1;i<=4;i++)
第 3 页 共 11 页