如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 范文百科 > c

c

来源:免费论文网 | 时间:2016-11-10 12:54:54 | 移动端:c

篇一:C语言Structure的功能

第十章 C語言Structure

的功能

假設我們有一組學生的資料,包含學生的學號、姓名和體重,我們要如何表示這種資料呢?對很多電腦語言而言,我們必須要有三個陣列。這三個陣列分別表示學生的學號,姓名和體重。舉例而言,假如我們有五位學生,他們的資料如表10-1:

表10-1

我們就需要三個陣列,如表10-2所示:

表10-2

麻煩的是:這三個陣列是互有關聯的。如果我們要將學生的資料按照學號的大小排列,學號陣列當然會改變,但是我們必須跟著同時改變姓名、陣列和體重陣列。改過以後的三個陣列如表10-3。

表10-3

所以,我們只好承認這是一件很複雜的事情。可是,在C語言中,我們有

一個簡單的辦法,我們可以利用一種叫做structure的功能,一下子就解決了這個問題。

Structure使我們可以宣告學生的資料有三個欄位:學號、姓名、體重。學號

和體重都用整數來代表,姓名用文字來表示,所以我們可以作以下的宣告。

struct student { int idnum;

char name[20]; float weight; }

從以上的宣告看來,學生的姓名最長不能超過20個英文字。

一旦對student下定義,我們就宣告一個陣列有student的結構,這個陣列當

然也要有一個名字,我們不妨將它叫做sdata,sdata內容有如表10-1所示。假設我們要找第i個sdata的資料,我們只要找sdata[i]即可。如果我們要找第i個學生的學號,我們就要指定sdata[i].idnum,他的姓名是sdata[i].name,而他的體重則是sdata[i].weight。有了sdata以後,我們可以根據其中任何一個欄位排列。假設我們用學號排列,就可以得到以下的sdata,如表10-4

10-4

如果用體重來排列,我們會得到如表10-5所示的資料。

表10-5

至於sdata如何會有資料的?當然是靠讀入的,我們通常應該宣告一個文字檔,用讀檔案的方法可以將資料讀到sdata去。

例題10-1 讀入學生資料檔,根據學號將學生資料排列,並將結果輸出至另一檔案

要使用structure來表示學生資料,我們必需在主程式的外面先註明,所以我們會在主程式的前面,有以下的指令:

struct studentdata {

int idnum;

char name[20]; float weight; }

主程式的流程圖如圖10-1。

圖10-1

至於排序的副程式,它的流程圖如圖10-2所示。

圖10-2

當然,我們還要有一個輸出結果至文字檔的副程式,這個副程式非常簡單,我們就不再討論它的流程圖了。

以下是這個程式。

程式 10-1

#include <stdio.h>

#define MAX_ARRAY_SIZE 256

#define STUDENT_DATA_FILE_NAME "student.txt" #define OUTPUT_FILE_NAME "student_output.txt"

struct student

{

int idnum;

char name[20]; float weight; }; int read_all_student_data(struct student A[MAX_ARRAY_SIZE], FILE *fp);

篇二:C_语言程序设计实验答案

C 语言程序设计

上机实验指导与习题(第二版)

参考答案

(仅供教师内部参考) 实验 1 C 语言程序初步

一、实验目的

