计算机等级考试二级C辅导材料C语言基本语句

§    一.C语句概述

§     C语句是用来完成一定的操作任务的,它有着可执行的特征。所以,C程序中的声明部分从该角度讲,不称为语句。声明实际上完成的是数据的描述,而对数据的加工是由语句来实现的。

 

C语句可分为以下5类:

1.控制语句,用于控制程序执行的流程或顺序,它是C语言中预定义的语句。

§      条件控制语句:分支控制语句-if语句、if……else if……

§      循环控制语句:for语句、do……while……语句、while语句

§      开关语句-switch语句

§      无条件控制语句:continue语句、break语句、return语句、goto语句

2.函数调用语句:由一次函数调用加分号构成。

                        函数名([实参列表]);

3.表达式语句:由一个表达式加分号构成。

                               表达式;

4.空语句:独立的分号便是空语句,表达的是空操作。

5.复合语句:用一对花括号括起来的语句序列,在逻辑上可看成一个语句,又称为分程序。

 

 

二.C中输入输出操作的实现

1.输入的概念

          将数据通过输入设备(键盘、磁盘文件等)送入计算机内存单元(变量、数组元素)的过程。也就是说,在C中,输入具体有键盘输入、文件输入等。

2.输出的概念

           将数据从内存单元(变量、数组元素)读出送到输出设备(显示器、磁盘文件等)的过程。也就说,在C中,输出具体有屏幕输出、文件输出等。

 

3.输入输出在C中的实现

           C语言没有专门的输入输出语句,输入输出的实现是通过函数的调用实现的。在C语言函数库中提供了标准输入输出函数,它是以标准的输入输出设备为输入输出的对象。这些函数包括:

    putchar(输出字符)、getchar(输入字符)

    printf(格式输出)、scanf(格式输入)

    puts(输出字符串)、gets(输入字符串)等。

           值得说明的另一个问题是,在调用这些库函数时,要使用预编译命令将有关的头文件包括到用户源文件中。调用标准输入输出库函数时,文件的开头应有以下预编译命令:

          #include<stdio.h>   #include “stdio.h”

 

三.字符数据的输入及输出

1putchar()函数

§      原型int putchar(int ch)

§      功能:以字符的形式在屏幕上显示ch的值。ch可以字符变量、整型变量、字符常量、整型常量,也可是相应的表达式。该函数的返回值为输出字符的ASCII码值。

2getchar()函数

§      原型:int getchar()

§      功能:接收从键盘上输入的任何一个字符,可理解为该函数的值就是从键盘上得到字符的ASCII码值。

§      说明:该函数只能接收一个字符,getchar()函数得到的字符可以赋给一个字符变量或整型变量,也可不赋给任何变量,而作为表达式的一部分。

    考虑:若键盘上输入abc,将abc这三个字符分别送入c1c2c3三个变量中,对应的getchar()调用语句应是什么。

 

四.格式输入输出

1.格式输出函数-printf()函数

§    格式:printf(格式控制串,输出表列)

§    格式控制串:是用双撇号括起来的字符串,用于控制输出列表在屏幕上输出格式。它包括两种信息。

 

格式说明:由“%”和格式字符组成,其作用是将输出表列中的数据转换为指定的格式输出。如:%d%s%f等。

普通字符:除格式说明符之外的其它字符,普通字符在格式控制串中,是需要原样输出的字符。如:逗号、空格、换行符等。

 

输出表列:是需要输出的数据,由常量、变量、函数、表达式所组成,用逗号作为分隔符的表列。如果输出项含有表达式,则表达式的求值顺序按从右向左进行。

实际上,printf()函数的一般形式为:

 printf(参数1,参数2……,参数n

 

2.格式字符

d格式符。

用来输出十进制整数。有以下几种用法:

%d:按整型数据的实际长度输出。

%mdm为指定的输出字段的宽度。如数据的位数小于m,则左补空格,若大于m,则按实际大小输出。

%ld:输出长整型数据,在其格式符的左面也可加字段宽度修饰。

一个int型数据可以用%d%ld格式输出。

 

o格式符:以八进制数形式输出整数,且为整数在内存中二进制的八进制形式。

x格式符:以十六进制数形式输出整数,且为整数在内存中二进制的十六进制形式。

u格式符:用来输出unsigned型数据,以十进制形式输出。一个有符号数也可用%u格式输出,反之亦然,其处理按相互赋值的规则。

c格式符:用来输出一个字符。整数也可以%c格式输出,字符数据也可用%d格式输出。

 

s格式符:用来输出一个字符串,其对应的输出数据要求是字符串的起始地址。有以下几种用法:

%s:字符串从起始地址开始,直到结束标记结束,按实际输出。

%ms:输出的字符串占m列。如果串长大于m,则将字符串全部输出;若串长小于m,则左补空格。

%-ms:同上,区别在于如果串长小于m,则右补空格。

%m.ns:输出占m列,但只取字符串起始位置开始的n个字符。若n<m,则输出左补空格;若n>m,则m不起作用。

%-m.ns:含义同上,区别就在于,当n<m时,输出右补空格。

 

f格式符:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

%f:整数部分全部输出,并输出6位小数。但并非所有的数字为有效数字。

%m.nf:指定输出的数据共占m列,小数为n位。如数字长度小于m,则左补空格。

%-m.nf:含义同上,区别在于数字长度小于m,则右补空格。

 

e格式符:以指数形式输出实数(单、双精度)。可用以下形式:

%e:系统默认的指数输出形式,以规范化的指数输出。

%m.ne%-m.ne:指定输出的数据占m列,尾数的小数位数为n。其它意义同前。

g格式符:用来输出实数,它根据数值的大小,自动选择f 格式或e格式,且不输出无意义的零。

 

·小结:

格式符的一般形式为:

§      %[标志字符][宽度][.小数位][F|N|h|l|L]类型字符

§      说明:除%和类型字符之外,其它项都是可选的。

§      标志字符:可以是-+#或空格。不使用标志时,输出的数据是右对齐的,左补空格,负数之前输出负号,非负数前无符号。其中,-号使输出的数据左对齐,右补空格;+是使输出的非负数之前带有+”号;标志字符是空格时,使非负数之前输出一个空格,负数之前仍输出负号。

§      宽度:指定输出数据占用的字符位数,有3种形式:n0n*。其中,n是一正整数,用来指定输出的总位数;0n(如08),表示输出数据左边的空位用0补齐;*表示输出的数据用长宽度。

§      小数位:用于指定输出的最大小数位数。

§      F|N|h|l|L:长度修正符。FN分别表示远、近指针;h表示短整型;l表示长整型或双精度浮点数;L表示长浮点数(long double)。

§      类型字符:doxX)、fceE)、sgG)等。

 

