一、单项选择题:
1.以下 A 是C语言中有效的变量名称。 A._abc
B.2abc C.char D.a#3
变量名只能以下划线和字母开头 2.下面四个说法中错误的是 B 。
A.for循环不仅可以和for循环嵌套,而且可以和While循环嵌套。 B.当在循环体内执行continue语句的时候,将结束整个循环。 C.while循环最少循环0次,do-while循环最少循环1次。 D.goto语句也可以实现循环的功能。
3.在while ( x )中的x与下面条件表达式等价的是 D A.x = = 0 B.x= = 1 C.x! = 1 D.x ! = 0 4.为表示关系x≥y≥z,应使用C语言表达式 A
A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z)
5.设有如下定义:int x=9,y=2,z;则语句printf(“%d\\n”,z= x/y);的输出结果是 C
A.1 B. C.4 D.3 整形中的“/”是整除
6.若有以下语句:static char x[ ]=”12345”;static char y[ ]={‘1’,’2’,’3’,’4’,’5’};则正
确的说法是 B 。
A.x数组和y数组的长度相同 B.x数组的长度大于y数组的长度 C.x数组的长度小于y数组的长度 D.x数组与y数组等价
字符串后有一个“\\0”
7.已知有定义:char ch;则下面正确的赋值语句为 A 。
A.ch='X' B.ch='55' 8.以下说法中正确的是 C
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分 语言中,形参的缺省存储类型说明是: A
C.ch=\"M\"
D.ch=\"55\"
语言中的简单数据类型有: B
A.整型 实型 逻辑型 B.整型 实型 字符型 C.整型 字符型 逻辑型 D.整型 实型 逻辑型 字符型 11.以下程序段的输出结果是: C
A.1
int x=3;
do{
printf(\"%3d\
B.3 0 C.1 -2
D.死循环 }while(!(--x)); 12.以下非法的赋值语句是: A
A.n=(i=2,++i); B.j++; C.++(i+1); D.x=y>0;
13.设a和b均为double型变量,且a=,b=,则表达式(int)a+b/b的值是: D
A.
B.6 C.
D.
14.已知x=3,y=2,则表达式x*=y+8的值为: C
A.3 B.2 C.30 D.10 y+8是一个整体
15.设x,y,z均为int型变量,则执行以下语句后,t的值为: C
x=y=z=1; t=++x||++y&&++z;
B.2 C.1 D.0
A.不定值
16.为了测试字符串的实际长度,C语言规定了一个“字符串结束标志”,这个结束标志字符是: B
A.‘\\n’ B.‘\\0’
C.‘\\x’
D.‘\\9’
程序的三种基本结构是: A
A.顺序结构、选择结构、循环结构 B.逻辑结构、层次结构、网状结构 C.顺序结构、逻辑结构、选择结构 D.层次结构、顺序结构、循环结构
18.若int i=10;执行完下面程序判断后,变量i的正确结果是 D 。
A.10 switch ( i ) B.11 {
C.12 case 7: i+=1; D.13 case 10: i+=1;
case 17: i+=1; default: i+=1;
}
case后有break,结束跳出结果,没有break,继续执行 具体见书本105页 19.下列关于C语言注释的描述中,错误的是: D 。 A.C语言中用/*……*/表示注释部分
B.注释只是给人看的,对编译和运行不起作用 C.注释可以加在程序中的任何位置 D.C语言中用{*……*}表示注释部分
20.下列关于C程序的描述中,错误的是: D 。
A.C程序是由函数构成的
B.一个C程序总是从main函数开始执行
C.C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上 D.C语言中是利用输入/输出运算符构成输入/输出语句完成输入/输出操作的 源程序的后缀名默认为: B 。 A.cpp
B.c
C.obj
D.exe
C语言的默认后缀名是.c,在C++中才是cpp 22.以下不属于C语言的基本数据类型的是: B 。 A.整型
B.布尔型
C.字符型
D.实型
23.下列标识符中,符合C语言语法规范的是: C 。 A.
下列选项中,不是C语言中的关键字的是: C 。 A.auto
B.if
C.VOID
D.break
25.下列常量中,合法的长整型常量是: A 。 A.0L
长整型的范围是 -48~47
26.设int型变量m,n,a,b,c,d均为0,执行表达式(m=a==b)||(n=c==d)后,m和n的值是: C 。 A.0,0
B.0,1
C.1,0
D.1,1
B.00
C.
D.2e+2
当在“或”的前面为1,后面不再执行。在“与”前面为0,后面也不在执行,出现“短路”现象。 27.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是: C 。 A.-3
B.9
C.-12
D.6
28.假设double型变量x,y已经正确定义,则表达式x=1,y=x+3/2的值是: D 。 A.1
B.
C.2
D.
29.已知’A’的ASCII码为65,则下列程序的运行结果为: A 。
main() {
char ch1=’A’; char ch2=ch1+3;
printf(“%d,%c\\n”,ch1,ch1);
printf(“%d,%c”,ch2,ch2); } A.65,A 68,D
B.A,65 D,68
C.A,D 65,68
D.D,68 A,65
30.以下关于while语句的叙述正确的是 B A.while语句构成的循环必须用break语句才能退出
B.while循环语句中,当while子句中的表达式值为零时,结束循环 C.不能使用while语句来构成循环结构 D.while语句的循环体至少被执行一次 二、填空题:
1.程序段float x=; printf(“x=%-10.2f”,x);执行时输出的结果为: □□□□ p76 2.设x,y,z,k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为: 32 3.要将两个字符串连接成一个字符串,可以使用的标准库函数名为: strcat P147
4.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch结构,应该使用语句 break p105。 5.若有定义int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},则a[1][2]= 7 p137 语言中,结束本轮循环,将循环是否继续交给循环判断条件确定的语句是: continue 。 7.设x=,a=7,y=,则算术表达式x+a%3*(int)(x+y)%2/4的值为: 语言中,函数是程序的基本构成单元,其中 main 函数是必须的,且唯一。 9.在C语言程序中,用关键字 float 定义单精度实型变量。
10.设有语句“int i=1,s=1;for(;s+i<6;i++) s+=i;”,其中for语句的循环次数为 2 。 11.已知有声明“int x=1,y=2”,则执行表达式“(x>y)&&(--x>0)”后x的值为 1 。
12.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch结构,应该使用语句 break p105 语言中的if语句属于三种基本结构中的 选择 结构的语句。
14.若变量ch为char类型,判断ch为数字字符的表达式是 ch>’0’&& ch<’9’ 。 15.设x=,a=7,y=,则算术表达式x+a%3*(int)(x+y)%2/4的值为: 语句只能用在三种基本结构中的 循环 结构的语句中。
17.如果在用户的程序中要使用C库函数中的数学函数时应在该源文件中使用的include命令是: 18.若有定义:int x[5]; 则访问x数组中的元素时,下标的上限为: 4 。
语言中,函数是程序的基本构成单元,其中 main 函数是必须的,且唯一。 语言本身没有输入输出语句,格式化的标准输出是借助库函数 <> 实现。 三、程序阅读题:
1.阅读下列程序,并给出程序运行的结果。
void main() {
int n,d,k; n=263; d=1; k=1; do {
k*=n%10; n/=10;
printf(\"%d,\
d++;
}
}while(n); printf(\"\\n\"); printf(\"%d\\n\ printf(\"%d\\n\
运行结果:1,2,3 36 0
2.阅读下列程序,并给出程序运行的结果。
void main() {
int x=2345,t;
int sum,muti; sum=0; muti=1;
printf(\"数字为:%d\\n\ while (x!=0) { }
t=x%10; sum+=t; muti*=t; x=x/10;
printf(\"构成数字的和:%d\\n\ printf(\"构成数字的乘积:%d\\n\ }
运行结果:数字为:2345 构成数字的和:14 构成数字的乘积:120
3.阅读下列程序,并给出程序运行的结果。
void main( ) {
int x=20,y=30,z=60;