(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个C 程序。

(3)通过运行简单的C 程序,初步了解C 程序的特点。

(4)在教师的指导下,学会使用JudgeOnline 实验系统。

二、实验内容

1. 运行第一个C 程序

2. 在JudgeOnline 系统中提交实现了计算a+b 功能的程序

2

实验2 基本数据类型、运算和表达式

一、实验目的

(1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。

(2)掌握不同的类型数据之间赋值的规律。

(3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运

算符的使用。

(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程。

二、实验内容

[题目1117:变量定义,按要求完成程序]

下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 #include "stdio.h"

main()

{

int a, b; /*定义整型变量a 和b*/

int i, j; /*定义实型变量i 和j*/

a=5;

b=6;

i=3.14; j=i*a*b;

printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i, j);

}

[具体操作步骤]

(1)将代码补充完整;

(2)在TC 或VC++上运行通过;

(3)在JudgeOnline 实验系统上提交;

[题目6568:在显示屏上显示指定字符]

要求编写一个程序,在显示屏上显示如下内容(全为半角字符,且不包含空格): C:\ABC.TXT

[提示] 注意转义字符在程序中的使用。

参考程序:

#include "stdio.h"

main()

{ printf("C:\\ABC.TXT"); }

3

[题目1118:赋值表达式与赋值语句,写出程序运行结果]

阅读下面程序,写出运行结果:

#include "stdio.h"

main()

{ float a;

int b, c;

char d, e;

a=3.5;

b=a;

c=330;

d=c;

e='\141';

printf("%f,%d,%d,%c,%c", a,b,c,d,e);

}

运行结果为:

3.500000,3,330,J,a

[提示]赋值语句具有类型转换的功能,但可能会改变数据。

[题目1119:基本运算,写出程序运行结果]

阅读下面程序,写出运行结果:

#include "stdio.h"

main()

{ int a, b, c;

float d=15, e, f;

a=35%7;

b=15/10;

c=b++;

e=15/10;

f=d/10;

printf("%d,%d,%d,%f,%f,%f", a,b,c,d,e,f);

}

运行结果为:

0,2,1,15.000000,1.000000,1.500000

[提示]除法分整除与普通除法之分。

4

实验3 基本输入与输出

一、实验目的

(1)熟练掌握putchar、getchar、printf、scanf 函数的使用方法。

(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

[题目1126:字符的输入与输出]

编程实现由键盘输入一个字符后,在屏幕上输出该字符。

[第一组自测数据]

[键盘输入]

a↙

[正确输出]

a

[第二组自测数据]

[键盘输入]

+↙

[正确输出]

+

参考程序:

#include "stdio.h"

main()

{ char ch;

ch = getchar();

putchar(ch);

}

[题目1127:计算加法]

编程实现由键盘输入一个加法式,输出正确的结果。(两个加数均为整数)

[第一组自测数据]

[键盘输入]

10+20↙

[正确输出]

30

[第二组自测数据]

[键盘输入]

-15+60↙

[正确输出]

45

参考程序:

#include "stdio.h"

main()

{ int a, b;

scanf("%d%*c%d", &a,&b);

printf("%d", a+b);

}

[题目1014:求圆面积]

由键盘输入圆半径r,请计算该圆的面积。(注:π 取3.14159,结果保留两位小数位;另外,程序只

要能对r 在0 到10000 范围的情况输出正确答案即可)

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

2

65.2↙

[正确输出]

13355.02

[第二组自测数据]

[键盘输入]

11.2↙

[正确输出]

394.08

[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现。

参考程序:

#include "stdio.h"

main()

{ float area,r;

scanf("%f",&r);

area=3.14159*r*r;

printf("%0.2f",area);

}

[题目1015:计算摄氏温度值]

从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。 数学公式描述为:

( 32)

9

C = 5 F ?

[第一组自测数据]

[键盘输入]

100↙

[正确输出]

37.78

[第二组自测数据]

[键盘输入]

100↙

[正确输出]

37.78

[提示]注意公式中的除为普通除法。

参考程序:

#include<stdio.h>

main()

{ float f,c;

scanf("%f",&f);

c=5.0/9*(f-32);

printf("%.2f",c);

}

3

实验4 选择结构程序设计

一、实验目的

(1)了解C 语言表示逻辑的方法(以0 代表“假”,以非0 代表“真”)。

(2)学会正确使用逻辑运算符和逻辑表达式。

(3)熟练掌握if 语句和switch 语句。

(4)结合程序掌握一些简单的算法。

二、实验内容

[题目1120:判断点是否在圆上]

由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出Y, 不在圆上输出

N。使用小数点后3 位精度进行判断。

[第一组自测数据]

[键盘输入]

0.707,0.707↙

[正确输出]

Y

[第二组自测数据]

[键盘输入]

0.5,0.5↙

[正确输出]

N

[提示](1)平面上的点与圆的关系分为在圆内、在圆上、在圆外三种,本题要求判断是否在圆上;(2)

判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度(本题为0.001)的方法实现。

参考程序:

#include "stdio.h"

#include "math.h"

main()

{ float a,b;

scanf("%f,%f",&a,&b);

if(fabs(a*a+b*b-1)<1e-3)

printf("Y\n");

else printf("N\n");

}

[题目1017:求数的位数]

由键盘输入一个不多于9 位的正整数,要求输出它是几位数。

[第一组自测数据]

[键盘输入]

349213↙


c》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/show/93815.html
转载请保留,谢谢!