C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

合集下载

C程序设计实验指导书第三版

C程序设计实验指导书第三版
班级
实验地点
完成日期
实验目的
1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2)学会正确使用逻辑运算符和逻辑表达式。
3)熟练掌握if语句和switch语句。
4)结合程序掌握一些简单的算法。
5)学习调试程序。




























本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
2在上面的printf语句的下面再增加一个printf语句:
printf("%d%d\n",c1,c2);
再运行,并分析结果。
3将第3行改为:
intc1,c2;
再使之运行,并分析结果。
4再将第4、5行改为:
c1=a;/*不用单撇号*/
c2=b;
再使之运行,并分析其运行结果。
5再将第4、5行改为:
c1=97;
1输入下面的程序(故意漏打或打错几个字符):
#include<stdio.h>
void main()
{
int a,b,sum
a=123;b=456;
sum=a+b
print("sum is %d\n",sum);
}
2进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错误。最后请与教材上的程序对照。
没有
4运行程序,输入数据,分析结果。
5自己修改程序(例如故意改成错的),分析其编译和运行情况。

C语言程序设计第3版何钦铭-颜-晖--循环结构

C语言程序设计第3版何钦铭-颜-晖--循环结构

第4章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么?为什么?如果将精度改为 10-3,运行结果有变化吗?为什么?解答:如果对item赋初值0,则程序运行结果是pi=0,因为item为0时不满足while 循环的执行条件,即不执行循环,故 pi 值为 0。

如果将精度改为 10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得while循环次数减少,必然影响到n的值。

【练习 4-2】运行例 4-2程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是 -1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。

如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则while循环条件不成立,不执行循环体。

【练习4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数eps, 计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps (保留6位小数)。

试编写相应程序。

解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习4-4】如果将例4-3程序中的do-while语句改为下列while语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10; count ++;}解答:会有影响,因为当输入数据 number 为 0时,上述 while 循环将不执行,count 值仍为 0,故输出为 0,不符合题目要求。

C语言程序设计上机指导书及答案

C语言程序设计上机指导书及答案

姓名:_________________ 学号:_________________ 专业:_________________日期:_________________指导原则:促进学生针对实际问题,用所学C语言知识编写符合规范的源程序代码,在某一集成开发环境下尽一切调试技能调试程序,并对运行结果进行分析处理,得出正确结论,解决好实际问题。

更快更好地掌握所学知识,技能和软件的一向开发方法目的:1,通过上机实验,加深对教材内容的理解,特别是一些语法规定,熟练掌握各种语法规则。

2,通过上机实验,熟悉某个C语言集成开发环境。

掌握集成开发环境下程序的编辑、编译与连接、运行的完整过程3,通过上机实验,要学会调试程序。

能根据系统给出的“出错信息”,判断错误所在,并修改错误,使程序正确运行。

要求:1,复习与本次实验相关的教学内容2,了解集成开发环境的操作步骤3,准备好实验内容。

对于编程题,一定要自己动手,书写工整,并人工检查无误后才能上机实验,以提高上机效率。

4,要准备好调试和运行程序时所需的数据。

5,对运行中可能出现的问题事先作出估计,并对程序中有疑问的地方作上标记,以便在运行时给予注意。

并在程序调试时,把系统给出的出错原因,解决方法等记载在源程序之后;程序运行结束后,把运行结果也记录下来。

6,每个实验应独立完成,对实际问题所编写的源程序需写出完整实验的报告。

第一次上机作业熟悉C语言集成开发环境实验目的:1,熟悉C语言集成开发环境2,掌握集成开发环境下文件的编写与调用,源程序的编译与调试,程序运行结果的观察与分析。

3,掌握C语言程序的基本结构实验要求:1, 程序编写完后,要对输入的每一个符号和词进行检查核对,不能有错。

2,编写源程序时,不要在中文输入法下进行,也不要有首字符大写,否则调试时,会有错误。

实验内容:1,在D盘新建文件夹:D:\C语言程序\×××(所在班级如0709401)\×××(自己学号或姓名如01),作为以后所做程序的存放位置。

