C语言程序设计 - 上机实验指导与习题 - 第三版 - (陈湘骥 - 编(5)

2020-03-26 19:37

实验 6 循环结构程序设计(二) 一、实验目的

(1)进一步熟悉掌握用 while 语句、do-while 语句和 for 语句实现循环的方法。 (2)掌握在程序设计中使用多重循环。

二、实验内容

[题目 1028:求素数]

输出 2 到 200 之间(包括 2、200)的所有素数(注:要求 1 行 1 个素数,按由小到大的顺序输出)。 [提示]采用双重循环,外层循环产生 2 到 200 之间的数,内层循环对数进行判断是否为素数。 参考程序: # include # include main() {

int m,k,i;

for(m=2;m<=200;m++) {

k=sqrt(m); for(i=2;i<=k;i++)

if(m%i==0) break; if(i>k) printf(\} }

[题目 1137:找到满足要求的数字]

#include void main() { int a,b,n; for (n=0;n<=9999;n++) { if (n%7==0) { a=n; while(a!=0) { b=a/10; b=a-b*10; a=a/10; if (b==5) {printf (\ } } } }

[题目 1035:打印菱形]

由键盘输入正数 n,要求输出 2*n+1 行的菱形图案。要求菱形左边紧靠屏幕左边。[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 3↙ 2↙ [正确输出]

[正确输出]

* *

*** ***

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

15

参考程序: #include \#include \main() {

int n,i,j,k; scanf(\for(i=1;i<=2*n+1;i++) {

k=abs(n+1-i); for(j=1;j<=k;j++) printf(\

for(j=1;j<=2*n+1-2*k;j++)

printf(\

printf(\} }

[题目 1038:打印图案]

由键盘输入正数 n,要求输出中间数字为 n 的菱形图案。要求菱形左边紧靠屏幕左边。

[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]

4↙ 3↙

[正确输出]

[正确输出1 ]

1

121 12321 121 1234321

12321 121 12321 1

121 1 参考程序: # include # include main()

{

int n,i,j,k,h;

scanf(\

for(i=-n+1;i<=n-1;i++) {

for(j=0;j

for(k=1;k<=n-abs(i);k++) printf(\for(h=n-abs(i)-1;h>=1;h--) printf(\printf(\} }

16

实验 7 数组 一、实验目的

(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握与数组有关的算法。

二、实验内容

[题目 1039:倒序]

由键盘输入 10 个整数,倒序输出。(数字间由一个空格分隔) [自测数据] [键盘输入] 70 5 14 20 [正确输出] 66 13 67 99 参考程序: #include main() {

int a[10]; int i;

for(i=0;i<10;i++) scanf(\for(i=9;i>=0;i--) printf(\}

2 19

20 14

5 70

19 2

99 67 13 66↙

[题目 1040:统计不同数字个数]

由键盘输入 20 个整数,统计不同数字的个数。 [自测数据] [键盘输入] 70 5 14 22 [正确输出] 16

[提示]上述答案中,因为 5 有 1 个重复数字,11 有 1 个重复数字,22 有 2 个重复数字,故不同数字有 16 个,分别是 70 5 14 22 19 2 99 67 13 66

93 44 38 11 39 33

17

19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙

参考程序: #include\main() {

int a[20]; int i,t,p=0; for(i=0;i<20;i++) {

scanf(\for(t=0;t

if(a[t]==a[i])break; if(t==i) p++; }

printf(\}

] [正确输出1 6 9 3 1 1 0 2 1 9 8 9

[题目 1062:打印矩阵]

由键盘输入一个 3×4 的矩阵,要求输出它的转置矩阵。 [自测数据] [键盘输入]

1 6 9 3 1 1 0 2 1 9 8 9 参考程序:

#include main() {

int a[3][4],b[4][3],i,j; for(i=0;i<3;i++)

for(j=0;j<4;j++) { }

b[j][i]=a[i][j];

scanf(\

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

printf(\printf(\} }

*[题目 1047:冒泡排序]

由键盘输入 10 个数,用“冒泡法”对 10 个数从小到大排序,并按格式要求输出。代码如下,请填充完 整。 数字间由一个空格分隔。 #incude \main()

{ int a[10], i, j, t;

18


C语言程序设计 - 上机实验指导与习题 - 第三版 - (陈湘骥 - 编(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于成立高坝中学教育强县创建工作领导小组的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: