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

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言程序设计练习指导书实验答案

(2)以下程序输入圆的半径,求圆面积。请将程序中的5处语法错误和逻辑错误改正。
#include "stdio.h"
void main()
{ int r;
float s;
printf("Enter r:");
scanf("%d", &r);
s=3.14159*r*r;
}
}
(2)已知鸡兔共有30只,脚共有90个,下面程序的功能计算并输出鸡兔各有多少只,请改正程序中的错误。
#include "stdio.h"
void main()
{ int x,y;
for(x=1;x<=30;x++)
{ y=30-x ;
if(2*x+4*y==90)printf("%d,%d\n",x,y) ;
0 x<0
y= x 0<=x<10
10 10<=x<20
-0.5x+20 20<=x<40
#include "stdio.h"
void main()
{ int a=1,b=2,c=3;
float d=4,e;
e=a/((b+c)*d);
printf("%f\n",e);
}
3.2 顺序结构程序设计
1、改错题
(1)以下程序计算并输出长方形面积和体积,请改正程序中的错误。
printf("s=%f\n",s);
}
2、填空题
c语言程序设计实验.设计.习题.答案.顺序结构与逻辑运算

}
实验四部分
4-1-a该程序的功能是:输入两个数:a、b,判断a*a+b*b的值,若a*a+b*b的值等于3或1,则y=a+b;若a*a+b*b的值等于0,则y=b-a;若a*a+b*b的值等于其他值,则输出“eerror”;最后输出y的值。
运行结果画面:
#include<stdio.h>
main()
{
int a,M;
scanf("%d",&a);
M=a>0?a:-a;
printf("abs(a)=%d\n",M);
}
4-4运行结果画面:
#include<stdio.h>
main()
{
int c,t,m;
printf("input the number of coat and trousers your want buy:\n");
scanf("%d",&x);
h=x/60;
m=x%60;
printf("%d小时%d分钟",h,m);
}
3-7我使用的算法:进行千分位转换,四舍五入。
运行结果画面:
#include<stdio.h>
main()
{
double x;
scanf("%lf",&x);
printf("%7.2f\n",x);
怎样终止调试状态(程序复位)?在菜单栏中选择“调试”,然后选择“StopDebugging”。
单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):第一种选择“Step Into”,跟踪到自定义函数内部;第2种选择“Step over”,不跟踪到自定义函数内部
c语言程序设计实验与习题指导颜晖答案