《C语言程序设计教程》第三版

《C语言程序设计教程》第三版

1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

C语言程序设计 上机实验指导与习题 参考答案

C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。

《C语言实验指导书》第3版

《C语言实验指导书》第3版

目录实验1 运行简单的C程序 (2)实验2 练习使用算术运算符 (5)实验3 使用输入、输出函数 (7)实验4 模拟ATM取款机界面 (8)实验5 循环语句的使用——猜数字游戏 (9)实验6 一维数组的应用 (11)实验7 函数参数的传递 (12)实验8 嵌套与递归调用的实现 (13)实验9 结构体和共用体 (15)实验10 文件 (17)课程设计:单链表的操作 (19)实验1 运行简单的C程序一.实训目的:1、熟悉TC运行环境2、练习简单C程序的编写3、熟练掌握C程序的上机运行步骤二.实训内容:1.实验要求:编程求37+29的值,熟悉TC运行环境2.分析与设计:编写一个main()函数,将数据37和29分别用变量保存,然后用另一个变量存放两个变量的和,最后将和变量的值输出。

3.源代码:main(){int a,b,sum;a=37;b=29;sum=a+b;printf(“sum=%d”,sum);}在TC环境中输入上面的代码后,先编译、连接,再保存,然后再运行。

具体操作步骤如下所示:(1)编译(2)连接(3)保存F2(4)运行CTRL+F9(5)运行结果ALT+F5按任意键返回注意:1、第(1)步和第(2)步可以合起来操作,使用快捷键F92、程序比较大时,最好边输入代码,边保存,以防止意外情况的发生。

选做题:1.输出字符串main(){printf(“C program\n”);printf(“Hello World!\n”);}2.已知圆的半径,求圆的面积#define PI 3.14main(){ int r=5;float s;s=PI*r*r;printf(“area=%f\n”,s);}3.求任意两个数中的最大值main(){int a,b,max;printf(“Input two numbers:”);scanf(“%d,%d”,&a,&b);max=a;if(max<b)max=b;printf(“max=%d”,max);}实验2 练习使用算术运算符一.实训目的:1.练习使用基本类型的变量进行编程2.练习使用C的运算符二.实训内容:1.实验要求:熟练使用运算符(%,++,--)2.分析与设计:求余运算符要求两个操作数都必须是整数;++和-- 要看清是先使用还是先自增(减)3.源代码:程序1:取出一个三位整数的各个位,并输出main(){int x=123; char c1,c2,c3;c1=x%10;c2=x/10%10;c3=x/100;printf(“%d,%d,%d\n”,c3,c2,c1);}运行结果为:1,2,3程序2:练习自增和自减运算符的使用main(){int x=2,y,z;y=(++x)+(x++)+(++x);z=(x--)+(--x)+(x--);printf(“x=%d,y=%d,z=%d\n”,x,y,z);}运行结果:x=2,y=12,z=12选做题:一.分析下面程序运行结果产生的原因。

华南农业大学数据结构上机实验指导书及标准答案

华南农业大学数据结构上机实验指导书及标准答案

目录实验一线性表ﻩ错误!未定义书签。

(一)实验目的............................................................................................................... 错误!未定义书签。

(二) 实验内容ﻩ错误!未定义书签。

(三)实验报告ﻩ错误!未定义书签。

实验二堆栈ﻩ错误!未定义书签。

(一)实验目的 .............................................................................................................. 错误!未定义书签。

(二)实验内容 .............................................................................................................. 错误!未定义书签。

(三) 实验报告................................................................................................................. 错误!未定义书签。

实验三队列..................................................................................................................... 错误!未定义书签。

(一) 实验目的ﻩ错误!未定义书签。

(二) 实验内容................................................................................................................. 错误!未定义书签。

《C语言程序设计》上机实验指导手册簿

《C语言程序设计》上机实验指导手册簿

C语言程序设计上机实验指导手册电子与信息工程学院计算机科学系第一部分上机实验的指导思想和要求一、上机实验的目的学习《C语言程序设计》课程不能满足于“懂得了”,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。

