• 沒有找到結果。

C语言同步练习及习题精解 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "C语言同步练习及习题精解 - 万水书苑-出版资源网"

Copied!
20
0
0

加載中.... (立即查看全文)

全文

(1)

1.1 C 语言概述 

1.应用程序 ONEFUNC.C 中只有一个函数,这个函数的名称是________。  2.一个函数由________和________两部分组成。  3. C 语言源程序文件的扩展名是________; 编译后生成目标程序文件, 扩展名是________; 连接后生成可执行程序文件,扩展名是________;运行得到结果。  4.编写一个 C 程序,上机运行要经过的四个步骤是:___________________________。  5.C 语言中的标识符只能由三种字符组成,它们是________、________和  ________。而 且第一个字符必须为________。  6.C 语言中的标识符可分为关键字、________和  ________3 类。  7.一个 C 程序的执行是从________。  A.本程序的 main 函数开始,到 main 函数结束  B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束  C.本程序的 main 函数开始,到本程序文件的最后一个函数结束  D.本程序文件的第一个函数开始,到本程序 main 函数结束  8.以下叙述不正确的是________。  A.一个 C 源程序可由一个或多个函数组成  B.一个 C 源程序必须包含一个 main 函数  C.在 C 程序中,注释说明只能位于一条语句的后面  D.C 程序的基本组成单位是函数  9.C 语言规定:在一个源程序中,main 函数的位置________。  A.必须在程序的开头  B.必须在系统调用的库函数的后面  C.可以在程序的任意位置  D.必须在程序的最后  10.C 编译程序是________。  A.将 C 源程序编译成目标程序的程序  B.一组机器语言指令  C.将 C 源程序编译成应用软件  D.C 程序的机器语言版本  11.要把高级语言编写的源程序转换为目标程序,需要使用__________。  A.编辑程序  B.驱动程序  C.诊断程序  D.编译程序  12.以下叙述中正确的是__________。  A.在 C 程序中,main 函数必须位于程序的最前面  B.C 程序的每行中只能写一条语句

(2)

C.C 语言本身没有输入输出语句  D.在对一个 C 程序进行编译的过程中,可以发现注释中的拼写错误  13.参照本章例题,编写一个 C 程序,要求输出如下字符。  ************************************************************************  Welcome to Expo 2016!  Chongqing  2016  14.设计一个程序,输入 3 个整数,计算并显示输出这 3 个整数之和。

(3)

1.2 基本数据类型、运算符与表达式 

1.C 语言规定:在程序中对用到的所有数据都必须指定其________类型,对变量必须做 到先________,后________。  2.设 C 语言中的一个基本整型数据在内存中占 2 个字节,若需将整数 135791 存放到变 量 a 中,应采用的类型说明语句是________。  3.在 C 语言中,转义字符'\n'的功能是________;转义符'\r'的功能是________。  4.在 C 语言中,&作为双目运算符时表示的是________,而作为单目运算符时表示的是  ________。  5.在 C 语言的赋值表达式中,赋值号左边必须是________。  6.自增运算符++、自减运算符­­,只能用于________,不能用于常量或表达式。++和­­  的结合方向是“自________至________”。  7.若有定义:int x=3,y=2; float a=2.5,b=3.5;,则下面表达式的值为________。  (x+y)%2+(int)a/(int)b  8.下列 4 组选项中,均是 C 语言关键字的选项是________。 

A.auto  B.switch  C.signed  D.if  enum  typedef  union  struct  include  continue  scanf  type  9.sizeof(float)是__________。  A.一个双精度型表达式  B.一个整型表达式  C.一种函数调用  D.一个不合法的表达式  10.在 C 语言中,要求运算数必须是整型的运算符是________。  A.%  B./  C.<  D.!  11.下面正确的字符常量是__________。  A."C"  B."\\"  C.'W'  D.' '  12.以下正确的叙述是__________。  A.在 C 程序中,每行中只能写一条语句  B.若 a 是实型变量,C 程序中允许赋值 a=10,因此实型变量中允许存放整型数  C.在 C 程序中,无论是整数还是实数,都能被准确无误地表示  D.在 C 程序中,%是只能用于整数运算的运算符  13.表示条件:10<x<100 或 x<0 的 C 语言表达式是________。  14.逻辑运算符两侧运算对象的数据类型________。  A.只能是 0 或 1  B.只能是 0 或非 0 正数  C.只能是整型或字符型数据  D.可以是任何类型的数据  15.运行下面的程序,如果从键盘上输入 6,输出的结果是________。  void main()  {  int x;

(4)

scanf("%d",&x);  if(x++>5)  printf("%d",x);  else  printf("%d\n",x­­);  }  16.编写一个程序,求出给定半径 r 的圆的面积和周长,并输出计算结果。其中,r 的值 由用户输入,用实型数据处理。  17.已知华氏温度和摄氏温度之间的转换关系是:C=5/9*(F-32)。编写一个程序,将用 户输入的华氏温度转换为摄氏温度,并输出结果。

