4、下列语句中符合C语言语法的赋值语句是:
D
A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=7+b,b++,a+7D)a=7+b;c=a+7;
5、如果按字长来划分,微机可以分为8位机`16位机`32位机和64位机.所谓32位机是指该计算机所用的CPU:
A
A)同时能处理32位二进制数
B)具有32位的寄存器
C)只能自理32位二进制定点数
D)有32个寄存器
6、以下不正确的C语言标识符是____。
A(不能使用关键字)
A)intB)a_1_2C)ab1exeD)_x
7、、以下叙述正确的是______。
C
A)在C程序中main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的错误
8、下列运算中,操作数只能是整型的________D
A)+B)*C)/D)%
9、下列转义字符中错误的一个是____。
C(\x后面应该是1到2位十六进制数)
A)'\000'B)'\0014'C)'\x111'D)'\2'
10、以下叙述中正确的是_____C
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
11、以下是正确的C语言标识符是____。
B
A)#define(系统关键字)B)_123C)%d(%错)D)\n(\错)
12、下列关于C语言的叙述错误的是____A
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
13、C语言中字符型(char)数据在内存中的存储形式是____。
D
A)原码B)补码C)反码D)ASCII码
14、将字符g赋给字符变量c,正确的表达式是。
C(使用8位二进制码,最左边1位为0)
A)c=\147B)c="\147"C)c='\147'D)c='0147'
可以用以下程序来检验:
#include
voidmain()
{
charc='\147';
printf("%c\n",c);
}
15、以下程序的输出为____A____
#include
voidmain()
{
intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(“%f\n”,x);
}
A)27.000000B)27.500000C)28.000000D)28.500000
16、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是:
A
A)67,DB)B,C
C)C,DD)不确定的值
main()
{
charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
17、下面程序的输出是:
C
A)0B)1
C)3D)不确定的值
main()
{
intx=10,y=3;
printf("%d\n",y=x/y);
}
18、在以下一组运算符中,优先级最高的运算符是:
C
A)<=B)=
C)%D)&&
19、能正确表示a≥10或a≤0的关系表达式是:
D
A)a>=10ora<=0B)a>=10│a<=0
C)a≥10││a≤0D)a>=10││a<=0
20、一个C程序的执行是从:
A
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
21、下列不属于C语言关键字的是。
D
A)default(如default用于switch语句当中:
default:
break;)
B)register(寄存器类型)C)enum(枚举类型)D)external(应为extern)
22、逗号表达式"(a=3*5,a*4),a+15"的值是____。
C
A)15B)60C)30D)不确定
23、已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。
C
A)0B)1C)5D)6
24、使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(□代表空格),正确的输入是____。
C
A)1.25,2.4B)1.25□2.4C)x=1.25,y=2.4D)x=1.25□y=2.4
25、C语言程序从main()函数开始执行,所以这个函数要写在____。
D
A)程序文件的开始B)程序文件的最后
C)它所调用的函数的前面D)程序文件的任何位置
26、下面各选项组中,均是C语言关键字的组是。
B
说明:
所谓关键字就是已被TurboC2.0本身使用,不能作其它用途使用的字。
例如关键字不能用作变量名、函数名等
C语言总共有32个关键字:
TurboC2.0有以下关键字:
TurboC2.0扩展的共11个
asm_cs_ds_es_sscdeclfarnearhugeinterruptpascal
由ANSI标准定义的共32个:
autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic
注:
auto是系统在没有为变量显示声明存储类型时自动视为auto;register寄存器变量;extern外部变量;static静态变量;volatile(易变的)表示该变量不经过赋值,其值也可能被改变(例如表示时钟的变量、表示通信端口的变量等)。
A)auto,printf,includeB)switch,typedef,continue
C)signed,union,scanfD)if,struct,type
27、为判断字符变量c的值是字母时,应采用下述表达式____。
D
【解析】由于单目运算符优先级高于“&&”和“||”运算,所以先计算!
a、!
b和!
c分别为“假”、“假”、“真”,然后是&&运算和“||”运算,原表达式就等价于“假”&&“假”||“真”,又由于“&&”的优先级高于“||”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”||“真”为真。
A)c<=65||c>=90&&c<=97||c>=122(不是字母的取值范围)
B)c>=57&&c<=65||c<=97&&c>=122(不是字母的取值范围)
C)c>=65&&c<=90,c>=97&&c<=122(,号错误,表达式错)
D)c>=65&&c<=90||c>=97&&c<=122
28、以下程序执行后sum的值是C(应为sum未赋初值)
A)15B)14C)不确定D)0
main()
{inti,sum;
for(i=1;i<6;i++)sum=sum+i;
printf("%d\n",sum);
}
29、温度华氏和摄氏的关系是:
C=
。
已知:
floatC,F;由华氏求摄氏的正确的赋值表达式是____。
B(运算符的次序问题,且*不能省)
A)C=5/9(F-32)B)C=5*(F-32)/9
C)C=5/9*(F-32)D)三个表达式都正确
选择题:
30、当类型长度为2字节且为无符号时,则它的值范围为:
D
A)0至255B)-32768至32767
C)-256至255D)0至65535
31、在C语言的循环语句中for,while,do-while中,有一个_____语句用于直接中断最内层循环。
C
A)switchB)continue
C)breakD)if
32、C语言规定:
在一个源程序中,main函数的位置:
C
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
33、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符:
C
A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符
34、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为:
A
A)D B)68 C)不确定的值 D)C
35、以下叙述中不正确的是______D
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效(返回值就不是)
36、已知:
chara;intb;floatc;doubled;执行语句"c=a+b+c+d;"后,变量c的数据类型是。
C(有争议,还取决于输出格式)
A)intB)charC)floatD)double
37、已知intx=1,y;执行下述语句后变量x的值是____。
B
y=++x>5&&++x<10;(因为机器计算了++x>5后就能判断y的值为0了,所以运行结束,x只自加了一次)
A)1B)2C)3D)4
38、语句printf(“%d”,(a=2)&&(b=-2);的输出结果是_______D((a=2)和(b=-2)均不为0,所以结果为1)
A)无输出B)结果不确定C)0D)1
39、若执行以下程序时从键盘上输入9,则输出结果是_____B
A)11B)10C)9D)8
main()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);/*(n=9,假设成立n++后输出n值)*/
elseprintf("%d\n",n--);
}
40、一个C语言程序是由______。
A
A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成
41、以下叙述正确的是______B【解析】if是C语言中的保留字,而define不是保留字。
用户标识符不允许使用保留字。
A)可以把define和if定义为用户标识符(if是关键字)
B)可以把define定义为用户标识符,但不能把if定义为用户标识符
C)可以把if定义为用户标识符,但不能把define定义为用户标识符
D)define和if都不能定义为用户标识符
42、函数sqrt(x)的功能是______D
A)求x的长度B)求x的绝对值
C)求x的平方值D)求x的平方根
43、若有以下定义D(数据类型向上兼容)
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为_______
A)floatB)intC)charD)double
44、下列说法中,正确的是_______C
A)break语句可以用在循环语句中,作用是结束本次循环
B)break语句不能用在switch语句中
C)continue语句用在循环语句中,作用是结束本次循环
D)break语句和continue语句用在循环语句中,都可以直接终止整个循环
选择题:
45、以下描述中正确的是:
C
A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B) do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D)do一while循环中,根据情况可以省略while
46、在c语言中,引用数组元素时,其数组下标的数据类型允许是:
C
A)整型常量 B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
47、以下能对一维数组a进行正确初始化的语句是:
C
A) inta[10]=(0,0,0,0,0)B)int a[10]={}
C) int a[]={0};D)inta[10]={10*1};
48、以下对二维数组a的正确说明是:
C
A) inta[3][]; B) floatfa(3,4);
C) doublea[1][4]; D) floata(3)(4);
49、在C语言中,一维数组的定义方式为:
类型说说明符数组名:
A
A)[常量表达式] B)[整形表达式]
c)[整型常量]或[整型表达式]D)[整型常量]
50、对字符数组s赋值,不合法的一个是____。
C
A)chars[]="Beijing";
B)chars[20]={"beijing"};
C)chars[20];s="Beijing";
D)chars[20]={'B','e','i','j','i','n','g'};
51、对字符数组str赋初值,str不能作为字符串使用的一个是____。
D
A)charstr[]="shanghai";
B)charstr[]={"shanghai"};
C)charstr[9]={'s','h','a','n','g','h','a','i'};
D)charstr[8]={'s','h','a','n','g','h','a','i'};(因为\0还占用一个字节,所以8应改为9或数组中少一个字符)
52、字符串""的长度是____。
B(因为\0还占用一个字节)
A)0B)1C)2D)非法字符串
53、有二维数组定义inta[4][5];下列对该数组的元素引用正确的是________A
A)a[0][0]
B)a[0,3]
C)a[4][1](一维超限)
D)a[1][5](二维超限)
54、对字符数组s赋值,不合法的一个是____C。
A)chars[]="Beijing";
B)chars[20]={"beijing"};
C)chars[20];s="Beijing";
D)chars[20]={'B','e','i','j','i','n','g'};
55、对字符数组str赋初值,str不能作为字符串使用的一个是____D(少一个字节空间存放\n)。
A)charstr[]="shanghai";
B)charstr[]={"shanghai"};
C)charstr[9]={'s','h','a','n','g','h','a','i'};
D)charstr[8]={'s','h','a','n','g','h','a','i'};
56、字符串"ab"的长度是____C。
A)0B)1C)2D)非法字符串
57、对二维数组的正确说明是____C。
(A、B第二维均未标注值,D的书写格式不对)
A)inta[][]={1,2,3,4,5,6};B)inta[2][]={1,2,3,4,5,6};
C)inta[][3]={1,2,3,4,5,6};D)inta[2,3]={1,2,3,4,5,6};
选择题:
58、函数调用:
strcat(strcpy(str1,str2),str3)的功能是:
C
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3中
59、以下对C语言函数的有关描述中,正确的是:
A
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中
60、以下叙述中错误的是:
B
A)在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B)在C语言中,外部变量的隐含类别是自动存储类别
C)在C语言中,函数形参的存储类型是自动(auto)类型的变量
D)在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
61、在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。
A)int B)double C)void D)char
62、简单变量做实参时,它相对应形参之间的数据传递方式是__B__。
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回给实参
D)由用户指定传递方式
63、一个C程序的执行是从______。
A
A)本程序的main函数开始,到main函数的结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束
C)本程序文件的main开始,到本程序文件的最后一个函数的结束
D)本程序文件的第一个函数开始,到本程序文件的main函数的结束
64、下面函数的功能是____。
A
a(s1,s2)
chars1[],s2[];
{while(s2++==s1++);
}
A)字符串比较B)字符串复制C)字符串连接D)字符串反向
65、以下所列的各函数首部中,正确的是C
A)voidplay(var:
Integer,varb:
Integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
66、对函数形参的说明有错误的是____。
C(形参中数组不应规定元素个数,它是由系统动态分配空间的)
A)inta(floatx[],intn)B)inta(float*x,intn)
C)inta(floatx[10],intn)D)inta(floatx,intn)
67、已知intx=12,y=3;执行下述程序后,变量x的值是____。
D(循环到y=0时,除法有错误,不能进行下去)
do
{x/=y--;
}while(x>y);
A)1B)2C)3D)程序运行有错误
68、在C语言中,函数的数据类型是指____A。
A)函数返回值的数据类型B)函数形参的数据类型
C)调用该函数时的实参的数据类型D)任意指定的数据类型
69、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____A。
A)静态变量B)动态变量C)外部变量D)内部变量
70、若用数组名作为函数调用时的实参,则实际上传递给形参的是。
A
A)数组首地址B)数组的第一个元素值
C)数组中全部元素的值D)数组元素的个数
71、已知如下定义的函数:
fun1(inta)
{printf("\n%d",a);
}
则该函数的数据类型是__B__。
A)与参数a的类型相同B)void型
C)没有返回值D)无法确定
72、以下程序的输出结果是C(自己运行一下)
A)0B)29C)31D)无定值
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);
}
选择题:
73、C语言中有如下定义:
B
charstr[4]=”ABC”;
char*ptr;
执行了语句ptr=str后,*(ptr+3)的值是:
A)不确定B)’\0’
C)’C’D)字符的地址
74、下列各语句行中,能正确进行赋字符串操作的是:
C
A)charst[4][5]={“ABCDE”};
B)chars[5]={‘A’,’B’,’C’,’D’,’E’};
C)char*s;s=”ABCED”;
D)char*s;scanf(“%s”,s);
75、对于类型相同的指针变量,不能进行哪种运算?
A
A)+B)-C)=D)==
76、若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?
(D)
inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;
p=a;
A)&(a+1)B)a++
C)&pD)&p[i]
77、已知有以下的说明,那么执行语句a=p+2;后,a[0]的值等于多少?
(D)
floata[3]={1.2,45.6,-23.0};
float*p=a;
A)1.2B)45.6
C)-23.0D)语句有错
78、下列程序的输出结果是———C
A)非法B)a[4]的地址C)5D)3
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
79、已知:
chars[100];inti;则引用数组元素的错误的形式是。
——A(数组名[]中应为常量表达式,不能为变量)
A)s[i+10]B)*(s+i)C)*(i+s)D)*((s++)+i)
80、已知:
chars[10],*p=s,则在下列语句中,错