C语言复习题 下载本文

C语言习题

习题1

1.程序设计语言经历了哪三个主要阶段?每个阶段有何特点? 2.C语言有哪些特点?这些特点你是怎样理解的? 3.用一个事例简述C语言程序的基本结构。

4.下列标识符哪些合法,哪些非法,若是非法的要指明其原因。

3H_R _3H_R _3H&R H3R if D.K.Jon a*b2 Sstu 5.单项选择题。

(1)C语言是一种 。

A.机器语言 B.汇编语言 C.高级语言 D.以上都不是 (2)C程序总是从 开始执行。

A.程序中的第一条语句 B.程序中第一条可执行语句

C.程序中的第一个函数 D.程序中的main函数 (3)下列叙述正确的是 。

A.C语言源程序可以直接在Windows环境下运行

B.编译C语言源程序得到目标程序可以直接在Windows环境下运行 C.C语言源程序经过编译、连接得到可执行程序可以运行 D.以上说法都是正确的 6.判断题。

(1)主函数是系统提供的标准函数。

(2)一个C程序可以有一个或多个主函数。 (3)C程序首先执行程序的第一个函数。

(4)调用大多数C语言标准函数,可以不使用包含命令。 (5)C语言允许多条语句写在同一行。

(6)语句“int number;”和“int Number”定义的是同一个整形变量。 7.参考本章例题,编写下列程序。

(1)编写一个C程序,要求在屏幕上打印以下信息:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

我是一名大学生 我热爱我的学校

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

(2)通过键盘输入一个实数,要求在屏幕上输出该数的平方值(提示数x的平方可用x*x来表示)。 8.分析程序运行结果

程序1代码:#include

