*1 A
一个C程序的执行是从_____。
A)本程序的main函数开始,到main函数结束√
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
*2 D
以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
*3 B
一个C语言程序是由
A)一个主程序和若干子程序组成 B)函数组成
C)若干过程组成 D)若干子程序组成
*4 A
在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A)char<int<1ong int<=float<double
B)char=int<1ong int<=float<double char(1)int(2)long(4)float(4)double(8)
C)char<int<1ong int=float=double
D)char=int=1ong int<=float<double
*5 C
若x,i,j和k都是int型变量,则执行下面表达式后x的值为
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
*6 B
假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:
A)7 B)8 C)6 D)2
*7 C
C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符
*8 D
下面四个选项中,均是不正确的八进制数或十六进制数的选项是。
A) 016 B)oabc C)010 D) 0a12
0x8f 017 -0x11 7ff
018 0x8 0x16 -123
八进制以0开头,十六进制以0x,0X开头
*9 C
若有代数式3ae/bc,则不正确的C语言表达式是:
A) a/b/c*e*3 B)3*a*e/b/c
C)3*a*e/b*c D)a*e/c/b*3
*10 A
已知各变量的类型说明如下:
int k,a,b;
unsigned long w= 5;
double x=1.42;
则以下不符合C语言语法的表达式是:
A) x%(一3) B) w+=-2
C) k=(a=2,b=3,a十b) D) a十= a一=(b=4)*(a=3)
*11 A
已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是:
A) a十=a一=(b= 4)*(a=3) B)a=a*3=2
C) x%(一3) D)y=f1oat(i)
*12 D
以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
*13 B
以下符合C语言语法的赋值表达式是
A)d=9+e+f=d+9 B) d=9+e,f=d+9
C)d=9十e,e++,d十9 D)d=9十e++=d十7
*30 A
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为
A)D B)68 C)不确定的值 D)C
*14 D
在C语言中,要求运算数必须是整型的运算符是。
A) / B) ++ c) != D)%
*15 B
若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为
A) 7 B 8 C) 9 D) 10
*16 D
在C语言中,int har和short种类型数据在内存中所占用的字节数
A)由用户自己定义 B)均为2个字节
C)是任意的 D)由所用机器的机器字长决定
*17 A
若有说明语句:cha c='\72'则变量c
A)包含1个字符 B)包含2个字符
C)包含3个字符 D)说明不合法,c的值不确定
*18 A
若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A)2·500000 B)2.7500OO C) 3.500000 D) 0.000000。
*19 C
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为
A)int B) float C) double D)不确定
*20 A
下面四个选项中,均是非法常量的选项是。
A)'as' B)'\\' c)-0xl8 D)0xabc
-0fff '\01' 01177 '\0'
'\0xa' 12,456 0xf"a"
*21 B
在C语言中,当调用函数时,下面说法不正确的是 。
A. 实参和形参各占一个独立的存储单元
B. 实参和形参可以共用存储单元
形参是实参的副本,即拷贝,不能共用存储单元,不占相同空间
C. 主调函数把实参的值传递给形参
D. 形参只有在发生函数调用时才会被分配存储单元
*22 B
设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是一一一。
A) n=(n*100+0.5)/100.0 B)m=n*100+0.5 ,n= m/100.0
C) n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
*23 C
表达式18/4*sqrt(4.0)/8值的数据类型为:
A) int B)float C)double D)不确定
*24 C
设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为:
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647
*25 D
设有说明: char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为:
A)float B)char C)int D)double
*26 D
若有以下定义,则能使值为3的表达式是:
int k= 7,x =12;
A) x%=(k%= 5) B) x%=(k一k%5)
C) x%=k- k%5 D) (x%=k)一(k%=5)
*27 C
设以下变量均为int类型,则值不等于7的表达式是
A) (x= y= 6, x+y,x+1) B)(x= y= 6,x+y,y+1)
C) (x= 6,x+1,y= 6,x+y) D) (y=6,y+l,x = y,x+1)
*28 B
printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
*29 D
有输入语句: scanf("a= %d,b= %d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是
A)132(回车)
B)1,3,2(回车)
C)a=1b=3c=2(回车)
D)a=1,b =3,c =2(回车)
*30 A
以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是
A)int a=b= c= 5; B) int a,b, c= 5;
C)a= 5,b=5,c=5; D) a= b= c=5;
*31 A
已知ch是字符型变量,下面不正确的赋值语句是
A)ch='a+b'; B)ch='\0'; C)ch='7'+'9'; D) ch=5+9;
*32 B
已知ch是字符型变量,下面正确的赋值语句是
A) ch= '123'; B) ch= '\xff'; C) ch= '\08'; D) ch="\";
*33 B
若有以下定义,则正确的赋值语句是:
int a,b;float x;
A) a=1,b=2, B)b++; C) a= b= 5 D) b= int(x);
*34 B
设x 、y均为f1oat型变量,则以下不合法的赋值语句是
A)++x; B)y=(x%2)/10; C) x*=y+8; D)x=y=0;
*35 A
x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)一5;后,x 、y 和之的值是:
A) x=10 B) x=10 C) x=10 D)x=10
y=15 y=10 y=10 y=5
z=10 z=10 z=15 z=10
*36 D
逻辑运算符两侧运算对象的数据类型一一一。
A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
*37 C
下关于运算符优先顺序的描述中正确的是一一一。
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
*38 B
下列运算符中优先级最高的是一一一。
A)< B)十 C)&& D)!=
*39 C
判断char型变量ch是否为大写字母的正确表达式是一一一。
A)' A' <=ch<='z' B)(ch> = 'A')&(ch<=' z' )
C)(ch>=' A' )&&(ch<='Z') D)(' A' < = ch)AND('z'> = ch)
*40 D
设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是
A)'y'&&'y'
B)x < =y
C) x||y+z&&y-z
D) !(x<y)&&!z||1)
*41 C
已知x =43,ch='A',y=0则表达式(x > = y && ch<'B'&&!Y) 的值是
A)0 B)语法错 C)1 D)"假"
*42 C
若希望当A的值为奇数时,表达式的值为"真",A的值为偶数 表达式的值
为"假"。则以下不能满足要求的表达式是:
A) A%2= =1 B)!(A%2 = =0) C)!(A%2) D) A%2
*43 B
设有 int a = 1,b=2,c =3, d =4, m=2, n=2;
执行(m= a>b)&&(n=c>d)后n的值为:
A)1 B )2 C)3 D)4
*44 A
执行以下语句后b 的值为:
int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
A) 6 B) 0 C) 1 D) 4
*45 C
以下不正确的if语句形式是:
A)if(x>y && x!=y);
B)if(x= =y) x+=y
C)if(x != y)scanf("%d",&x )else scanf("%d",&y);
D)if(X<Y) {X++;Y++;}
*46 A
下列运算符中优先级最低的是:
A)?: B)&& c)+ D) !=
*47 D
请阅读以下程序:
main()
{int a=5,b=0,c=0;
if(a=b+c) printf("***\n ");
e1se printf("$$$\n");
以上程序 :
A 有语法错不能通过编译 B可以通过编译但不能通过连接
C 输出*** D 输出$$$
*48 C
以下程序的运行结果是 :
main()
{int m=5;
if(m++> 5) printf(" %d\n",m);
e1se printf("%d\n",m- - );
}
A)4 B)5 C)6 D)7
*49 B
以下程序的输出结果是:
main()
{int x= 2,y= 一1,z=2;
if (x<y)
if(y<0) z= 0;
else z+ =1;
printf("%d\n",z);
}
A)3 B )2 C)1 D) 0
*50 B
为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句
总是与( )配对。
A)缩排位置相同的if B)其之前最近的if
C) 之后最近的if D)同一行上的if
*51 A
若有定义:int a[10],*p=a;,则p+5表示: 。
A. 数组元素a[5]的地址 B. 数组元素a[5]的值
C. 数组元素a[6]的地址 D. 数组元素a[6]的值
*52 B
若有条件表达式(exp) ? a++:b--,则以下表达式中能完全等价于表
达式(exp)的是:
A) (exp==0) B) (exp!=0)
C) (exp== 1) D) (exp!=1)
*53 D
C语言中,能代表逻辑值“真”的是 。
A.true
B.大于0的数
C.非0整数
D.非0的数
*54 D
已知:
struct
{int i;char c;float a;}ex;
则ex所占内存空间为 .
A.4 B. 5 C. 6 D.7
*55 B
对for(表达式1;;表达式3)可以理解为 。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
*56 C
设有程序段
int k=10;
while (k=0) k= k-1;
则下面描述中正确的是
A) while循环执行10次 B)循环是无限循环
C)循环体语句一次也不执行 D)循环体语句执行一次
*57 B
有以下程序段
int x=0,s=0;
while (! x!= 0) s+=++x;
printf("%d",s);
则
A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的 D)程序段执行无限次
*58 A
语句while(!E)中的表达式!E等价于:
A) E==0 B) E!=1 C) E!=0 D) E==1
*59 C
以下定义整型3行4列的二维数组a并初始化,不正确的是
A.int a[3][4]={0};
B.int a[][4]={{0,1,2,3},{4,5,6,7},{8,9,10},{11,12}};
C.int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
D.int a[3][4]={{1,2},{1,2,3},{1,2,3,4}};
*60 C
下面程序段的运行结果是
if n=0;
while(n++<=2); printf("%d",n);
A) 2 B) 3 C) 4 D)有语法错
*61 A
在链表数据中,任意一个数据项都包含一个 项和一个指针项。
A) 数据项 B) 地址项 C) 参数项
*62 C
以下描述中正确的是:
A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B) do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D)do一while循环中,根据情况可以省略while
*63 B
若有如下语句
int x=3;
do { printf(" %d\n",x -=2);} while(!(--x));
则上面程序段
A)输出的是 1 B)输出的是1和-2
C)输出的是3和0 D)是死循环
*64 C
下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。
#i nclude<stdio. h>
main()
{int n,sum=0;
n=2345
do{ sum=sum+(n%10)*n%10};
n=【2】;
}while(n);
printf("sum=%d",sum);}
【2】 A) n/1000 B)n/100 C) n/10 D) n%10
*65 B
调用函数时,实参是一个数组名,则向函数传送的是 。
A.数组长度 B. 数组的首地址
C.数组元素 D. 数组最后一个元素地址
*66 C
在c语言中,引用数组元素时,其数组下标的数据类型允许是__.
A)整型常量 B)整型表达式
C)整型常量或整型表达式 D)任何类型的表达式
*67 D
以下对一维整型数组a的正确说明是__。
A) int a(10); B)int n= 10,a[n];
c) int n; D) #define SIZE 10;
scanf("%",&J1); int a[SIZE];
int a[n];
*68 D
若有说明:int a[10];则对a数组元素的正确引用是__。
A)a[10] B) a[3.5] C) a[5] D) a[10-10]
*69 A
在C语言中,一维数组的定义方式为:,类型说说明符 数组名__。
A) [常量表达式] B) [整形表达式]
c)[ 整型常量]或[整型表达式] D)[整型常量]
*70 C
以下能对一维数组a进行正确初始化的语句是__。
A) int a[10]=(0,0,0,0,0) B)int a[10]={}
C) int a[]={0}; D) int a[10]={10*1};
*71 C
以下对二维数组a的正确说明是__。
A) int a[3][]; B) floatf a(3,4);
C) double a[1][4]; D) float a(3)(4);
*72 C
若有说明:int a[3][4]; 则对a数组元素的正确引用是__。
A) a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1);
*73 D
若有说明:int a[3][4];则对a数组元素的非法引用是__。
A) a[0][2*1] B) a[1][3] C)a[4-2][0] D)a[0][4]
74 A D
c语言中 为指针运算符, 为取地址运算符。
若有说明:int a[3][4];则对a数组元素的非法引用是__。
A) * B) - C)% D)&
75 A D
c语言中 函数为打开文件, 寒舍为关闭文件。
若有说明:int a[3][4];则对a数组元素的非法引用是__。
A) fclose B) fseek C)fopen D)frind