(5)

1.3 顺序结构程序设计 

1.结构化程序设计的三种基本结构是________、________和________。  2.下面语句中正确的是________。 

A.scanf ("a=b=%d",&a,&b);  B.scanf ("a=%d,b=%f",&m,&f );  C.scanf ("%c","c");  D.scanf ("%7.2f", &f); 

3.执行 scanf  ("%c%c",&a,&b)  语句,若要使变量 a 和 b 的值分别为'a'和'b',则正确的输 入方法为________。 

A.ab  B.'a' 'b'  C.a b  D.a,b  4.下面程序运行后,从键盘输入 31,则程序的输出结果是________。  void main ()  {  int a ;  scanf("%d", &a);  printf ("a=%d,Ha=%x,Oa=%o",a,a,a);  }  5.设 a,b,c,d,m,n 均为 int 型变量,且 a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&  (n=c>d)运算后,n 的值是________。  6.编写程序:输入华氏温度  F,要求输出摄氏温度  C。要求计算结果保留两位小数。计 算公式为: C 5 (F 32)  9 = - 。

(6)

7.编写程序:已知圆半径和圆柱高,求圆柱的体积。要求计算结果保留两位小数。 【分析】可以将圆周率定义为符号常量  PI,为使运算结果保留两位小数,输出采用的格 式符为%.2f。 

8.编写程序:将任意一个两位正整数平方后,取其百位数和十位数,构成一个新的两位 整数。

(7)

1.4 选择结构程序设计 

1.编写一个 C 程序,要求从键盘输入三个整数 x,y,z,请把这三个数由小到大输出。 【分析】排序问题。想办法把三个数进行调换,使得最小的数放到  x  变量里,最大的数 放在 z 变量里。具体方法如下:先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换, 然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小;然后将 y  与 z 比较,并将较小的值保存在 y 里而较大的值放在 z 里。最后,依次输出 x,y,z。  2.编写一个 C 程序,要求从键盘输入一个不多于 5 位的正整数 x,在屏幕上输出:一、 它是几位数;二、逆序显示出各位数字,例如:原数为 789,应输出 987。

(8)

3.编写程序:要求从键盘输入两个数,并依据提示输入的数字,选择对这两个数的运算, 并输出相应的运算结果。提示为:1:作加法;2:做乘法;3:做除法。 

(9)

1.5 循环结构程序设计 

1.输入一行字符,分别统计出其中字母、数字和其他字符的个数。 

2.求解爱因斯坦数学题。有一条长度不多于 1000 步的阶梯,若每步跨 2 阶,则最后剩 1  阶;若每步跨 3 阶,则最后剩 2 阶;若每步跨 5 阶,则最后剩 4 阶;若每步跨 6 阶,则最后剩  5 阶;若每步跨 7 阶,则最后一阶都不剩,问总共有多少级阶梯?

(10)

3.100 匹马驮 100 担货,大马一匹驮 3 担,中马一匹驮 2 担,小马两匹驮 1 担,求大、 中、小马的数目,要求列出所有的可能。  4.编写程序,求 1~9999 之间的全部同构数。同构数是这样一组数:它出现在平方数的 右边。例如:5 是 25 的右边的数,25 是 625 右边的数,5 和 25 都是同构数。 【分析】本题不需要任何输入数据,因为已知待处理的数据是 1~9999 之间的数。因此, 采用循环结构,将 1~9999 之间的数逐个取出,通过设定条件来判断其是不是同构数即可。

(11)

于 9,则取其除 10 的余数。如,2863 加密后得到 4085。 

(12)

7.古典问题:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三 个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 

8.从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,求所有可 能的方案。

(13)

10.试编程判断输入的正整数是否既是 5 又是 7 的整数倍数,若是,则输出 yes;否则输 出 no。

(14)

1.6 数组 

