admin 管理员组

文章数量: 1184232


2024年3月12日发(作者:ternary)

第四章基础练习题

知识点:

1、C语句可分为以下五类:

1>表达式语句: 由表达式加上分号“;”组成

2>函数调用语句: 由函数名、实际参数加上分号“;”组成。其一般形式为: 函数名(实

际参数表);

3>控制语句: 有九种控制语句。 可分成以下三类:

条件判断语句:if语句、switch语句;

循环执行语句:do while语句、while语句、for语句;

转向语句:break语句、goto语句、continue语句、return语句。

4>复合语句 把多个语句用括号{}括起来组成的一个语句,在程序中应把复合语句看成是单

条语句,而不是多条语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不

能加分号。

5>空语句

2、putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。

其一般形式为:putchar(字符变量)

对控制字符则执行控制功能,不在屏幕上显示。

3、getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar();

通常把输入的字符赋予一个字符变量,构成赋值语句,

getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一 个

字符。

4、printf函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据显示到显示器屏

幕上。 printf函数调用的一般形式为: printf(“格式控制字符串”,输出表列)

其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

格式字符串是以% 开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、

长度、小数位数等

非格式字符串在输出时原样照印,在显示中起提示作用。

输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型

类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

格式字符

d

o

x,X

u

意 义

以十进制形式输出带符号整数(正数不输出符号)

以八进制形式输出无符号整数(不输出前缀0)

以十六进制形式输出无符号整数(不输出前缀Ox)

以十进制形式输出无符号整数

f

e,E

g,G

c

s

标 志

-

+

空格

#

以小数形式输出单、双精度实数

以指数形式输出单、双精度实数

以%f或%e中较短的输出宽度输出单、双精度实数

输出单个字符

输出字符串

意 义

结果左对齐,右边填空格

输出符号(正号或负号)

输出值为正时冠以空格,为负时冠以负号

对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时

加前缀0x;对e,g,f 类当结果有小数时才给出小数点

标志:标志字符为-、+、#、空格四种,其意义下表所示:

输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数

输出,若实际位数少于定义的宽度则补以空格或0。

精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位

数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过

的部分。

5.长度:长度格式符为h,l两种,h表示按短整 型量输出,l表示按长整 型量输出。

练习1:main()

{ int a=15; float b=123.1234567;

double c=12345678.1234567;

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

scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列);

其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提

示字符串。地址表列中给出各变量的地址 。

格式字符串的一般形式为:%[*][输入数据宽度][长度]类型

类型:表示输入数据的类型,其格式符和意义如下表所示。

格式

d

o

x

u

字符意义

输入十进制整数

输入八进制整数

输入十六进制整数

输入无符号十进制整数

第四章基础练习题 共4页第1页 常立志不如立长志!

f或e

c

s

输入实型数(用小数形式或指数形式)

输入单个字符

输入字符串

“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。

如: 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);

输入为: 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的值,则下列输入格式不正确的是(B )。

(A) 10 (B) 10,20,30 (C) 10.0 (D) 10.0 20.0

20 20.0 30.0 30.0

30

3、设整型变量a的值为–1,则语句printf(“%d,%un”,a,a);的输出结果是( D)。

(A) –1,-1 (B) –1,32767 (C) –1,32768 (D) –1,65535

4、已知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) 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) 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是字符型变量,下面正确的赋值语句是 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, 13

12、以下程序的输出结果是( D )

#include

main( )

{ int x=010, y=5;

printf(“x=%d, y=%%d”,x,y,);}

A) x=10, y=5 B) x=%2, y=%3 C)x=%%d, y=%%d D) x=8, y=%d

13、以下程序段的输出结果是 (C )

#include

main( )

{ int a=1234;

float b=123.456;

double c=12345.54321;

printf(“%2d, %2.1f, %2.1lf”,a,b,c); }

第四章基础练习题 共4页第2页 常立志不如立长志!


本文标签: 输出 格式 语句