版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计(C语言)实验指导2007年9月目 录实验1 C语言上机环境介绍1实验2 数据类型、运算符和表达式7实验3 最简单的C 程序设计11实验4 逻辑结构程序设计13实验5 循环控制15实验6 数组17实验7 函数19实验8 编译预处理21实验9 指针22实验10 结构体和共用体26实验11 位运算33实验12 文件34实验13 综合实训37附录55参考文献74实验1 C语言上机环境介绍一、实验目的1、 1、 了解Visual C+ 6.0的特点。2、 2、 熟悉Visual C+ 6.0的开发环境,学会开发环境的使用,了解C或C+程序设计的一般过程。3、 3、 学习用Visual C
2、+6.0编写标准的C或C+程序。4、 4、 掌握单文件程序及多文件程序的编写与运行过程,学会建立工程,编译运行程序,学会查找和排除错误的方法。二、实验内容和步骤使用Visual C+来建立以下C程序,编译、连接并运行,然后记录运行结果。建议在硬盘(如E盘)上建立一个文件夹,将C程序存储在其中,实验完毕后,再将源程序复制到软盘。1、单文件编辑,设文件名为sy1-1.c。#include void main( )printf(”Hello! n”);printf(”Welcome to c! n”);运行结果:2、单文件编辑,在文件中有两个函数。设文件名为sy1-2.c。#include int
3、add(int,int);void main( )int a,b;a=5;b=7;int c=add(a,b);printf(a+b=%dn,c);int add(int x,int y)return x+y;运行结果:3、多文件编辑,使用包含文件。设文件名为sy1-3.h和sy1-3.c。首先创建一个头文件,“文件”“新建”选择“文件”标签C+ Head File,在“文件”框内输入文件名:sy1-3.h,其内容如下:#include void prnstr(char *s) prinf(”我是个%sn”,s);编译此文件。然后建立sy1-3.c文件。内容如下:#include “sy1-3
4、.h” printf (”欢迎您使用C语言!n”);prnstr (“大学生”);printf (”我喜欢C语言!n”);编译此文件、连接、运行,并记录结果。运行结果:4、多文件编辑,设文件名为sy1-4.c和sy1-41.c。sy1-4.c文件的内容:include int add(int,int);void main()int a,b;a=5;b=7;int c=add(a,b);printf(a+b=%d,c);sy1-41.c文件的内容int add(int x,int y)return x+y;请编译这两个文件,并连接、运行(请事先建立一个工程,具体步骤请参考“三、实验指导”)。运行
5、结果:注意:在输入以上程序时,可故意漏打或打错几个字符,然后进行编译,仔细分析编译信息窗口,识别所显示的错误,逐个修改,直到不出现错误。5、运行自己编写的程序输入a、b、c三个整数,输出其中最大者。仿照教材上的例题编写程序或者自己编写新的程序进行练习。三、实验指导1、启动Visual C+6.0开发环境从“开始“菜单中选择“程序”Microsoft Visual Studio 6.0Microsoft Visual C+ 6.0,显示Visual C+6.0开发环境窗口。2、创建一个项目或工程(Project)(1) 单击“文件”菜单中的“新建”选项,显示“新建”对话框(如图1-1所示)(2)
6、 单击“工程”标签,在“工程”选项卡中,选择“Win32 Console Application”(Win32控制台应用程序)。在“位置”文本框中指定一个路径,在“工程”文本框中为项目输入一个名字如lab1-1,单击“确定按纽。(3) 在弹出的Win32 Console Application-Step 1 of 1对话框选择 An Empty Project 单选项,然后单击“完成”按纽(如图1-2所示)。(4) 最后在New Project Information 对话框单击“完成”按纽,完成项目的建立。3、建立C+源程序文件(1)选择菜单命令“工程”“添加工程”“新建”,弹出对话框。(2
7、)如图1-3所示,在“新建”对话框的“文件”选项卡中选择“C+ Source File”,并填入文件名称如:lab1-1,单击“确定”按纽,完成新建C+源程序文件。4、编辑C+源程序文件内容(1)在文件编辑窗口中输入代码(如图1-4所示)。(2)选择“文件”菜单“保存”命令。5、建立并运行可执行程序(1)选择菜单命令“编译”lab1-1.cpp,编译程序。 如果程序有语法错误,则屏幕下方的状态窗口中会出现错误信息,根据这些错误信息对源程序进行修改后,重新编译。(2)选择菜单运行命令“编译”“执行 lab1-1.exe” 运行程序,观察屏幕的显示内容。 图1-1 New对话框图1-2 创建控制台
8、应用程序第一步图1-3添加新的源程序文件图1-4在文件编辑窗口中输入代码6、关闭工作空间选择“文件”菜单“关闭工作区”,即可关闭当前工作区。实验2 数据类型、运算符和表达式一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同类型数据之间赋值的规律。3、学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。4、进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容和步骤1、输入并运行下面的程序#include void main() char c1, c2;c1 = a;c2 = b
9、;printf (“%c %cn”, c1, c2);(1)运行此程序。(2)再此基础上增加一个语句:printf(“%d%dn”,c1,c2);再运行,并分析结果。(3)再将第2行改为:int c1,c2;再使之运行,并观察结果。(4)再将第 3、4行改为:c1 = a; /* 不用单撇号 */c2 = b;再使之运行,分析其运行结果。(5)再将第 3、4行改为:c1 = ”a”; /* 用双撇号 */ c2 = ”b”;再使之运行,分析其运行结果。(6)再将第 3、4行改为:c1 = 300; /* 用大于255的整数 */c2 = 400;再使之运行,分析其运行结果。2、输入并运行以下程
10、序(BX2.6)#include void main() char c1 = a, c2 = b, c3 = c, c4 = 101, c5 = 116;printf (“a%c b%ctc%ctabcn”,c1, c2, c3);printf(“tb%c%c”, c4, c5);在上机前先用人工分析程序,写出应得结果,上机后将二者对照。3、输入并运行下面的程序#include void main() int a,b;unsigned c,d;long e,f;a = 100;b = -100;e = 50000;f = 32767;c = a;d = b;printf(“%d,%dn”, a
11、, b);printf(“%u,%un”, a, b);printf(“%u,%un”, c, b);c = a = e;d = b = f;printf(“%d,%dn”, a, b);printf(“%u,%un”, c, d);请对照程序和运行结果分析:(1)将一个负整数赋给一个无符号的变量,会得到什么结果。(2)将一个大于32767的长整数赋给整型变量,会得到什么结果。(3)将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b = -40000, e
12、 = 65535, f = 65580。4、输入以下程序(BX2.16)#include void main() int i,j,m,n;i = 8;j = 10;m = +i;n = j+;printf(“%d,%d,%d,%d”, i, j, m, n);(1)运行程序,注意 i、j、m、n 各变量的值,分别作以下改动并运行。(2)将第4、5行改为:m = i+;n = +j;再运行。(3)将程序改为:#include void main() int i,j;i = 8;j = 10;printf(“%d,%d”, i+, j+);(4)在(3)的基础上,将printf 语句改为:prin
13、tf(“%d,%d”, +i, +j);(5)再将printf 语句改为:printf(“%d,%d,%d,%d”, i, j, i+, j+);(6)将程序改为:#include void main() int i, j, m=0, n=0;i = 8;j = 10;m+= i+; n-= -j;printf(“i=%d,j=%d,m=%d,n=%d”, i, j, m, n);5、按要求编写程序并上机运行(1)要将”China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。因此,”China”应译为”Glmre”
14、。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为G、l、m、r、e、,并输出。(BX2.7)输入事先已编好的程序,并运行该程序。分析是否符合要求。改变c1、c2、c3、c4、c5的初值为:T、o、d、a、y,对译码规律作如下补充:W用A 代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行。将译码规律修改为:将字母用它前面的第4个字母代替,例如:E用A 代替,Z用U代替,D用Z代替,C用Y代替,B用X代替,A用V代替。修改程序并运行。(2)已知两个电阻分别为10欧姆和20欧姆,求并联后电阻的值
15、。提示:1/R=1/R1+1/R2实验3 最简单的C 程序设计一、实验目的1、掌握C语言中使用最多的一种语句赋值语句的使用方法。2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容和步骤1、掌握各种格式转换符的正确使用方法(1)输入程序#include void main() int a, b;float d, e;char c1, c2;double f, g;long m, n;unsigned int p, q;a = 61; b = 62;c1 = a; c2 = b;d = 3.56; e = -6.87;f = 3157.890121; g = 0.1234
16、56789;m = 50000; n = -60000;p = 32768; q = 40000;printf(“a=%d, b=%dnc1=%c, c2=%cnd=%6.2f, e=%6.2fn”, a, b, c1, c2, d, e);printf(“f=%15.6f, g=%15.12fnm=%ld, n=%ldnp=%u, q=%un”, f, g, m, n, p, q);(2)运行此程序并分析结果。(3)在此基础上,修改程序的第8-13行:a = 61; b = 62;c1 = a; c2 = b;f = 3157.890121; g = 0.123456789;d = f; e
17、 = g;p = a = m = 50000; q = b = n = -60000;运行程序,分析结果。(4)改用scanf 函数输入数据而不用赋值语句,scanf 函数如下:scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);输入的数据如下:61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000请分析运行结果(说明:lf和ld格式符分别用于输入double型和long型数据)。(5)在(
18、4) 的基础上将printf语句改为:printf(“a=%d, b=%dnc1=%c, c2=%cnd=%15.6f, e=%15.12fn”, a, b, c1, c2, d, e);printf(“f=%f, g=%fnm=%d, n=%dnp=%d, q=%dn”, f, g, m, n, p, q);运行程序。(6) 将p、q改用%o格式符输出。(7)将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。2、按要求编写程序(1)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果。输出时要有文字说
19、明,取小数点后两位数字。(2)编程序,用getchar 函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行程序,比较用printf和putchar 函数输出字符的特点。(3)由键盘输入底和高,求三角形的面积。(4)求平面上任意两点之间的距离。提示:点(x1,y1)到点(x2,y2)的距离公式为:d=(5)输入两个数为两个变量赋值,然后将两个变量的值互相交换。(6)输入一个四位数,反序输出这个数。如:输入1357,则打印1、3、5、7及7531。提示:图如下:(1.5)输入一个四位数如x取千位数 a=x/1000取百位数 b=(x-a*1000)
20、/100取十位数取个位数输出各位数输出反序数实验4 逻辑结构程序设计一、实验目的1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。2、学会正确使用逻辑运算符和逻辑表达式。3、熟练掌握if语句和switch语句。4、结合程序掌握一些简单的算法。5、学习调试程序。二、实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。1、对于如下函数: 用scanf函数输入x的值,求y值。(BX4.5)运行程序,输入x的值(分别为x1、1xn,观察结果是否正确。再输入时,使m100输出得票数a,b,c,d7、输入一个位数,要求逆序打印每一位数字,并打印逆序整数,
21、要求使用循环完成。请考虑:如不限定几位数(即只要不超过整数范围),应如何修改程序。(SX2.3)8、将实验四的菜单程序,改成可循环选择,直到输入结束程序。9、打印1!+2!+3!+20!之和。(BX5.4)10、打印出所有的“水仙花”数,“水仙花”数是指一个3位数,其各位数字的立方之和等于该数本身。如153。(BX5.5)11、打印数列2/1,3/2,5/3,8/5,13/8,21/13的前项之和。(BX5.7)12、打印九九乘法表。13、打印下列各种图案。(分别使用递增循环和递减循环完成)* * * * * * * * * * * * * * * * * * * * * * * * * *
22、* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1、 1、 给13、给出任意一个正整数,要求:(1)求它是几位数 (2)按逆序打印出各位数字,例如原数字为321,应输出123。(3)打印各位数字之和。实验6 数组一、实验目的1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法(特别是排序算法)。二、实验内容和步骤编程序并上机调试运行。1、 用选择法对10个整数排序。10个整数用scanf函数输入。(BX6.2)2、 有15个数存放在一个数
23、组中,输入一个数,要求查找该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。3、 将两个字符串连接起来,不要用strcat函数。(BX6.11)4、 找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。数组也可能没有鞍点。(BX6.7)应当至少准备两组测试数据: 二维数组有鞍点 9 80 205 40 90 -60 96 1 210 -3 101 89 二维数组没有鞍点 9 80 205 40 90 -60 196 1 210 -3 101 8945 54 156 7 用scanf函数从键盘
24、输入数组各元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。因此,需在程序中使用scanf输入行数和列数。如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。5、改用数组实现实验五第题(统计选票)。(SA2.7)提示:技巧是把下标与候选人对应的字母相统一,大大减化了程序。6、打印出以下的杨辉三角形(要求打印10行)(BX6.6)11 11 2 11 3 3 11 4 6 4 1提示:N-S图如下:打印第1行的“1” for i=1 to 9打印“1”for j=1 to i 计算要打印的数据如cij打印cij换行7、
25、将实验六第10题改用数组完成。8、有一个已经从小到大排好序的整数数组:a30=6,9,12,15,19,23,45,67,89,98,现输入一个整数 x ,要求按原来的升序规律将它插入到数组中。(JN)9、编程查找一个二维字符数组里为“a”的元素的个数。假定是3行5列的字符数组。(LL3.13)实验7 函数一、实验目的1、掌握定义函数的方法;2、掌握函数实参与形参的对应关系以及“值传递”的方式;3、掌握函数的嵌套调用和递归调用的方法;4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。5、学习对多文件程序的编译和运行。二、实验内容和步骤编程序并上机调试运行。1、 写一个判别素数的函数
26、,在主函数输入一个整数,输出是否素数的信息。(BX7.3)本程序应当准备以下测试数据:17、34、2,1、0。分别输入数据,运行程序并检查结果是否正确。2、 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数(BX7.9)把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。3、 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。4、 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数
27、。(BX7.1)不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。写一函数,输入一个十六进制数,输出相应的十进制数。(BX7.14)。5、输入三个字符串,按由小到大的顺序输出这些字符串。要求,对于三个字符串进行两两比较,将最小的串放在str1中,将最大的串放在str3中。设计一个函数
28、,对两个字符串进行交换。提示:使用strcmp(str1,str2)函数。6、已知abc+bcc=1333,其中 a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。提示:对于a、b、c取值范围(0-9)内任意的组合,设计一个函数,判断给定方程abc+bcc=1333是否成立。(SA3.2)函数fun( )的N-S图:说明变量kabc+bcc=1333?F T返回0返回1主函数N-S图:说明变量a,b,cfor a=0 to 9f or b=0 to 9for c=0 to 9fun(a,b,c)=1?F TT输出abc+bcc=13337、计算xn的值。要求设计一个主函数,
29、以输入x和n的值并打印结果;设计一个power函数求xn的值,函数中使用递归调用方法。(LWB182)8、编写程序求:1K+2 K +3 K +n K ,假定n为6,k为4。要求使用函数的嵌套调用。设计一个主函数main( )完成数据的输出,设计一个求m n的函数,设计一个求1K+2 K +3 K +n K之和的函数。(LFZ111)9、分别用循环语句和递归方法编写两个由加法实现整数相乘的程序。若求x*y则用y个x相加。(LL3.7)要求:设计一个求某数据绝对值的函数。设计一个用循环实现y 个x相加的函数。在主函数中输入两个数,然后调用循环函数,而循环函数调用绝对值函数。实验8 编译预处理一、
30、实验目的1、掌握宏定义的方法;2、掌握文件包含处理方法;3、掌握条件编译的方法。二、实验内容1、编程序并上机调试运行。(1).定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。(2). 设计输出实数的格式,包括:一行输出一个实数;一行内输出两个实数;一行内输出三个实数。实数用“% 6.2f”格式输出。用一个文件Print-format.h包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将print-format.h文件包含进来。在程序中用scanf函数读入三个实数给f1、f2、f3。然后用上面定义的三种格
31、式分别输出:f1;f1、f2;f1、f2、f3。(3). 用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如a变成bz变成a。其他字符不变)。用#define命令来控制是否要译成密码。例如:若#define CHANGE 1则输出密码。若#define CHANGE 0则不译成密码,按原码输出。(习题 9.10)编写程序,用条件编译方法来实现题目要求。首先在程序中用“#define CHANGE 1”,运行程序,应得到密码。将“#define CHANGEl”改为“#define CHANGE 0”,再运行程序,应得到原文。实验9 指针一
32、、实验目的1、通过实验进一步掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、能正确使用字符串的指针和指向字符串的指针变量;4、能正确使用指向函数的指针变量;5、了解指向指针的指针的概念及其使用方法。二、实验内容1、编程序并上机调试运行程序(都要求用指针处理)。(1). 输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。(BX9.1、BX9.2)(2).将一个33的矩阵转置,用一函数实现之。 (BX9.7)在主函数中用scanf函数输入以下矩阵元素: l 3 5 7 9 11 13 15 19将数组名作为函数实参,在执
33、行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。(3).用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp (char * p1, char * p2);设p1指向字符串s1,p2指向字符串s2,要求当s1s2时,函数返回值为 0, 如果sls2,则返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为7965=14);如果sls2,则输出正值;如果sls2则输出负值。 (BX9.14)两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。
34、(4).用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出。 (BX9.17)(5)编程统计一个字符串中大写字母、小写字母、数字和其他字符的个数。(SA)提示:只要逐个检查字符串中的字符,然后将相应的计数器加1就可以统计出各类字符的数量,设up用于记录大写字母数量,low用于记录小写字母数量,digit用于记录数字数量,other用于记录其他字符的数量,(8)编程求字符串的长度。要求:求长度用自定义函数实现,字符串的输入、长度的输出由主函数实现。用指针变量作函数参数。提示:用指针从字符串首部逐个往后检查每一个字符,如果不是0字符
35、,则计数器加1,如果是0字符,则结束。(SA4.11)参考N-S图:main( )函数的N-S图:输入字符数组调用函数求长度输出长度length(char *q) 函数的N-S图:n=0*q!=0n+q+返回长度n(9)二维数组练习。输入一个3行4列的二维数组,将其中的负数全部变成0,然后输出。(SA4.8)(10)二维数组练习。求3行4列二维数组的最小元素。(SA4.9)(11)二维数组练习。某小组有5名学生,开设4门课程,输出有不及格成绩的学生的全部课程的成绩。(SX4.3)要求在主函数main()*中完成数据的录入,在函数search()中完成成绩检查和输出。(12)编写一个函数,从输入
36、的10个数中,求出最大值、最小值,并通过参数返回回主函数(要求使用指针参数)。(JN)(13)输入一个小写字母串,写一个程序统计并输出各种字母(a-z)的个数。(JN)(14)将字符串中下标为偶数的字符删除(要求使用字符指针)。(JN)(15)先将字符串s正序存放到字符串t中,然后再将s串逆序连接到串t中。(要求使用字符指针)。(JN)2、程序填空:(1)一维数组和指针。分别采用下标法、数组名法和指针法访问数组元素,求出10 个数中的最大值。(SA4.4)下标法:# include void main() int a10,i,max; for ( ) scanf (“%d”, );for (
37、) if ( ) max=ai; printf (“MAX=%dn”,max);数组名法:#include void main() int a10,i,max; for ( ) scanf (“%d”, a+i);for ( ) if ( ) max=*(a+i); printf (“MAX=%dn”,max);指针法:#include void main() int a10;int *p, max; for ( ) scanf (“%d”, p);for ( ) if ( ) max=*p; printf (“MAX=%dn”,max);(2)字符串和字符指针。输入一个字符串,将其中的大写字
38、母转换成小写字母,然后输出。(SA4.6)字符数组实现:# include void main()char s20; int i;gets( );for( ); if( ) si=si+a-A; i=0;while( ) printf (“%c”,si); 字符指针变量实现:#include void main() char s20;char *p;scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/while( ) if( ) *p=*p+(a-A);puts ( );提示:scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为
39、字符串结束。如键入any boy并回车,则scanf (“%s”,s)的结果为:any0gets (s)的结果为:anyboy0实验10 结构体和共用体一、实验目的1、掌握结构体类型变量的定义和使用;2、掌握结构体类型数组的概念和使用;3、了解共用体的概念与使用。二、实验内容1、编程序,然后上机调试运行。(1)有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平
40、均分和最高分学生的数据都在主函数中输出。 (2)输入和运行以下程序union data int i2;float a;long b;char c4;u;main ( ) scanf(%d,%d,&u.i0,&u.i1);printf(i0=%d,i1=%da=%fb=%1dc0=%c,c1=%c,c2=%c,c3=%c,u.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);输入两个整数10000、20000给u.i0和u.il,分析运行结果。然后将scanf语句改为:scanf(ld,&u.b);输入60000给b,分析运行结果。2、阅读以下案例,补充程序并调试运行。(
41、1)结构体变量案例。编程输出两个小孩的记录信息。1 个男孩和1 个女孩,其姓名首字母分别为“R”和“H”;男孩15岁,女孩比男孩小1岁子;男孩的成绩为75,女孩的成绩为82。(SA6.2)该案例涉及结构体变量的定义、初始化和结构体变量成员的引用。# include void main() struct childrec /*定义结构体类型*/char initial; /*姓名首字母*/int age; /*年龄*/int grade; /*成绩*/boy,girl;boy.initial=R;girl. initial=H; girl.age=boy.age-1; girl.grade=82
42、;printf(“boy:%c is %d years old and got a grade of %dn”, , , );printf(“girl:%c is %d years old and got a grade of %dn”, , , );请写出运行结果: (2)结构体数组案例。设有三个候选人,Zhang,Wang和Li,设有10个人参加投票,每次输入一个得票的候选人的名字,要求最后输出各候选人的得票结果,请设计程序对候选人的得票数进行统计。(SA6.3)# include # include struct person /*候选人信息结构体,这是一个全局的结构体数组*/ char
43、 name20; /*姓名*/int count; /*得票数*/stu3=“Zhang”,0,”Wang”,0,”Li”,0;void main() int i,j; char leader_name20; for(i=1;i=10;i+) /*设有10个人参加投票*/scanf(“%s”, leader_name); /*输入得票人姓名*/ for(j=0;j3;j+) if(strcmp(leader_name,)=0) ; printf(“n”);for(i=0; , ) printf(“%5s: %dn”, , );输入: ZhangWangLiWangLiLiZhangLiLiWang请写出运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抖音运营工作制度
- 护士查对工作制度
- 护理核心工作制度
- 换药班工作制度
- 控制学生工作制度
- 提前预防工作制度
- 摸底排查工作制度
- 支部经费工作制度
- 放松室工作制度
- 2026年航运业综合管理岗位面试题及答案解析
- 人教统编版六年级语文下册第二单元《习作:写作品梗概》公开课教学课件
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(典型题)
- 2026内蒙古环投集团社会招聘17人笔试备考试题及答案解析
- 2026年高考物理二轮复习:专题16 热学(复习讲义)(全国适用)(原卷版)
- TSG 08-2026 特种设备使用管理规则
- 2026年安徽粮食工程职业学院单招职业技能考试题库附答案详细解析
- DBJ-T36-073-2026 江西省装配式建筑评价标准
- 建功新时代做一名合格的共青团员
- JJF 1059.1-2012测量不确定度评定与表示
- 河北唐山遵化经济开发区工作岗位竞聘【共500题含答案解析】模拟检测试卷
- 第二章 运动的守恒量和守恒定律
评论
0/150
提交评论