c语言程序设计实验与习题指导颜晖答案【篇一:c语言程序设计谭浩强版何钦铭颜晖版习题答案全集】【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf(\n);for(i=1;i5;i++) /*以下为三重循环*/for(j=1;j5;j++)for (k=1;k5;k++){if (i!=ki!=jj!=k) /*确保i、j、k三位互不相同*/printf(%d,%d,%d\n,i,j,k);}}【程序2】题目:企业发放的奖金根据利润提成。
利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(%ld,i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i=100000)bonus=i*0.1;else if(i=200000)bonus=bonus1+(i-100000)*0.075;else if(i=400000)bonus=bonus2+(i-200000)*0.05;else if(i=600000)bonus=bonus4+(i-400000)*0.03;else if(i=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf(bonus=%d,bonus);}-----------------------------------------------------------------------------【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
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语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
问第4个学生岁数,他说比第3个学生大2岁。
问第3个学生,又说比第2个学生大2岁。
问第2个学生,说比第1个学生大2岁。
最后问第1个学生,他说是10岁。
请问第5个学生多大。
(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。
实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。
(二)有a个学生,每个学生有b门课程的成绩。
要求在用户输入学生序号以后,能输出该学生的全部成绩。
用指针函数来实现。
3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。
实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言程序设计实验指导书课后答案

实验一(1)编程求37+29得值,实习VC环境。
#include<stdio、h>void main(){ﻩ int a,b,sum;a=37;ﻩ b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio、h>void main(){int a,b,c,y;ﻩint max(int x,inty);ﻩ printf("input a,b,and c:");ﻩ scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);ﻩ y=max(y,c);ﻩ printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio、h>void main(){char ch='a';ﻩprintf("%c对应得ASCII码就是:%d\n",ch,ch); ﻩ }程序输出结果:a对应得ASC||码就是:97B 程序代码#include<stdio、h>voidmain(){int a=168;ﻩ float b=123、456;float x=35、567,y;printf("a=%5d\n",a);ﻩprintf("a=%-5d\n",a);printf("b=%6、2f\n",b);ﻩprintf("b=%e\n",b);ﻩ y=(int)(x*100+0、5)/100、0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123、46b=1、234560e+002x=f,y=35、567001C程序代码#include<stdio、h>voidmain(){int a=168;printf("十进制数%d对应得八进制数就是%o\n",a,a);printf("十进制数%d对应得十六进制数就是%x\n",a,a);}程序输出结果:十进制数168对应得八进制数就是250十进制数168对应得十六进制数就是a8实验二2、1顺序结构2、1、1已知a=1、5,b=5、3,c=2、9,计算s=-4ac得结果并输出。
C语言程序设计练习题(答案)

四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。
1.(1)Void应为void;(2)INT应为int;(3)“/* COMPUTE RESULT”后缺少“*/”;(4)“printf ("The answer is %i\n" sum);”应为“printf ("The answer is %d\n" ,sum);”
①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。如图1-2所示
图1-2选择新建
②在弹出的新建对话框中设置好相应的内容,如图2-2所示。要事先准备好保存文件的目录,例d:\lx目录。在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C语言程序的扩展名“.c”。设置好后,单击“OK”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c文件存放在D盘的LX目录下。
int main (void)
{
printf ("This is my first C program.\nAnd programming in C is even more fun.\n");
return 0;
}
实验4(1)计算33+56的和。
解题思路:将例1.2中变量值改为33与56代码如下:
#include <stdio.h>
int main( )
{int a,b,c;
a=2;b=3;
C=a+b;错误:C未定义
printf(“%d+%d=%d\n”,a,b,c);
return 0;
}
运行结果:2+3=5
C语言程序设计习题解析与实验指导(含答案)

样采用指数形式,但尾数部分被省略了,也不合法;答案 C 采用小数形式,其小数部分可以省略;
答案 D 表示的是整型常量。因此本题选择答案 C。
3. 下列不合法的常量是
。
A.'\x4A'
B." "
C. .8e0
D.'\483'
【参考答案】D
【解析】此题考查的是各种数据类型常量的表示方法:答案 A 是一个转义字符常量,“\x”后
的程序叫做目标程序。由于计算机只能识别二进制码,因此用机器语言编写的源程序就是计
算机能直接识别并运行的目标程序,二者之间无需经过任何翻译;而用汇编语言编写的源程
序需要经过汇编程序汇编才能得到对应的目标程序;用高级语言编写的源程序经过相应的编
译器编译或者用解释的方式得到目标程序,不同语言对应的编译程序或者说编译器不一样。
一、单选题
1.以下哪一个可以作为正确的变量名
。
A. R&D
B._filename C.for D.$X;
【参考答案】B
【解析】此题考查的是标识符的命名规则:标识符是以字母或下划线开头,后面跟字母、
数字、下划线的任意字符序列。答案 A 中的变量名使用了“&”号,不符合要求;答案 C
是关键字,而用户自定义标识符不能使用关键字;答案 D 的变量名以“$”开头,不符合以
2
主教材习题答案及解析 1-3 章
输入设备:键盘、光电笔、扫描仪、鼠标、摄像头、数码相机、手写输入板、游戏杆、 麦克风;
输出设备:打印机、音响、显示器、绘图仪; 既是输入设备又是输出设备:U 盘、SD 卡、光盘、触摸屏、硬盘。 【解析】根据输入设备、输出设备、外存储器的功能以及这些硬件本身的功能区分。 4.简述源程序与目标程序的关系。 【参考答案】 程序员用某种编程语言所编写的程序称为源程序;计算机能直接执行的程序称为目标程 序。目标程序的操作码和操作数都是 0/1 序列,而源程序却不一定是 0/1 序列。源程序必须 转换为目标程序计算机才能读懂并执行。 用机器语言编写的源程序就是目标程序;用汇编语言编写的源程序必须用汇编程序经过 汇编得到目标程序;用高级语言(不是全部)编写的源程序必须用特定的编译程序经过编译 得到目标程序。但并非所有的高级语言编写的源程序都会被编译为目标程序,有的高级语言 例如 BASIC 语言的源程序就是通过解释方式执行程序的,就是边扫描边解释,逐句输入逐 句翻译,计算机一句句执行,并不产生目标程序。 【解析】根据教材 1.2.2 小节的知识。 5.简述 C 程序的开发过程。 【参考答案】 一个 C 程序从编写到执行出结果一般需要 6 个步骤:编辑、预处理、编译、链接、装 载和执行。下面是这几个步骤所完成的任务。 (1)编辑 编辑是通过输入设备将 C 语言源程序录入到计算机中,生成扩展名为“.c”的源文件。 (2)预处理 预处理是指通过预处理器对程序中的预处理指令(它们是为优化代码而设计的)进行转 译。每条预处理指令以符号“#”开头。 (3)编译
《C语言程序设计》实验设计习题答案

实验三3.4编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数输出void main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);putchar('\n');printf("%c %c\n",c1,c2);}3.5把790分钟换成用小时和分钟表示,然后输出。
void main(){int s=790;printf("%d小时",s/60);printf("%d分钟",s%60);}3.6将读入三个数a,b,c,然后交换它们的值,把a的值给b,把b的值给c,把c的值给a.main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("%d,%d,%d",a,b,c);3.7输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,验证处理是否真确。
#include<stdio.h>void main(){float x,s,a;int z;scanf("%f",&x);a=100*x+0.5;z=(int)(a);s=z/100.0;printf("%.2f\n",s); }main(){int a,b,t;double c;scanf("%lf",&c);b=100*c;t=1000*c;a=t%10;if (a>=5) b=b+1;else b=b+0;c=1.0*b/100;printf("%7.2lf/n",c); return 0;}void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ; if(x==0) y = x-1;if(x<10&&x>0) y = x+1; printf("%d",y);}实验四4.2不嵌套if语句void main(){int x,y;scanf("%d",&x);if(x<0&&x>-5) y = x ;if(x==0) y = x-1;if(x<10&&x>0) y = x+1;printf("%d",y);}法二:嵌套if语句void main(){int x,y;scanf("%d",&x);if((x>-5)&&(x<0)) y=x;else if(x==0) y=x-1;else if(x<10&&x>0) y=x+1;printf("%d",y);}4.3如下程序运用条件运算符求变量的绝对值?void main(){int a,M;scanf("%d",&a);M=a>0?a:-a;printf("abs(a)=%d",M);4.4某服装店经营套服,也可单件出售,若买的不少于50套,每套80元,不足50套的每套90元,只买上衣每件60元,只买裤子每条45元,(读入所买上衣C和裤子t的件数,计算应付款m。
《c语言程序设计》实验指导书答案

《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
C语言程序设计实验报告参考答案

C语言程序设计实验报告参考答案长沙理工大学C语言实验报告参考答案实验一熟悉C语言程序开发环境及数据描述四、程序清单1.编写程序实现在屏幕上显示以下结果:ThedressislongTheshoesarebigThetrousersareblack答案:#includemain(){printf("Thedressislong\n");printf("Theshoesarebig\n");printf("Thetrousersareblack\n");}2.改错题(将正确程序写在指定位置)正确的程序为:#includemain(){printf("商品名称价格\n");printf("TCL电视机¥7600\n");printf("美的空调¥2000\n");printf("SunRose键盘¥50.5\n");}2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。
答案:#includemain(){inta,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;printf("a/b的商=%d\n",x);printf("a/c的商=%d\n",y);x=a%b;y=a%c;printf("a/b的余数=%d\n",x);printf("a/c的余数=%d\n",y);}4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b 赋给c;当a<=b时,将a赋给c。
(提示:用条件运算符) 答案:#includemain(){inta,b,c;a=0;b=-10;c=(a>b)?b:a;printf("c=%d\n",c);}五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:ThedressislongTheshoesarebigThetrousersareblack3、编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=154.编译、连接无错,运行后屏幕上显示以下结果:c=-10实验二顺序结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1D。
C语言程序设计实训教程答案

仅供参考,理论上都能运行出结果。
2.5 循环结构程序设计实验一循环结构程序设计1、求1!+2!+……+10!。
#include<stdio.h>void main(){long i,n=1,s=0;for(i=1;i<=10;i++){n*=i;s+=n;}printf("1!+2!+……+10!=%d\n",s);}2、打印一下图案(用循环实现)*************************#include<stdio.h>void main(){int i,j,k;for(i=1;i<5;i++){for(j=1;j<5-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}for(i=3;i>0;i--){for(j=1;j<5-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}}3、猴子吃桃。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘多少桃子。
#include<stdio.h>void main(){int i,n=1;for(i=9;i>0;i--)n=(n+1)*2;printf("%d\n",n);}4、打印九九乘法表。
#include<stdio.h>void main(){int i,j;for(i=1;i<10;i++){for(j=1;j<=i;j++)printf("%d*%d=%d, ",i,j,i*j);printf("\n");}}5、输出10~100之间的全部素数。
c语言程序设计实验题答案

c语言程序设计实验题答案【篇一:c语言程序设计及实验指导练习及习题参考答案(8--10)】8练习参考答案1、练习8-1. 如果有定义:int m, n = 5, *p = m; 与m = n 等价的语句是 b 。
a.m = *p; b. *p = *n; c. m = n; d. m = **p;8-2. 设计一个程序计算输入的两个数的和与差,要求自定义一个函数sum_diff(float op1, float op2, float *psum, float *pdiff),其中op1 和op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差。
解答:#include stdio.hint main (void){float op1, op2, sum, diff;void sum_diff(float op1, float op2, float *psum, float *pdiff);printf(“input op1 and op2: “);scanf(“%f%f”, op1, op2);sum_diff(op1, op2, sum, diff);printf(“%f+%f=%f; %f-%f=%f \n”,op1,op2,sum,op1,op2,diff);return 0;}void sum_diff(float op1, float op2, float *psum, float *pdiff){*psum = op1 + op2;*pdiff = op1 – op2;}8-3. 两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在c 语言中指针变量相加是非法的。
8-4. 根据表8.2 所示,这组数据的冒泡排序其实循环到第6 遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1 次循环。
c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案【篇一:c程序设计教程与实验__吉顺如__实验一到七】> 一、实验目的1.掌握在visual c++6.0环境下c程序的建立、编辑、编译和执行过程。
2.掌握c程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#include stdio.h main() {int a,b,sum; /*定义整型变量a、b、sum */ printf(please input a,b \n); /*输出提示信息*/(1计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c保存。
#include stdio.hmainmain(){ int x=2;y=3;a int x=2,y=3,a; a=x*ya=x*y;print (a=%d,a);printf (a=%d,a); printf(\n);}(2)下程序的功能为:求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c保存。
#include stdio.h1viod main()voidmain() {int a ,b , max;scanf(“%d,%d”,a,b);scanf(“%d,%d”,a,b); max=a; max=a;if (maxb) max=b; if (maxb) max=b; printf(“max=%d”,ma x);printf(“max=%d”,max); }3.程序填空题(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名sy1_4.c保存。
#includestdio.h main() {/* 定义整型变量x,y,total*/ printf(please input x,y !);/*输出提示信息 *//*由键盘输入两个数分别赋予x和y*/ total=x+y;/*赋值语句 */printf(%d + %d=%d\n,x,y,total);/* 输出两个整数的和 */ }(2)从键盘输入两个整数,输出这两个整数的差。
C语言程序设计实验指导书课后答案

实验一(1)编程求37+29的值,实习VC环境。
#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio.h>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio.h>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=-4ac的结果并输出。
c语言程序设计实验教程课后答案

c语言程序设计实验教程课后答案C语言程序设计实验教程课后答案C语言是一种广泛使用的计算机编程语言,以其高效、灵活和功能强大而著称。
学习C语言不仅能够帮助学生理解计算机程序设计的基础,而且能够为学习更高级的编程语言打下坚实的基础。
以下是一些常见的C语言程序设计实验教程课后问题及其答案。
问题1:编写一个C程序,计算并输出两个整数的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```问题2:编写一个C程序,判断一个整数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num);}return 0;}```问题3:编写一个C程序,实现简单的学生成绩管理系统。
答案:```c#include <stdio.h>struct Student {char name[50];int score;};int main() {struct Student students[3] = {{"Alice", 85},{"Bob", 90},{"Charlie", 78}};int i;printf("学生成绩列表:\n");for (i = 0; i < 3; i++) {printf("%s: %d\n", students[i].name, students[i].score);}return 0;}```问题4:编写一个C程序,实现字符串的反转。
C语言程序设计实验与习题指导同步自测答案

