c第七次作业

c第七次作业
c第七次作业

1.#include

#include

void main()

{

char filename[80];

char ch;

FILE *fp;

printf("输入完整文件名:"); scanf("%s",filename);

if((fp=fopen(filename,"r"))==NULL) {

printf("文件打开失败");

exit(0);

}

while((ch=fgetc(fp))!=EOF)

{

printf("%c(%d)",ch,(int)ch);

}

fclose(fp);

printf("\n");

}

2# include

# define SIZE 5

# include structstudent_type

{

char name[20];

intnum;

intchengji[3];

floatavg;

}stud[SIZE];

void main()

{

FILE *p1,*p2;

inti,j,sum=0,n,m;

for(i=0;i

{

sum =0; //添加

printf("请按格式输入stud[%d]的名字学号成绩1 成绩2 成绩3\n" ,i); //修改处

scanf("%s",stud[i].name);

scanf("%d",&stud[i].num);

for(j=0;j<3;j++)

{

scanf("%d",&stud[i].chengji[j]); //修改处

sum+=stud[i].chengji[j];

}

stud[i].avg=(float)sum/3; //修改

}

if((p1=fopen("d:\\stud_list.txt","w+"))==NULL)//(将上面的数装入p1中)

{

printf("cannot open the file\n");

exit(0);

}

for(i=0;i

{

if(fwrite(&stud[i],sizeof(structstudent_type),1,p1)!=1)

printf("file write error\n");

}

fclose(p1);

if((p1=fopen("d:\\stud_list.txt","rb"))==NULL)//添加(将上面的数装入p1中)

{

printf("cannot open the file\n");

exit(0);

}

printf("wen jian de neirongshi :\n");

for(i=0;fread(&stud[i],sizeof(structstudent_type),1,p1)!=0;i++)//(读出p1中的数并在屏幕上打印出来)

{

printf("\n%s",stud[i].name);

printf("%10d",stud[i].num);

for(j=0;j<3;j++)

printf("%4d ",stud[i].chengji[j]); //修改

printf("%10.2f",stud[i].avg);

}

printf("\n"); //添加

fclose(p1);

n=i;

student_type change; //修改

change =stud[0]; //修改

for(i=0;i

for(j=i+1;j

if(stud[i].avg

{

change=stud[i];

stud[i]=stud[j];

stud[j]=change;

}

printf("\nshuchupaixuhou :");

if((p2=fopen("d:\\stud.txt","w+"))==NULL)//(将排序好了的数装入在p2中){

printf("cannot open the file:\n");

exit(0);

}

for(i=0;i

{

fwrite(&stud[i],sizeof(structstudent_type),1,p2);

printf("\n%s",stud[i].name);

printf("%10d",stud[i].num);//添加

for(j=0;j<3;j++)

printf("%4d",stud[i].chengji[j]);

printf("%10.2f",stud[i].avg);

}

fclose(p2);

printf("\n");

student_type find; //修改

while(1)//(打印出你要找的人的全部信息)

{

if((p2=fopen("d:\\stud.txt","rb"))==NULL)//(将排序好了的数装入在p2中){

printf("cannot open the file:\n");

exit(0);

}

printf("print the num you want to found:\n");//(输入你要查找的人的学号)scanf("%d",&m);

while(!feof(p2))

{

fread(&find,sizeof(structstudent_type),1,p2);

if(find.num==m)

{

printf("%s %10d",https://www.360docs.net/doc/5e12547186.html,,find.num);

for(i=0;i<3;i++)

printf("%5d",find.chengji[i]);

printf("%10.3f",find.avg);

printf("\n");

break;

}

}

if(feof(p2))

printf("input wrong num, please input again\n");

fclose(p2);

}

}

C语言实训作业1

《C语言通识教育》实训指导书 (第一次) (2学时) 何天成 2016年月日

前言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下: (1)实验学时 (2)实验目的 (2)预习要求 (4)实验内容 (5)实验注意事项 (6)思考题 其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。 实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy 别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:(1)实验题目 (2)设计思路或算法分析 (3)流程图 (4)程序源代码 (5)程序运行结果及分析

c语言第五次作业

第五次作业:函数 1.自然数的计算 编写自己的两个函数,分别求出两个整数的最大公约数和最小的公倍数。 编写一个程序,功能是能够由键盘输入两个整数,并能调用自己编写的函数,计算并输出这两个整数的最大公约数和最小公倍数。 程序代码: #include void main() { intgreatest_common(intx,int y),lowest_common(intx,int y); inta,b,c,d; printf("please input two integer:"); scanf("%d,%d",&a,&b); c=greatest_common(a,b); d=lowest_common(a,b); printf("最大公约数为%d,最小公倍数为%d\n",c,d); } intgreatest_common(intx,int y) { inti,min; if (x>y)min=y; else min=x; for(i=min;i>=1;i--) if ((x%i==0)&&(y%i==0)) return(i); } intlowest_common(intx,int y) { inti,max; if (x>y) max=x; else max=y; for (i=max;;i++) if((i%x==0)&&(i%y==0)) return (i); }

2.字符串连接 请使用字符数组,编写自己的字符串连接函数。 编写一个程序,功能是能够由键盘输入两个字符串,并能调用自己编写的字符串连接函数,输出新的字符串。 #include #include void main() { char link(char a[40],char b[20]); char str1[40]={"0"},str2[20]; printf("请输入第一个字符串:"); gets(str1); printf("请输入第二个字符串:"); gets(str2); printf("合并后的字符串为:\n"); link(str1,str2); puts(str1); } char link(char a[40],char b[20]) { inti,j; i=strlen(a); for(j=0;b[j]!=0;j++) a[i+j]=b[j];

交通大学C语言第二次作业

题目1 正确 满分1.00 标记题目 题干 对于传值调用(By Value)的描述,哪一个正确?() 选择一项: a. 实际参数和形式参数共占相同的内存位置 b. 实际参数会把内存地址传递给形式参数 c. 实际参数和形式参数可以使用不同的数据类型 d. 实际参数会将变量内容复制后,把副本传给形式参数 题目2 正确 满分1.00 标记题目 题干 关于多态,下列说法错误的是() 选择一项: a. 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本, 而运行时多态在编译时就能确定要调用成员方法的哪个版本 b. 多态和重载是两个完全不同的概念,前者是通过定义虚方法和重写 虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来 完成。 c. 多态可以分为编译时多态和运行时多态。前者的特点是在编译时就能 确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调 用成员方法的哪个版本 d. 多态实际上就是重载,它们本质上是一样的 题目3 正确 满分1.00

标记题目 题干 关于静态成员,下列说法正确的是() 选择一项: a. 在类实例化后静态成员也被实例化,因此不同的对象有不同的静态 成员 b. 在类定义时静态成员属于类,在类实例化后静态成员属于对象 c. 同一个类中的静态成员,类实例化后,在不同的对象中形成不同的静 态成员 d. 在类实例化后,同类型的对象都共享类的静态成员,静态成员只有 一个版本 题目4 正确 满分1.00 标记题目 题干 假设有类C继承类B,类B继承类A,则下面说法正确的是() 选择一项: a. C仅继承类A的所有成员,不继承类B的成员 b. 类C仅继承类B的所有成员,不继承类A的成员 c. 类C不仅继承类B的所有成员,也继承类A的所有成员 d. 类C继承类A的部分成员,同时继承类B的所有成员 题目5 正确 满分1.00 标记题目 题干 下列对于对象的描述,哪一个正确?() 选择一项: a. 使用private将对象实例化

c语言第二版第七章答案

7.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 参考程序如下: #include int aa(int m,int n) //求最大公约数 { int k; if(m int aa(int n) { int i; int flag; // flag标志 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i>sqrt(n)) flag=1; else flag=0;

return(flag); } main() { int n,flag; // flag标志 printf("\nInput n:"); scanf("%d",&n); flag=aa(n); if(flag==1) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 7.4 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。 参考程序如下: #include main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3],i,j; printf("array a:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } printf("After switch:\n"); aa(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } void aa(int a[3][3],int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j][i]=a[i][j]; } 说明:当数组名作函数参数时,形参也必须是同类型的数组名,形参数组名的实质是一个指针变量,存放的第0行第0列的元素的地址;这样,子函数中a[i][j]就是主函数中的a[i][j]; 7.11写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列 参考程序如下: main()

c语言作业

提交作业规范: (1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“) (2)上传到文件夹:偶春生\班级。千万别传错。 注意: (1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。(2)如果不能联网,请改网关地址:252或253 (3)开机进入“basis” 第一次上机题目: (1)从键盘上输入四个整数,计算并输出四个数的平均值。 (2)输入球的半径,计算并输出球的体积和表面积。 (3)输入一个三位正整数,分别输出该数的个位、十位和百位。(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12) (4)请测试++、--、关系和逻辑运算符。 第二次上机题目: (1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。 (2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。”,如果是小写字符,请输出:“您输入的是小写字符。”, (3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。) (5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。 第三次上机题目: (1)输入十个数,分别计算出其中正数、负数的和。 (2)输出1—100内能被3整除或个位数是3的数。 (3)打印出大写英文字母,每行最多输出十个。 (4)输入十个数,求出其中的最小值。 (5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n! (n取10) 第四次上机题目: (1)输出100—1000之间的质数。 (2)任意输入一个数,输出这个数的所有因子。(如输入12,输出1,2,3,4,6,12) (3)输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)。 (4)求x2+y2=2009的整数解。(提示,x,y的范围在[1,45]之间,用双重循环枚举求解)(5)用嵌套循环打印如下图形:

2013c语言第5次作业答案

C语言第5次作业及答案 1:[论述题]8,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,现有100元买鸡100只,问其中公鸡、母鸡、小鸡各多少只?编程求解。参考答案:8,提示:此题与上题类似,实际是求一个不定方程组,令公鸡有x只,母鸡 有y只,小鸡z只,进行C语言求解。 此题还有另外一些限制:只有100元,所以公鸡不超过20只,母鸡不超过33只。考虑这些限制可以提高程序运行效率 #include void main() { int x,y,z,j=0; printf("Folleing are possible plans to buy 100 fowls with 100 Yuan.\n"); for(x=0;x<=20;x++) /*外层循环控制鸡翁数*/ for(y=0;y<=33;y++) /*内层循环控制鸡母数y在0~33变化*/ { z=100-x-y; /*内外层循环控制下,鸡雏数z的值受x,y的值的制约*/ if(z%3==0&&5*x+3*y+z/3==100) /*验证取z值的合理性及得到一组解的合理性*/ printf("%2d:cock=%2d hen=%2d chicken=%2d\n",++j,x,y,z); } } 2:[论述题]7,一个笼子中有鸡兔各若干只,已知共有50只脚,20张嘴,问笼中各有鸡多少只,兔多少只?编程实现求解。 参考答案:7、提示:有嘴20张,有脚50只,考虑鸡有2只脚,兔有4只脚,鸡兔都只有一 张嘴,此题实际是计算一个二元一次方程组(令鸡有x只,兔有y只) main() { int x,y; for(x=1;x<20;x++) {

交通大学C语言第二次作业教案资料

交通大学C语言第二 次作业

题目1 正确 满分1.00 标记题目 题干 对于传值调用(By Value)的描述,哪一个正确?() 选择一项: a. 实际参数和形式参数共占相同的内存位置 b. 实际参数会把内存地址传递给形式参数 c. 实际参数和形式参数可以使用不同的数据类型 d. 实际参数会将变量内容复制后,把副本传给形式参数 题目2 正确 满分1.00 标记题目 题干 关于多态,下列说法错误的是() 选择一项: a. 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本, 而运行时多态在编译时就能确定要调用成员方法的哪个版本 b. 多态和重载是两个完全不同的概念,前者是通过定义虚方法和重写 虚方法来实现,后者是通过对同一个函数名编写多个不同的实现代码来 完成。 c. 多态可以分为编译时多态和运行时多态。前者的特点是在编译时就 能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要 调用成员方法的哪个版本 d. 多态实际上就是重载,它们本质上是一样的 题目3 正确 满分1.00

标记题目 题干 关于静态成员,下列说法正确的是() 选择一项: a. 在类实例化后静态成员也被实例化,因此不同的对象有不同的静态 成员 b. 在类定义时静态成员属于类,在类实例化后静态成员属于对象 c. 同一个类中的静态成员,类实例化后,在不同的对象中形成不同的 静态成员 d. 在类实例化后,同类型的对象都共享类的静态成员,静态成员只有 一个版本 题目4 正确 满分1.00 标记题目 题干 假设有类C继承类B,类B继承类A,则下面说法正确的是() 选择一项: a. C仅继承类A的所有成员,不继承类B的成员 b. 类C仅继承类B的所有成员,不继承类A的成员 c. 类C不仅继承类B的所有成员,也继承类A的所有成员 d. 类C继承类A的部分成员,同时继承类B的所有成员 题目5 正确 满分1.00 标记题目 题干 下列对于对象的描述,哪一个正确?() 选择一项: a. 使用private将对象实例化

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

C语言程序设计 第四次作业

实验报告 课程名称C语言程序设计 实验项目顺序结构程序设计 实验仪器___________________________ 系别__________自动化系__________ 专业_____自动化__________ 班级/学号自动化1907/2019010737____学生姓名________钱仪嘉_____________ 实验日期_________2019.11.28________ 成绩_______________________ 指导教师__________尤建清__________

一、实验目的 (1)掌握算术表达式、赋值表达式、关系表达式和逻辑表达式的计算。 (2)掌握常见数学库函数的使用。 (3)掌握C语言中基本输入、输出函数的使用方法。 (4)掌握选择结构程序设计的一般方法 二、实验内容 1.第一题 实验题目:编写自定义函数,函数的功能是:将华氏温度F转化为摄氏温度C。公式为:C=5/9(F-32).编写程序,输出一个华氏温度与摄氏温度对照表,其中华氏温度值为32~100,步长为4。 #include double convent(int f); int main() {int f; float c; printf("华氏温度\t摄氏温度\n"); for(f=32;f<=100;f=f+4) { c=convent(f); printf("\t%d\t%10.2f\n",f,c); } } double convent(int f) { double c; c=5.0/9*(f-32); return c; }

实验题目:编写自定义函数,该函数有一个整型参数,函数的功能是当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时返回值为1。编写程序从键盘输入任意10整数,统计其中奇数和偶数分别多少个。判断奇偶性使用自定义函数实现。 #include int isEven(int n); int main() { int i,n,odd=0,even=0; printf("请输入10个整数:"); for(i=1;i<=10;i++) { scanf("%d",&n); if(isEven(i)==1)odd++; else even++; } printf("其中有%d个偶数\n",even); printf("其中有%d个奇数\n",odd) ; return 0; } int isEven(int n) { if(n%2==0) return 0; else return 1; }

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 hcf(u,v) int u,v; { int a,b,t,r; if(u>v) { t=u;u=v;v=t; } a=u;b=v; while((r=b%a)!=0) { b=a;a=r; } return(a); } lcd(u,v,h) int u,v,h; { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.d=%dn",l); return(u*v/h); } #include

void main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.D=%dn",l); } 7.2 求方程根 float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b; { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(a,b) float a,b; { x1=x2=(-b)/(2*a);} smaller_than_zero(a,b) float a,b; { p=-b/(2*a);

q=sqrt(disc)/(2*a); } main() { float a,b,c; printf("n输入方程的系数a,b,c:n"); scanf("%f,%f,%f",&a,&b,&c); printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("方程的解是:n"); if(disc>0) { great_than_zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else if(disc==0) { zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else { small_than_zero(a,b,c); printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

C语言作业5

28 组成最大数 成绩: 10 / 折扣: 0.8 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。 输入: 自然数 n 输出: 各位数字组成的最大数 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1. 1593? 以文本方式显示 1. 9531? 1秒 64M #include #include int main(){ char a[10000]; int x[10]={0}; scanf("%s",a); int n=strlen(a); for(int i=0;i=0;i--) for(int j=0;j

输入: 第一行龙头数n , 勇士人数m (1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来m 行,每行包含一个整数,表示勇士的身高l 输出: 如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“ bit is doomed! ” 测试输入期待的输出 时间限制内存限制额外进程 测试用例 1 以文本方式显示 1. 2 3? 2.5? 3.4? 4.7? 5.8? 6.4? 以文本方式显示 1.11? 1秒64M 0 测试用例 2 以文本方式显示 1. 2 1? 2.5? 3.5? 4.10? 以文本方式显示 1.bit is doomed!? 1秒64M 0 #include int main() { int dragon,hero; scanf("%d%d",&dragon,&hero); int dragonhead[100]={0}; int herohight[100]={0}; //input for(int i=0;i

C语言2016下半年第二次作业

第2次作业 一、单项选择题 1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a; 则值为5的表达式是( B )。 A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为( B ) fun( ( a, b, c, d ), ( m, n ), (f, g ) ); A)1 B)3 C)4 D)2 3.函数形式正确的是( D )。 A) double myfun( int x, int y) B) int myfun( int x, y) { m=x+y; return m; } { int m; } C) int myfun( int x, int y) D) int myfun( int x, int y) { int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; } 4.不正确的字符串赋值或赋初值方式是( C )。 A)char *str; str=”string”; B)char str[7]={…s?, …t?, …r?, …i?, …n?, …g?} C) char str[10]; str=”string”; D)char str[]=”string”; str2[]=”12345678”; strcpy(str2, str1); 5.以下程序的输出结果是( B )。 #include main() { char str[]="SSSWLIA", c; int k; for (k=2; (c=str[k])!='\0'; k++) { switch (c) { case 'I': ++k; break; case 'L': continue; default: putchar(c); continue; } } putchar('*'); } A)SSW* B)SW* C)SW*A D)SW 6.以下程序的输出结果是( B )。 #include int w=3; fun( int k) { if ( k==0) return w; return ( fun(k -1 )*k); }

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

C语言作业2

期待的输出时间限制内存限制#include main() { int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z; scanf("%1d",&a); scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f); scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k); x=a+c+e+g+i+k; y=b+q+f+h+j;

n=m-1; z=n%10; p=9-z; printf("%d\n",p); } H2:数制转换(选作) 成绩: 5 / 折扣: 0.8 我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12 和 5 ,在十进制下它们是不等的,但若12 使用 3 进制而5 使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12 和5 就可以是相等的。 程序的输入是两个数字M 和N( 其十进制的值不超过1000000000) ,它们的进制在2~36 之间。对于十以下的数字,用0~9 表示,而十以上的数字,则使用大写的A~Z 表示。 求出分别在2~36 哪种进制下M 和N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。 测试输入期待的输出 制 #include"string.h" #include"stdio.h"

{ char a[N],b[N],d[N],e[N],d0[N]; int i,j,o,r,g,h,w,t,l,k,max1,max2; double p[N],q[N]={0},u[N],v[N]={0},c[N],f[N],m,n; for(i=0;i='\x30') c[i]=b[i]-'0'; if(b[i]<='\x5A'&&b[i]>='\x41') c[i]=b[i]-'7'; } for(i=0;i='\x30') f[i]=e[i]-'0'; if(e[i]<='\x5A'&&e[i]>='\x41') f[i]=e[i]-'7'; } max1=c[0]; for(i=1;i

5~6次C语言上机作业

实验5 函数(1) 【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。调试运行程序,观察出现了什么错误,提出两种修改方案。 【实验题5-2】下程序的功能:输出3~1000之的间的素数。请选择合适的内容填入程序的空白处,并调试运行程序。

【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。要求计算n^3用函数实现。 【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数

实现。 注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n”on integer constant. 调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。Ifun=fun(int n) × 【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。要求如下: 1)编写一个函数计算n!; 2)编写主函数,输入n和m, 调用第1)项中的函数完成计算; 3)输出并计算C58、C712的结果。

