程序的运行结果是:aa∪bb∪∪∪cc∪∪∪∪∪∪abc A∪N
14.下面程序的运行结果是9,11,9,10。
main() {inti,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d\\n”,i,j,m,n); }
15.以下程序的运行结果是11.50。 #include
voidmain() {inti=5,j=9; floatx=2.3,y=4.5;
printf(\}
三.判断题
1.C语言中,字符常量可以用单引号或双引号括起来。(错) 2.C语言中,字符常量只能包含一个常量(字符)。(对) 3.在C语言中,字符串常量隐含处理成以‘\\0’结尾。(对) 4.下面程序段的输出结果是9。(错) inta=9;
printf(“%o\\n”,a);(注意:%o中的o是字母o,不是数字0) 5.C语言中,用户所定义的标识符允许使用关键字。(错)
6.C语言中,用户所定义的标识符中,大、小字母代表不同标识。(对) 7.C语言中,符号常量的值在程序运行过程中可以改变。(错) 8.C语言中,不要求对程序中所用到的变量进行强制定义。(错)
9.C语言中,一个整数如果其值在-323768~32767范围内,认为它是int型,只能赋值给int型变量。(错)
10.设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的。(对) 四.计算题
1.求下面表达式的值。
1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7 第1步:(int)(x+y)=(int)(7.2)=7
第2步:a%3*7%2/4=7%3*7%2/4=1*7%2/4=1/4=0 第3步:x+0=x=2.5(计算机显示为2.500000) 2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5
第1步:(float)(a+b)/2=(float)(2+3)/2=(float)(5)/2=5.0/2=2.5 第2步:(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1 第3步:2.5+1=3.5(计算机显示为3.500000)
2.写出下面赋值表达式运算后a的值,设原来a=12,n=5。 1)a+=aa=a+a=12+12=24 2)a-=2a=a-2=12-2=10
3)a*=2+3a=a*(2+3)=12*5=60
4)a/=a+aa=a/(a+a)=12/24=0注意a是整型 5)a%=(n%=2)已知:n=5a=0
6)a+=a-=a*=a从右向左解:a=a*a=144;a=a-a=0;a=a+a=0 五.编程题
1.要将“China”译成密码,规律是:用原来的字母后面第4个字母代替原来的字母。例如,“A”用字母“E”来替代。因此,“China”应译为“Glmre”。编程:用赋初值的方法使c1.c2.c3.c4.c5这五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,这五个变量分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。 #include
{charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’; c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;
printf(“passwordis%c%c%c%c%c\\n”,c1,c2,c3,c4,c5); }
运行结果:passwordisGlmre 也可以用循环和数组: #include
charc[]={“China”}; printf(“passwordis“); for(inti=0;i<=4,i++)
printf(“%c”,c[i]+=4); printf(“\\n”); }
2.请编程,要求用赋初值的方法使c1.c2这两个变量的值分别为97和98,然后分别按整型和字符型输出。 #include
charc1=97,c2=98;
printf(“%d,%d\\n”,c1,c2); printf(“%c,%c\\n”,c1,c2); }
3.编写程序,从键盘输入三个单精度数a、b、c,计算总和、平均值、x=a2+b2+c2的值,并计算x平方根的值。所有运行数据保留三位小数,第四位四舍五入。
#include
#include
{doublea,b,c,total,average,square,squareroot; printf(\请输入三个单精度实数:\scanf(\total=a+b+c;
average=total/3.0; square=a*a+b*b+c*c;
squareroot=sqrt(square);
printf(\三个数的和=%-15.3f,三个数的平均值=%-15.3f\\n\printf(\三个数的平方和x=%.3f,x的平方根=%.3f\\n\}
运行结果:
请输入三个单精度实数:1.234.567.89
三个数的和=13.680,三个数的平均值=4.560 三个数的平方和x=84.559,x的平方根=9.196
4.输入三角形的三个边长,计算并输出三角形的面积。
#include
#include
{floata,b,c,k,area;
printf(\请输入三角形三条边的边长:\scanf(\
if((a+b<=c)||(a+c<=b)||(b+c<=a))
printf(\您输入的三条边无法构成三角形。\\n\else {
k=(a+b+c)/2;
area=sqrt(k*(k-a)*(k-b)*(k-c));/*函数sqrt(x)是求x的平方根*/ printf(\该三角形的面积是%6.2f\\n\
}
}
5.输入两个长整型数,输出它们(整数除的)商和余数。
#include
{longa1,a2,a3,a4;
printf(\请输入两个整数:\scanf(\a3=a1/a2; a4=a1¢;
printf(\两数进行整数除的商是%ld,余数是%ld\\n\}
运行结果:
请输入两个整数:654321789
两数进行整数除的商是829,余数是240
6.输入两个整数,输出它们(实数除)的商,并输出商的第二位小数位(例如:15/8.0=1.875,1.875的第二位小数位是7)。
#include
{inta,b,c; floatf;
printf(\请输入两个整数:\
scanf(\f=1.0*a/b;
c=(int)(f*100);
printf(\两数进行实数除,商是%f,商的第二位小数位是%d\\n\}
运行结果:
请输入两个整数:158
两数进行实数除,商是1.875000,商的第二位小数位是7
7.输入一个(unsigned类型)无符号整数,分别输出它的低四位和高四位。
#include
{unsignedu,high4,low4;
printf(\请输入一个无符号整数:\scanf(\
low4=(u&0xf);/*u的低四位保留原值,其余位置0*/
high4=(u&0xf000)>>12;/*u的高四位保留原值,其余位置0,并右移12位*/ printf(\的十六进制是%x\\n\
printf(\十六进制表示%u的低四位是%x,高四位是%x\\n\}
运行结果:
请输入一个无符号整数:54332 54332的十六进制是d43c
十六进制表示54332的低四位是c,高四位是d
8.输入两个小写字母分别赋值给字符变量ch1与ch2,将它们转换成大写字母,并交换ch1与ch2的值,最后输出ch1与ch2的值。
#include
voidmain() {charc1,c2,t;
printf(\请输入两个半角的小写英文字母:\c1=getchar(); c2=getchar(); c1-=32;
c2-='a'-'A';/*与32等价*/ t=c1; c1=c2; c2=t;
printf(\}
运行结果:
请输入两个半角的小写英文字母:db BD
9.输入秒数,将它转换,用小时、分钟、秒来表示。例如输入7278秒,则输出:2小时1分18秒。
#include
voidmain()
{intk;
inthour,minute,second; printf(\请输入秒数:\scanf(\hour=k/3600; k%=3600; minute=k/60; second=k`;
printf(\小时%d分钟%d秒。\\n\}
运行结果:
请输入秒数:7278 2小时1分钟18秒。
10.输入两个复数的实部和虚部,输出这两个复数积的实部和虚部。两复数的积按下面的公式计算:(a+bi)·(c+di)=(ac-bd)+(ad+bc)i。
#include
{floata,b,c,d,real,imag;
printf(\请输入第一个数的实部和虚部:\scanf(\
printf(\请输入第二个数的实部和虚部:\scanf(\real=a*c-b*d; imag=a*d+b*c;
printf(\两个复数积的实部和虚部分别是%f,%f\\n\}
运行结果:
请输入第一个数的实部和虚部:1.12.2 请输入第二个数的实部和虚部:3.34.4
两个复数积的实部和虚部分别是-6.050000,12.100000 第三章C程序的基本控制结构
一.单选题
1.若变量已经正确定义为float型,要通过语句scanf(“%f%f%f”,&a,&b,&c)。
给a输入10.0,n输入20.0,c输入30.0,下列不正确的输入形式是(B)。 A)10<回车>20<回车>30<回车>B)10.0,20.0,30.0<回车> C)10.0<回车>20.030.0<回车>D)1020<回车>30<回车> 2.若有说明语句:charc=?65?;则变量c(D)。 A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定
3.若w=1,x=2,y=3,z=4,则条件表达式w 4.x、y、z被定义为int型变量,若从键盘给它们输入数据,正确的输入语句是(B)。