C语言程序设计实验与习题指导同步自测答案2.1.3 同步自测一、选择题1.D2.C3.D4.C5.A6.B7.D8.C二、填空题1.①c ②exe2.①main3.①函数说明部分②函数体4.①主或main ②主或main5.①;2.2.3 同步自测一、选择题1.B2.D3.C4.C5.C6.B7.D8.A9.C 10.B 11.D 12.D 13.D 14.C 15.C 16.D 17.C 18.C 19.B 20.A 21.D 22.A 23.D 24.C 25.D 26.B 27.B 28.D 29.D 30.C 31.A 32.B 33.D 34.B 35.C2.3.3 同步自测一、选择题1.B2.C3.D4.A5.B6.A7.A8.A9.D 10.B2.4.3 同步自测一、选择题1.B2.A3.B4.C5.B6.D7.C8.A9.D 10.B 二.编程题1.#include<stdio.h>void main(){int x,y;printf("请输入自变量x的值: ");scanf("%d",&x);if(x<0) y=3*x+1;else if(x<5) y=2*x;else y=x+2;printf("\n函数y的值为: %d",y);}2.#include<stdio.h>void main(){int a,b,c,d,t;printf("请输入四个整数:\n");scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("按新顺序输出的数为: %d %d %d %d",a,b,c,d);}2.5.3 同步自测一、选择题1.C2.C3.D4.D5.D6.C7.D8.B9.A 10.B11.B 12.B 13.B 14.B 15.C二、填空题1.①getchar()2.①n++3.①′\n′②num++;4.①n<=m ②total=total+sum5.①(i/100)*(i/100)*(i/100)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10)②g==i6.①107.①i%j==08.①b9.①y=1 ②x%i==0 10.①2*x+4*y==90三.读程序写结果题1. 8,172. 57233. 4四.编程题1.main(){int x,y,a,b;for(x=100;x<1000;x++){y=0;a=x;while(a){ y=y*10+a%10;a=a/10;}if(x+y==1333)printf("a=%d;b=%d;c=%d\n",x/100,(x/10)%10,x%10);}}2.main(){long x,y/* 存放x */,n/* 记录x的位数 */,s/* 存放x*x */;long z /* 存放被取的顺序从右到左的相应部位数字 */,t/*十进制的权*/; for(x=1;x<=100;x++){y=x;n=0;z=0;t=1;while(y){n++; /* 记录x的位数 */y=y/10;}s=x*x;for(;n>0;n--){z+=(s%10)*t; /* 取相应部位数字 */t*=10;s=s/10;}if(x==z) printf("%-10ld",x);}}3.main(){int i;for(i=1;i<=100;i++)if((i+3)%5==0&&(i-3)%6==0){printf("%d",i);break;}}4.main(){int x,a,b,c;for(x=100;x<1000;x++){a=x/100;b=(x/10)%10;c=x%10;if(a*a*a+b*b*b+c*c*c==1099)printf("%-10d",x);}}5.main(){int x,a,b,c,count=0;for(x=100;x<1000;x++){a=x/100;b=(x/10)%10;c=x%10;if(a+b+c==5)count++;}printf("共有%d个其各位数字之和是5的数字",count);}2.6.3 同步自测一、选择题1.B2.C3.D4.B5.A6.D7.D8.D9.D 10.B 11.B 12.A 13.D 14.D 15.B 16.B 17.A 18.A 19.B 20.A21.A 22.D 23.D 24.A 25.A二、填空题1.① fac(n-1)2.①a*a%8!=13.①a%b4.①i++5.①j!=0 或 j ② n%10+’0’6.① x>=’a’&&x<=’z’7.① x=n ②n%10 ③x三、读程序写结果题1. 9,192. f=63. 1 2 35. 306. -5,-12,-77. 10,20,30 8. !EDCBA9. 4321 10. 713. 5,2517. 15,145 18. 6四、编程题1.#include <stdio.h>void delspace(char *s){ int i,j;for(i=0,j=0;s[i]!=’\0’;i++)if(s[i]!=’ ’){s[j]=s[i];j++}s[j]=’\0’;}{ char *str;printf(“input string:”);gets(str);delspace(str);printf(“%s”,str);}3.#include <stdio.h>#include <math.h>void main(){int isprime(int x);int a;printf(“please input the number:\n”);scanf(“%d”,&a);if(isprime(a))printf(“the %d is a prime\n”,a);elseprintf(“the %d is not a prime\n”,a);}int isprime(int x){ int j;for(j=2;j<=sqrt(x);j++)if(x%j==0) return 0;return 1;}2.7.3 同步自测一、选择题1.C2.A3.C4.A5.D6.C7.C8.D9.B 10.B11.D 12.C 13.D 14.D 15.B二、填空题1.① k=p2.①a[i][j]<min3.① i+j==24.① continue5.①j=3 ② a[j-1][k-1]6.① x/10 或int(x/10)7.① !(s[i]>=’0’&&s[i]<=’9’)8.①a[n-i-1]=temp三、读程序写结果题1. max=10,row=2,colum=12. 18,103. countryside4. xbcdBCD四、编程题1. 参考程序及评分标准一:#include<stdio.h>#define N 5viod main(){ int a[N+1],x,i,k;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分 for(i=0;a[i]<x&&i<N;i++); //3分 for(k=N;k>i;k--)a[k]=a[k-1];a[i]=x; //3分 for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分 }参考程序及评分标准二:#include<stdio.h>#define N 5viod main(){ void insert(int v[],int n,int x);int a[N+1],x,i;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分 insert(a,N,x); //2分 for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分 }void insert(int v[],int n,int x){int i,k;for(i=0;v[i]<x&&i<n;i++); //2分 for(k=N;k>i;k--)v[k]=v[k-1];v[i]=x; //2分}3.#include <stdio.h>#include <string.h>void main(){void copystr(char *p1,char *p2,int m);sca nf(“%s”,str1);scanf(“%d”,&m);if(strlen(str1)<m)printf(“input error”);else{ copystr(str1,str2,m);printf(“the result is :%s”,str2);}}void copystr(char *p1,char *p2,int m){ int n=0;while(n<m-1){n++; p1++;}while(*p1!=’\0’){*p2=*p1;p1++;p2++;}*p2=’\0’;}2.9.3 同步自测一、选择题1. 2. 3. 4. 5. 6. 7. 8. 9. 10.11. 12. 13. 14. 15.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.程序填空(1)以下程序的功能是计算1~50之间能被7整除的整数之和。
#include<>void main(){int i,sum= 0;for(i=1;50;i++)if(i%7==0) sum+=i;printf("sum=%d\n",sum);}(2) 下面程序接收来自键盘的输入,直到输入<Ctrl>+Z(值为-1)键为止。
这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。
请填空。
#include <>void main(){char cx;char front=’’;while ((cx=getchar())!=’\n’){if (cx!=’’)putchar(cx);if (cx= =’’)if (front!=’’)putchar(cx);front=cx;}}3.程序改错(1)下列程序的功能是求1+3+5+…99的和。
#include <>void main( ){ int s,i; ★10.6f10.6f10.6f10.6f代表个数*/for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*i*i+j*j*j+k*k*k==1099) /*在所有组合中找出满足指定条件的*/{printf("%4d",100*i+10*j+k);n++;if(n%5==0) printf("\n"); /*表示每行输出5个数*/}}#include<>#include<>main(){int i,j,k;for(i=1;i<=4;i++) /*上三角形有4行,每循环1次输出1行*/{for(k=1;k<8-((2*i-1)/2);k++) /*该循环输出每行的空格.8用于调节偏离位置,可换成别的数(>=8)*/printf(" ");for(j=1;j<=2*i-1;j++) /*该循环输出每行的’*’字符*/printf("*");putchar(’\n’);/*换行*/for(i=3;i>=1;i--) /*下面为倒三角形,有3行*/ {for(k=1;k<8-((2*i-1)/2);k++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");putchar(’\n’);}}main( ){ int n=1,score,t;scanf("%d",&score);while (score>=0&&n<=5){ n++;t=0;while(score!=0){t=t+(score%10)*(score%10);score=score/10;}if(t==108)printf("%d",score);scanf("%d",&score);}}#include ""main(){float x0,x1,x2,fx0,fx1,fx2; /*x1,x2分别表示每次区间的左右端点,x0代表区间的中间点,fx0,fx1,fx2代表相应点的函数值*/do{printf("please input x1&x2:");scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0); /*该循环指定有根的区间*/do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0) /*丢掉右区间*/{x2=x0;fx2=fx0;}else /*丢掉左区间*/{x1=x0;fx1=fx0;}}while(fabs(fx0)>1e-5); /*该循环实现二分法求根*/printf("root x=%f",x0);}2)程序填空(1)#include <>void main(){int m,n,num1,num2,temp;printf("Input two positive integer:\n");scanf("%d,%d",&num1,__&num2_______);if(num1<num2){temp=num1; num1=num2; num2=__temp_______;}m=num1;n=num2;while(n!=0){ temp=__m%n__________;m=n;n=temp;}printf("The grestest common divisor is %d\n",m);printf("The lowest common multiple is %d\n",num1*num2/__m____); }(2)下面程序是计算表达式1+(1+2)+(1+2+3)+…+(1+2+3+…+10)和。
#include<>void main(){int sum,i,j,t;sum=①;for(i=1;i<=10;i++){t=0;for(j=1;j<=②;j++)t=t+j;sum=③;}printf("1+(1+2)+(1+2+3)+...+(1+2+3+ (10)=%d\n",sum);}①0 ②i ③sum+t3.程序改错(1)下面的程序是求1~100之间的素数,并将所有素数按每行10个输出。
#include <>#define <>★10.3f⑴①a[10]=x;②break;③a[k]=x;附:算法简析main(){int x,i,j,k;/*感觉似乎j定义了没什么作用*/int a[11]={8,18,28,38,48,58,68,78,88,98};printf("请输入需要插入的一个整数:");scanf("%d",&x);a[10]=x;/*把x放到数据串最末位置*/for(i=0;i<10;i++)if(x<a[i]) {k=i;break;}/*寻找x的插入点,当发现插入点时退出*/for(i=10;i>k;i--)/*将插入点以及其后的每个数据后移一个单位(给x腾位)*//*实例演示——腾位8 18 28 38 48 58 68 78 88 98 (x)8 18 28 38 38 48 58 68 78 88 98↑插入点*/a[i]=a[i-1];a[k]=x;/*将x放到插入点位置*/for (i=0;i<11;i++)printf("%3d",a[i]);printf("\n");}⑵①i%7==0||i%11==0②n++③i%5==03.⑴a.将continue;改为break;b.将i=k-1;改为j=k-1;c.将j=k+1;改为i=k+1;d.将for(i=0;i<10;i++)改为for(i=0;i<9;i++);附:算法简析#include <>void main(){int x, i,j,k;int a[10]={ 8,18,28,38,48,58,68,78,88,98};printf("请输入需要删除的一个整数:");scanf("%d",&x);i=0;j=9;while(i<=j){k=(i+j)/2 ;if(a[k]==x) break;if(a[k]>x)j=k-1;if(a[k]<x)i=k+1;}/*二分法查找x在数组中的位置,该位置即删除点,注意始末坐标不要弄颠倒*/if(i>j) printf("需要删除的数不在数组中\n");else{ for( ;k<9;k++)a[k]=a[k+1];/*挤位,后面的数据向删除点靠拢*//*实例演示——挤位(若删除38)删除点↓8,18,28,38,48,58,68,78,88,988,18,28,48,58,68,78,88,98,98*/for (i=0;i<9;i++)/*删除一个数,只剩9个,数组最末尾储存的是重复的数据(倒数第二个),故不输出*/printf("%5d",a[i]);}}⑵a.将for(i=0,j=0;i<=10;i++)改为for(i=1,j=0;i<=10;i++)b.将if(i%3=0)改为if(i%3==0)c.将for(;j>=0;j++)改为for(;j>=0;j--) 4.⑴#include<>#include<>int isprime(int x){int k=sqrt(x);for(;k>1;k--)if(x%k==0) return 0;return x;}void sort(int a[],int x){int i,k,t;for(i=0;i<x-1;i++)for(k=i+1;k<x;k++)if(a[i]>a[k]){t=a[i];a[i]=a[k];a[k]=t;}}void main(){int num[50],prime[50],i,n=0,j;printf("PLease input 50 integers:\n");for(i=0;i<50;i++){scanf("%d",&num[i]);if((j=isprime(num[i]))!=0)prime[n++]=j;}sort(prime,n);printf("The sorted prime numbers are : \n"); for(i=0;i<n;i++)printf("%-5d",prime[i]);}⑵#include<>#include<>main(){char input[10],paswor[10]="password",ch,flag=0;int count=1,i=0;while(count<=3){printf("请输入密码:");while((ch=getch())!=13){input[i++]=ch;putchar(’*’);}input[i]=’\0’;if(strcmp(input,paswor)==0){printf("\n\n你好!我的主人!");flag=1;break;}elseprintf("\n\n离我远点!");count++;getch();}if(flag==0)printf("密码输入三次错误,你不是我的主人!\n\n离我远点!\n\n 否则,我很生气,后果很严重!!!");getch();}⑶main(){int num[10],i,max,min,maxj,minj;printf("Please input the data:\n");scanf("%d",&num[0]);max=min=num[0];for(i=1;i<10;i++){ scanf("%d",&num[i]);if(max<num[i]){max=num[i];maxj=i;}if(min>num[i]){min=num[i];minj=i;}}printf("The maximum element’s underside is %d,max=%d",maxj,num[maxj]); printf("\nThe minimum element’s underside is %d,min=%d",minj,num[minj]); }⑷#include<>#include<>void input(int a[],int *n){int i;printf("How many datas do you want to input ");scanf("%d",n);printf("\nPlease input %d datas:\n",*n);for(i=0;i<*n;i++)scanf("%d",&a[i]);}void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}void menu(int a[],int n){int i;gotoxy(1,24);printf("Datas: ");for(i=0;i<n;i++)printf("%-3d",a[i]);gotoxy(1,1);printf("MENU\n");printf("************************\n");printf("**\n");printf("* a data*\n");printf("**\n");printf("* a data*\n");printf("**\n");printf("* a data*\n");printf("**\n");printf("**\n");printf("**\n");printf("************************\n");printf("PLease input a command==>");}void find(int a[],int n){int x;int low=0,high=n-1,mid;printf("\nPLease input a data to be searched: ");scanf("%d",&x);while(low<=high){mid=(low+high)/2;if(x==a[mid]) break;else if(x>a[mid]) low=mid+1;else high=mid-1;}if(low>high) printf("\nThis data can’t be found in the database!"); else{printf("\nThis data is in the position %d",mid);gotoxy(7+3*(mid+1)-2,23);putchar(25);}}void insert(int a[],int n){int x,k,i;printf("\nPLease input a data to be inserted:");scanf("%d",&x);a[n]=x;for(i=0;i<n;i++)if(x<a[i]) {k=i;break;}for(i=n;i>k;i--)a[i]=a[i-1];a[k]=x;gotoxy(1,24);delline();printf("Datas: ");for(i=0;i<=n;i++)printf("%-3d",a[i]);}void Delete(int a[],int n){int x,low,high,mid,i;printf("\nPLease input a data to be deleted:");scanf("%d",&x);low=0;high=n-1;while(low<=high){mid=(low+high)/2 ;if(a[mid]==x) break;if(a[mid]>x)high=mid-1;if(a[mid]<x)low=mid+1;}if(low>high) printf("The data to be deleted is not in the database!\n");else{for( ;mid<n-1;mid++)a[mid]=a[mid+1];gotoxy(1,24);delline();printf("Datas: ");for(i=0;i<=n-2;i++)printf("%-3d",a[i]);}}main(){int a[50],n=0;char com;input(a,&n);sort(a,n);clrscr();menu(a,n);com=getch();switch(com){case ’1’:find(a,n);break;case ’2’:insert(a,n);break;case ’3’:Delete(a,n);break;default: break;}getch();}/*DT made it in 2009/05/16*/程序填空:(1)#include <>#define N 4void main(){ int a[N][N],s1=0,s2=1,max,i,j;for(i=0; i<N; i++)for(j=0; j<N; j++)scanf("%d", &a[i][j]);max= a[0][0];for(i=0;i<N;i++)for(j=0; j< N ;j++){if(i==j) s1=s1+a[i][j];if(i+j==N-1) s2*=a[i][j];if(a[i][j]> max )max=a[i][j];}printf("s1=%d,s2=%d,max=%d\n",s1,s2,max); }(2)#include<>#define M 4#define N 3void main( ){int a[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};int sum= 0,i,j;for(i=0;i<N;i++)sum+=a[0][i]+ a[M-1][i];for(j=1;j<M-1;j++)sum+=a[j][0]+ a[j][N-1] ;printf("%d\n",sum);}改错:(1)#in#include<>#define M 3#define N 4void main( ){int a[M][N]={{1,2,3,4},{5,6,7,8 },{9,10,11,12}}; int b[N][M];int i,j;for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",a[i][j]);printf("\n");}for(i=0;i<N;i++)for(j=0;j<M;j++)b[i][j]=a[j][i];printf("\n");for(i=0;i<N;i++){for(j=0;j<M;j++)printf("%3d",b[i][j]);printf("\n");}}(2)#include<>void main(){int d[][4] ={{0,0,0,0}},i,j;printf("\nPlease input 16 num: ");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&d[i][j]);for(i=0;i<4;i++)for(j=0;j<4;j++)if(d[i][j]<d[j][i])d[i][j]=d[j][i];for(i=0;i<4;i++){printf("\n\n\n\n\n");/*为了保持每行的间隔与每列的相同*/for(j=0;j<4;j++)if(j>=i)printf("\t%d",d[i][j]);/*为了使位数不同的数输出依然保持三角型*/ elseprintf("\t");}}设计性实验:(1)#include<>#define M 3#define N 6{int i,j,max,min,m=0,n=0,p=0,q=0;int a[M][N];for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);max=min=a[0][0];for(i=0;i<M;i++)for(j=0;j<N;j++){ if(a[i][j]>max){max=a[i][j];m=i;n=j;}else if(a[i][j]<min){ min=a[i][j];p=i;q=j;}}printf("max(%d,%d)=%d,min(%d,%d)=%d",m,n,max,p,q,min);}(3)#include<>void main(){int n,i,j;int a[N][N];printf("please input the n:");scanf("%d",&n);for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%-4d",a[i][j]);printf("\n");}}2.程序填空(1)以下程序的功能是求数组a中元素的和。