-1-《C语言程序设计》练习册专业:____________班级:____________学号:____________学生姓名:_________任课教师:_________计算机学院基础教研室编制-2-1C语言概述一、单项选择题1、一个C程序的执行是从()。A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2、在C语言中,每个语句必须以()结束。A.回车符B.冒号C.逗号D.分号3、C语言规定:在一个源程序中,main函数的位置()。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后4、一个C语言程序是由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成5、下列说法中错误的是()。A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件二、填空题1、C语言只有个关键字和种控制语句。2、每个源程序有且只有一个函数,系统总是从该函数开始执行C语言程序。3、C语言程序的注释可以出现在程序中的任何地方,它总是以符号作为开始标记,以符号作为结束标记。4、C语言中,输入操作是由库函数完成的,输出操作是由库函数完成的。5、系统默认的C语言源程序文件的扩展名是,经过编译后生成的目标文件的扩展名是,经过连接后生成的可执行文件的扩展名是。6、C语言的标识符只能由字母、数字和三种字符组成。-3-三、判断题()1、C源程序是由多个函数组成的,程序的执行是按书写顺序进行的。()2、一个C程序可以由一个文件组成,也可由若干文件组成。()3、变量xx和XX是一样的。()4、C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。()5、简单的C程序由函数组成。()6、C程序的每一行结束都有一个;。3数据类型、运算符与表达式一、单项选择题1、以下选项中,不正确的C语言浮点型常量是()。A.160.B.0.12C.2e4.2D.0.02、以下选项中,()是不正确的C语言字符型常量。A.'a'B.'\x41'C.'\101'D.a3、在C语言中,字符型数据在计算机内存中,以字符的()形式存储。A.原码B.反码C.ASCII码D.BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是()。x=(i=4,j=16,k=32)A.4B.16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为()。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算6、若有代数式bcae3,则不正确的C语言表达式是()。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*37、表达式!x||a==b等效于()。A.!((x||a)==b)B.!(x||y)==bC.!(x||(a==b))D.(!x)||(a==b)8、设整型变量m,n,a,b,c,d均为1,执行(m=ab)&&(n=cd)后,m,n的值是()。A.0,0B.0,1C.1,0D.1,19、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是()。A.3B.0C.9D.-1210、在以下一组运算符中,优先级最低的运算符是()。A.*B.!=C.+D.=11、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是()。A.6B.12C.15D.表达式出错-4-12、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。A.1B.2C.2.0D.2.513、sizeof(double)的结果值是()。A.8B.4C.2D.出错14、设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为()。A.4B.3C.2D.115、设a为整型变量,不能正确表达数学关系:10a15的C语言表达式是()。A.10a15B.a==11||a==12||a==13||a==14C.a10&&a15D.!(a=10)&&!(a=15)16、设f是实型变量,下列表达式中不是逗号表达式的是()。A.f=3.2,1.0B.f0,f10C.f=2.0,f0D.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.C19、以下用户标识符中,合法的是()。A.intB.nitC.123D.a+b20、C语言中,要求运算对象只能为整数的运算符是()。A.%B./C.D.*21、若有说明语句:charc='\72';则变量c在内存占用的字节数是()。A.1B.2C.3D.422、字符串ABC在内存占用的字节数是()。A.3B.4C.6D.823、要为字符型变量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'+1c,'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的值依次为。-5-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=ab)&&(n=cd)后n的值为0。()18、C语言中无逻辑变量,也无逻辑表达式。四、编程题:1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。2、编写一个程序,将大写字母A转换为小写字母a。-6-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.97a3、有以下程序段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.1256C.1278D.12454、若一个int类型的数据占2字节,则程序段:intx=1;printf(%u,%d,x,x);的输出结果是()。A.65535,1B.1,65535C.32767,32768D.32768,327675、在TC中getchar、putchar、printf、scanf四个函数,均包含在头文件()中。A.math.hB.stdio.hC.stbio.hD.stdlib.h6、复合语句是用()括起来的语句组。A.()B.[]C.{}D.7、下列格式符中,哪一个可以用于以八进制形式输出整数()。A.%dB.%8dC.%oD.%ld8、下列格式符中,哪一个可以用于以十六进制形式输出整数()。A.%16dB.%8xC.%d16D.%d9、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、以下程序的功能是,从键盘输入一个字符并鸣笛输出。#includestdio.hmian()-7-{charcgetchar(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位小数。-8-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