《C语言第四章基础练习题(共4页).doc》由会员分享,可在线阅读,更多相关《C语言第四章基础练习题(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第四章基础练习题知识点:1、C语句可分为以下五类:1表达式语句: 由表达式加上分号“;”组成2函数调用语句: 由函数名、实际参数加上分号“;”组成。其一般形式为: 函数名(实际参数表);3控制语句: 有九种控制语句。 可分成以下三类:条件判断语句:if语句、switch语句;循环执行语句:do while语句、while语句、for语句;转向语句:break语句、goto语句、continue语句、return语句。4复合语句 把多个语句用括号括起来组成的一个语句,在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“
2、”外不能加分号。5空语句2、putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。其一般形式为:putchar(字符变量)对控制字符则执行控制功能,不在屏幕上显示。3、getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一 个字符。4、printf函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。 printf函数调用的一般形式为: printf(“格式控制字符串”,输出表列)其中格式
3、控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以% 开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。在Turbo C中格式字符串的一般形式为: 标志输出最小宽度.精度长度类型类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:格式字符意 义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox
4、)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串标志:标志字符为-、+、#、空格四种,其意义下表所示:标 志意 义-结果左对齐,右边填空格+输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号#对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。精度:精度格式符以
5、“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。5.长度:长度格式符为h,l两种,h表示按短整 型量输出,l表示按长整 型量输出。练习1:main() int a=15; float b=123.; double c=.; char d=p; printf(a=%d,%5d,%o,%xn,a,a,a,a); printf(b=%f,%lf,%5.4lf,%en,b,b,b,b); printf(c=%lf,%f,%8.4lfn,c,c,c); printf(d=%c,%8cn,d,
6、d); 5、scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址 。格式字符串的一般形式为:%*输入数据宽度长度类型类型:表示输入数据的类型,其格式符和意义如下表所示。格式字符意义d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串“*”符:用以表示该输入项,读入后不赋予相应的变
7、量,即跳过该输入值。 如: scanf(%d %*d %d,&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。宽度:用十进制整数指定输入的宽度(即字符数)。长度:长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。使用scanf函数还必须注意以下几点:scanf函数中没有精度 控制,scanf中要求给出变量地址 ,在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格、TAB 或回车 作间隔。在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如: scanf(%c%
8、c%c,&a,&b,&c);输入为: d e f则把d赋予a, 赋予b,e赋予c。如果格式控制串中有非格式字符则输入时也要输入该非格式字符。 例如:scanf(%d,%d,%d,&a,&b,&c); 其中用非格式符“ , ”作间隔符,故输入时应为: 5,6,7如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。练习一、选择题:1、设整型变量a的值为20,则语句printf(“%x”,a);的输出结果是(B )。(A) 20(B) 14(C) 014(D) 0x14设有整型变量a、b和c,调用标准输入函数scanf(“%f %f %f”,&a,&b,&c)从键盘上读入实型2、变量
9、a、b和c的值,则下列输入格式不正确的是(B )。(A) 10(B) 10,20,30(C) 10.0(D) 10.0 20.0 20 20.0 30.030.0 303、设整型变量a的值为1,则语句printf(“%d,%un”,a,a);的输出结果是(D)。(A) 1,-1 (B) 1,32767 (C) 1,32768(D) 1,655354、已知i、j、k是int型变量,设从键盘输入数据1,2,3使i的值是1、j的值是2、k的值是3,以下选项中正确的输入语句是(C )。(A) scanf(“%2d%2d%2d”,&i,&j,&k); (B) scanf(“%d %d %d”,&i,&j
10、,&k);(C) scanf(“%d,%d,%d”,&i,&j,&k); (D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);5、putchar函数可以向终端输出一个:(D)A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值6、printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B)A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格 D)输出错误信息7、若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:(BD)A
11、) scanf( %d%lx,%le,&x,&y,&z); B) scanf(%2d * %d%lf&x,&y,&z ); C) scanf(%x %* d%o,&x,&y); D) scanf(%x%o%6.2f,&x,&y,&z); 8、阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 D 。 main() int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%dn”,x+y+z);A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值9、已知ch是字符型变量,下面正确的赋值
12、语句是 A 。A) ch=a+b; B) ch=0; C) ch=7+9; D) ch=5+9;10、下列语句中,符合语法的语句是( D )A) a+b=3 B) a=7 C) a=c+d+5=6 D)a=8,b=a+7;11、下述程序段的输出是( C )#include void main( ) int a=012,b=012; printf(“%x, %o”,+a,b+);A) 13, 12 B) 13, 13 C) b, 12 D) b, 1312、以下程序的输出结果是( D )#include main( ) int x=010, y=5; printf(“x=%d, y=%d”,x,
13、y,);A) x=10, y=5 B) x=%2, y=%3 C)x=%d, y=%d D) x=8, y=%d13、以下程序段的输出结果是 (C )#include main( ) int a=1234; float b=123.456; double c=12345.54321; printf(“%2d, %2.1f, %2.1lf”,a,b,c); A) 输出格式中位数不够,无输出 B) 输出结果为 12, 12.4,12.5 C) 输出结果为1234, 123.5, 1234.5 D) 输出结果为1234,123.4, 1234.514、若使用下述程序段将整数12和浮点数13.6分别赋
14、给变量a 和b,那么输入应该是( B )int a;float b;scanf(“a=%d, b=%f”,&a, &b);A) 12 13.6 B) a=12, b=13.6 C) 12, 13.6 D) a=12 b=13.615、若x 为float 型变量,则以下程序段的结果是( B )x=1234.6789;printf(“%-2.1f”,x);A) 输出格式描述符域宽度不够,不能输出 B) 输出为1234.7C) 输出为1234.6 D) 输出为-1234.6 16、对下面的程序说法正确的是( C )main( )int x=3,y=0,z=0; if(x=y+z) printf(“*
15、”); else printf(“#”);A)有语法错误,不能通过编译 B) 输出为*C) 输出为# D) 通过编译,但是不能通过连接,因而不能运行17、以下哪个不是正确的C语言赋值语句( D )A) a=a+1; B) i+; C) a*=1,b=8; D) a=318、下面的程序运行结果为( B )#include main( )int i=2; float y=5.4; i=i*(5%i)+B;printf(“%cn”,i);i=(int)y;printf(“y=%f, i=%dn”,y,i); A) D B) D C) D D) dY=5.4, i=5 Y=5., i=5 Y=5. ,
16、 i=5 Y=5. , i=519、下面的程序运行结果为( C )#include main()int a,b,c;a=b=c=5;a-=(b%=2)+(c-=1);printf(“%d, %d, %dn”,a,b,c); A) 0 1 4 B) -1 2 4 C) 0, 1, 4 D) 1, 2, 420、下面的程序运行结果为( B )#include main( )char c1,c2;c1=a;c2=n;printf(“%c%c”,c1,c2);A) aa B) a C) an D) nn21、下列程序的运行结果为( C )#include#includemain()int a=1,b=
17、4,c=2; float x=5.5,y=9.0,z;z=(a+b)/c+sqrt(double)y)*1.2/c+x;printf(“%fn”,z);A) 数据溢出 B) 9.3 C) 9. D) 0.9322、执行下面程序中的输出语句后,a的值为( A ) main( )int a;printf(“%dn”,(a=65,20,15);A) 65 B) 20 C) 15 D) 10 二、填空题1、若有定义语句 “ int a=25,b=14,c=19; ” ,以下语句的执行结果是( )。 if(a+=25&b-=2&c+) printf(*a=%d,b=%d,c=%dn,a,b,c); el
18、se printf(#a=%d,b=%d,c=%dn,a,b,c); 2、若有以下说明和输入语句,要求给c1,c2输入字符A和B,给a1,a2输入7.29和101.298,从键盘正确输入数据的形式是( )。 char c1,c2; float a1,a2; scanf(%f%f,&a1,&a2); scanf(%c%c,&c1,&c2);3、以下程序的执行结果是( )。 main() short i=-1; printf(dec:%d,oct:%o,hex:%x,unsigned:%un,i,i,i,i); 4、以下程序的执行结果是( )。 main() short i=1; printf(d
19、ec:%d,oct:%o,hex:%x,unsigned:%un,i,i,i,i); 5、以下程序的执行结果是( )。 #include main() char c=A; printf(dec:%d,oct:%o,hex:%x,ASCII:%cn,c,c,c,c); 6、以下程序的执行结果是( )。 #include main() float f=3.; printf(%f,% 5.4f ,% 3.3f ,f,f,f); 7、以下程序的执行结果是( )。 #include main() float f=3.5; printf(%f,%g,f,f); 8、以下程序的执行结果是( )。 #incl
20、ude main() float f=31.41532; printf(%f,% 2.3f ,f,f); 9、以下程序输入1 2 3后的执行结果是( )。 #include main() int a,c; char b; scanf(%d%c%d,&a,&b,&c); printf(a=%d,b=%c,c=%dn,a,b,c); 10、以下程序输入后的执行结果是( )。 #include main() int a,b; scanf(%2d%3d,&a,&b); printf(a=%d,b=%dn,a,b); 11、以下程序输入ABC后的执行结果是( )。 #include main() cha
21、r c; scanf(% 3c ,&c); printf(c=%cn,c); 12、以下程序输入100后的执行结果是( )。 #include main() int n; scanf(%o,&n); printf(n=%dn,n); 13、以下程序输入x=1.23,y=50后的执行结果是( )。 #include main() float x,y; scanf(x=%f,y=%f,&x,&y); printf(x=% 7.2f ,y=% 7.2f n,x,y); 14、若有以下定义,写出以下程序段中输出语句执行后的输出结果。 int i=-200,j=2500; printf(%d %d,i,
22、j); 输出结果是( )。 printf(i=%d,j=%d,i,j);输出结果是( )。 15、以下程序段的输出结果是( )。 int x=0177; printf(x=%3d,x=%6dn,x,x); 16、以下程序段的输出结果是( )。 int x=0177; printf(x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn,x,x,x,x,x); 17、a=b或a4用C语言表达式表示为( )。 三、编程题:1、从键盘上输入一个三位数的整数,要求按逆序打印出各位数字。2、从键盘上输入一个整数,要求打印对应的八进制数和十六进制数。3、从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。4、 编程计算1-100之间的奇数和与偶数和5、输入10个学生的成绩,求出它们的平均成绩并将低于平均成绩的分数打印出来。专心-专注-专业