C语言第四章基础练习题_第1页
C语言第四章基础练习题_第2页
C语言第四章基础练习题_第3页
C语言第四章基础练习题_第4页
C语言第四章基础练习题_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章基础练习题知识点:1、C语句可分为以下五类:1表达式语句: 由表达式加上分号“;”组成2函数调用语句: 由函数名、实际参数加上分号“;”组成。其一般形式为: 函数名(实际参数表);3控制语句: 有九种控制语句。 可分成以下三类:条件判断语句:if语句、switch语句;循环执行语句:do while语句、while语句、for语句;转向语句:break语句、goto语句、continue语句、return语句。4复合语句 把多个语句用括号括起来组成的一个语句,在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。5空语句2

2、、putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。其一般形式为:putchar(字符变量)对控制字符则执行控制功能,不在屏幕上显示。3、getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一 个字符。4、printf函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。 printf函数调用的一般形式为: printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式

3、。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以% 开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。在Turbo C中格式字符串的一般形式为: 标志输出最小宽度.精度长度类型类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:格式字符意 义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号

4、整数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,d); 5、scanf函数

6、称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。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%c%c,&a,&b,&c)

8、;输入为: 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、变量a、b和c的值,则下列输入

9、格式不正确的是(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,&k);(C) scan

10、f(“%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) scanf( %d%l

11、x,%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是字符型变量,下面正确的赋值语句是 A 。A) ch=

12、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,y,);A) x=10,

13、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分别赋给变量a 和b,那么输入应

14、该是( 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(“*”); else prin

15、tf(“#”);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. , i=5 Y=5. , i

16、=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=4,c=2; float

17、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); else printf(#a=

18、%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(dec:%d,oct:%o,

19、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、以下程序的执行结果是( )。 #include main() fl

20、oat 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() char c; scanf(% 3c ,&c); printf(c=%cn,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论