第I卷 选择题(共50分)
一、选择题(共25题,每题2分,共50分)
1. 以下正确的C语言常量是( )
A、0789 B、2e2.4 C、’abd’
D、’\t’
2. 下列变量定义中合法的是( )
A、short aL=5678; B、double b=l+5e2.5;
C、long do=0xfdaL; D、float 2_and=le-3;
3. 若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是( )
A、1 B、2.0 C、2 D、2.5
4. 设x和y为int型变量,表达式x+=y;y=x+y;x-=y;的功能是( )
A、把x和y按从小到大排列 B、把x和y按从大到小排列
C、无确定结果
D、交换x和y的值
5. 若x,y均定义为int 型,z定义为double型,以下不合法的scanf
函数调用语句是:( )
A.scanf(“%d, %x, %le”,&x,&y,&z);
B.scanf(“%2d%4d %lf”,&x,&y,&z);
C.scanf(“%d%d %lf”,&x,&y,&z);
D.scanf(“%x%o %6.2f”,&x,&y,&z);
6. 设有程序段:
int x=8;
while (x=0)
x=x-1;
则下列描述正确的是( )
A、while循环将执行10次 B、while循环将执行无限次
C、while循环将一次也不执行 D、while循环将执行1次
7. 以下程序的输出结果是( )
A、0 B、1 C、3 D、不确定值
main()
{ int x=10,y=3;
printf(“%d\n”,y=x/y);
}
8. 程序片段执行后输出结果是( )
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、编译出错
9. 设有:int a=3, b= 4, c= 5,x , y;
执行 !(x=a)&&(y=b)&&0表达式的值为( )
A、1 B、0
C、3 D、4
10. 设有语句
int a=3 ; 则执行了语句 a+ = a -
= a * a后,变量a
的值是( )。
A、3 B、0
C、9 D、-12
11. 以下叙述中不正确的是( )
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,abc和ABC是两个不同的变量
C、如果变量a和b的类型相同,在执行了赋值表达式a=b后,变量b的值改变为0
D、若变量a为int型变量,但赋值语句a=12.56是正确的
12. 表达式sizeof(double)是( )类型的表达式。
A、长整型 B、整型
C、双精度型 D、浮点型
13. 执行下列程序段后,结果为( )
n = 0;
while ( + + n < 4)
printf ( " % 2d", n);
A. 0 1 2 3
4 B. 0 1 2
3 C. 1 2
3 D. 1 2 3 4
14. 下面程序段:( )
x=3;
while (x>0)
{ if (x%3) printf(“#”); x--;}
A.
将输出## B. 将输出###
C.
将输出# D. 含有不合法的控制表达式
15. putchar函数可以向终端输出一个( )
A、整型变量表达式值 B、实型变量值
C、字符串 D、字符或字符变量值
16. 若以下变量均是整型,且num=sum=7, 则计算表达式sum=num++,sum++,++num
的值为:( )
A .
7 B. 8 C. 9 D. 10
17. c语言中的10110是一个()
A.二进制整数 B.八进制整数 C.十进制整数 D.十六进制整数
18. 为表示关系x>=y>=z,应使用C语言表达式:( )
A. (x>=y) &&
(y>=z) B: (x>=y) AND (y>=z)
C:
(x>=y>=z) D: (x>=y) & (y>=z)
19. 下面程序的输出结果是( )。
main(
)
{ int a,b,c
;
int x=5,y=10;
a=(- -y= =x++) ? - -y : ++x ;
b=y++ ;
c=x ;
printf(“a=%d ,b=%d ,c=%d ”,a,b,c ); }
A、a=6 , b=9 ,
c=7 B、a=6 , b=9 ,
c=6 C、a=7 , b=9 ,
c=6 D、a=7 , b=9 , c=7
20. 下面程序的 执行结果是( )。
main( )
{ int n=4 ;
while(n- -) printf(“%d”,- -n); }
A、2 0 B、3 1 C、3 2 1 D、2 1 0
21. 有如下程序
main()
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是( )
A.
6 B.
3 C. 死循环
D. 0
22. 有如下程序
main()
{ int x=23;
do
{ printf(“%d”,x--);}
while(!x);
}
该程序的执行结果是( )
A) 321
B)
23 C) 不输出任何内容
D) 陷入死循环
23. C语言中,对于由do…while语句构成的循环,以下说法正确的是( )。
A、不能由其他语句代替
B、无论循环条件是否满足,程序都至少执行一次循环
C、在某些情况下不能与while语句互换
D、“ do {语句;} while(表达式) ”书写格式正确无误
24. 设有程序段:
int x=11,y=3,z;
printf(“%d\n”,z=(x%y,x/y));
输出结果是( )
A.2 B.0 C.3 D.1
25. 分别输入5和6,程序运行结果正确的是( )
main()
{
int x;
scanf(“%d”,&x);
if(x-->5) printf(“%d”,x);
else printf(“%d”,x);
}
A.5 5 B.4 5 C.5 4 D.4 4
第二卷 非选择题 (共三大题,共50分)
二、填空题(共20空,每空1分,共20分)
1. C语言中的基本数据类型分为 整型 型, 实型 型和字符型.
2. 循环语句:for(i=-1;i<3;i++)printf(“!”);的循环次数是: 4 。
3. 将一个float类型的变量x强制转化为双精度浮点型的表达式是
(double)x)x 。
4. C语言提供的三种逻辑运算符是 && 、 || 和 ! 。
5. C语言中的三种基本程序结构是顺序结构、选择结构、循环结构。
6. 一个long型变量在内存中占4个字节。
7. 对于程序段for(a=1;a<=20;a++);退出循环时a的值为21。
8. 设int i=10;则执行j=++i;后j的值为11
9. 能表示一个整数i既是奇数又是3的倍数的表达式是i%2!=0&&i%3==0(或者i%@==1&&i%3==0)
10. 要在用户屏幕上显示“this is a
cat”(包括双引号),则对应的printf语句为printf("\"this is a
cat\"");
11. 逻辑表达式3&&-1||0的值为1
12. 将数学式100≤x≤120转换成C语言表达式为x>=100&&x<=120
13.
对应scanf("a=%d,b=%d",&a,&b);语句的输入a为3,b为7的键盘输入格式是a=3,b=7
14. C语言中三种常用的循环控制结构是for循环、do-while循环和while循环。
15. 以下程序段的输出结果是 11
int i=9;
printf("%o\n",i);
16. 已知字母A的ASCII码为65。以下程序运行后的输出结果是c。
main()
{ char a ;
a=’A’+’5’-’3’;
printf("%c \n", a );
}
三、看程序写结果(共5小题,每小题4分,共20分)
1. 以下程序在运行时,输入变量a的值为1,变量b的值为2,写出程序的运行结果:
main( )
{ int a, b, t=0;
scanf(“%d%d”,&a,
&b);
if
(a=2)
{t=a; a=b; b=t; }
printf
(“%d,%d\n”,a,b);
}
结果:2,2
2. main( )
{int i,sum=0;
for(i=1;i<6;i++)
sum+=i;
printf(“i=%d,sum=%d\n”,i ,sum);}
结果:i=6,sum=15
3. main()
{
int a=10,b=0;
do
{
b+=2;
a-=b+2;
printf(“a=%d,b=%d\n”,a,b);
}while(a>=0);
}
程序运行结果:
a=6,b=2
a=0,b=4
a=-8,b=6
4. 有如下程序
main()
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++
case 2: a++;b++
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是:a=2,b=1
5. #i nclude”stdio.h”
main()
{
char c;
while((c=getchar())!=’?’)
putchar(c++);
}
当如下程序输入为:“abc?efg”时,程序运行结果:abc
四、程序设计题(共10分)
1. 从键盘上输入10个整数,求这十个整数中的最大数和最小数。
main()
{int
n,max,min,i;
scanf("%d",&n);
max=min=n;
for(i=1;i<10;i++)
{if(n>max) max=n;
if(n
}
printf("max=%d,min=%d",max,min);
}
输入n值,打印下列高为n的直角三角形。
*
**
***
****
*****
main()
{ int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}