【实验题6-1】以下程序功能:用已知三角形三边,求三角形面积。但程序有错,请上机调试并改正错误。

【实验题6-2】以下程序运行的结果应该是a=14, b=15,temp=0。在程序空白处填写适当的编译预处理命令。 【实验题6-3】用for循环输出20个0~99之间的随机数。要求没输出五个随机数换一行。 【实验题6-4】从键盘输入一个字母,如果是大写字母就转换成小写字母输出;如果是小写字母就转换成大写字母输出。要求用库函数实现。

C语言第七章复习题(不含答案)

1.下列对C语言字符数组的描述中错误的是( )。 (A)字符数组可以存放字符串 (B)字符数组中的字符串可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符串:Hello!赋给数组b的语句是( )。 (A)char b[10]={'H','e','l','l','o','!'}; (B)char b[10];b="Hello!"; (C)char b[10];strcpy(b,"Hello!"); (D)char b[10]="Hello!"; 3.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( )。 (A)a[g-c] (B)a[4] (C)a['d'-'c'] (D)a['d'-c] 4.以下程序的输出结果是( ) (A) 20 (B) 21 (C) 22 (D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); 5.以下程序的输出结果是( )。 (A) 1,5,9 (B) 1,4,7 (C) 3,5,7 (D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); 6.下面程序运行的结果是( )。 (A) 2ba56 (B) 6521 (C) 6 (D) 62 main() { char ch[7]={“65ab21“}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 7.合法的数组定义是( )。 (A)int a[]="string"; (B)int a[5]={0,1,2,3,4,5}; (C)char s[6]="string"; (D)char a[]={0,1,2,3,4,5}; 8.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 (A)将串str1复制到串str2中后再连接到串str3之后 (B)将串str1连接到串str2之后再复制到串str3之后 (C)将串str2复制到串str1中后再将串str3连接到串str1之后

C语言第5次作业 简单程序设计

单选题: 1、以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A.12 B.34 C.1234 D.提示出错、无结果 学生答案: C 参考答案: C 2、若有说明语句:int a,b,c,*d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A.scanf("%d%d%d",&a,&b,*d); B.scanf("%d%d%d",&a,&b,&d); C.scanf("%d%d%d",a,b,d); D.scanf("%d%d%d",a,b,*d); 学生答案: B 参考答案: A 3、以下合法的赋值语句是 A.x=y=100 B.d--; C.x+y; D.c=int(a+b); 学生答案: D 参考答案: B 4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A.10,3 B.9,3 C.9,2 D.10,2 学生答案: D 参考答案: D 5、以下程序的输出结果是 main()

{ int a=3; printf("%d\n",(a+=a-=a*a));} } A.-6 B.12 C.0 D.-12 学生答案: D 参考答案: D 6、以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s)); A.9 B.12 C.13 D.14 学生答案: A 参考答案: A 7、下列程序执行后的输出结果是 main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); } A.G B.H C.I D.J 学生答案: A 参考答案: A 8、下列程序执行后的输出结果是 main() { char x=0xFFFF; printf("%d \n",x--); } A.-32767 B.FFFE C.-108 D.-32768

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

相关文档
最新文档