内容正文:
一、 选择题(共28题)
1. 关于C语言,下列说法正确的是( )
A.所有函数名都可以由用户命名
B.在C语言中调用库函数时应包含对应的头文件
C.使用C语言编译时不检查语法
D.使用C语言编译时没有错误,则程序的运行结果一定正确
2. 仔细阅读下列C语言程序,指出程序的输出结果( )
# define N 5
#define U N+1
main( )
{
int x=U*2*U/2;
printf("%d" ,x);
}
A.15 B.36 C.60 D.16
3. 以下定义中错误的是( )
A.#define_abc 30
B.#define pi 3.1415
C.#define num1000
D.#define name clinton
4. 有以下程序
#define f(x )x*x
main()
{ int i;
i=f(4+4)/f(2+2);
printf(“%d
”,i);}
执行后输出结果是( )
A.28 B.22 C.16 D.4
5. 下列选项中,不正确的C程序语句是( )
A.a=b=5; B.; C.a=5,b=6 D.{c=a+b;}
6. 以下选项中,不正确的C语言字符型常量是( )
A.‘a’ B.‘\x41’ C.‘∖101’ D."a"
7. C语言中较为简单的数据类型包括( )
A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型
8. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a和b的是( )
A.c=b=a;
B.(a=c)||(b=c):
C.(a=c)&&(b=c) ;
D.a=c=b;
9. 如果a=3,b=2,c=l,则表达式的值为0的是( )
A.a>b B.(a>b)== c C.b + c D.c=a+b
10. 有如下程序
main( )
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y= 1.0/x;
else y= 1.0 ;
Printf(" %f",y);
}
该程序的输出结果是( )
A.0.000000 B.0.250000 C.0.500000 D.1.000000
11. 有下列程序段:
int a= 1, b=2, c= 3, u ;
u=(a=2)? a+b:b+c;执行该语句后u的值为( )
A.0 B.3 C.4 D.5
12. (2019年春季高考试题)以下程序段的运行结果是( )
int i;
for(i=0;i<=3;i++)
switch(i)
{case 1:printf("%d",i);break;
case 2:printf("%d",i):break;
default:printf("%d",++i);}
A.012 B.023 C.123 D.124
13. 在C语言程序中,下列选项中不合法的整型常量是( )
A.-123 B.078 C.0XABC D.999
14. (2019年春季高考试题)以下C语言标识符合法的是( )
A.-5x B.name_1 C.bow-1 D.#23
15. 以下程序的运行结果是
# include
main()
{ int m=5, n=10,s;
s=m;
s=s*n;
printf(“%d”,s);}
A.0 B.5 C.50 D.10
16. 运行完下列程序后,在屏幕上的内容是( )
main( )
{int a=0;
A+=(a=β);
printf (“%d",a);
}
A.0 B.6 C.12 D.24
17. 设a和b均为double型变量,且a=5.5、b=2.5 ,则表达式(int)a+b/b的值是
A.6.500000 B.6 C.5.500000 D.6.000000
18. int a=0x41 ;
char c;
c=a;
printf( " %d, %c
" ,c,c);
65,A
B. 66,B
C. 48,0
D.49,1
19. 表达式18/4*sqrt(4.0)/8值的数据类型为( )
A.int B.float C.double D.不确定
20. 若有表达式|x3+1og(x)|,则正确的C语言表达式是( )
A.fabs(x* 3+log(x))
B.fabs(pow(x,3.0)+log(x))
C.abs(pow(x,3.0)+log(x))
D.abs(x*3+log(x))
21. 下面程序的运行结果是( )
main( )
{ int s=0 ,i=1 ;
while (s<=10)
{ s=s + i * i;
i+ + ;
}
printf( " %d”, - -i);
}
A.4 B.3 C.5 D.6
22. 设有定义语句”int x=10,y=3,z;”,则语句,”pringf(“%d”,z=(x%y,x/y));”的输出结果是( )
A.1 B.0 C.4 D.3
23. 以下程序运行后的输出结果是( )
# include
main( )
{ int s=0,k;
for(k=7 ;k>=0;k - -)
{
switch(k) {
case 1:
case 4:
case 7: s+ + ;break;
case 2:
case 3:
case 6: break;
case 0 :
case 5 : s+=2 ; break ;}
}
printf("s= %d
" ,s);
}
A.s=5 B.s= 1 C.s=3 D.s=7
24. 以下程序运行后的输出结果是( )
# include
main( )
{ int i,j;
for(i=4 ;i>=1 ;i--)
{
printf("*");
for(j=1 ;j<=4-i;j + +)
printf("*");
printf("∖n" );
}
A.
B.
C.
D.
25. 在执行以下程序时,如果从键盘上输入“ABCde”,则输出为( )
# include
main( )
{ char ch;
while ((ch=getchar( ))! ='
')
{ if (ch>='A' && ch<=,Z,) ch=ch + 32;
else if(ch>='a' && ch<'z') ch=ch- 32;
printf("%c" ,ch);
}
printf( "
");
}
A.ABCdef B.abcDEF C.abc D.DEF
26. 以下程序的输出结果为( )
main( )
{int i=010 ,j=10 ;
Printf (" %d, %d”, + +i,j );}
A.ll,10 B.9,10 C.011,9 D.10,9
27. 下面程序的输出结果是( )
main( )
{ int x=10,y=10,i;
for(i=0;x>8;y= + + i)
printf("%d %d”,x--,y);
}
A.10 1 9 2 B.9 8 7 6 C.10 9 9 0 D.10 10 9 1
28. 以下程序的运行结果是( )
main( )
{int i= 1, sum=0 ;
while(i<10)
sum=sum+1 ;
i++;
printf( "i=%d,sum= %d " ,i,sum);
}
A.i =10,sum=9 B.i =9,sum=9 C.i=2,sum=1 D.运行出现错误
二、 案例分析题(共3题)
29. 下面程序的运行结果是________。
#define PT 5.5
#define S(x) PT*x*x
main()
{ inta=1,b=2;
printf(“%4.1f”,S(a+b));}
30. 请分析以下程序,并回答标号所示程序语句的功能。
int mul(int x,int y)①
{
int z;
z=x * y;②
return z;
}
main( )
{
int a,b,c;
scanf (" %d, %d",&a,&b);③
c=mul(a,b);④
printf( "mul= %d" ,c);⑤
getchar( );
}
(1)叙述①标号所示程序语句的功能。
(2)叙述②标号所示程序语句的功能。
(3)叙述③标号所示程序语句的功能。
(4)叙述④标号所示程序语句的功能。
(5)叙述⑤标号所示程序语句的功能。
31. 下列程序的主要功能是输入n值,输出高度为n的等腰三角形。例如当n=4时的图形如下:
# include
main( )
{int i,j ,n;
① / *输入n */
for(i= 0;i< n;++ i)
{
for(j= n-1;②j- -)/*打印行前的空格*/
③
for(j= 0;j<④ j++ )
⑤
printf( "
");
}
getch( );
}
程序中①②③④⑤处的横线填写的内容为:
三、 编程题(共2题)
32. 根据考试成绩的等级(A、B、C、D).分别输出“优秀”、“良好”、“及格”、“不及格”等评语。
33. 从键盘上输出一个4位的整数,反序输出。例如:输入1234,输出4321o
四、 综合应用题(共1题)
34. 请编写程序,输入三角形的三边长,求三角形面积,保留两位小数。
注:先判断输入的三边长a、b、c能否构成三角形,已知求三角形面积的公式为:
area=,其中 s=(a+b+c)∕2o
五、 程序分析题(共2题)
35. 从键盘上输入一个字符,输出它的ASCII码。
#include ______ 1______
main( )
{ ______ 2 ______ ch;
printf("请输入一个字符:");
scanf(" ______ 3 ______ ".______ 4______ );
printf("字符为______ 5______ ,它的ASCII码为 ______ 6______ ".______ 7______ );}
36. 写出以下程序的执行结果
#include
main( ){
int a=10;
printf("%d",(a++,a+4));}
答案:
六、 简答题(共3题)
37. C语言有哪些常用的数据类型?
38. 将12分别转换成二进制、八进制、十六进制;并将00100101、023、0x2a转换成十进制。
39. 求short型11和-11的补码。
参考答案及解析
一、 选择题
1. 【答案】B
2. 【答案】A
3. 【答案】C
4. 【答案】A
5. 【答案】C
6. 【答案】D
7. 【答案】B
8. 【答案】C
9. 【答案】C
10. 【答案】C
11. 【答案】C
12. 【答案】D
13. 【答案】B
14. 【答案】B
15. 【答案】C
16. 【答案】C
17. 【答案】D
18. 【答案】A
19. 【答案】C
20. 【答案】B
21. 【答案】B
22. 【答案】D
23. 【答案】D
24. 【答案】A
25. 【答案】B
26. 【答案】B
27. 【答案】D
28. 【答案】B
二、 案例分析题
29. 【答案】9.5。S(a+b)宏展开为PT*a+b*a+b.
30. 【答案】(1)①子函数mul的函数原型,定义了函数名:mul;参数χ,y均为整数;函数返回值为整数。
(2)②将x和y的积赋给z。
(3)③通过键盘输入两个正整数,以逗号隔开,分别赋给变量a和b。
(4)④调用子函数mul,将函数返回值赋给变量c。
(5)⑤输出两个数的积。
31. 【答案】①scanf( " %d",&n);
②j>i;
③printf("");
④2* i+1;
⑤printf(" * ") ?
三、 编程题
32. 【答案】include
{main()
char grade;
printf("请输入成绩等级(A、B、C、D)");
grade=getchar();
switch(grade)
{
case'A': printf("优秀
");break;
case'B': printf("良好
"); break ;
case'C': printf("及格
"); break;
default: printf("不及格
");
}}
33. 【答案】
# include
main( )
{ int num, a , b , c , d;
printf(“请输入一个四位数的正整数:”);
scanf(" %d” , &num);
a=num% 10 ;
b=num%100/10;
c=num %1000/100 ;
d=num/1000;
printf("逆序输出为:%d%d%d%d\a,b.c,d);
}
四、 综合应用题
34. 【答案】# include∙
# include
main( )
{
float a, b, c, s, area;
printf("依次输入a,b,c(空格识别一个数):”);
scanf(" %f%f%f, ”,&a, &b, &c);
if( a+b>c& & a+c>b & &b+c>a)
{ s= (a+b+c)∕2;
area=sqrt(s * (s -a) * (s-b) * (s -c));
prirnf("这个三角形的面积为:%.2f
" ,area);
}
elseprintf("你输入的三个数不能构成三角形,请重新输入
”); }
五、 程序分析题
35. 【答案】(1)(2)char(3)%c(4)&ch(5)%c(6)%d(7)ch,ch
36. 【答案】15
六、 简答题
37. 【答案】整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
38. 【答案】12(2)=0000 1100
12(8)=14
12(16)=C
00100101(10)=1*20+1*22+1*25=37
023(10)=3*80+2*81=18
0x2a(10)=10*160+2*161=42
39. 【答案】11为正数,补码就是原码。为:II0I 0000 0000 0000
-11补码:先求反码为:1111 1111 11110100
反码加1为原码:1111 1111 11110101
学科网(北京)股份有限公司
$$