c++程序设计实验辅导及习题解答实验8(1、3、7)和实验9
C程序设计教程与实验实验8答案
![C程序设计教程与实验实验8答案](https://img.taocdn.com/s3/m/683e22a34a7302768f993972.png)
Sy8-1#include<>void main(){int i;static int a[8]={10,5,4,0,12,18,20,46};void jhmaxmin();printf(Original array:\n);for(i=0;i<8;i++)printf(],a[i]);printf(\/n);jhmaxmin(a,8);printf(Array after swapwing max and min: \n); for(i=0;i<8;i++)printf(],a[i]);printf(\);}void jhmaxmin(int p[],int n){int t,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max) max=q;if(*q<*min) min=q;}t=*max;*max=*min;*min=t;}Sy8-2#include<>int len(char s[]){char *p=s;while (*p!='\0')p++;return p-s;}main(){char s[80];gets(s);printf(\\%s\include %d characters.\n,s,len(s)); }Sy8-3#include<>#include<>void main(){int i,a[26];char ch,str[80],*p=str;gets(str);for(i=0;i<26;i++)a[i]=0;while(*p!='\0'){ch=*(p++);ch=ch>'A'&&ch<='Z'ch+'a'-'A':ch;if('a'<ch<='z'||'A'<=ch<='Z') a[ch-'a']++;}for(i=0;i<26;i++)printf(,,'a'+i);牰湩晴尨出现的次数为:\n);for(i=0;i<26;i++)printf(-,a[i]);printf(\);}Sy8-4#include<>main(){int a[8],*p;int i,j,t,k;p=a;printf(Input the numbers:);for(i=0;i<8;i++)scanf(%d,p+i);t=*p;for(i=0;i<8;i++){for(j=i;j<8;j++)if(j==i||*(p+j)<t){t=*(p+j);k=j;}if(k!=i){t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}}for(i=0;i<8;i++)printf(],*(p+i));}Sy8-5#include<>#include<>chnum(char*p);void main(){char s[6];int n;gets(s);if(*s=='-') n=-chnum(s+1); else n=chnum(s);printf(%d\n,n);}chnum(char *p){int num=0,k,len,j;len=strlen(p);for(;*p!='\0';p++){k=*p-'0';j=(--len);while(j-->0) {k=k*10;}num=num+k;}return(num);}Sy8-6#include<>main(){int i,k=0;char a[80],b[80],*p;p=a;gets(p);while(*p){for(i=1;p[i-1]!='\0';p++,k++,i++) {if(k%4==0) {b[k]=' ';k++;}b[k]=*p;}}b[k]='\0';puts(b);}Sy8-7#include<>void main(){char s[30],*p=s;int a,*q=&a,i;gets(s);*q=0;for(;*p!='\0';p++)if(*p>='0'&&*p<='9')*q=(*q)*10+(*p-'0');printf(\字符中的数字为:%d\n,a);}Sy8-8#include<>zlrjm(char *Z){char *A=Z;while(*A!='\0'){if('a'<=*A<='z'||'A'<=*A<='Z'){*A=*A+3;if(*A>'Z'&&*A<'a'||*A>'z')*A=*A-26;}++A;}}zlrJm(char *Z){char *A=Z;while(*A!='\0'){if('a'<=*A<='z'||'A'<=*A<='Z'){*A=*A-3;if(*A>'Z'&&*A<'a'||*A>'z'||*A<'A') *A=*A+26;}++A;}}main(){char mj[50];牰湩晴尨请输入一段需加密的字符:\n); gets(mj);牰湩晴尨字符加密后为:);zlrjm(mj);puts(mj);牰湩晴尨字符解密后为:);zlrJm(mj);puts(mj);}Sy8-9#include<>#include<>char *zlr(char *A,char *B){int i;int lA=strlen(A),lB=strlen(B);for (i=0;i<lB;i++)A[lA+i]=*B++;A[lA+i]='\0';return A;}main(){char a[50],b[50];char *t=a;牰湩晴尨请输入两个字符串:\n请输入a字符串:\n); gets(a);牰湩晴尨请输入b字符串:\n);gets(b);t=zlr(a,b);: %s\n,t); 连接后的字符串为牰湩晴尨}。
C语言程序设计 上机实验指导与习题 参考答案
![C语言程序设计 上机实验指导与习题 参考答案](https://img.taocdn.com/s3/m/9bf87f4b84868762cbaed540.png)
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语言程序设计及实验指导练习及习题参考答案(8--10)
![C语言程序设计及实验指导练习及习题参考答案(8--10)](https://img.taocdn.com/s3/m/aac4bf194531b90d6c85ec3a87c24028915f85b7.png)
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
C语言程序设计实验指导含答案
![C语言程序设计实验指导含答案](https://img.taocdn.com/s3/m/d333c2bb0342a8956bec0975f46527d3240ca630.png)
C语言程序设计实验指导含答案实验一:C语言程序设计基础实验内容:本实验主要以C语言的基础语法为主,通过一些简单的示例和练习来帮助学生熟悉C语言的基本概念和语法规则。
实验步骤:1. 编写一个简单的C程序,输出"Hello, World!"。
要求程序能够顺利编译并执行。
答案:#include <stdio.h>int main(){printf("Hello, World!");return 0;}2. 基于上一题的程序,修改代码,要求程序输入一个整数,并将其乘以2输出。
答案:#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("乘以2的结果为:%d", num * 2);return 0;}3. 编写一个C程序,输入一个圆的半径,计算并输出其面积和周长。
要求保留2位小数。
答案:#include <stdio.h>#define PI 3.14159int main(){float radius;printf("请输入圆的半径:");scanf("%f", &radius);float area = PI * radius * radius;float circumference = 2 * PI * radius;printf("圆的面积为:%.2f\n", area);printf("圆的周长为:%.2f\n", circumference);return 0;}实验二:循环和判断语句实验内容:本实验主要通过不同的练习来帮助学生熟悉和掌握C语言中的循环和判断语句的使用方法。
C语言程序设计 (何钦铭 颜晖 著) 高等教育出版社第八章 课后答案
![C语言程序设计 (何钦铭 颜晖 著) 高等教育出版社第八章 课后答案](https://img.taocdn.com/s3/m/9eb3574b0b1c59eef8c7b4c2.png)
}
习题8-7
/*输入5个字符串,按由小到大的顺序输出。*/
/*指针和数组及存储单元-选择排序算法*/
#include <stdio.h>
#include <string.h>
void main(void)
{
char s[5][80],t[80];
int i,j,index;
/*输入5个字符串到数组s*/
{
index=i;
for (j = i+1; j < n; j++ )
if (a[j] < a[index])index=j;/*比较大小,记录最小元的下标*/
swap(&a[i], &a[index]);/*交换最小元与a[i]的值*/
}
}
/*定义函数swap,实现两个数交换*/
void swap (int *px, int *py)
scanf("%d",&x);
/*调用find函数,在数组a中查找xห้องสมุดไป่ตู้在位置*/
result=find(a,10,x);
/*输出查找结果*/
if(result==-1)printf("Not found.\n");
else printf("The position is %d\n",result);
void mcopy(char *s,char *t,int m);
void main()
{
char s[80],t[80];
int m;
/*输入一个字符串*/
printf("Enter a string : ");
《C语言程序设计》实验指导书答案【精选文档】
![《C语言程序设计》实验指导书答案【精选文档】](https://img.taocdn.com/s3/m/e7709f9b48d7c1c709a14514.png)
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程.2.熟悉编译环境Visual C++或者Dev C++或者Turbo C2.0//3。
0。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法.实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值.4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”6.输入并编辑本章中给出的C程序例子,在自己用的环境中形成一个C语言源程序文件;对这个源程序进行加工,得到对应的可执行程序,看一看它的效果。
实验结果:1。
#include 〈stdio.h〉#include 〈stdlib。
h〉main( ){int i,j,k;printf(”input i,j,k:");//输入整数数据,以半角逗号间隔,比如:1,2,3scanf(”%d,%d,%d”,&i,&j,&k);//不能缺少地址符号“&”printf(”%d+%d+%d=%d\n”,i,j,k,i+j+k);system(”Pau se");}2。
#include 〈stdio.h〉#include <stdlib。
h〉main(){ int i,j;printf(”input i,j(not 0):");//输入整数数据,以半角逗号间隔,j不为0,因为做除数scanf("%d,%d,%d",&i,&j);//不能缺少地址符号“&”printf("%d+%d=%d\n”,i,j,i+j);printf("%d-%d=%d\n”,i,j,i—j);printf("%d*%d=%d\n",i,j,i*j);printf(”%d/%d=%d\n”,i,j,i/j);system("Pause”);}3. #include 〈stdio.h〉#include 〈stdlib.h〉main(){int i,j,k;printf(”input i,j,k:”);//输入整数数据,以半角逗号间隔scanf("%d,%d,%d”,&i,&j,&k);//不能缺少地址符号“&”if(i>j){if(j〉k)printf("max:%d”,i);else if(i>k)printf(”max:%d",i);elseprintf("max:%d",k);}else{if(j<k)printf(”max:%d",k);elseprintf("max:%d",j);}system(”Pause”);}4。
C语言程序设计实验实验指导书及答案
![C语言程序设计实验实验指导书及答案](https://img.taocdn.com/s3/m/26833d35844769eae009ed8c.png)
实验一熟悉C程序运行环境班级学号姓名成绩一、实验目的1. 熟悉C语言Visual C++6.0 调试环境。
2. 掌握C程序的编辑、调试及运行。
二、实验内容项目 1. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){printf( “Good morn\ing”)!;printf( “Hello,world!\n ”);return 0;}运行结果(注意,按照屏幕输出格式写):项目 2. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){int a , b , sum; /* 定义变量*/a=23; b=56; /* 为变量赋值*/sum=a+b; /* 计算两个变量的和*/printf( “sum is %d\n”,sum); /* 输出计算结果*/return 0;}运行结果:项目 3. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int max(int,int);int main(){int a , b , c; /* 定义变量*/a=23; b=56; /* 为变量赋值*/c=max(a,b); /* 调用max 函数,将得到的值赋给c*/ printf( “max is %d\n ”,c); /* 输出 c 的值*/return 0;}int max(int x,int y) /* 定义max 函数,函数值为整型*/ {int z; /* 定义变量*/if(x>y)z=x;elsez=y;return(z); /* 将z 的值返回*/}运行结果:三、提高部分3.试想,如果求10 个数中的最大者,则程序该如何编写。
程序代码运行结果:...常熟理工学院电气与自动化工程学院3 《C 语言程序设计》实验指导书实验二数据及其运算班级学号姓名成绩一、实验目的4.掌握C数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。
C语言程序设计教程习题解答与实验指导
![C语言程序设计教程习题解答与实验指导](https://img.taocdn.com/s3/m/3df812f8f424ccbff121dd36a32d7375a517c66f.png)
C语言程序设计教程习题解答与实验指导C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授编程语言的基础知识,还培养学生的逻辑思维和问题解决能力。
本教程旨在为学习C语言的学生提供习题解答和实验指导,帮助他们更好地理解和掌握C语言的编程技巧。
第一部分:习题解答1. 基础语法- 问题1:编写一个程序,输出“Hello, World!”。
解答:在C语言中,最基本的程序结构是`main`函数。
使用`printf`函数可以输出文本到控制台。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```- 问题2:声明一个整型变量`a`,并为其赋值为10。
解答:在C语言中,使用`int`关键字声明整型变量。
```cint a = 10;```2. 控制结构- 问题3:编写一个程序,根据用户输入的分数判断成绩等级。
解答:使用`if-else`语句可以实现条件判断。
```c#include <stdio.h>int main() {int score;printf("请输入你的分数:");scanf("%d", &score);if (score >= 90) {printf("A\n");} else if (score >= 80) {printf("B\n");} else if (score >= 70) {printf("C\n");} else if (score >= 60) {printf("D\n");} else {printf("F\n");}return 0;}```3. 循环结构- 问题4:使用循环结构打印1到10的数字。
C程序设计教程与实验第8章习题参考答案
![C程序设计教程与实验第8章习题参考答案](https://img.taocdn.com/s3/m/6fb3a9d7aa00b52acfc7ca89.png)
第8章习题二、填空题1. 22. 6 7 200C3.p[5]4. 定义p1为指向整型数据的指针变量定义p2为指针数组,其数组元素均为指针定义p3为指向一维数组的指针,其数组元素均为整型数5. 5,36. 207. r+b[k] *x8. SecondLiFirstWang9. 2510. 12 12三程序分析题1.72. 1 5 33 9 73. 2 44. abcDDfefDbD5. 53四、编程题1.输入2个字符串,每个字符串的长度均不超过80字符,用自己实现的cmpstr()函数完成这两个字符串的大小比较,cmpstr()函数的功能和字符串比较函数strcmp()的功能相同#include <stdio.h>#include<string.h>int cmpstr(char *s1, char *s2){char *p, *q;p=s1;q=s2;while(*p!='\0' && *q!='\0'){if(*p==*q){p++;q++;}elsebreak;}return *p-*q;}void main(){char str1[81], str2[81];int c;printf("请输入第1个字符串:");gets(str1);printf("请输入第2个字符串:");gets(str2);c=cmpstr(str1,str2);if(c>0)printf("字符串%s 大于字符串%s\n",str1,str2);else if(c<0)printf("字符串%s 小于字符串%s\n",str1,str2);elseprintf("字符串%s 等于字符串%s\n", str1, str2);}2.定义一个函数float reverse(int p[], int n),该函数有两个参数,第一个参数p为形参数组名,第二个参数n为该数组中的元素个数,要求使用reverse()函数将该数组中的所有元素逆序排列,并返回该数组中所有元素的平均值。
C语言程序设计课后习题1-8参考答案
![C语言程序设计课后习题1-8参考答案](https://img.taocdn.com/s3/m/fb57564dbcd126fff6050b42.png)
C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。
在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
c程序设计实验参考答案
![c程序设计实验参考答案](https://img.taocdn.com/s3/m/5d055b0f82c4bb4cf7ec4afe04a1b0717fd5b3b9.png)
c程序设计实验参考答案在计算机科学领域中,C程序设计是一门重要的课程,通过实验来加深对C语言的理解和应用,提高编程技巧和问题解决能力。
本文将提供一些C程序设计实验的参考答案,帮助学生更好地完成实验任务。
1. 实验一:基础语法练习实验目的:熟悉C语言的基础语法,掌握变量定义、运算符使用和基本IO操作等。
```c#include <stdio.h>int main() {int a = 5, b = 3;int sum, product;sum = a + b;product = a * b;printf("The sum of a and b is %d\n", sum);printf("The product of a and b is %d\n", product);return 0;}```2. 实验二:条件语句和循环结构实验目的:学习和掌握if-else语句、switch-case语句以及while和for循环的基本用法。
```c#include <stdio.h>int main() {int score;printf("Please enter your score: ");scanf("%d", &score);if (score >= 90) {printf("Excellent!\n");} else if (score >= 80) {printf("Good job!\n");} else if (score >= 70) {printf("Keep it up!\n");} else {printf("You need to work harder!\n");}int i;for (i = 1; i <= 10; i++) { if (i % 2 == 0) {printf("%d ", i);}}printf("\n");int j = 1;while (j <= 10) {if (j % 2 != 0) {printf("%d ", j);}j++;}printf("\n");return 0;}```3. 实验三:数组和字符串实验目的:熟悉数组和字符串的定义、初始化和基本操作,学习使用数组和字符串解决问题。
大学生c语言程序设计(第四版谭洪强)实验8答案
![大学生c语言程序设计(第四版谭洪强)实验8答案](https://img.taocdn.com/s3/m/be9a0f0d59fb770bf78a6529647d27284b7337ac.png)
大学生c语言程序设计(第四版谭洪强)实验8答案实验八函数(二) 参考答案/*1.(sy8-1.c ) 请编写函数 fun ,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。
例如,给定数组中的 9 个元素依次为 12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。
【解题思路】在给出的参考程序中,由于函数要求的返回值为双精度型,所以先将变量 avg 、sum 定义为双精度型,初值为 0.0,然后通过 for 循环分别求出相邻两个元素的平均值放入变量avg 中,再使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量sum 中并返回。
【参考答案】*/double fun(double x[9]){ int i ;double avg=0.0,sum=0.0; //将变量avg 、sum 定义为双精度型,并给其赋初值为0.0 for (i=0;i< 8;i++){ avg=(x[i]+x[i+1])/2; //通过for 循环分别求出相邻两个元素的平均值放入变量avg 中sum+=sqrt(avg); //使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum}return sum; /*返回计算结果*/}2.(sy8-2.c ) 编写函数fun ,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:??900800700600500400300200100,程序输出:900600300800500200700400100。
【解题思路】方阵转置,只需要将左下半三角元素和右上半三角元素对换即可。
int fun(int array[3][3]){ int i,j,t ;for(i = 0 ; i < 3 ; i++)for(j = 0 ; j < i ; j++){t=array[i][j]; array[i][j]=arrar[j][i]; array[j][i]=t ; }}3.(sy8-3.c ) 请编写函数 fun ,函数的功能是:统计一行字符串中单词的个数作为函数值返回。
《c语言程序设计》实验指导书答案
![《c语言程序设计》实验指导书答案](https://img.taocdn.com/s3/m/49a3363e793e0912a21614791711cc7931b778b5.png)
《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语言程序设计实验指导书答案](https://img.taocdn.com/s3/m/019b1858e97101f69e3143323968011ca200f76f.png)
c语言程序设计实验指导书答案C语言程序设计实验指导书是帮助学生理解和掌握C语言编程技能的重要工具。
本指导书旨在通过一系列实验,引导学生从基础语法到高级编程技巧,逐步提高编程能力。
以下是一些实验题目和相应的答案示例,以供参考。
实验一:C语言基础语法实验目的:- 熟悉C语言的基本语法结构。
- 掌握变量声明、数据类型和运算符的使用。
实验内容:1. 编写一个程序,输入两个整数,输出它们的和、差、积和商。
实验答案:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("和是:%d\n", num1 + num2);printf("差是:%d\n", num1 - num2);printf("积是:%d\n", num1 * num2);if (num2 != 0) {printf("商是:%d\n", num1 / num2);} else {printf("除数不能为0。
\n");}return 0;}```实验二:控制结构实验目的:- 掌握条件语句和循环语句的使用。
实验内容:1. 使用循环语句计算1到100的和。
实验答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum); return 0;}```实验三:数组和字符串- 掌握数组和字符串的声明、初始化和使用。
实验内容:1. 编写一个程序,输入一个字符串,然后反转该字符串并输出。
c程序设计教程与实验课后实验答案
![c程序设计教程与实验课后实验答案](https://img.taocdn.com/s3/m/e20db8cc551810a6f524862f.png)
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语言程序设计实验指导参考答案
![c语言程序设计实验指导参考答案](https://img.taocdn.com/s3/m/d884ca2426d3240c844769eae009581b6ad9bd62.png)
c语言程序设计实验指导参考答案C语言程序设计实验指导参考答案在学习C语言程序设计的过程中,实验是不可或缺的一部分。
通过实验,我们可以巩固所学的知识,提高编程能力。
然而,有时候我们可能会遇到一些难题,不知道如何下手。
本文将为大家提供一些C语言程序设计实验的参考答案,希望能够帮助大家更好地完成实验任务。
1. 实验一:C语言基础实验一主要涉及C语言的基础知识,包括变量、运算符、控制语句等。
以下是一些常见的题目及参考答案:题目一:编写一个程序,实现两个整数的交换。
```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);swap(&a, &b);printf("交换后的结果为:%d %d\n", a, b); return 0;}```题目二:编写一个程序,求1到n的和。
```c#include <stdio.h>int sum(int n) {if (n == 1) {return 1;} else {return n + sum(n - 1);}}int main() {int n;printf("请输入一个正整数:");scanf("%d", &n);printf("1到%d的和为:%d\n", n, sum(n)); return 0;}```2. 实验二:数组和字符串实验二主要涉及数组和字符串的应用。
以下是一些常见的题目及参考答案:题目一:编写一个程序,找出数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大值为:%d\n", findMax(arr, n));return 0;}```题目二:编写一个程序,判断一个字符串是否为回文字符串。
c语言程序设计实验教程课后答案
![c语言程序设计实验教程课后答案](https://img.taocdn.com/s3/m/bd543a1ab207e87101f69e3143323968011cf484.png)
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实验指导书答案-优秀word范文 (17页)
![【推荐】c实验指导书答案-优秀word范文 (17页)](https://img.taocdn.com/s3/m/9c6fd9daba0d4a7302763aa8.png)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==c实验指导书答案篇一: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=??2 -4ac的结果并输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务 3:程序设计。应用指针删除字符串中的某个字符。
设计一个程序,在 main()中输入一个字符串,然后再输入一个字
符,调用函数 void del_char(char*p,char x),删除在字符串中
的这个字符。
程序设计如下:
#include "stdafx.h" #include<iostream> using namespace std; #define N 80 void del_char(char *p,char x) {
return x>y?x:y; } int min(int x,int y) {
return x<y?x:y; } void pp(int x,int y,int(*p)(int,int)) {
int result; result=(*p)(x,y); cout<<result<<endl; } int _tmain(int argc, _TCHAR* argv[]) { int a,b; cin>>a>>b; cout<<"max="; pp(a,b,max); cout<<"min="; pp(a,b,min); return 0; }
cout<<a[i]<<' '; cout<<endl; return 0; }
运行结果如下:
任务 2:程序调试。函数指针的应用。
定义两个函数 max、min,分别求两个整型数的最大值与最小值。
然后定义一个函数指针分别指向两个不同的函数。为了方便调用设计
一个函数 pp,作为函数调用时统一的接口,使得每次调用的形式保
程序设计如下:
#include "stdafx.h" #include<iostream> using namespace std;
void swap(int &p1,int &p2) {
int p; p=p1; p1=p2; p2=p; } int _tmain(int argc, _TCHAR* argv[]) { int a,b; cin>>a>>b; swap(a,b); cout<<a<<' '<<b<<endl; return 0;
int x; char name[20]; public: person(int a,char *n) {
x=a; strcpy_s(name,n); } void print() { cout<<"x="<<x<<"name:"<<name<<endl; } }; int _tmain(int argc, _TCHAR* argv[]) { int x; char name[20]; cin>>x>>name; person *p=new person(x,name); p->print(); delete p; return 0; }
实验八
任务 1:程序调试。指针作为函数参数。
(1)设计一个函数 swap,函数的参数为指针,函数的功能是交换 main
函数中的 a,b 值。
思考:如果上上述 swap 函数设计为:
void swap(int *p1,int *p2) {
int p; p=p1; p1=p2; p2=p1; }
程序运行会有什么样的结果?为什么?
for(int i=0;i<bits;i++) Out[i]=(In[i/8]>>(i%8))&1;
} int _tmain(int argc, _TCHAR* argv[]) {
bool a[K]; char b[K/8+1]="ab"; int i; ByeToBit(a,b,K); for(i=0;i<K;i++)
}
运行结果如下:
任务 7:程序设计与程序调试。应用 new 与 delete 为用户自 定义的类型分配内存空间与释放内存空间。
程序如下:
#include "stdafx.h" #include<iostream> using namespace std; #include<string.h>
class person { private:
答:只是利用指针交换了双方的地址,但内容没有变化,所以输出结
果并未改变。
如果上述 swap 函数设计为:
void swap(int *p1,int *p2) {
int p; p=*p1; *p1=*p2; *p2=p; }
程序运行会有什么样的结果?ቤተ መጻሕፍቲ ባይዱ什么?
(2)用引用的方法交换 main 函数中 a、b 的值,请重新设计函数。
持一致。输入 a 和 b 两个数,第一次调用 pp 时找出 a 和 b 中的大者,
第二次找出其中的小者。
代码如下:
#include "stdafx.h" #include<iostream> using namespace std;
int max(int,int); int min(int,int); void pp(int,int,int(*p)(int,int)); int max(int x,int y) {
for(i=0;i<100;i++) {
x=(int)(100.0*rand()/(RAND_MAX+1.0))%10; y=(int)(100.0*rand()/(RAND_MAX+1.0))%10; z=(int)(100.0*rand()/(RAND_MAX+1.0))%4; } switch(z) { case 0:ch='+';break; case 1:ch='-';break; case 2:ch='*';break; case 3:ch='/';break; } i=(*p[z])(x,y); cout<<x<<ch<<y<<'='<<i<<endl; k--; } }
}
运行结果如下:
void main() { double f1(double x),f2(double x),f3(double x); double (*p)(double x);
double a; While(1) {
while(cin>>a) {
if(a<0) p=f1;
else if(a<5) p=f2;
char*q=p; for(;*p!='\0';p++)
if(*p!=x)
*q++=*p; *q='\0'; } int _tmain(int argc, _TCHAR* argv[]) { char c[N],*pt=c,x; cout<<"请输入字符串:"; cin>>pt; cout<<"请输入所需删除的字符"<<endl; cin>>x; del_char(pt,x); cout<<"The new string is;"<<c<<endl; return 0;
程序为:
#include<iostream> using namespace std; #include<time.h>
#include<stdlib.h> int a(int x,int y) {
return x+y; } int b(int x,int y) {
return x-y; } int c(int x,int y) {
return x*y; } int d(int x,int y) {
return x/y; } void main() {
char ch; int(*p[4])(int,int)={a,b,c,d},i,x,y,z; int k=12; srand((int)time(0)); while(k) {
任务 5:程序设计。命令行参数的应用。
用程序实现文件的加密和解密。约定:程序取名为 lock.c,程序
的可执行文件名为 lock.exe,其用法为:lock+|-<被处理的文件名>,
其中+为加密,-为解密。
设计代码运行如下:
#include<iostream> using namespace std;
运行结果如下:
任务 3:程序设计。函数指针的应用。
参照任务 2,用函数指针来实现以下表达式的计算。
X (x<0)
2x-5 (0<=x<5)
3x+4 (x>=5)
设计一个程序,输入 x 的值,输出相应表达式的值。
程序如下:
#include<iostream> using namespace std; double f1(double x) { return x; } double f2(double x) { return 2*x-5; } double f3(double x) { return 3*x+4; }