2009上海计算机二级c语言真题C2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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