C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
16、设f是实型变量,下列表达式中不是逗号表达式的是(D)。
A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)
17、表达式18/4*sqrt(4.0)/8值的数据类型是(C)。
A.intB.floatC.doubleD.不确定
18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句
C2=’A’+’6’-‘3’;后c2中的值是(A)。
A.DB.68C.不确定的值D.C
19、以下用户标识符中,合法的是(B)。
A.intB.nitC.123D.a+b
20、C语言中,要求运算对象只能为整数的运算符是(A)。
A.%B./C.>D.*
21、若有说明语句:
charc='\72';则变量c在内存占用的字节数是(A)。
A.1B.2C.3D.4
22、字符串"ABC"在内存占用的字节数是(B)。
A.3B.4C.6D.8
23、要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。
A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;
24、下列不正确的转义字符是(C)。
A.\\B.\'C.074D.\0
二、填空题:
1、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为0。
3、设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!
=c+2,-a-5*b<=d+1,b==a=2的值分别为1、0、1、1。
4、设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。
5、判断变量a、b的值均不为0的逻辑表达式为a!
=0&&b!
=0。
6、求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,4,10,6。
7、求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3。
8、数学式a/(b*c)的C语言表达式a/b/c。
三、编程题:
1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。
2、编写一个程序,将大写字母A转换为小写字母a。
1.
main()
{floatx=1.5,y=2.3;printf(“areais%6.2f\n”,x*y);}
2.
main()
{charc=’A’;printf(“%d”,c+32);}
4最简单的C程序设计—顺序程序设计
一、单项选择题
1、printf("f=%3.2f%%",3.478);的输出结果是(A)。
A.f=3.48%B.f=3.5%C.f=3.48%%D.f=347.8%
2、printf("%c,%d",'a','a');的输出结果是(A)。
A.a,97B.a97C.97,aD.97a
3、有以下程序段
charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);
程序运行后,若从键盘输入(从第1列开始):
123<回车>45678<回车>。
则输出结果是:
(D)
A.1267B.1256 C.1278D.1245
4、若一个int类型的数据占2字节,则程序段:
intx=1;printf("%u,%d",x,x);的输出结果是(A)。
A.65535,1B.1,65535C.32767,32768D.32768,32767
5、在TC中getchar、putchar、printf、scanf四个函数,均包含在头文件(B)中。
A.math.hB.stdio.hC.stbio.hD.stdlib.h
6、复合语句是用(C)括起来的语句组。
A.()B.[]C.{}D.<>
7、下列格式符中,哪一个可以用于以八进制形式输出整数(C)。
A.%dB.%8dC.%oD.%ld
8、下列格式符中,哪一个可以用于以十六进制形式输出整数(B)。
A.%16dB.%8xC.%d16D.%d
9、a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的(B)。
A.scanf("%d,%c",&a,&c);B.scanf("%d%c",a,c);
C.scanf("%d%c",&a,&c);D.scanf("d=%d,c=%c",&a,&c);
10、要使doublex;longa;的数据能正确的输出,输出语句应是(D)。
A.printf("%d,%f",a,x);B.printf("%d,%1f",a,x);
C.scanf("%1d,%1f",&a,&x);D.printf("%1d,%lf",a,x);
二、程序改错题
1、以下程序的功能是,从键盘输入一个字符并鸣笛输出。
#include"stdio.h"
mian()
{charc
getchar(c);
putchar('007');/*鸣笛*/
c=putchar();改为:
putchar();
}
2、以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。
main
{inta,b,s,l;
scanf("%d,%d",&a,&b);
s=a*b;l=a+b;改为:
1=2*(a+b);
printf("l=%f,s=%f\n",l,s);
}
三、写出程序运行结果
1、main()
{inta,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:
12345678,输出结果是68。
2、main()
{inta=3,b=5,x,y;
x=a+1,b+6;y=(a+1,b+6);
printf("x=%d\ny=%d\n",x,y);
}
输出结果是x=4,y=11__。
四、编程题
1、输入3个整数,计算它们的和与平均值,平均值的结果保留2位小数。
1.main()
{inta,b,c,sum;
floatave;
scanf(“%d%d%d”,&a,&b,&c);
sum=a+b+c;ave=sum/3.0;
printf(“sum=%d,ave=%.2f\n”,sum,ave);
}
2、输入两个实数a,b,然后交换它们的值,最后输出(提示:
要交换两个数得借助一个中间变量temp。
首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。
1.voidmain()
{floata,b,temp;
printf("inputaandb:
");
scanf("%d,%d",&a,&b);
temp=a;a=b;b=temp;
printf("a=%d,b=%d\n",a,b);
}
5选择结构程序
一、单项选择题
1、假定所有变量均已正确定义,下列程序段运行后x的值是(B)。
a=b=c=0,x=35;if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
2、有以下程序段,其输出结果是:
(A)
inta,b,c;a=10;b=50;c=30; if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);
A.a=10b=50c=10 B.a=10b=50c=30C.a=10b=30c=10 D.a=50b=30c=50
3、有以下程序段,其输出结果是:
(D)
int x=1,y=2,z=3;if(x>y) if(y printf("%d\n",x++);
A.331 B.41 C.2 D.1
4、程序段intx=5,y=8,max;max=(x>y)?
x:
y;printf("%d",max);的输出结果是(C)。
A.5B.3C.8D.13
5、程序段intx=3,a=1;switch(x){case4:
a++;case3:
a++;case2:
a++;case1:
a++;}printf("%d",a);的输出结果是(D)。
A.1B.2C.3D.4
6、下列语句应将小写字母转换为大写字母,其中正确的是(B)。
A.if(ch>='a'&ch<='z')ch=ch-32;B.if(ch>='a'&&ch<='z')ch=ch-32;
C.ch=(ch>='a'&&ch<='z')?
ch-32:
’’;D.ch=(ch>'a'&&ch<'z')?
ch-32:
ch;
7、有以下程序段,其输出结果是:
(C)
int x=1,y=0,a=0,b=0;
switch(x)
{case 1:
switch(y){ case 0:
a++;break; case 1:
b++;break; }
case 2:
a++;b++;break;
case 3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
A.a=1,b=0 B.a=2,b=2 C.a=2,b=1 D.a=1,b=1
二、填空题
1、当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少?
(1)if(a>c){a=b;b=c;c=a;}else{a=c;c=b;b=a;}
执行后a,b,c的值为_5__,_5__,_4__
(2)if(a执行后a,b,c的值为_5__,_5__,_4__
(3)if(a!
=c);elsea=c;c=b;b=a;
执行后a,b,c的值为_3__,_3_,_4__
2、若整数x分别等于95、87、100、43、66、79,则以下程序段运行后屏幕显示是什么?
switch(x/10)
{case6:
case7:
printf("Pass\n");break;
case8:
printf("Good\n");break;
case9:
case10:
printf("VeryGood\n");break;
default:
printf("Fail\n");
}
x等于95时,程序段运行后屏幕上显示VeryGood
x等于87时,程序段运行后屏幕上显示Good
x等于100时,程序段运行后屏幕上显示VeryGood
x等于43时,程序段运行后屏幕上显示Fail
x等于66时,程序段运行后屏幕上显示Pass
x等于79时,程序段运行后屏幕上显示Pass
三、阅读程序,写出运行结果
1、voidmain()
{inta=10,b=4,c=3;
if(a
if(aprintf("%d,%d,%d\n",a,b,c);
}10,4,3
2、voidmain()
{intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
=15)if(!
ok1)x=1;
elseif(ok2)x=10;
elsex=-1;
printf("%d\n",x);
}-1
3、intk,a=1,b=2;
k=(a++==b)?
2:
3;
printf("%d",k);
3
4、voidmain()
{ints=1,k=0;
switch(s)
{case1:
k+=1;
case2:
k+=2;
default:
k+=3;
}
printf(“%d”,k);
}6
5.voidmain()
{ints=1,k=0;
switch(s)
{case1:
k+=1;break;
case2:
k+=2;break;
default:
k+=3;
}
printf(“%d”,k)
}1
四、选做题
1、输入3个整数,按从大到小的顺序输出。
1.main()
{inta,b,c,t;
scanf(“%d%d%d”,&a,&b,&c);
if(a
if(a if(bprintf(“%d,%d,%d\n”,a,b,c);
}
2、请将以下语句改写成switch语句。
if((s>0)&&(s<=10))
if((s>=3)&&(s<=6))x=2;
elseif((s>1)||(s>8))x=3;
elsex=1;
elsex=0;
2.switch((s>0)&&(s<=10))
{case1:
switch((s>=3)&&(s<=6))
{case1:
x=2;break;
case0:
switch(s>1)||(s>8))
{case1:
x=3;break;
case0:
x=1;break;
}
}break;
case0:
x=0;break;
}
6循环控制
一、单项选择题
1、for(i=1;i<9;i+=1);该循环共执行了(B)次。
A.7B.8C.9D.10
2、inta=2;while(a=0)a--;该循环共执行了(A)次。
A.0B.1C.2D.3
3、执行完循环for(i=1;i<100;i++);后,i的值为(A)。
A.99B.100C.101D.102
4、以下for语句中,书写错误的是C。
A.for(i=1;i<5;i++)B.i=1;for(;i<5;i++)
C.for(i=1;i<5;i++);D.for(i=1;i<5;)i++;
5、(A)语句,在循环条件初次判断为假,还会执行一次循环体。
A.forB.whileC.do-whileD.以上都不是
6、有以下程序段 int i=5; do{if(i%3==1) if(i%5==2) {printf("*%d",i); break; } i++; }while(i!
=0); 其运行结果是(B)
A.*2*6 B.*7 C.*5 D.*3*5
7、i、j已定义为int类型,则以下程序段中内循环体的执行次数是(A)。
for(i=5;i;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
8、以下不构成无限循环的语句或语句组是(C)。
A.n=10; while(n);{n--;} B.n=0; while
(1){n++;}
C.n=0; do{++n;}while(n<=0); D.for(n=0,i=1;;i++)n+=i;
9、有以下程序段int y=9; for(y>0;y--) if(y%3==0) printf("%d",--y);其运行结果是(D)。
A.875421 B.963 C.852 D.741
10、有以下程序段inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++) printf("%d",i+j);printf("\n");}
其运行结果是(D)。
A.2 3 4 B.4 3 2 C.2 3 D.4 5
3 4 5 5 4 3 3 4 3 4
4 5 2 3
二、判断题
(✔)1、do{……}while(0);程序块至少会执行一次
(✘)2、语句for(i=0;i=10;i++){……};至多循环10次
(✔)3、for(;;)表示无限循环。
(✔)4、下面的循环不能正常结束:
for(s=0,i=1;i<=10;){s=s+i;i++;}
(✘)5、continue语句是终止整个循环的执行。
(✔)6、对for(表达式1;;表达式3;)可理解为for(表达式1;1;表