C语言习题课一、单项选择题:1.以下A是C语言中有效的变量名称。
A._abc B.2abc C.char D.a#3变量名只能以下划线和字母开头2.下面四个说法中错误的是B。
A.for循环不仅可以和for循环嵌套,而且可以和While循环嵌套。
B.当在循环体内执行continue语句的时候,将结束整个循环。
C.while循环最少循环0次,do-while循环最少循环1次。
D.goto语句也可以实现循环的功能。
3.在while ( x )中的x与下面条件表达式等价的是DA.x = = 0 B.x= = 1 C.x! = 1 D.x ! = 04.为表示关系x≥y≥z,应使用C语言表达式AA.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D.(x>=y)&(y>=z)5.设有如下定义:int x=9,y=2,z;则语句printf(“%d\n”,z= x/y);的输出结果是CA.1 B. C.4 D.3整形中的“/”是整除6.若有以下语句:static char x[ ]=”12345”;static char y[ ]={‘1’,’2’,’3’,’4’,’5’};则正确的说法是 B 。
A.x数组和y数组的长度相同B.x数组的长度大于y数组的长度C.x数组的长度小于y数组的长度D.x数组与y数组等价字符串后有一个“\0”7.已知有定义:char ch;则下面正确的赋值语句为A。
A.ch='X' B.ch='55' C.ch="M" D.ch="55"8.以下说法中正确的是CA.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分语言中,形参的缺省存储类型说明是: A语言中的简单数据类型有: BA.整型实型逻辑型B.整型实型字符型C.整型字符型逻辑型D.整型实型逻辑型字符型11.以下程序段的输出结果是: CA.1 int x=3;B.3 0 do{C.1 -2 printf("%3d",x-=2);D.死循环 }while(!(--x));12.以下非法的赋值语句是: AA.n=(i=2,++i);B.j++;C.++(i+1);D.x=y>0;13.设a和b均为double型变量,且a=,b=,则表达式(int)a+b/b的值是: DA.B.6 C. D.14.已知x=3,y=2,则表达式x*=y+8的值为: CA.3 B.2 C.30 D.10y+8是一个整体15.设x,y,z均为int型变量,则执行以下语句后,t的值为: Cx=y=z=1; t=++x||++y&&++z;A.不定值 B.2 C.1 D.016.为了测试字符串的实际长度,C语言规定了一个“字符串结束标志”,这个结束标志字符是: BA.‘\n’ B.‘\0’C.‘\x’ D.‘\9’程序的三种基本结构是: AA.顺序结构、选择结构、循环结构B.逻辑结构、层次结构、网状结构C.顺序结构、逻辑结构、选择结构D.层次结构、顺序结构、循环结构18.若int i=10;执行完下面程序判断后,变量i的正确结果是D。
A.10 switch ( i )B.11 {C.12 case 7: i+=1;D.13 case 10: i+=1;case 17: i+=1;default: i+=1;}case后有break,结束跳出结果,没有break,继续执行具体见书本105页19.下列关于C语言注释的描述中,错误的是: D 。
A.C语言中用/*……*/表示注释部分B.注释只是给人看的,对编译和运行不起作用C.注释可以加在程序中的任何位置D.C语言中用{*……*}表示注释部分20.下列关于C程序的描述中,错误的是: D 。
A.C程序是由函数构成的B.一个C程序总是从main函数开始执行C.C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上D.C语言中是利用输入/输出运算符构成输入/输出语句完成输入/输出操作的源程序的后缀名默认为: B 。
A.cpp B.c C.obj D.exeC语言的默认后缀名是.c,在C++中才是cpp22.以下不属于C语言的基本数据类型的是: B 。
A.整型B.布尔型C.字符型D.实型23.下列标识符中,符合C语言语法规范的是:C。
A.下列选项中,不是C语言中的关键字的是:C。
A.auto B.if C.VOID D.break25.下列常量中,合法的长整型常量是:A。
A.0L B.00C.D.2e+2长整型的范围是 -48~4726.设int型变量m,n,a,b,c,d均为0,执行表达式(m=a==b)||(n=c==d)后,m和n的值是:C。
A.0,0B.0,1C.1,0D.1,1当在“或”的前面为1,后面不再执行。
在“与”前面为0,后面也不在执行,出现“短路”现象。
27.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是:C。
A.-3B.9C.-12D.628.假设double型变量x,y已经正确定义,则表达式x=1,y=x+3/2的值是:D。
A.1B.C.2D.29.已知’A’的ASCII码为65,则下列程序的运行结果为:A。
main(){char ch1=’A’;char ch2=ch1+3;printf(“%d,%c\n”,ch1,ch1);printf(“%d,%c”,ch2,ch2); }A.65,A 68,D B.A,65D,68C.A,D65,68D.D,68A,6530.以下关于while语句的叙述正确的是BA.while语句构成的循环必须用break语句才能退出B.while循环语句中,当while子句中的表达式值为零时,结束循环C.不能使用while语句来构成循环结构D.while语句的循环体至少被执行一次二、填空题:1.程序段float x=; printf(“x=%-10.2f”,x);执行时输出的结果为:□□□□ p762.设x,y,z,k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为:323.要将两个字符串连接成一个字符串,可以使用的标准库函数名为:strcat P1474.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch结构,应该使用语句break p105。
5.若有定义int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},则a[1][2]=7 p137语言中,结束本轮循环,将循环是否继续交给循环判断条件确定的语句是:continue。
7.设x=,a=7,y=,则算术表达式x+a%3*(int)(x+y)%2/4的值为:语言中,函数是程序的基本构成单元,其中main函数是必须的,且唯一。
9.在C语言程序中,用关键字float定义单精度实型变量。
10.设有语句“int i=1,s=1;for(;s+i<6;i++) s+=i;”,其中for语句的循环次数为2。
11.已知有声明“int x=1,y=2”,则执行表达式“(x>y)&&(--x>0)”后x的值为1。
12.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch结构,应该使用语句break p105语言中的if语句属于三种基本结构中的选择结构的语句。
14.若变量ch为char类型,判断ch为数字字符的表达式是ch>’0’&& ch<’9’。
15.设x=,a=7,y=,则算术表达式x+a%3*(int)(x+y)%2/4的值为:语句只能用在三种基本结构中的循环结构的语句中。
17.如果在用户的程序中要使用C库函数中的数学函数时应在该源文件中使用的include命令是:18.若有定义:int x[5]; 则访问x数组中的元素时,下标的上限为: 4 。
语言中,函数是程序的基本构成单元,其中main函数是必须的,且唯一。
语言本身没有输入输出语句,格式化的标准输出是借助库函数<>实现。
三、程序阅读题:1.阅读下列程序,并给出程序运行的结果。
void main(){int n,d,k;n=263;d=1;k=1;do {k*=n%10;n/=10;printf("%d,", d);d++;}while(n);printf("\n");printf("%d\n",k);printf("%d\n",n);}运行结果:1,2,3362.阅读下列程序,并给出程序运行的结果。
void main(){int x=2345,t;int sum,muti;sum=0;muti=1;printf("数字为:%d\n",x);while (x!=0){t=x%10;sum+=t;muti*=t;x=x/10;}printf("构成数字的和:%d\n",sum);printf("构成数字的乘积:%d\n",muti);}运行结果:数字为:2345构成数字的和:14构成数字的乘积:1203.阅读下列程序,并给出程序运行的结果。
void main( ){ int x=20,y=30,z=60;while(x<y)x=x+4;y=y+4;z=z/2;printf(“%d\n”,x);printf(“%d\n”,y);printf(“%d\n”, z);}运行结果:3234304.阅读下列程序,并给出程序运行的结果。
void main(){int i,j,l,m,a[10]={9,8,7,6,5,4,3,2,1,5};for(i=0;i<=8;i++){l=i;for(j=i+1;j<=9;j++)if(a[j]<a[l])l=j;if(l!=i){m=a[i];a[i]=a[l];a[l]=m;}}for(i=0;i<=9;i++){printf("%d ",a[i]);if(i%3==0&&i!=0)printf(“\n”);}}运行结果:1 2 3 45 5 67 8 9四、编程题:(8分每题,共16分)1.写一个函数,输入一个四位数字,要求输出这4个数字字符,但每两个数字间空一个空格。