·说明:

务必注意数据类型与格式说明符的匹配,否则就会出现错误。

格式说明符若无输出项对应,则输出不确定值。若有输出项,而无格式说明符对应,则无相应的数据输出。

除了XEG外,其它格式字符必须用小写字母。

如果要输出字符%”,则在格式控制串中用连续的两个%表示。

该函数具有int型的返回值,该值为成功输出的数据个数。

 

[1] 有关下述语句输出的判断中,正确的是(    )。

   int  x=0xaffbc;

   printf("%x",x);

A.赋值非法            B.输出值不确定   

C.输出值为affbc    D.输出值为ffbc

答案:D

 

[2] 下述语句的输出为(    )。

int   x=-1;

printf("%d,%u,%o",x,x,x);

答案:-1,65535,177777

 

[3] 下述语句的输出为(   )。

Int   x=2.5555555;

float  y=2.5555555;

printf("%d,%f",x,y);

答案:2,2.555556

(单精度只有7位有效数字)



 

[4] 下述程序段的输出结果是(   )。

int   x=1234;

printf("ABS(x)=|%-08d|/n",x);

答案ABS(x)=|1234□□□□|

 

[5] 下述程序的输出结果是(   )。

   int  x=02,y=3;

   printf("x=%%d,y=%%d/n",x,y);

答案:x=%d,y=%d

 

[6] 以下程序段的输出结果为(    )。

int a=1234;

float b=123.456;

double c=12345.54321;

printf("/n%2d,%2.1f,%2.1lf/n",a,b,c);

答案:1234,123.5,12345.5

 

[7] 下述程序段的输出结果是(   )。

long a=0xabcdef;

double b=1.0E40;

printf("/n%5.2e,%-6x/n",b,a);

答案:1.00e+40,cdef□□



 

[8] 以下程序的输出结果是(   )。

char a='A';

int b=20;

printf("%d,%o/n",(a=a+1,a+b,b),a+'a'-'A',b);

答案:20,142(注意输出列表中逗号表达式求解后,a变量的值已增1)。

 

3.格式输入函数-----scanf函数

格式:scanf(格式控制串,地址表列)

格式控制串:含义同printf函数,在这里用来约定数据输入的格式。

地址表列:由变量的地址(&变量名)、字符串的首地址所组成的表列,用来指定输入数据在内存中的存储位置。

 

说明:

unsigned型变量所需的数据,可以用%u%d%o%x格式输入。

可以指定输入数据所占列数,但不能规定数据输入的精度。

如果在%后有一个“*”附加说明,表示跳过它指定的列数。

在格式控制串中的普通字符,要原样输入。

在用%c”格式输入字符时,空格字符和转义字符都作为有效字符输入,且只接收1个字符。

在输入数据时,遇以下情况时该数据认为结束。

§     遇空格、按回车跳格Tab)键。

§     截取指定的宽度结束

§     遇非法输入结束

 

[8] 假设预先定义变量:int m; char cx;若从键盘上输入整数30和字符A’分别赋给变量mcx,下列选项中正确的是(   )。

Ascanf("%d%d%c",&m,&cx); 

输入数据:1030A

Bscanf("%2c%2d",&cx,&m); 

输入数据:BA30

Cscanf("%2c%*d%d",&cx,&m);

输入数据:AB3010

Dscanf("%2c;%*2d%d",&cx,&m);

 输入数据:AB;1030

 

[9] 下述程序段中,语句getchar();”的作用是(   )。

int x;

scanf("%d",&x); getchar(); printf("%c",x);

A.清除键盘缓冲区中多余的字符    

B.接收一个字符,供后续程序使用

C.为后续的%c格式输出做转换      

D.无任何实际用处

 

[10] 下述程序的输出结果是(   )。

int x=-2345; float y=12.3;

printf("%6D,%06.2F/n",x,y);

答案:%6D,%06.2F

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值