1.定义一个含有  30  个整型元素的数组,按顺序分别赋予从  2  开始的偶数;然后按顺序 每五个数求出一个平均值,放在另一个数组中并输出。请编程。  2.读懂下面的程序并填空。  void main()  {  char str[80];  int i=0;  gets(str);  while(str[i]!=0)  {  if(str[i]>='a'&&str[i]<='z')  str[i]­=32;  i++;  }  puts(str);  }  程序运行时,如果输入 upcase,屏幕显示________。 程序运行时,如果输入 Aa1Bb2Cc3,屏幕显示  ________。 解析:程序功能为将输入字符串中小写英文字母转换为大写字母,其他符号保持不变。

(15)

f(1)=1,    f(2)=1,    f(n)=f(n­2)+f(n­1)    (n≥3)  解析: 要用数组存放 Fibonacci 数列的前 15 项, 数组大小为 15, 用数组元素 Fib[0]、 Fib[1]  分别代表数列最开始的两项,可利用递推公式 f(i)=f(i­2)+f(i­1) (15≥i≥2)计算第 i 项。注意数 组下标从 0 开始计数。  4.编写程序:从键盘输入两个字符串 a 和 b,要求不用库函数 strcat 把 b 的前五个字符连 接到 a 中;如果 b 的长度小于 5,则把 b 的所有元素都连接到 a 中。

(16)

5.输入 10 个 0~100 的随机整数到指定的数组中。 

6.输入一个 3 行 4 列的数组,先以 3 行 4 列的格式输出该数组,然后找出该数组中值最 小的元素,输出该元素及其两个下标。

(17)

1.7 函数 

1.编写一个函数,其功能是计算二维数组每行之和以及每列之和。 

2.从键盘上输入多个单词,输入时各单词用空格隔开,用'#'结束输入。编写一个函数, 将每个单词的第一个字母转换为大写字母,在主函数中实现单词的输出。

(18)

3.分析下列程序运行结果。  #include <stdio.h>  int k;  void fan()  {  int m=0;  static int n=0;  k++; m++;  n++;  printf("\n%4d%4d%4d",k,m,n);  }  void main()  {  fan(); fan();  k=5; fan();  }  解答:程序运行结果为  4.编写程序求下式的值:S=2 1 ×1+2 2 ×2!+…+2 ×n!(n<10)。要求如下: (1)不使用数学函数,编写函数求 2 n 和 n!; (2)编写函数调用前两个函数求 S; (3)在主函数中输入 n,输出计算的 S 值。

(19)

1.8 指针 

1.编写程序:输入  10  个整数到一维数组中,把该数组中所有为偶数的数,放到另一个 数组中去。用指针法对数组进行访问。 【分析】利用指向数组的指针对数组元素进行访问。初始时,令指针指向数组的第  1  个 元素,通过指针的++运算即可逐个访问数组元素。  2.对一维数组中的  10  个整数进行操作:从第  3  个元素开始直到最后一个元素,依次向 前移动一个位置,输出移动后的结果。用指针对数组进行访问。 【分析】将第 3 个元素向前移动,是指将第 3 个元素的值赋给数组的第 2 个元素。这样, 数组的第 2 个元素的值将被覆盖。可见,当数组的元素依次向前移动时,其前面的元素被逐个 覆盖。这种操作,常用于删除数组中某一元素的值。

(20)

3.在一个字符数组中存放"AbcDEfg"字符串,编写程序,把该字符串中的小写字母变为 大写字母,把该字符串中的大写字母变为小写字母。要求用指针对字符串进行访问。  4.输入 5 个字符串,比较它们的大小,输出 5 个字符串中最大的字符串。要求用指针实 现对字符串的访问。 【分析】在字符串之间比较大小时,不能使用 C 语言的关系运算符,如>和<等进行比较, 而需调用标准字符串函数 strcmp,用于比较两个字符串的大小关系。在使用该函数时,应包含  "string.h"这个头文件。

參考文獻

相關文件

[r]

下面我们将用 这一点将一元函数的 Taylor 展开推广到多元函数.. 我们希望借助此给出多元函数

笛卡儿企图通过坐标系给几何引进新方 法, 他的成就远远超出他的期望. 坐标系是数 学中的双刃剑, 使得几何的目的可以通过代 数达到, 反过来,

[r]

为此, 我们需要建立函 数的差商与函数的导数间的基本关系式, 这些关系式称为“微分学中值定理”...

[初等函数] 幂函数、指数函数、对数函数、三角函数、反三角函数通称为“ 基本初等函

本章我们又一次经历了用函数研究变化规律的过程 ,用反比例函数刻画具 有反比例关系的两个变量之间的对应关系 :在变量y 随变量x 的变化而变化的

(3)无穷小是一类特殊函数, 是在某一变化过程中极限 为0的函数, 并且在一个过程中为无穷小的量在另一过 程中可能不是无穷小量... 定理5