一、 选择题:(每题3分,共60分)
1、C语言提供合法的数据类型关键字是( d )
A) double B)short C)integer D)Char
2、下列不属于字符型常量的是(b )
A)‘A’ B)“B” C)‘\n’ D)‘D’
3、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 a 。
A)必须为字母或下划线。 B)必须为下划线。
C)必须为字母 D)可以是字母、数字和下划线中的任一种字符。
4、 若有定义:int a = 7; float x = 2.5 , y = 4.7 ;
则表达式 x + a % 3 * (int) (x + y) % 2/4 的值是 d 。
A) 2.750000 B) 0.00000 C) 3.500000 D) 2.500000
5、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b–后,a,b和c的值分别是 ( B)
A)2,1,2 B)2,0,3 C)2,2,3 D)2,1,3
6、下列运符中优先级最高的是( b )
A)&& B) ++ 第二级 C) ?: 最后 D)!=
7、若x、I、j和k都是int型变量,则计算下面表达式后,x的值是( c )
x=(I=4,j=16,k=32)
A) 4 B) 16 C) 32 D) 52
8、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(b)
A) 7 B) 8 C) 6 D) 2
9、C语言规定:在一个源程序中,main函数的位置( c )
A) 必须在最开始
B) 必须在系统调用的库函数的后面
C) 可以任意
D) 必须在最后
10、一个C语言程序是由( b )
A) 一个主程序和若干子程序组成
B) 函数组成
C) 若干过程组成
D) 若干子程序组成
11、下面程序中的输出语句,a的值是( c),输出结果是(b)
A)65 B)20 C)15 D)10
#include <stdio.h>
void main()
{ int a;
printf("%d\n",(a=35,a4,a+5)); }
12、下面不正确的字符串常量是( a )
/字符串常量 定义:用双引号(“”)括起来的0个或者多个字符组成的序列 /
A) ‘bac’ B) “12’123” C)”0” D) “ ”
13、以下不符合C语言语法的赋值语句是(D)
A) i++; B) i=i=5; C) k=(24,k4); D) y=float(i);
14、若有以下定义:
char a; int b;float c; double d;
则表达式ab+d-c值的类型为(D)
A) float B) int C) char D) double
15、下列可以用作变量名的是( b )
A)1 B)al )int D)p
16、C语言中最简单的数据类型包括( B )
C语言中最简单的数据类型是整型、实型、字符型
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
17、如下定义: int x=10,y=3,z;
则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是(D)
A)1 B)0 C)4 D)3
18、下面程序的输出结果是(d )
main()
{ int x=10,y=10;
printf("%d %d\n",x–,--y);}
A)10 10 B)9 9 C)9 10 D) 10 9
19、C语言中,long类型的数据占字节数为(C)
char :1个字节
char(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
A) 1 B) 2 C) 4 D) 8
20、不能正确表示ab除以cd的C语言表达式是(A)
A) ab/cd B) a/(cd)b C)ab/c/d D) ab/(cd)
二、 填空题:(每题4分,共20分)
1、用下面的scanf函数输入数据,使a=10,b=20,c1=‘A’,c2=‘a’,x=1.5,y=-3.75,z=67.8请问在键盘上面怎么输入数据? ( 10,20Aa1.5 –3.75f,67.8 )
void main()
{ int a,b;
float x,y,z;
char c1,c2;
scanf("%d,%d%c%c%f %ff,%f",&a,&b,&c1,&c2,&x,&y,&z);
printf(“a=%d,b=%d,c1=%c,c2=%c,x=%6.2f,y=%6.2f,z=%6.2f\n”,a,b,c1,c2,x,y,z); }
2、输出单个字符。
void main()
{ char c;
c=getchar();
putchar© ; / printf(“%c”,c); ____;}
要求从键盘输入一个字符,按回车之后,在屏幕上显示刚才输入的字符。那么空缺处应该填写( printf(“%c”,c) 或者 putchar©)(答案不唯一)。
3、写出下面程序的输出结果:(空格用“□”表示)
void main()
{printf("%2s,%6.2s,%.3s,%-5.2s\n",“COURAGE”,“COURAGE”,“COURAGE”,“COURAGE”);}
(COURAGE, □□□□CO,COU,CO□□□)
4、 输入两个数,然后按照由大到小的次序输出。
void main()
{int x,y,z;
scanf("%f,%f",&x,&y);
if(x<y)
{__________ } // 这一步是通过z将x,y的值进行交换
printf("%d ,%d",x,y);}
( z=x;x=y;y=z; )
- 设有程序片段:
switch(grade)
{
case ‘A’:printf(“85-100\n”);break;
case ‘B’:printf(“70-84\n”);break;
case ‘C’:printf(“60-69\n”);break;
case ‘D’:printf(“60\n”);break;
default: printf(“error!\n”);break;
}
若grade的值为’C’,则输出的结果是( 60-69 )。
三、 简答与编程:
1、C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?(5分)
答:用1表示真,用0表示假。判断一个逻辑的值时,用0表示假,用非0代表真。
2、有3个整数a、b、c,由键盘输入,编程输出其中最小的数。(15分)
void main()
{ int a,b,c;
printf(“请输入3个整数:”);
scanf("%d,%d,%d,",&a,&b,&c);
if( a>b)
if(b>c)
printf(“min=%d\n”,c);
else
printf(“min=%d\n”,b);
else if(a>c)
printf(“min=%d\n”,c);
else
printf(“min=%d\n”,a);
}