第四章基础练习题
知识点:
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 | 以八进制形式输出无符号整数(不输出前缀0) |
x,X | 以十六进制形式输出无符号整数(不输出前缀Ox) |
u | 以十进制形式输出无符号整数 |
f | 以小数形式输出单、双精度实数 |
e,E | 以指数形式输出单、双精度实数 |
g,G | 以%f或%e中较短的输出宽度输出单、双精度实数 |
c | 输出单个字符 |
s | 输出字符串 |
标志:标志字符为-、+、#、空格四种,其意义下表所示:
标 志 | 意 义 |
- | 结果左对齐,右边填空格 |
+ | 输出符号(正号或负号) |
空格 | 输出值为正时冠以空格,为负时冠以负号 |
# | 对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,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d); }
5、scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址 。
格式字符串的一般形式为:%[*][输入数据宽度][长度]类型
类型:表示输入数据的类型,其格式符和意义如下表所示。
格式 | 字符意义 |
d | c语言定义一个字符串 输入十进制整数 |
o | 输入八进制整数 |
x | 输入十六进制整数 |
u | 输入无符号十进制整数 |
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,%u\n”,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<CR>(注:<CR>表示回车),则正确的输出结果为 D 。
main()
{ int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,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 <stdio.h>
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 <stdio.h>
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 )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论