C语言考试卷。。。请教各位大仙!!

16. 与 y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是(3分)

A、if(x > 0) y=1;
else if(x < 0) y=-1;
else y=0;
B、if(x)
if(x > 0) y=1;
else if(x < 0) y=-1;
else y=0;
C、y=-1
if(x) y=1;
else if(x==0) y=0;
else y=-1;
D、y=0
if(x > -0)
if(x > 0) y=1;
else y=-1;

17. 若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是
#include < stdio.h >
main()
{char c;
int v0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case 'a':case 'A':
case 'e':case 'E':
case 'i':case 'I':
case 'o':case 'O':
case 'u':case 'U':v1+=1;
default:v0+=1;v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}

A、v0=7,v1=4,v2=7
B、v0=8,v1=4,v2=8
C、v0=11,v1=4,v2=11
D、v0=12,v1=4,v2=12

18. 下列关于switch语句和break语句的结论中,正确的是( )。(3分)

A、-1 1
B、0 1
C、1 0
D、0 0

19. 有如下程序
main0
{ 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、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2
20. 对下述程序,( )是正确的判断。
#include
main()
{
int x,y;
scanf(”%d,%d”,&x,&y);
if(x>y)
x=y;y=x;
else
x++:y++;
printf(”%d,%d”,x,y);
}

A、有语法错误,不能通过编译
B、若输入数据4和3,则输出3和4
C、若输人数据3和4,则输出4和5
D、若输入数据4和3,则输出4和4

21. 当a=1、b=3、c=5、d:5时,执行下面的程序段后,x的值为( )。
if(a
if(c
else
if(a
if(b
else x:3;
else x=6;
else x=7;(3分)

A、2,1
B、3,2
C、4,3
D、2,-1

22. 若执行下面的程序从键盘输入3和4,则输出是_______
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if (a < b) s=b;
s=s*s;
printf("%d\n",s);
}(3分)

A、14
B、16
C、18
D、20

23. 请阅读以下程序:
main( )
{
int a=5,b=0,c=0;
if(a==b+c) printf("***\n");
else printf("$$$\n");
}
以上程序

A、有语法错不能通过编译
B、可以通过编译但不能通过连接
C、输出***
D、输出$$$

24. 为了避免在嵌套的条件语句if…else中产生二义性,C语言规定:else子句总是与( )配对。(3分)

A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符

C、赋值运算符<逻辑与运算符<关系运算符<算术运算符

D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
25. 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。

A、其上面距它最近的,并且没有其他else与其配对的if相配对
B、在同一行上的if
C、缩排位置相同的if
D、在其之前未配对的if
27. 读下列程序:
#include
main()
{
float a,b,t;
scanf(”%f,%f”,&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
prinff(”%5.2f,%5.2f'’,a,b);
}
运行时从键盘输入3.8和-3.4,则正确的输出结果是(
A、-3.40,-3.80
B、-3.40,3.80
C、-3.4,3.8
D、3.80,-3.40

28.#include
main()
{ int x:
scanf(”%d”,&x);
if(x--<5)prinff(”%d”,x);
else printf(”%d”,x++);
}
程序运行后,如果从键盘输入5,则输出结果是( )
A、3
B、4
C、5
D、6

29.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是
if(a < b)
if(c < d) x=1;
else
if(a < c)
if(b < d) x=2;
else x=3;
else x=6;
else x=7;
A、1
B、2
C、3
D、6
35.简答题: 编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天.(3分)

36.简答题: 编写程序,输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

第1个回答  2010-05-19
16 A 17 D 19 C 20 C
22 B 23 D 24 C 25 A
27 B 28 B 29 C

35 题:
#include"stdio.h"
main()
{ int year,mon;
scanf("%d%d",&year,&mon);
switch(mon)
{ case 1:case 3: case 5: case 7:case 8: case 10: case 12: printf("%d",31);break;
case 4:case 6: case 9: case 11: printf("%d",30);break;
case 2:
if(year%4==0 && year%100!=0 || year%400==0) printf("%d",29);
else printf("%d",28);
}
}

36 题:

#include "stdio.h"
#include "conio.h"
main()
{
long g,s,q,w,x;
scanf("%ld",&x);
w=x/10000;
q=x%10000/1000;
s=x%100/10;
g=x%10;
if(g==w&&s==q)/*个位等于万位并且十位等于千位*/
printf("它是回文数\n");
else
printf("它不是回文数\n");
getch();
}本回答被提问者采纳
第2个回答  2010-05-19
追加100分我会考虑的
先送你两个吧

第一题是A、、、

第二题也是A
第3个回答  2010-05-19
这么多啊。。。。
第4个回答  2010-05-18
0分。。。。。。。。。。。。。。。。。。。。。谁帮你谁脑子有毛病。