“程序设计”是一门实践性很强的课程,必须十分重视实践环节。

许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。

要提倡通过实践去掌握知识的方法。

必须保证有足够的上机实验时间,学习本课程应该至少有30 小时的上机时间,最好能做到与授课时间之比为1:1 。

除了学校规定的上机实验以外,应当提倡学生自己课余抽时间多上机实践。

上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。

学习程序设计,上机实验的目的是:(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。

通过多次上机,就能自然地、熟练地掌握。

通过上机来掌握语法规则是行之有效的方法。

(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。

一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。

使用者应该了解为了运行一个C程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。

每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快就能学会。

(3)学会上机调试程序。

也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。

而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。

c++程序设计基础答案(第3版) 周霭如 林伟健编著

c++程序设计基础答案(第3版) 周霭如 林伟健编著

习题1及其解答1.1选择题1.一个最简单的C++程序,可以只有一个( c )。

(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。

(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。

(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明 int a=0; double x=5.16; 以下语句中,( c )属于编译错误。

(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。

(a) 编译(b) 连接(c) 运行(d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。

(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。

(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。

(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。

(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。

(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。

(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+212.下列正确的字符常量为( d )。

(a) “a”(b) ‘name’(c) a (d) ‘\101’13.下列选项中,( d )不能..交换变量a和b的值。

C语言程序设计教程李凤霞第三版课后答案

C语言程序设计教程李凤霞第三版课后答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。

2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。

递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。

*/ {printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。

C语言程序设计上机实验指导与习题第三版陈湘骥编著著华南农业大学参考答案

C语言程序设计上机实验指导与习题第三版陈湘骥编著著华南农业大学参考答案

C语⾔程序设计上机实验指导与习题第三版陈湘骥编著著华南农业⼤学参考答案C 语⾔程序设计上机实验指导与习题参考答案华南农业⼤学⽬录上机实验 (1)实验 1 C 语⾔程序初步 (1)⼀、实验⽬的 (1)⼆、实验内容 (1)实验 2 基本数据类型、运算和表达式 (3)⼀、实验⽬的 (3)⼆、实验内容 (3)实验 3 基本输⼊与输出 (5)⼀、实验⽬的 (5)⼆、实验内容 (5)实验 4 选择结构程序设计 (4)⼀、实验⽬的 (4)⼆、实验内容 (4)实验 5 循环结构程序设计(⼀) (9)⼀、实验⽬的 (9)⼆、实验内容 (9)实验 6 循环结构程序设计(⼆) (15)⼀、实验⽬的 (15)⼆、实验内容 (15)实验7 数组 (17)⼀、实验⽬的 (17)⼆、实验内容 (17)实验8 字符数组的应⽤ (22)⼀、实验⽬的 (22)⼆、实验内容 (22)实验9 函数的基本应⽤ (24)实验10 指针与结构体 (26)⼀、实验⽬的 (26)⼆、实验内容 (26)*实验11 链表 (29)⼀、实验⽬的 (29)⼆、实验内容 (29)*实验12 ⽂件 (32)⼀、实验⽬的 (32)⼆、实验内容 (32)上机实验实验 1 C语⾔程序初步⼀、实验⽬的(1)了解所⽤的计算机系统的基本操作⽅法,学会独⽴使⽤该系统。

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

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

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

⼆、实验内容1. 运⾏第⼀个C 程序[题⽬: C ]将下列程序输⼊(或),编译、连接和运⾏该程序。

(){(" C \n");}[具体操作步骤]以 C 上的操作为例(1)进⼊后,按照第⼀章中介绍的⽅法,进⼊C。

(2)在编辑窗⼝中输⼊程序。

(3)保存程序,取名为a1。

(4)按照第⼀章中介绍的⽅法,编译、连接和运⾏程序。

2. 在系统中提交实现了计算功能的程序[题⽬1001:计算]由键盘输⼊两个整数,计算并输出两个整数的和。

C实验指导书-(课后题答案!!!)

C实验指导书-(课后题答案!!!)

二、 相关知识点
C 语言基本数据类型包括:数值类型(整形,实型) ,字符类型等,是我们进行基本 数据运算的基础。用定点或浮点方式表示。 常量就是不能改变的量,它们的值在程序中不可能发生改变,我们可以用一个标识 符来代表一个常量,这叫做符号常量。 变量是在程序运行过程中其值可以发生改变的量。每一个变量都有名字。要注意区 分变量名和变量值 常量和变量都有各种类型。如整型,实型,字符型等。 整型常量就是整数。C 语言中整数有三种表示方法:十进制整数、八进制整数或十 六进制整数。 整型变量在 C 语言中能量会分成 4 种:基本型 int、短整型 short、长整型 long 和 无符号型 unsigned。 实型常量就是我们通常所说的小数,有两种表示方式:小数形式、指数形式。 实型变量在 C 语言中有两种:float 和 double。 字符型数据包括:字符型常量(是用单引号括起来的一个字符)、 字符型变量(用来存放 字符常量)、字符串常量(多个字符串联在一起,用一对双引号括起来)组成。将一个字 符常量存放到一个字符变量中,实际上只是把该字符的 ASCII 码存放到此字符变量中, 字符串常量在内存中的存放方式有一个特殊的地方,系统会自动给每个字符串常量的结 尾加上一个‟\0‟字符,作为字符串结束标志。 变量在使用前必须定义。定义变量的格式如下: 变量类型 变量名 1,变量名 2,...; 任何一个变量,必须先赋值,后使用。 C 语言提供了非常丰富的运算符,包括:算术运算符( +、-、*、/、%) ,关系运算 符(>、<、==、>=、<=、 !=,逻辑运算符 ! 、&&(and)、||(or)) 、位运算符(<<、>>、 —、|、^) 、赋值运算符 (= 及其扩展赋值运算如+=、*=、-=、/=等) 、条件运算符(?: 通常用条件语句) 、逗号运算符( , ) 、指针运算符 (&和*) 、求字节数运算符(sizeof () 、强制类型转换运算符(int,float(5%3)) 、分量运算符 ( .—>) 、下标运算符 ( [ ]) 和其它( 如函数调用运算符() ) 。其组合运算符合其运算优先级的限制。

《C语言程序设计》实验教学大纲.

《C语言程序设计》实验教学大纲.
《C语言程序设计》实验教学大纲
一、适用范围
大纲适用于计算机科学与技术专业本科教学使用。
二、课程名称
C语言程序设计
三、学时数与学分
总学时:90总学分:4
实验学时:36实验学分:1
四、教学目的和基本要求
目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解C语言的特点,熟练掌握C语言程序设计的基本方法和编程技巧。
九、实验项目
实验一C程序的运行环境和运行一个C程序的方法
一、实验目的
1.了解TURBO C编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?
2.编写一个C程序,输出以下信息:
****************************
very good!
****************************
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二数据类型、运算符和表达式
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
main()
{ int num;
num=32767;
printf(“num=%d\n”,++num);
}
main()

C语言程序设计_谭浩强_第三版_课后习题答案[1]

C语言程序设计_谭浩强_第三版_课后习题答案[1]

1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

C语言程序设计 上机实验指导与习题 参考答案

C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。

C语言程序设计习题答案与上机指导(上机指导)

C语言程序设计习题答案与上机指导(上机指导)

实验一
4操作过程
C程序集成开发环境
(1)Visual C++6.0集成开发环境 ①启动Visual C++6.0 Visual C++6.0的启动,可以使用菜单 操作,选择开始菜单->所有程序>Microsoft Visual Studio 6.0-> Microsoft Visual C++ 6.0。启动后的界面见图1-1所 示
1234,5678,则输出程序运行结果,
如图1-6。 ⑥退出
实验一
C程序集成开发环境
(2)调试与跟踪 ①打开文件 打开已经保存的源程序文件,可 以选择File->Open命令。如果在上一 小节第(3)步中已经创建了工作区, 则在文件类型中选择Workspaces类型, 文件名选择Hello,如图1-7所示。
实验一
C程序集成开发环境
②编辑操作 编辑操作选择“File->new”菜单,如 图1-2所示。在出现的“New”对话框中 选择“Files”选项卡,再在列表中选择 “C++ source File”,注意在右边“File”中 填写文件名,比如Test.c,在“Location”中 填写源程序文件存放的位置,比如将 Test.c存放在E盘。参见图1-3。
Error/Tag,转到错误语句上进行修
改,如图1-9。
实验一
C程序集成开发环境
对于函数定义错误,例如在定 义函数名时,将函数定义为int Summ(int x,int y),在执行Build>Compile命令,只会给出警告提示, 但是在执行Build-> Build Hello.exe 命令命令后,则会给出错误提示 Hello.obj : error LNK2001: unresolved external symbol _Sum,

华农C语言程序设计实验指导书参考答

华农C语言程序设计实验指导书参考答

华农C语言程序设计实验指导书参考答以下是为大家整理的华农c语言程序设计实验指导书参考答的相关范文,本文关键词为华农,语言,程序设计,实验,指导书,参考,题目,1118,赋,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:voidmain(){floata;intb,c;chard,e;a=3.5;b=a;c=330;d=c;4e='\\\\';printf(\}运行结果为:3.500000,3,330,J,\\[提示]赋值语句具有类型转换的功能,但可能会改变数据。

3.基本运算[题目1119:基本运算,写出程序运行结果]阅读下面程序,写出运行结果:voidmain(){inta,b,c;floatd=15,e,f;a=35%7;b=15/10;c=b++;e=15/10;f=d/1 0;printf(\}运行结果为:0,2,1,15.000000,1.000000,1.500000[提示]除法分整除与普通除法之分。

5[题目1126:字符的输入与输出]编程实现由键盘输入一个字符后,在屏幕上输出该字符。

参考程序:#include\main(){charch;ch=getchar();putchar(ch);}[题目1127:计算加法]编程实现由键盘输入一个加法式,输出正确的结果。

(两个加数均为整数)[第一组自测数据]参考程序:#include\main(){inta,b;scanf(\printf(\}[题目1014:求圆面积]参考程序:#include\main(){floatarea,r;scanf(\area=3.14159*r*r;printf(\}3[题目1015:计算摄氏温度值]参考程序:#includevoidmain(){floatf,c;scanf(\c=5.0/9*(f-32);printf(\}4参考程序:#include\#include\voidmain(){floata,b;scanf(\if(fabs(a*a+b*b-1)elseprintf(\}[题目1017:求数的位数]参考程序:main(){intn,place;scanf(\if(n>99999999)place=9;elseif(n>9999999)place=8;elseif(n>999999)place =7;elseif(n>99999)place=6;elseif(n>9999)place=5;elseif(n>999)place=4;e lseif(n>99)place=3;elseif(n>9)place=2;elseplace=1;printf(\}[题目1018:数的排序]3,6,9参考程序:#includemain(){inta,b,c,t;scanf(\if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;} printf(\}参考程序:#includemain(){chara,b,c,d,e;scanf(\if(a printf(\}#include\main(){inta,b,c,d,e;scanf(\if(a'==0)printf(\if(b'==0)printf(\if(c'==0)printf(\if(d'==0)printf(\if(e' ==0)printf(\}参考程序:#include\main(){intn;scanf(\if(n[题目1023:简单计算器]参考程序:#includeintmain(){floata,b,c;charop;scanf(\switch(op){case'+':c=a+b;break;case'-':c=a-b;break;case'*':c=a*b;break;case'/':c=a/ b;break;default:printf(\break;}printf(\}9[题目1024:计算阶乘]输入正整数n,计算n!,结果用长整型数表示(注n!=1*2*3*...*n)参考程序:#includemain(){longi,n=1,a;scanf(\for(i=1;i[题目1025:计算数列和]参考程序:#includemain(){longn,sum=0,i,t=1;scanf(\for(i=1;i printf(\}或#includemain(){longn,sum;scanf(\sum=n*n;printf(\}注:评判系统不对程序实现细节进行分析,只对运行结果进行评测。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计上机实验指导与习题参考答案(仅供教师内部参考)华南农业大学目录上机实验 (1)实验 1 C语言程序初步 (1)一、实验目的 (1)二、实验内容 (1)实验2基本数据类型、运算和表达式 (3)一、实验目的 (3)二、实验内容 (3)实验3基本输入与输出 (5)一、实验目的 (5)二、实验内容 (5)实验4选择结构程序设计 (4)一、实验目的 (4)二、实验内容 (4)实验5循环结构程序设计(一) (9)一、实验目的 (9)二、实验内容 (9)实验6循环结构程序设计(二) (15)一、实验目的 (15)二、实验内容 (15)实验7数组 (17)一、实验目的 (17)二、实验内容 (17)实验8字符数组的应用 (22)一、实验目的 (22)二、实验内容 (22)实验9函数的基本应用 (24)一、实验目的 (24)二、实验内容 (24)实验10指针与结构体 (26)一、实验目的 (26)二、实验内容 (26)*实验11链表 (29)一、实验目的 (29)二、实验内容 (29)*实验12文件 (32)一、实验目的 (32)二、实验内容 (32)上机实验实验 1 C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

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

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

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

二、实验内容1. 运行第一个 C 程序[题目:The first C Program]将下列程序输入 TC(或 VC++),编译、连接和运行该程序。

void main(){printf("The first C Program\n");}[具体操作步骤]以 Turbo C 上的操作为例(1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。

(2)在编辑窗口中输入程序。

(3)保存程序,取名为 a1.c。

(4)按照第一章中介绍的方法,编译、连接和运行程序。

2.在JudgeOnline系统中提交实现了计算a+b功能的程序[题目 1001:计算 a+b]由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,void main(){ int a, b;scanf("%d%d", &a, &b);1printf("%d", a + b);}(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为 a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入15 30↙(↙表示输入回车符)(5)如果看到如下输出结果,则表明15+30的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入JudgeOnline实验系统。

(7)显示题目列表,点击题号为1001,题名为“计算 a+b”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

2实验2基本数据类型、运算和表达式一、实验目的(1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。

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

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

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

二、实验内容1.变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。

void{main()int int a, b;i, j;/*定义整型变量a和b*//*定义实型变量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 实验系统上提交;2. 赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:void main(){ float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;3e='\\';printf("%f,%d,%d,%c,%c", a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。

3. 基本运算[题目1119:基本运算,写出程序运行结果]阅读下面程序,写出运行结果:void 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参考程序:#include "stdio.h" main() [第二组自测数据] [键盘输入]-15+60↙[正确输出]45{ int a, b;scanf("%d%*c%d", &a,&b);printf("%d", a+b);}[题目1014:求圆面积]由键盘输入圆半径r,请计算该圆的面积。

(注:π取 3.14159,结果保留两位小数位;另外,程序只要能对r在0到10000范围的情况输出正确答案即可)[第一组自测数据] [键盘输入]565.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);}2[题目1015:计算摄氏温度值]从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。

数学公式描述为:C = 59(F 32)[第一组自测数据][键盘输入]100↙[正确输出]37.78[提示]注意公式中的除为普通除法。

参考程序:#include<stdio.h>void main() [第二组自测数据] [键盘输入]100↙[正确输出]37.78{ 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"void 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↙[正确输出]6[第二组自测数据] [键盘输入]10000↙[正确输出]5[提示]划定一位数、二位数、…、九位数的范围,然后用if…else if…else语句实现判断。

4参考程序:main(){ int n,place;scanf("%ld",&n);if(n>99999999) place=9;else if(n>9999999) else if(n>999999) else if(n>99999)place=8; place=7; place=6;else if(n>9999) else if(n>999) else if(n>99)place=5; place=4; place=3;else if(n>9) place=2;else place=1;printf("%ld\n",place);}[题目1018:数的排序]由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。

相关文档
最新文档