1.C
解析:整型或字符型数据可以作为逻辑运算符两侧运算对象,所以AB错误,指针不可以作为逻辑运算符两侧运算对象,所以D错。故选C.
2.B
解析:算术运算符优先级高于关系运算符,关系运算符优先级高于逻辑运算符。
+是算术运算符,<、!=是关系运算符,&&是逻辑运算符。故选B。
3.C
解析:[1,10]这应该是取交集,[1,10]与[200,210]取并集,故选C。
4.C
解析:A是数学里面才这样表达,B显然错误,D是其他编程语言的表达方式,C语言只能像C那样表达。
5.C
解析:显然B、D正确,C中第一个语句缺少“;”号,A中后面那个“;”是空语句的意思,即什么都不执行,是正确的哈。故选C.
6.C
解析:m先自加,则m=6,所以m++>5成立,所以输出m的值,故选C。
7.B
解析:先判断a<b,显然条件成立,于是执行判断c<d,显然条件不成立,则执行判断a<c,显然条件成立,于是执行判断b<d,显然条件成立,于是执行x=2,后面的语句就不执行啦!。
8.C
解析:先判断x<y,显然条件成立,于是执行判断y!=10,显然条件成立,于是执行!ok1,由于ok1为非零,所以表达式!ok1的值为零,于是执行判断ok2,由于ok2的值为零,故不执行a=10,然后执行a=-1,故选C。
9.B
解析:c语言是这样规定的,不信,可以翻一下教材。
10.B
解析:这种题我做过,表达式(exp)?a++:b--的意思是如果exp的值为0,执行b--,如果exp的值不为0,则执行a++,而表达式(exp!=0)a++:b--中,若exp=0的话,显然表达式exp!=0的值为0,故执行b--,反之,执行a++。
希望你能明白我讲的!
逻辑运算符两侧运算对象的数据类型可以是什么的数据
一、单项选择题(每题1分,共20分)。
1、在C语言程序中应包含一个。
A)语句B)函数调用C)主函数D)子函数
2、C程序构成。
A)由主程序和子程序B)可以由一个主函数和若干其他函数。
C)只能由一个函数即主函数D)可以由若干个主函数和其他函数。
3、C语言基本类型包括()
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型。
C)整型、字符型、逻辑型D)整型、实型、字符型。
4、逻辑运算符两侧运算对象的数据类型。
A)只能是0和1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据。
5、设有定义:logx=-123456L,则能够正确输出变量x值的语句是。
A)printf("x=%8dL\n",x);B)printf("x=%8dL\n",x);。
C)printf("x=%1d\n",x);D)printf("x=%LD",x);。
6、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度小于5,则输出按下列哪种方式进行。
A)从左起输出字符串B)按原字符串长度从左到右输出。
C)右对齐输出该字符串,左补空格D)输出错误信息。
7、语句while(!e)中的条件!e等价与。
A)e==0B)e!=1C)e!=0D)e==1。
8、设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是。
A)while循环执行10次B)循环是无限循环。
C)循环体1次也不执行D)循环体执行1次
9、初始化语句正确的是。
A)inta[1][4]={1,2,3,4,5};B)floatx[3][]={{1},{2},{3}};。
C)longb[2][3]={{1},{2},{3}};D)doubley[][3]={{1,2},{3},{4}};。
10、若要求:如果字符串s1大于字符串s2,则执行语句1,应当使用。
A)if(s1>s2)语句1B)if(strcmp(s1,s2))语句1。
C)if(strcmp(s2,s1)>0)语句1D)if(strcmp(s1,s2)>0)语句1。
11、已知:charstr1[10],str2[10]="Hello!";则在程序中能够将字符串"Hello!"赋给数组str1的正确语句是。
A)str1="Hello!"B)strcpy(str1,str2)C)str1=str2D)strcpy(str2,str1)。
12、若有说明:int*p,m=5,n;以下正确的程序段是。
A)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p);。
C)scanf("%d",&n);*p=n;D)p=&n;*p=m;。
13、下面程序段的运行结果是。
char*s="abcde";。
s+=2;printf("%d",s);。
A)cdeB)字符'c'C)字符'c'的地址D)无确定的输出结果
14、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是。
A)c=*p1+*p2;B)p2=c;C)p1=p2;D)c=*p1*(*p2);。
15、若有以下定义,则对a数组元素地址的正确引用是。
inta[5],*p=a;
A)p+5B)*a+1C)&a+1D)&a[0]。
16、下列说法中错误的是。
A)主函数可以放在程序的任何地方。
B)非主函数总是通过函数调用语句来执行。
C)C程序的书写格式灵活,一行可以写多个语句。
D)C程序的注释也参加编译并出现在目标程序中。
17、以下说法正确的是。
A)C语言程序总是从第一个定义的函数开始执行。
B)在C语言程序中,要调用的函数必须在main()函数中定义。
C)C语言程序总是从main()函数开始执行。
D、C语言程序中的main()函数必须放在程序的开始部分。
18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。
A)DB)68C)不确定的值D)C
19、以下叙述正确的是。
A)在C程序中,每行只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
C)在C程序中,%是只能用于整数运算的运算符。
D)在C程序中,无论是整数还是实数,都能被准确无误地表示。
20、如果已经定义的变量,正确交换变量a、b的是。
A)a=b;b=a;B)a=b;t=a;b=t;。
C)t=a;a=b;b=t;D)a=a+b;b=a-a;a=a-b;。
21、下面输入语句中正确的是。(设:inta,b,c;)。
A)input(a,b,c);B)scanf("%d%d%d",&a,&b,&c);。
C)scanf(%d,%d,%d,&a,&b,&c);D)scanf("%d,%d,%d",a,b,c);。
22、下面有关for循环的正确描述是。
A)for循环只能用于循环次数已经确定的情况。
B)for循环是先执行循环体,后判条件
C)在for循环中,不能用break语句跳出循环。
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。
23、C语言中while和do-while循环的主要区别是。
A)do-while的循环体至少执行1次B)while的循环条件比do-while的循环条件严格
C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句。
24、已知:inta[10];则对a数组元素的正确引用的是。
A)a[10]B)a[3.5]C)a[5]D)a[10-10]。
25、在C语言中,二维数组元素在内存中的存放顺序是。
A)按行存放B)按列存放C)由用户定义D)由函数决定
26、已知:inta[][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是。
A)2B)3C)4D)无法确定
27、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是。
main()
{int*p,*q,a,b;
p=&a;
printf("inputa:");。
scanf("%d",*p);。
…}
A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址
C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量。
28、已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是。
A)k=*ptr1+*ptr2;B)ptr2=k;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);。
29、变量的指针,其含义是指该变量的。
A)值B)地址C)名D)一个标志
30、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是。
A)a,point,*&aB)&*a,&a,*point。
C)*&point,*point,&aD)&a,&*point,point。
31、在C语言中,回车换行符是()
A.\nB.\tC.\vD.\b。
32、下列字符串不是标识符的是()
A.sumB.AverageC.Day_nightD.M.D.JOHN。
33、在C语言中,下列类型属于构造类型的是()。
A.整型B.字符型C.实型D.数组类型
34、设有如下定义:
intx=10,y=5,z;
则语句printf(“%d\n”,z=(x+=y,x/y));。
的输出结果是()
A.0B.1C.3D.4
35、在C语言中,语句和数据定义是用()作为结束标记的。
A.句号B.逗号C.分号D.括号
36、以下程序的输出结果是()
main()
{charc1=’8’,c2=’2’;
printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);}。
A.因输出格式不合法,输出出错信息
B.8,2,6,106C.8,2,6,10D.8,2,5,9。
37、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
main()
{intx;
scanf(“%d”,&x);
if(x++>5)printf(“%d\n”,x);。
elseprintf(“%d\n”,x--);}。
A.7和5B.7和4C.6和4
38、有如下程序段:
intk=0;
while(k++<=2)printf(“%d\n”,k);。
则正确的执行结果是()
A.2B.0C.1D无结果
312
423
39、变量i的值为3,i的地址为2000,若欲使指针变量p指向变量i,则下列赋值正确的是()。
A.&i=3B.*p=3C.*p=2000Dp=&i。
40、下面程序的执行结果是()
main()
{inti,*i_pointer;
i_pointer=&i;
*i_pointer=9;
printf(“i=%d”,i);}
A.i=0B.i=9C.i值不确定D.程序有错误。
41、表达式(int)2.1416的值时()。
A.2B.2.1C.0D.3
42、下列运算符优先级最高的是()
A.>B.+C.&&D.!=
43、程序段如下:
intk=1;
while(k=0)k=k+1;
则以下说法正确的是()
A.while循环执行20次B.循环是无限循环。
C.循环体语句一次也不执行D.循环体语句执行一次。
44、C语言容许函数值类型缺省定义,此时该函数值隐含的类型时()。
A.float型B.Int型C.Long型D.Double型。
45、在C语言中引用数组元素时,其数组下标的数据类型是()。
A.整型常量B.整型表达式
C.整型常量和整型表达式D.任何类型的表达式。
46、以下程序段的输出结果是()
charstr[]=”ABCD”,*P=str;。
printf(“%d\n”,*(p+4));。
A.68B.0C.字符D的地址D.不确定的值
47、一个C程序的执行是从()
A.本程序中的main函数开始,到main函数结束
B.本程序中的第一个函数开始,到本程序中的最后一个函数结束
C.本程序中的main函数开始,到本程序中的最后一个函数结束
D.本程序中的第一个函数开始,到本程序中的main函数结束
48、关于return语句,下列说法中不正确的是()。
A.函数可以通过return语句获得返回值。
B.没有return语句函数就不能获得返回值。
C.return语句后面可以是常量、变量名或表达式,只要有确定的值
D.C语言中允许函数不返回值
49、按照C语言的规定,下列说法正确的是()。
A.实参可以是常量、变量或表达式,在传递给形参时,要求实参必须有确定的值
B.形参可以是常量、变量或表达式
C.实参可以为任意类型
D.形参与其对应的实参类型要求可以不一致
50、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是()。
A.10,11,12B.11,12,12C.10,12,12D.11,11,12。
51、C语言中基本数据类型包括。
A、整型、实型、逻辑型B、整型、实型、字符型。
C、整型、字符型、逻辑型D、整型、实型、数组、字符型。
52、下列常数中不能作为C语言常量的是。
A、0xA5B、2.5e-2C、3e2D、0582。
53、下列不属于C语言关键字的是。
A、defaultB、voidC、structD、external。
54、已知intj,i=1;执行语句j=-i++;后,j的值是。
A、1B、2C、-1D、-2
55、已知inti,a;执行语句i=(a=2*3,a*5),a+6;后,i的值是。
A、6B、12C、30D、36
56、已知intx=1,y=2,z;执行语句z=x>y?++x:++y;后,z的值是。
A、1B、2C、3D、4
57、不能进行++和—运算的数据类型是。
A、指针B、doubleC、intD、long。
58、为了明确表示不带回函数值,定义函数时函数名前用。
A、intB、voidC、structD、static。
59、若有inta[2][3]={1,3,5,7,9,11};则a[1][2]的值为。
A、3B、5C、11D、9
60、对于存储类型为的变量,只有使用时才占用内存单元。
A、staticB、externC、autoD、前面都不对。
二、填空题(每空1分,共20分)
1、用C语言编写的程序,编译成功后生成的文件扩展名是,连接成功后生成的文件扩展名是。
2、用汇编语言写的程序必须通过程序翻译后才能执行,而高级语言写的源程序可以通过程序翻译一句执行一句的方式,也可以通过程序一次翻译产生目标程序,然后执行。
3、若x和n均是int型变量,且x和n的初值均为5,则计算下列表达式后x的值为,n的值为。x+=n++。
4、若a是int型变量,则计算下面表达式后a的值为。a=25/3%3。
5、若for循环用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句,则执行语句for(i=0;i<3;i++)printf("*");时,表达式1执行次,表达式3执行次。
6、在C程序中,从开始到结束的内容为注释信息,并且注释信息(可以/不可以)出现在程序的任何地方。
7、C程序有且只有一个主函数,它的函数名是,主函数(可以/不可以)调用任何非主函数,任何非主函数(可以/不可以)调用主函数。
8、若有定义:charc=‘\010’;则变量c中包含的字符个数为______。
9、鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。
for(x=1;x<=29;x++)。
{y=30-x;
if()printf("%d,%d\n",x,y);}。
10、一个C源程序至少包括_________个函数,即_______函数。
11、若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_______________。
12、语句"printf("%x,%o",16,12);"的输出结果是。
13、开发一个C程序的步骤是,,,。
14、一个C程序中必须包含一个且只包含一个函数。
15、C语言中每个基本语句都以结束。
16、C语言规定,对程序中用到的变量,必须先,后。
17、单精度浮点型变量和双精度浮点型变量的类型标识符分别为和。
18、C语言中唯一的三元运算符是,运算优先级最低的运算符是。
19、函数可以嵌套,不能嵌套。
20、欲将1,2分别输入给x,y,则执行scanf(“x=%d,y=%d”,&x,&y);。
语句时的输入格为。
21、若x=2,y=3,则执行x*=y+1语句后,x的值为。
22、是C程序的基本组成单位。
23、在循环语句中执行了break语句,则。
24、C语言规定,凡不加类型说明的函数,一律按。
25、函数调用的三种方式:、、。
26、在函数调用中给出的参数称,在函数定义中给出的参数称。
27、C语言中自动在每个字符串的末尾添加一个。
28、if与else的配对关系中,else总是与的if配对。
29、文件的打开使用函数;文件的关闭使用函数。
30、若intx[]={1,3,5},*p=x;则*(p++)的值为。
31、一个函数由两部分组成,他们是和。
32、C语言是通过来进行输入和输出的。
33、C语言的数据类型有四大类,他们是、、、。
34、当执行以下程序段后,i的值为、j的值为、k的值为。
inta,b,c,d,i,j,k;
a=10;b=c=d=5;i=j=k=0;。
for(;a>b;++b)i++;
while(a>++c)j++;
dok++;while(a>d++);。
35、若有以下定义:doublew[10];则w数组元素下标的上限是,下限是。
36、Break语句只能用于和语句。
37、在循环中,continue语句与break语句的区别是:continue语句只是,break是。
38、若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为。
39、语句"printf("%x,%o",16,12);"的输出结果是。
三、程序填空
1、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环。请填空。
main()
{inta,max=0;
scanf("%d",&a);。
while();
{if(max<a)max=a;
scanf("%d",&a);}。
printf("%d",max);}。
2、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{floatx,amax,amin;
scanf(“%f”,&x);
amax=x;amin=x;
while()
{if(x>amax)amax=x;。
elseif(x<amin);
;}
printf(“\namax=%f\namin=%f\n”,amax,amin);}。
3、输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include<stdio.h>。
voidmain()
{charch;;
while(()!='\n')。
{if(ch>='0'&&ch<='9')s1++;。
if((ch>='a'&&ch<='z')||)s2++;}。
printf(“%d,%d\n”,s1,s2);}。
4、findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。
findmax(ints[],intt)
{intk,p;
for(p=0,k=p;p<t;p++)。
if(s[p]>s[k]);
return;}
5、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{floatx,amax,amin;
scanf(“%f”,&x);
amax=x;amin=x;
while()
{if(x>amax)amax=x;。
elseif(x<amin);
;}
printf(“\namax=%f\namin=%f\n”,amax,amin);}。
6、输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include<stdio.h>。
voidmain()
{charch;
_________;
while(()!='\n')。
{if(ch>='0'&&ch<='9')s1++;。
if((ch>='a'&&ch<='z')||)s2++;}。
printf(“%d,%d\n”,s1,s2);}。
7、下面程序的功能是求出用数字0至9可以组成多少个没有重复数字的三位数。请填空。
main()
{inti,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if()continue;
elsefor(k=0;k<=9;k++)。
if()count++;
printf("%d",count);}。
8、输出3——100之间的所有素数
#include“stdio.h”
main()
{inti,j;
for(i=3;i<=100;i++)。
{for(j=2;j<=i-1;j++)。
if()break;
if()
printf(“%4d”,i);
}}
9、将字符串s中所有的字符‘c’删除
#include“stdio.h”
main()
{chars[80];
inti,j;
for(i=j=0;s[i]!=‘\0’;i++)。
if(s[i]!=‘c’)
puts(s);}
10、用选择法对10个整数排序(从小到大)。
main()
{inti,j,min,temp,a[11];。
for(i=1;i<=10;i++)。
for(i=1;i<=9;i++)
{min=i;
for(;j<=10;j++)
if(a[min]>a[j])
temp=a[i];
;
a[min]=temp;}
for(i=1;i<=10;i++)。
}
四、判断题(每题1分,共20分)
1、若有说明intc;则while(c=getchar());是正确的C语句。()。
2、inti,*p=&i;是正确的C说明。()。
3、7&3+12的值是15。()
4、在C语言中,函数既可嵌套调用又可嵌套定义。()。
5、for(;;)S中的语句S必执行无穷多次。()。
6、unsigned和
还没有评论,来说两句吧...