1、以下叙述正确的是( B )
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2. main( )函数的位置____B_____。
A. 必须在自定义函数前面 B. 可以在自定义函数后面
C.必须位于程序的最前面 D.必须在自定义函数后面
3、设 a 和 b 均为 double 型变量,且 a=5.5 、b=2.5 ,则表达式(int)a+b/b
的值是( D)
A、 6.500000 B、 6 C、 5.500000 D、 6.000000
4、switch (表达式)语句中的“表达式”,允许的类型是( C)。
A. float,int B. float, int, char C. int, char D. char, double
5. C语言的基本构成单位是( A )。
A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序
6.下列字符串是标识符的是___D______。
A. 5_pro B.case C.else D.pro_5
7、设 int x=1, y=1; 表达式 (!x ||y--) 的值是( B)。
A、0 B 、1 C 、2 D 、-1
8、对两个字符数组a 和 b 进行初始化 char[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是 (D)。
A、a 与 b 数组完全相同 B、a 与 b 长度相同
C、a 和 b 中都存放字符串 D 、a 数组比 b 数组长度长
9、为了避免在嵌套的条件语句if ―― else 中产生二义性, c语言规定:else 子句总是与 (B) 配对。
A、缩排位置相同的if B、其之前最近的if
C、其之后最近的if D、同一行上的 if
10、正确的变量定义是( A)。
A.unsigned long d=1000; B.float m1=m2=10.0;
C.char c1= ’A’,c2=A; D.doublex=0.618,x=3.14;
11、程序 char c[5]={ ‘a’,’b’,’\0’,’c’,’\0’}; printf( “%s”,c);} 的运行结果是 ( D )。
A 、'a''b' B、 ab C、ab c D、ab
12、一个 C语言的源程序中( A)
A)必须有一个主函数 B)可能有多个主函数
C)必须有除主函数外其它函数 D)可以没有主函数
13、C 语言中最简单的数据类型包括( B)
A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D 、整型、实型、逻辑型、字符型
14.以下不正确的C语言标识符是( D )。
A. ABC B. abc C. a_bc D. ab.c
15. C语言的基本数据类型包括___A______。
A. 整型、实型、字符型 B. 整型、实型、空类型
C.整型、字符型、指针型 D.整型、实型、逻辑型
16. 在C语言中,合法的字符串常量是____B_____。
A. ‘\078’ B. “asd” C. ‘ab’ D. ‘\0’
17、下面不正确的字符串常量是(A)
A、 'abc' B、 "12'12" C、 "0" D 、 " "
18、设 int a=1,b=2;, 则执行 a=b+2,a++,a+b ;后 a 和 b 的值分别是( D)。
A.1 和 2 B.3 和 2 C.4 和 7 D.5 和 2
19、下述表达式中 ,( A )可以正确表示 x≤0 或 x≥1 的关系。
A 、(x>=1) || (x<=0) B 、x>=1 | x<=0 C 、x>=1 && x<=0 D 、 (x>=1) && (x<=0)
20 设:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&& (n=c>d) 后 n 的值为 (B) 。
A 、1 B、2 C、3 D、4
21.若有定义:int a=7; float x=2.5 , y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A. 2.500000 B.2.750000 C. 3.500000 D. 0.000000
22. 结构化程序设计的三种基本结构是____C_____。
A.函数结构、选择结构、判断结构 B.函数结构、嵌套结构、平行结构
C.顺序结构、选择结构、循环结构 D.选择结构、循环结构、嵌套结构
23、以下错误的 if 语句是 (C) 。
A、 if(x>y) z=x; B、 if(x= =y) z=0;
C、 if(x!=y) printf("%d",x) else printf("%d",y);
D、 if(x<y) { x++;y--;}
24、设 int a=2,b=3,c=4;, 则表达式a>b&&b<c||b 的值是(C )。
A.-1 B.0 C.1 D.2
25、下面是对数组a 的初始化,其中不正确的是( D )。
A 、a[5]={"ABCD"} B 、a[5]={'A' ,'B','C', 'D'}
C 、 a[5]= "" D 、a[5]="ABCDE"
26、程序 char c[5]={‘a’, ’b’, ’\0 ’, ’c’ , ’\0 ’}; printf(“%s”,c);} 的运行结果是 ( D) 。
A、'a''b' B、ab C 、ab c D 、 ab
27、若变量已正确定义,以下非法的表达式是( B)
A、a/=b+c B、 a%(4.0) C、 a=1/2*(x=y=20,x*3) D、a=b=c
28、以下关于运算符优先顺序的描述中正确的是(C) 。
A、关系运算符 <算术运算符 <赋值运算符<逻辑与运算符
B、逻辑与运算符 <关系运算符 <算术运算符<赋值运算符
C、赋值运算符 <逻辑与运算符 <关系运算符 <算术运算符
D、算术运算符 <关系运算符 <赋值运算符<逻辑与运算符
29.若有定义double x=1,y;则以下的语句执行的结果是( C )。
y=x+3/2; printf(“%f”,y);
A.2.500000 B.2.5 C.2.000000 D.2
30. 若已定义:int a=7;float b=60.3;则以下语句能正确输出值的是___D______。
A. printf(“%d%d”,&a,&b); B.printf(“%d%f”,&a,&b);
C. printf(“%f%d”,&a,&b); D. printf(“%d%f”, a, b);
31、使用语句 scanf( “a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:(A)
A、a=2.2,b=3 B、a=2.2 b=3 C、2.2 3 D、2.2,3
32、表示关系 12<=x<=y 的 C语言表达式为:(B)
A、(12<=x)&(x<=y) B、 (12<=x)&&(x<=y)
C、 (12<=x)|(x<=y) D、(12<=x)||(x<=y)
33、以下正确的叙述是( D)
A 、 在 C 程序中,每行中只能写一条语句
B、 若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数
C、 在 C 程序中,无论是整数还是实数,都能被准确无误地表示
D、 在 C 程序中, %是只能用于整数运算的运算符
34.若x=0,y=3,z=3,以下表达式值为0的是( C )。
A. !x B.x<y? 1:0 C.x%2&&y==z D. y=x||z/3
35、以下对一维数组正确初始化的是____D____。
A.int a[5]=(0,0,0); B.int a[5]={};
C. int a[5]={1,2,3,4,5,6}; D. int a[5]={1,2,3,4,5}
36.设i和x都是int类型,则for循环语句___A_____。
for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);
A. 最多执行10次 B. 最多执行9次
C. 是无限循环 D. 循环体一次也不执行
37、语句 for (a=0,b=0;b!=100&&a<5;a++)scanf( “%d”,&b);scanf最多可执行次数为:(C)
A、4 B 、6 C 、5 D 、1
38、执行下列语句int a;printf("%d\n",(a=3*5,a*4,a+5));后,a 的值是( B)
A 、 65 B、 20 C、 15 D、 10
39、下列程序的输出结果是(C)。
main( )
{ inta=7,b=5;
printf("%d\n",b=b/a);
}
A 、 5 B、1 C、0 D、不确定值
40.分析以下程序, 下列说法正确的是( D ) 。
main()
{ int x=5,a=0,b=0;
if(x=a+b) printf("* * * *\n");
else printf("# # # #\n");
}
A. 有语法错,不能通过编译 B. 通过编译,但不能连接
C. 输出** * * D. 输出# # # #
41、若以下选项中的变量已正确定义,则正确的赋值语句是(C )
A)x1=26.8%3; B)1+2=x2; C)x3=0x12; D)x4=1+2=3;
42、若有说明:int a[3][4]; 则对 a 数组元素的非法引用是( D )。
A 、a[0][2*1] B 、a[1][3] C 、a[4-2][0] D 、a[0][4]
43、以下关于运算符优先顺序的描述中正确的是( C )。
A 、关系运算符 <算术运算符 <赋值运算符<逻辑与运算符
B、逻辑与运算符 <关系运算符 <算术运算符<赋值运算符
C、赋值运算符 <逻辑与运算符 < 关系运算符 <算术运算符
D、算术运算符 <关系运算符 <赋值运算符<逻辑与运算符
44、下列运算符中,结合性为自左向右的是( B)
A 、?: B、, C、+= D 、 ++
45、程序段 char a[7]= ”abcdef”;char b[4]= ”ABC ”; strcpy(a,b);printf( “%c”,a[5]); 输出结果是 ( D )。
A 、一个空格 B、\0 C、e D、f
46、在 C 语言中,一位数组的定义方式为:类型说明符 数组名 (C )。
A 、[常量表达 ] B、整型表达式 C、[整型常量 ]或 [整型表达式 ] D、[整型常量 ]
47.程序段如下:则以下说法中正确的是( D ) 。
int k=5;
do{ k--;}while(k<=0);
A. 循环执行5次 B. 循环是无限循环
C. 循环体语句一次也不执行 D. 循环体语句执行一次
48.设有语句int x=2,y=3;则表达式x=(y= =3)的值是__B______。
A. 0 B. 1 C. 2 D. 3
49、设有定义:float a=2,b=4,h=3;以下 C 语言表达式中与代数式(a+b)*h 的计算结果不相符的是( B)
A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
50.下列程序段执行后k值为( A )。
int k=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
k=k+1 ;
A. 15 B.3 C. 5 D. 8
51. 下列关于C语言函数的描述中,错误的是__A______。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 凡不加类型说明的函数,其返回值默认为整型
C.函数的返回值可以通过函数中的return语句获得
D.可以定义有参函数,也可以定义无参函数
52.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( A )。
A. 4 B.1 C. 2 D. 5
53.在 while(!x)语句中的 !x 与下面条件表达式等价的是( D)
A) x!=0 B) x==1 C) x!=1 D) x==0
54.在C语言程序中,以下描述正确的是( B ) 。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用均不可以嵌套
D. 函数的定义和函数的调用均可以嵌套
55、有以下程序:
#include<stdio.h>
void main(){
inti=1,j=1,k=2;
if((j++||k++)&&i++ )
printf(“%d,%d,%d\n”,i,j,k);}
执行后的输出结果是(C )
A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3
56.一个C语言程序总是从___B______开始执行。
A. 主过程 B. 主函数 C. 子程序 D.主程序
57、有以下程序:
#include<stdio.h>
void main(){
int i,s=0;
for(i=1;i<10;i+=2)
s+=i+1;
printf(“%d\n”,s);}
程序执行后的输出结果是(D )
A)自然数 1~9 的累加和 B)自然数 1~10 的累加和
C)自然数 1~9 中奇数之和 D)自然数 1~10 中偶数之和
58、有以下函数定义:
void fun(intn,double x){……}
若以下选项中的变量都已经正确定义并赋值,则对函数fun 的正确调用语句是( C )
A)fun(int y,double m); B)k=fun(10,12.5);
C)fun(x,n); D)void fun(n,x);
59.下列字符串是标识符的是___A______。
A. _HJ B.9_student C. long D. LINE 1
60、已知各变量的类型说明如下:
int k,a,b=1;unsigned long w=5; 则以下不符合 C 语言语法的表达式是( A )
A 、 k=b+2=w B、 w+= -2 C、 k=(a=2,b=3,a+b) D 、a+=a-=(b=4)*(a=3)
61.在C语言中,字符型数据在内存中以___D______形式存放。
A. 原码 B. BCD码 C. 反码 D. ASCII码
62、设 char s[10]=〞abcde〞,t[]=〞 12345〞 ; , 则 s 和 t 在内存中分配的字节数分别是(B )。
A.6 和 5 B.6 和 6 C.10 和 5 D .10 和 6
63、 c 语言中 ( D )。
A 、不能使用 do-while 语句构成的循环
B、do-while 语句构成的循环必须用break 语句才能退出
C、do—whiLe 语句构成的循环,当while语句中的表达式值为非零时结束循环
D、do—while 语句构成的循环,当while语句中的表达式值为零时结束循环
64.使用字符串处理函数时,应该包含的头文件是____C_____。
A、stdio.h B、math.h C、string.h D、不用包含头文件
65.C语言中运算对象必须是整型的运算符是___D______。
A、* B、= C、+ D、%
66、以下选项中 ,不合法常量的是(B)
A、1.234e04 B、 1.234e0.4 C、1.234e+4 D、 1.234e0
67.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是__B_______。
A. float型 B. int型 C. long型 D. double型
68、设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是( D)
A、 6.500000 B、 6 C、 5.500000 D、 6.000000
69、x、y、z 被定义为 int 型变量,若从键盘给x、y、z 输入数据,正确的输入语句是(B)
A、 INPUT x 、y、z; B、scanf("%d%d%d",&x,&y,&z);
C、 scanf("%d%d%d",x,y,z); D、 read("%d%d%d",&x,&y,&z);
70、函数调用结束后,形式参数(C )。
A 、继续占用相同大小的内存 B、占用的内存减小
C、释放内存 D、不确定
71、以下数组定义中,正确的是__D______。
A、inta[2][3]={1,2,3,4,5,6,7};
B、inta[][]={{1,2,3},{4,5,6},{7,8,9}};
C、inta[2][]= {1,2,3,4,5,6};
D、inta[][4]= {6};
72、设 char ch='A'; 则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是 ( B )。
A、A B 、a C、Z D 、z
73、若有以下类型说明语句:
char w; intx; float y; double z; 则表达式 w*x+z-y 的结果类型是(D)
A 、float B、char C、int D、double
74.设i和x都是int类型,则for循环语句__A______。
for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);
A. 最多执行10次 B. 最多执行9次
C. 是无限循环 D. 循环体一次也不执行
75、执行程序段 int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“ %d %d %d\n ”,k,a,b);后的输出结果是 ( D ) 。
A、1 0 4 B、 1 0 3 C、0 0 3 D、 0 0 4
76、设 x,y 为浮点型变量,合法赋值语句是( A)
A 、x=8+y; B、(float)3 ; C、y=(x%2)/10 ; D、*x=10;
77、下面不正确的字符串常量是( A)
A 、 'abc' B、 "12'12" C、 "0" D、 " "
78.分析以下程序, 下列说法正确的是__C______。
main()
{ intx=0,a=0,b=0;
if(x==a+b) printf("* * * *\n");
else printf("# # # #\n");
}
A. 有语法错,不能通过编译 B. 通过编译,但不能连接
C. 输出** * * D. 输出# # # #
79、设 int x=1, y=1; 表达式 (!x||y--) 的值是( B )。
A、0 B、1 C、2 D、 -1
80、以下对二维整形数组a 的正确说明是 (C)。
A、int a[3][]; B 、float a(3,4); C、double a[1][4]; D 、float a(3)(4)
81、 C 语言中 , 下列字符常量合法的是(A)
A 、'\t' B、"A" C、65 D、A
82.下列关于do_while语句和while语句的叙述中错误的是___B_____。
A、do_while先执行循环语句后判断循环条件
B、while语句至少执行一次循环语句
C、while语句是先进行条件判断,满足条件才去执行循环语句
D、do_while语句至少执行一次循环语句
83、对两个字符数组 a 和 b 进行初始化 char a[]="ABCDEF"; char
b[]={'A','B','C','D','E','F'}; 则以下叙述正确的是 (D ) 。
A、a 与 b 数组完全相同 B、a 与 b 长度相同
C、a 和 b 中都存放字符串 D、a 数组比 b 数组长度长
84、在 C 语言中 ,若需一变量只在本文件中所有函数使用,则该变量的存储类别是
( D ) 。
A、extern B、register C、 auto D、static
85、以下叙述中正确的是(C)
A 、用 C 语言实现的算法必须要有输入和输出操作
B、用 C 语言实现的算法可以没有输出但必须要有输入
C、用 C 程序实现的算法可以没有输入但必须要有输出
D、用 C 程序实现的算法可以既没有输入也没有输出
86、设有 int k=10;while (k=0) k=k-1; 则下面描述中正确的是( C )。
A 、while循环执行 10 次 B、循环是无限循环
C、循环体语句一次也不执行 D、循环体语句执行一次
87、下列循环语句会进入死循环的是 ( C )。
A 、i=0;do { i++; }while(i = =100) ;
B、for(i=0;i<100; i+=3.14);
C、for(i=0;; i+=2);
D、k=1;do { k--;} while(k);
88、以下选项中,与k=n++ 完全等价的表达式是( A )
A 、 k=n,n=n+1 B、 n=n+1,k=n
C、 k=++n D、 k+=n+1
89、以下错误的 if 语句是 ( C )。( 2 分)
A 、if(x>y)z=x; B、if(x==y)z=0;
C、if(x!=y)printf("%d",x) else printf("%d",y); D、if(x<y){ x++;y--;}
90、执行程序段int k=4,a=3,b=2,c=1; printf( “\n%d\n”,k<a?k:c<b? c:a);后的输出结果是
( D )。
A 、0 B、3 C、2 D、1
91、对以说明语句int a[10]={6,7,8,9,10}; 的正确理解是 ( B )。
A 、将 5 个初值依次赋给a[1] 至 a[5]
B、将 5 个初值依次赋给a[0] 至 a[4]
C、将 5 个初值依次赋给a[6] 至 a[10]
D、因为数组长度与初值的个数不同,所以此语句不正确
92、执行下列语句int x=10,y=10;printf("%d %d\n",x--,--y); 后的输出是( D)
A 、10 10 B、9 9 C、9 10 D、10 9
93、执行下列语句int k=2, i=2, m;m=(k+=i*=k); printf("%d,%d\n",m,i);后的输出结果是( C)
A 、8,6 B、8,3 C、6,4 D、7,4
94、能正确表示“当 x 的取值在 [1,10]和[200,210]范围内为真, 否则为假”的表达式是 (
C )。
A、(x>=1)&& (x<=10) && (x>=200) && (x<=210)
B 、 (x>=1) || (x<=10) || (x>=200) || (x<=210)
C、(x>=1)&& (x<=10) || (x>=200) && (x<=210)
D 、 (x>=1) || (x<=10) && (x>=200) ||(x<=210)
95、语句 int a,b; printf("%d",(a=2)&&(b= -2)); 的输出结果是 ( D )。
A 、无输出 B、结果不确定 C、-1 D、1
96、下列说法中正确的是( C)
A、C 语言程序书写时,不区分大小写字母
B、C 语言程序书写时,一行只能够写一个语句
C、C 语言程序书写时,一个语句可分成几行书写
D、C 语言程序书写时,每行必须有分号
97、判断字符串 a 是否大于 b,应当使用 ( D )。
A 、if(a>b)
B、if(strcmp(a,b))
C、if(strcmp(b,a)>0)
D、if(strcmp(a,b)>0)
98、下列关于赋值运算符的表述中,错误的是( B)
A 、赋值运算符优先级高于逗号运算符
B、赋值运算符的结合性是从左至右
C、赋值运算符是双目运算符
D、赋值运算符可在表达式中连用
99、实际参数不能是 (D )。
A 、常量 B、变量 C、表达式 D、不确定值
100、下面的函数是无参函数的是 ( A )。
A 、main() B、intmax(int x, int y) C、return(z) D、scanf("%d",&a)