int main() {

int r; float l,s; r=5;

l=2*3.14159*r; s=3.14159*r*r;

printf(\ return 0; }

程序2代码:#include

int main() {

int a,b,c; float aver;

printf(\请输入三个数a,b,c:\ scanf(\ aver=(a+b+c)/3;

printf(\ return 0;

}

程序3代码:#include

int main() {

int x,y; float area;

printf(\ scanf(\ area=x*y;

printf(\ return 0; }

习题2

1.在C语言中,下列哪个是合法的实型常量( )。

A.356e B.e-5 C.12.5e3 D.256 2.C语言中要求运算量必须是整型的运算符是( )。

A.+ B./ C.% D.- 3.能正确表达逻辑关系“a>=5或a<-3”的C语言表达式是( )。

A.a>=5 or a<=-3 B.a>=5 || a<=-3 C.a>=5 && a<=-3 D.a>=5 | a<=-3

4.已知字母A的ASCII码值为十进制数65,设ch为字符型变量,则表达式ch=?A?+?6?-?3?的值为 。 5.设a、b、c为整型变量,初值为a=5,b=3,执行完语句c=(a>b)?b : a后,c的值为 。 6.写出下列程序的运行结果。 #include void main() {

int a,b,c; a=10; b=20; c=30;

printf(\}

7.写出下列程序的运行结果。 #include void main() {

int x=10,y=20,m,n; m= --x; n= y--;

printf(\}

8.设a=3,b=10,写出下面算术表达式的值。

(1)b/a + a (2)(b % a + b) / a 9.设a=3,b=4,c=5,写出下面逻辑表达式的值。

(1)a + b>c || a = = c (2)!(a = = b) && (b = = c) (3)!(a+b-c) && (b-c) (4)(a>c)||(a-c)

10.编写程序,从键盘输入三角形底边和高,输出三角形的面积。 11.编写程序,输入两个整数,求出它们的商数和余数并输出结果。 12.编写程序,输入三个整数,输出它们的最大值。 13.分析程序运行结果。

(1)分析下面程序的运行结果。 #include int main() {

int x,y; x=20;

y=(x=x-5.0/5); printf(\return 0; }

根据编译、连接和运行回答下列问题:

① 在编译时,有一个警告错误提示,其提示内容是什么?是否影响该程序的连接? ② 分析表达式的执行过程?并说明5.0与5的含义? (2)分析下面的程序,写出运行结果。 #include int main() {

int i,j,m,n; i=5; j=15; m=i++; n=++j;

printf(“i=%d, j=%d, m=%d, n=%d\\n”,i,j,m,n); return 0; }

根据编译、连接和运行回答下列问题: ① 写出程序运行的结果? ② 分析表达式m=i++和n=++j的执行过程及有所区别?

(3)下面的程序是输入一个字符,判断它是否为大写字母,如果是将把它转换成小写字母;如果不是不进行转换,最后输出这个字符。

#include int main() {

char ch;

scanf(\

ch=(ch>='A'&&ch<='Z')?(ch+32):ch; printf(\return 0; }

根据编译、连接和运行回答下列问题:

① 本程序运用的是格式输入输出,若修改为getchar()和putchar(),则程序如何? ② 分析表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的执行过程?若用户输入B,则输出什么?若用户输入b,则输出什么?

(4)上机运行程序: #include #define PRICE 35 int main() {

int x=10;

PRICE=PRICE*x;

printf(\ return 0; }

根据编译、连接和运行回答下列问题:

① 编译时是否有错误信息提示,有请分析提示信息的含义?并修改后重新编译,直到没有错误为止。 ② #define PRICE 35的含义?若x表明购买商品的件数,PRICE表明是该商品的价格,则该程序实现什么功能?

习题3

1.C语言所有的输入/输出函数都包含在头文件 中。 2.下面选项中不是C语句的是( )。

A.{int a=10; printf(\;} B. ; C.x=65 D.{;} 3.有如下程序片段,则下列说法正确的是( )。 float a=-1234.53689; printf(\

A.输出格式描述符的域宽不够,不能输出 B.输出-1234.53

C.输出-1234.54 D.输出1234.53

4.当执行完以下语句后,变量a、b、c、d、e的值分别是多少? a=8; b=++a; c=--a; d=a++; e=a--;

5.写出下列程序的运行结果。

#include int main() {

int a=2,b; char c='A'; b=c+a;

printf(\ return 0; }

6.写出下列程序的运行结果。

#include int main() {

int a=2,b=5; a=a+b; b=a-b; a=a-b;

printf(\ return 0; }

7.分析下列程序。

#include int main() {

char ch;

ch=getchar(); putchar(ch);

printf(\的ASCII码为:%d\\n\ return 0; }

(1)如果输入数据“a<回车>”,得到什么结果? (2)如果输入数据“ab<回车>”,得到什么结果?

8.用下面的scanf函数输入数据,使a=2,b=5,c1='a',c2='b',x=3.5,y=56.88。请问在键盘上如何输入?

#include int main() {

int a,b; char c1,c2; float x,y;

scanf(\ scanf(\ scanf(\

printf(\ return 0; }

9.编写程序,用getchar函数读入两个字符赋值给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

10.输入三角形三边长,求三角形面积,输出计算结果。输出时要有文字说明,取小数点后2位小数。已知三角形的三边长求三角形面积的公式为:

area=s(s?a)(s?b)(s?c),其中a、b、c分别为三角形的三边,s=(a+b+c)/2。 11.编写程序,输入一个3位数将它反向输出。例如输入123,输出321。 12.分析程序运行结果

【程序1】 分析下列程序,并上机运行。 #include\int main() {

long x,y; int a,b,c,d; x=5; y=6; a=7; b=8; c=x+a; d=y+b;

printf(\return 0; }

根据编译、连接和运行回答下列问题:

① printf(\语句中c=x+a=的含义;d=y+b=的含义;%d的含义;c,d的含义。 ② x,y和a,b,c,d的数据类型是否相同?它们是怎样进行数据类型转换的和运算的?

③ 将%d修改为%ld后再编译、连接和运行程序,比较两个程序运行的结果是否一致,并说明它们两者间有无区别。

【程序2】 分析下列程序,并上机运行。

#include\

int main() {

int a,b,c; a=5;b=6;c=7;

printf(\ ab c\\tde\\rf\\n\printf(\return 0; }

根据编译、连接和运行回答下列问题: