2009上海计算机二级c语言真题C2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2009-10-24上海市计算机二级考试(卷2)

单选题

1.若给定条件表达式(M)?(a++):(a--),则其中表达式M______

2.以下程序的运行结果是______

main( )

{ int n;

for( n=1; n<=10; n++ )

{

if ( n%3==0 ) continue;

printf( "%d",n );

}

}

3.若变量已正确定义, 且x的值是1, y的值是2, z的值是3,计算表达式(x=y==z ) 后各变量的值为________

4.已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为____ char a='a';

a--;

printf( "%d,%c\n", a+2, a+3 );

5.若有

char s1[]="abc", s2[20], *t=s2;

gets(t);

则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是______

6. C语言中的标识符只能由字母、数字和下划线组成且第一个字符_____

7.以下程序段的输出结果为_______

for ( i=4; i>1; i-- )

for ( j=1; j

putchar( '#' );

8.执行以下程序段时,不可能出现的运行结果是________

int x;

scanf( "%d", &x );

if ( x>250 ) putchar('X');

if ( x<250 ) putchar('Y');

else putchar('X');

9.若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是________

10. while循环称为当型循环,其特点是______

填空题

1.设int a=3,b=4,c=5; 则a*a+b*b==c*c的结果为__________

2.表达式strlen (“C2009”) 的值是______

3.假定建立了下图所示的链表结构,指针p、q分别指向如图所示的结点,则将q所指结点从链表中删除的C语句是__________

4.与下列语句等价的条件表达式语句是_______

switch ( x!=0 )

{

case 0: y=1; break;

case 1: y=-1;

}

5.设有下述描述学生信息的结构定义及变量说明,则使学生变量s 的出身年份为1990的赋值语句是___________

struct date

{ int year; /* 年 */

int month; /* 月 */

int day; /* 日 */

};

struct student

{ int no; /* 学号 */

char *name; /* 姓名 */

char sex; /* 性别 */

struct date birth;/* 出身年月日 */

} s;

6.设a,b,c为整型变量,写出表达式:当a比b、c都大时结果为真__________

7.设a=2,b=3,x=3.5,y=2.5,表达式(float)(a+b)/2+(int)x%2/4 的值为________

程序填空

1.下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如: 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3. 如输入:400

则输出:1 153 370 371

#include

void main()

{

int n, digit, k, m, s;

scanf( "%d", &n );

for ( k=1; ____(1)____; k++ )

{

s = 0;

m = k;

while ( m != 0 )

{

digit = ____(2)____;

s = s + digit*digit*digit;

m = m/10;

}

if ( ____(3)____ )

printf( "%d ", s );

}

}

2. 以下函数 int sum(int x[], int num)计算数组x前num个元素之和。在主函数中,输入10个任意整数和下标index1、index2的值(设

1<=index1<=index2<=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。

如输入:

1 3

2 5 7 9 6 4 8 10

2 4

则输出:Sum=14

例示说明:下标从2至4的元素为2、5、7,其累加为14

源程序:

#include

int sum( int x[], int num )

{

int i, s=0;

for ( i=0; ____(1)____; i++ )

s = ____(2)____;

return s;

}

void main()

{

int i, index1, index2, result;

int x[10];

for ( i=0; i<10; i++ )

scanf( "%d", &x[i] );

scanf( "%d%d", &index1, &index2 );

result = sum( x+index1, ____(3)____ );

printf( "Sum=%d\n", result );

}

3.以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩(学生已按学号从小到大排序),从键盘上输入一个新学生的信息,按学号顺序将数据插入到学生表中,并生成新的文本文件“studentC.txt”。文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101 Zhao 95 58

103 Qian 75 81

105 Sun 99 91

相关文档
最新文档