本卷共有4道大题:
一、单项选择题(20道小题,共40分)
1、在C语言中,用户能使用的正确标识符是( )。(2分)
A、5f B、_5f
C、struct D、_f.5
2、下面不是C语言合法标识符的是( )。 (2分)
A、fine5 B、&i
C、_score D、flag
3、以下不合法的字符常量是( )。(2分)
A、"\n"B、'a'
C、'\123' D、'\n'
4、以下选项中,当x为大于1的奇数时,值为0的表达式( )。 (2分)
A、x%2==1 B、x/2
C、x%2!=0 D、x%2==0
5、下列能正确表示a≥10或a≤0的关系表达式是( )。 (2分)
A、a>=10 or a<=0 B、a<=10 || a>=0
C、a>=10 || a<=0 D、a>=10 && a<=0
6、在循环结构的循环体中执行break语句,其作用是( )。(2分)
A、结束本次循环,进行下次循环 B、继续执行break语句之后的循环体中各语句
C、跳出该循环体,提前结束循环 D、终止程序运行
7、若有如下定义变量:int K=7,X=12;则能使值为3的表达式是( )。(2分)
A、X%=(K%=5) B、X%=(K-K%5)
C、X%=K-K%5 D、(X%=K)-(K%=5)
8、在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。(2分)
A、a<>0 B、!a
C、a=0 D、a
9、表达式"0?(0?3:2):(10?1:0)"的值为( )。(2分)
A、3 B、2
C、1 D、0
10、对以下for循环:for(x=0,y=0;(y!=123)&&(x<4);x++,y++;叙述正确的是( )。(2分)
A、是无限循环 B、循环次数不定
C、执行了4次 D、执行了3次
11、若已定义a=8,b=2则表达式a||b&&(a-b*4)的运行结果是( )。(2分)
A、8 B、1
C、0 D、2
12、在以下运算符中,优先级最高的运算符是( )。(2分)
A、<= B、/
C、!= D、&&
13、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( )。(2分)
A、1 B、2
C、3 D、4
14、对for(表达式1;;表达式3)可理解为( )。(2分)
A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)
C、for(表达式1; 表达式1;表达式3)D、for(表达式1; 表达式3;表达式3)
15、C语言源程序名的后缀是( )。(2分)
A、.exe B、.c
C、.obj D、.cp
16、以下正确的是( )。(2分)
A、do-while语句构成的循环不能用其它语句构成的循环来代替B、do-while语句构成的循环只能用break语句退出
C、用do-while语句构成循环时,只有在while后的表达式非零时结束循环D、用do-while语句构成循环时,只有在while后的表达式为零时结束循环
17、在C语言中,要求运算对象必须是整数的运算符是( )。(2分)
A、% B、/
C、< D、1
18、若变量c为char类型,能正确判断出c为小写字母的表达式是( )。 (2分)
A、'a'<=c<='z' B、(c>='a')||(c<='z')
C、('a'<=C)and('z'>=C) D、(c>='a')&&(c<='z')
19、以下叙述中正确的是( )。(2分)
A、C语言程序将从源程序中第一个函数开始执行B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D、main可作为用户标识符,用以命名任意一个函数作为主函数
20、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。 (2分)
A、-3 B、9
C、-12 D、6
二、填空题(13道小题,共26分)
1、是C程序的主要组成部分。
(2分)
2、设y为int型变量,请写出描述"y是奇数"的表达式。
(2分)
3、在变量说明中给同类变量赋初值时,各变量之间用隔开。
(2分)
4、赋值语句是由赋值表达式加上构成的。
(2分)
5、若a=1,b=2则表达式a<b?a:b+1的值是。
(2分)
6、已知: int a=1,b=1,c=1;执行完表达式c=++a&&b++后,变量b的值是。
(2分)
7、以下程序的功能是求10个数中的正整数之和,请补全程序。
#include "stdio.h"
main()
{int s=0,i,j;
for(i=0;i<=10;i++)
{scanf("%d",&j);
if(j<=0)
;
s+=j;}
printf("和=%4d",s);
}
(2分)
8、计算sum=1+1/2+1/4+...+1/50的值,并显示出来。
#include<stdio.h>
main()
{ int i=2; float sum=1.0;
while(i<=50)
{sum+=1/;i+=2;}
printf("sum=%f\n",sum);
}
(2分)
9、执行下面程序段后,k的值是。
k=1;
n=263;
do
{
k*=n%10;
n=n/10;
}
while(n);
(2分)
10、有int x,y,z;且x=3.2,y=4.2,z=2,则表达式z=(x+y)/z的值为。
(2分)
11、若k为int整型变量且赋值7,x为double型变量且赋值8.4,赋值表达式k=x的运算结果是。
(2分)
12、使用getchar()函数前必须包含头文件。
(2分)
13、由顺序、选择、循环三种基本结构构成的程序叫 程序。
(2分)
三、简答题(6道小题,共24分)
1、下列程序的运行结果是什么?
main()
{int y=10;
while(y- -); printf("y=%d\n",y);
}
(4分)
2、有以下程序,执行后输出结果是什么?
main( )
{ int i;
for ( i=0; i<3; i++ )
switch ( i )
{ case 1 : printf("%d ", i);
case 2 : printf("%d ", i);
default : printf("%d ", i);
}
}
(4分)
3、如下程序的执行结果是什么?
main()
{ int i,sum=0;
for(i=1;i<=3;sum++)
sum+=i;
printf("%d\n",sum);
}
(4分)
4、有以下程序,执行后输出结果是什么?
main()
{ int i=0,s=0;
do
{
if (i%2)
{
i++;
continue;
}
i++;
s += i;
}
while( i<7 );
printf("%d\n", s);
}
(4分)
5、以下程序的输出结果是什么?
void main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{
if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf("%d\n",a);
}
(4分)
6、以下程序的输出结果是什么?
#include<stdio.h>
int main()
{int m=5;
if(m++>5)
printf("%d",m);
else
printf("%d",m--);
return 0;
}
(4分)
四、编程题(2道小题,共10分)
1、编程判断输入的一个正整数是否既是5的又是7的倍数,若是则输出YES,否则输出NO。
(5分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者
2、打印出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数。因为:153=1^3+5^3+3^3 。
(5分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者