C语言考试试题精选.doc
- 格式:doc
- 大小:67.00 KB
- 文档页数:9
习题1
一、选择题:
1. 按照C语言规定的用户标识符命名规则,不能出现在标
识符中的是(B)
A. 大写字母
B. 连接符
C. 数字字符
D. 下划线
2. 下列数据中是合法的整型常量的是 (BCDEF )
A. 3E2 B. -32768 C. 18)000
D. Oxffff E. 029 F. 0xl2H
3. 下列数据中是合法的字符常量的是 (BEH)
A. “A” B. '!' C. 'AB'
D. h E. '\\' F. "\1234‘
G. '\xl23' H. '\0' I. '\k'
4. 设有定义:intk=0;,以下选项的四个表达式中与其他
三个表达式的值不相同的是 (A )
A. k++ B. k+=l C. ++k D. k+1
5. 有以下程序,其中%11表示按无符号整数输出
main ()
(unsigned int x二OxFFFF; /* x的初值为十六进制 数*/
printf ( "%u\n" , x);
}
程序运行后的输出结果是 (B)
A. -1 B. 65535 C. 32767 D. OxFFFF
6. 设变量x和y均已正确定义并赋值,以下if语句中,在
编译时将产生错误信息的是 (C )
A. if (x++) ;
B.
if(x>y&&y!二0);
C. if (x>y) x一 else y++; D. if (y<0) (;} else x++;
7. 以下选项中,当x为大于1的奇数时,值为0的表达式 (D )
A. x%2=l B. x/2 C. x%2!二0
D.
x%2=0
8. 已知大写字母'A,的ASCII码值是65,小写字母'a' 的ASCII码值是97,以下不能将变量c中大写字母转换为对
应小写字母的语句是 (D )
A. c=(c-A)%26+'a' B. c二c+32
C. c=c~ A' +' a' D. c=('A' +c) %26—'
a'
9. 有以下程序
void main ()
(unsigned char a二2, b二4, c二5, d;
d二a|b; d&二c; printf(〃%d\n〃, d); }
程序运行后的输出结果是(B )
A. 3 B. 4 C. 5 D. 6
二、 填空题:
1. 设x=2. 5, a=7, y二4. 7,则x+a%3*(int) (x+y)%2/4的值
为_2. 5 o
2. 设 a=2 , b二3 , x二3.5 , y二2.5 ,则
(float) (a+b) /2+ (int) x%(int) y 的值为_3. 500000 ________________________________________________
。
3. 设a=12, n二5,则计算了表达式a%二(n%二2)后,a的值
为—0 ,计算了表达式a+二a-二a*=a后,a的值为_0 。
4. 设a二3, b=4, c=5,计算下面各表达式的值:
(1) a+b>c&&b=c 0 (2) a| |b+c&&b~c 1
(3) ! (a>b)&&!c| |1 1 (4) ! (x=a)&&(y=b)&&0 0
(5) !(a+b)+c-l&&b+c/2 1
三、 写出下面程序运行后的结果。
1. #include "stdio.h"
void main()
{
int a,b;
a=077;
b=a&3;
printf("\40: The a & b(decimal) is %d \n",b);
b&=7;
printf("\40: The a & b(decimal) is %d \n",b); }
:The a & b(decimal) is %3
:The a & b(decimal) is %3
2. #include
void main()
( int
i=8; j=10;
m=++i;
n=j++;
printf(”%d,%d,%d,%d”,i,j,m,n);
}
9,11,9,10
3. #include void main()
( charcl='a',c2=,b',c3=,c',c4=,\10r,c5=,\116,;
printf("a%cb%c\tc%c\tabc\nn,cl,c2,c3);
printf(n\t\b%c %c”,c4,c5);
)
aabb cc abc
AN
4. #include "stdio.h"
void main()
{
int a,b;
a=077;
b=al3;
printf(n\40: The a & b(decimal) is %d \n",b);
bl=7;
printf("\40: The a & b(decimal) is %d \n",b);
}
:The a & b(decimal) is %63
:The a & b(decimal) is %63
5. #include "stdio.h"
void main()
{
int a,b;
a=077;
b=aA3;
printf("\40: The a & b(decimal) is %d \n",b);
bA=7;
printf("\40: The a & b(decimal) is %d \n",b);
:The a & b(decimal) is %60
:The a & b(decimal) is %59
习题2
一、看程序,写运行结果
1. 以下程序运行结果是(2 )。
#include
void main()
{
int x=2,y=-l,z=2;
if(x
if(y<0) z=0; else z+=l;
printf("%d\n",z); }
2. 以下程序的执行结果是(20 )o
#include< stdio. h>
void main()
(
int a,b,c,d,x;
a=c=0;
b=l;
d=20;
if(a) d=d-10;
if(!c)
x=15;
else
x=25;
printf("d=%d\nn,d);
}
3. 以下程序的执行结果是(first
third) o
#include
void main()
(
int x=l,y=0;
switch(x)
{
case 1:
switch(y)
(
case O:printf(”first\n”);break;
case 1:printf(nsecond\nn);break;
}
case 2:printf(nthird\nn);
}
4. 以下程序在输入5, 2之后的执行结果是(s=2,t=3)。
#include
void main()
{
int s,t,a,b;
scanf("%d,%dn,&a,&b);
s=l;
t=l;
if(a>0) s=s+l;
if(a>b) t=s+t;
else if(a==b) t=5;
else
t=2*s;
printf("s=%d,t=%d\n",s,t);
)
5. 以下程序的执行结果是(#&)。
#include
void main()
{
int a=2,b=7,c=5;
switch(a>0)
(
case l:switch(b<0)
{
case 1:printf(" @ ");break;
case 2:printf("!");break;
}
case 0:switch(c==5)
(
case O:printf("*");break;
case 1:printf(n#H);break;
case 2:printf("$");break;
}
default: printf(" & ”);
}
printfC,\nH);
)
6. 以下程序运行结果是(55 1 )o
#include
void main()int x,y=l;
if(y!=O) x=5;
printf(”\t%d\iT ,x);
if(y==O) x=4;
else x=5;
printf(n\t%d\nn ,x);
x=l;
if(y
if(y>0) x=4;
else x=5;
printf(H\t%d\nn ,x);
)
7. 以下程序的运行结果是(4 -2
4 0
4 -2 )
#include
void main()
{
int x , y=-2, z=0;
if((z=y)<0) x=4;
else if (y==0)
x=5;
else
x=6;
printf("\t%d\t%d\n" ,x, z);
if(z=(y==O))
x=5;
x=4;
printf("\t%d\t%d\n" ,x,z);
if(x=z=y) x=4;
printf("\t%d\t%d\n" ,x,z);
)
二、程序填空。
1. 输入两个整数,按从大到小的顺序输出。
#include
void main()
{
int x,y,z;
scanf(”%d,%d”,&x,&y);
if( xvy)
(
z=x; x=y;y=z _________
)