C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
16、设f是实型变量,下列表达式中不是逗号表达式的是()。
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值的数据类型是()。
A.intB.floatC.doubleD.不确定
18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=’A’+’6’-‘3’;后c2中的值是()。
A.DB.68C.不确定的值D.C
19、以下用户标识符中,合法的是()。
A.intB.nitC.123D.a+b
20、C语言中,要求运算对象只能为整数的运算符是()。
A.%B./C.>D.*
21、若有说明语句:
charc='\72';则变量c在内存占用的字节数是()。
A.1B.2C.3D.4
22、字符串"ABC"在内存占用的字节数是()。
A.3B.4C.6D.8
23、要为字符型变量a赋初值,下列语句中哪一个是正确的()。
A.chara="3";B.chara="3";C.chara=%;D.chara=*;
24、下列不正确的转义字符是()。
A.\\B.\'C.074D.\0
二、填空题
1、C语言中的逻辑值“真”是用表示的,逻辑值“假”是用表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为。
3、设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!
=c+2,-a-5*b<=d+1,b==a=2的值分别为、、、。
4、设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为。
5、判断变量a、b的值均不为0的逻辑表达式为。
6、求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为。
7、求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为。
8、数学式a/(b*c)的C语言表达式。
三、判断题
()1、C语言中,非0值作为true,0作为false;若表达式取得true值时,结果为1,取得false值时,为0。
()2、为了确保表达式n/2的值为float型,可写成float(n/2)。
()3、若有(float)x,则x变成float型变量。
()4、若a=3,b=4,c=5,则d=!
(a%b)的值是0。
()5、a是实型变量,进行赋值a=10,因此实型变量中允许存放整型值
()6、在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
()7、 执行表达式a=b后,在内存中a和b存储单元中的原值都将被改变,a的值已由原来的改变为b的值,b的值由原来改变为0
()8、有a=3,b=5。
执行a=b,b=a后,使a的值为5,b的值为3。
()9、 getchar()和scanf()均为输入函数,它们之间可通用,没有任何区别。
()10、执行语句scanf("%6.3f",&a)后,输入123456可使a的值为123.456。
()11、 putchar()函数的作用是输出一串字符。
()12、 使用scanf()函数,在输入数据时,若遇非法输入则认为该数据输入结束。
()13、在C中所用的变量必须先定义后使用。
()14、在C程序中,运算符%仅能用于整型数的运算。
()15、APH与aph分别表示不同的变量。
()16、设x和y都是int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是交换x和y的值。
()17、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为0。
()18、C语言中无逻辑变量,也无逻辑表达式。
四、编程题:
1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。
2、编写一个程序,将大写字母A转换为小写字母a。
4最简单的C程序设计—顺序程序设计
一、单项选择题
1、printf("f=%3.2f%%",3.478);的输出结果是()。
A.f=3.48%B.f=3.5%C.f=3.48%%D.f=347.8%
2、printf("%c,%d",'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<回车>。
则输出结果是:
()
A.1267B.1256 C.1278D.1245
4、若一个int类型的数据占2字节,则程序段:
intx=1;printf("%u,%d",x,x);的输出结果是()。
A.65535,1B.1,65535C.32767,32768D.32768,32767
5、在TC中getchar、putchar、printf、scanf四个函数,均包含在头文件()中。
A.math.hB.stdio.hC.stbio.hD.stdlib.h
6、复合语句是用()括起来的语句组。
A.()B.[]C.{}D.<>
7、下列格式符中,哪一个可以用于以八进制形式输出整数()。
A.%dB.%8dC.%oD.%ld
8、下列格式符中,哪一个可以用于以十六进制形式输出整数()。
A.%16dB.%8xC.%d16D.%d
9、a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的()。
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;的数据能正确的输出,输出语句应是()。
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();
2、以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。
main
{inta,b,s,l;
scanf("%d,%d",&a,&b);
s=a*b;l=a+b;
printf("l=%f,s=%f\n",l);
}
三、写出程序运行结果
1、main()
{inta,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:
12345678,输出结果是。
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);
}
输出结果是__。
四、编程题
1、输入3个整数,计算它们的和与平均值,平均值的结果保留2位小数。
2、输入两个实数a,b,然后交换它们的值,最后输出(提示:
要交换两个数得借助一个中间变量temp。
首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。
5选择结构程序
一、单项选择题
1、假定所有变量均已正确定义,下列程序段运行后x的值是()。
a=b=c=0,x=35;if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
2、有以下程序段,其输出结果是:
()
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、有以下程序段,其输出结果是:
()
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);的输出结果是()。
A.5B.3C.8D.13
5、程序段intx=3,a=1;switch(x){case4:
a++;case3:
a++;case2:
a++;case1:
a++;}printf("%d",a);的输出结果是()。
A.1B.2C.3D.4
6、下列语句应将小写字母转换为大写字母,其中正确的是()。
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、有以下程序段,其输出结果是:
()
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的值为___,___,___
(3)if(a!
=c);elsea=c;c=b;b=a;
执行后a,b,c的值为___,___,___
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时,程序段运行后屏幕上显示
x等于87时,程序段运行后屏幕上显示
x等于100时,程序段运行后屏幕上显示
x等于43时,程序段运行后屏幕上显示
x等于66时,程序段运行后屏幕上显示
x等于79时,程序段运行后屏幕上显示
三、阅读程序,写出运行结果
1、voidmain()
{inta=10,b=4,c=3;
if(a
if(aprintf("%d,%d,%d\n",a,b,c);
}
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);
}
3、intk,a=1,b=2;
k=(a++==b)?
2:
3;
printf("%d",k);
4、voidmain()
{ints=1,k=0;
switch(s)
{case1:
k+=1;
case2:
k+=2;
default:
k+=3;
}
printf(“%d”,k);
}
5.voidmain()
{ints=1,k=0;
switch(s)
{case1:
k+=1;break;
case2:
k+=2;break;
default:
k+=3;
}
printf(“%d”,k)
}
四、选做题
1、输入3个整数,按从大到小的顺序输出。
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;
6循环控制
一、单项选择题
1、for(i=1;i<9;i+=1);该循环共执行了()次。
A.7B.8C.9D.10
2、inta=2;while(a=0)a--;该循环共执行了()次。
A.0B.1C.2D.3
3、执行完循环for(i=1;i<100;i++);后,i的值为()。
A.99B.100C.101D.102
4、以下for语句中,书写错误的是。
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.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); 其运行结果是()
A.*2*6 B.*7 C.*5 D.*3*5
7、i、j已定义为int类型,则以下程序段中内循环体的执行次数是()。
for(i=5;i;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
8、以下不构成无限循环的语句或语句组是()。
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);其运行结果是()。
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");}
其运行结果是()。
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;表达式3;)。
()7、下列程序段执行循环二次 x=-1;do{x=x*x;}while(!
x);
()8、下列程序段能计算s=10!
的值 i=1;s=1; do{s=s*i;i++;}while(i<=10);
()9、下列程序段将输出3和0,