




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
每题空一行,每次作业空五行要抄题目,不得缺题第一次作业1.什么是程序?什么是程序设计?解:程序就是一组计算机能识别和执行的指令。程序设计是给出解决特定问题程序的过程。2.为什么需要计算机语言?高级语言的特点?解:人和计算机交流信息,要解决语言问题,需要创造一种计算机和人都能识别的语言,这就是计算机语言。高级语言的特点:语言简洁、紧凑,使用方便、灵活;运算符、数据类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作;程序可移植性好。生成目标代码质量高,程序执行效率高。 5.请参照本章例题,编写一个C程序,输出以下信息:解:#includeint main()printf(“*nn”); printf(“ Very Good!nn”);printf(“*nn”);return 0;6.编写一个C程序,输入a,b,c三个值,输出其中最大值。解:#includeint main() int a,b,c,max; printf(please input a,b,c:n); scanf(%d,%d,%d,&a,&b,&c); max=a; if(maxb) max=b; if(maxc) max=c; printf(The largest number is %dn,max); return 0;第二次作业1.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)n,r为年增长率,n为年数,p为与现在相比的倍数。#include#includeint main()float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%fn,p);return 0;3. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。#include#includeint main()float d=300000,p=6000,r=0.01,m;m=log10(p/(p-d*r)/log10(1+r);printf(m=%6.1fn,m);return 0;4.分析下面的程序#includeint main()char c1,c2;c1=97;c2=98;printf(c1=%c,c2=%cn,c1,c2);printf(c1=%d,c2=%dn,c1,c2);return 0;(1)运行时会输出什么信息?为什么? c1=a,c2=b c1=97,c2=98 第1行是将c1,c2按%c的格式输出,97是字符a的ASCII代码,98是字符b的ASCII代码。第2行是将c1,c2按%d的格式输出,所以输出两个十进制整数。(2)如果将程序第4,5行改为c1=197;c2=198;运行时会输出什么信息?为什么? 由于VC+字符型数据是作为signed char类型处理的,它存字符的有效范围为0-127,超过此范围的处理方法,不同的系统得到的结果不同,因而用%c格式输出时,结果是不可预料的。用%d格式输出时,输出c1=-59,c2=-58。这是按补码形式输出的。(3)如果将程序第3行改为int c1,c2;运行时会输出什么信息?为什么? 如果给c1,c2赋的值是97和98,则输出结果与(1)相同。如果给c1,c2赋的值是197和198,则用%c输出时,是不可预料的字符,用%d输出时,输出整数197和198,因为它们在int类型的有效范围内。5.用下面的sacnf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。问在键盘上如何输入?#includeint main()int a,b;float x,y;char c1,c2;scanf(a=%db=%d,&a,&b);scanf(%f%e,&a,&y);scanf(%c%c,&c1,&c2);return 0;a=3b=78.5 71.82Aa6.请编程序将”China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。#includeint main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4; c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(password is %c%c%c%c%cn,c1,c2,c3,c4,c5);return 0;第三次作业3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。(1)a+bc&b=c 0(2)a|b+c&b-c 1(3)!(ab)&!c|1 1(4)!(x=a)&(y=b)&0 0(5)!(a+b)+c-1&b+c/2 14.有3个整数a,b,c,由键盘输入,输出其中最大的数。#includeint main()int a,b,c;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);if(ab)if(bc)printf(max=%dn,c);elseprintf(max=%dn,b);else if(ac)printf(max=%dn,c);elseprintf(max=%dn,a);return 0;6.有一个函数:写程序,输入x的值,输出y相应的值。#includeint main()int x,y;printf(输入x:);scanf(%d,&x);if(x1)y=x;printf(x=%3d, y=x=%dn,x,y);else if(x10)y=2*x-1;printf(x=%d, y=2*x-1=%dn,x,y);elsey=3*x-11;printf(x=%d, y=3*x-11=%dn,x,y);return 0;8.给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。#includeint main()float score;char grade;printf(请输入学生成绩:);scanf(%f,&score);while(score100|score0)printf(n输入有误,请重输);scanf(%f,&score);switch(int)(score/10)case 10: case 9:grade=A;break; case 8:grade=B;break; case 7:grade=C;break; case 6:grade=D;break; case 5: case 4: case 3: case 2: case 1: case 0:grade=E;printf(成绩是%5.1f,相应的等级是%cn,score,grade);return 0;9.给一个不多于5位的正整数,要求:求出它是几位数分别输出每一位数字按逆序输出各位数字,例如原数为321,应输出123。#include#includeint main()int num,indiv,ten,hundred,thousand,ten_thousand,place;printf(请输入一个整数(0-99999):);scanf(%d,&num);if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;else place=1;printf(位数:%dn,place);printf(每位数字为:); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place)case 5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv); printf(n反序数字为:);printf(%d%d%d%d%dn,indiv,ten,hundred,thousand,ten_thousand);break; case 4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv); printf(n反序数字为:);printf(%d%d%d%dn,indiv,ten,hundred,thousand);break; case 3:printf(%d,%d,%d,hundred,ten,indiv); printf(n反序数字为:);printf(%d%d%dn,indiv,ten,hundred);break; case 2:printf(%d,%d,ten,indiv); printf(n反序数字为:);printf(%d%dn,indiv,ten);break; case 1:printf(%d,indiv); printf(n反序数字为:);printf(%dn,indiv);break;return 0;第四次作业4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#includeint main()char c;int letters=0,space=0,digit=0,other=0;printf(请输入一行字符:n);while(c=getchar()!=n)if(c=a&c=A&c=0&c=9)digit+;elseother+;printf(字母数:%dn空格数:%dn数字数:%dn其他字符数:%dn,letters,space,digit,other);return 0;5.求Sn=a+aa之值,其中a是一个数字,n表示a的位数。#includeint main()int a,n,i=1,sn=0,tn=0;printf(a,n=:);scanf(%d,%d,&a,&n);while(i=n)tn=tn+a;sn=sn+tn;a=a*10;+i;printf(a+aa+aaa+.=%dn,sn);return 0;6.求1!+2!+20!。#includeint main()double s=0,t=1;int n;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+.+20!=%22.15en,s);return 0;8.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。#includeint main()int i,j,k,n;printf(parcissus numbers are);for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(%d,n);printf(n);return 0;9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子。#includeint main()int m,s,i;for(m=2;m1000;m+)s=0;for(i=1;im;i+)if(m%i)=0) s=s+i;if(s=m)printf(%d,its factors are ,m);for(i=1;im;i+)if(m%i=0) printf(%d ,i);printf(n);return 0;16.输出以下图案。#includeint main()int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf( );for(k=0;k=4-2*i;k+)printf(*);printf(n);return 0;第五次作业1.用筛选法求100之内的素数。#include#includeint main()int i,j,n,a101;for(i=1;i=100;i+)ai=i;a1=0;for(i=2;isqrt(100);i+)for(j=i+1;j=100;j+)if(ai!=0&aj!=0)if(aj%ai=0)aj=0;printf(n);for(i=2,n=0;i=100;i+)if(ai!=0)printf(%5d,ai);n+;if(n=10)printf(n);n=0;printf(n);return 0;2.用选择法对10个整数排序。#includeint main()int i,j,min,temp,a11;printf(enter data:n);for(i=1;i=10;i+)printf(a%d=,i);scanf(%d,&ai);printf(n);printf(The orginal numbers:n);for(i=1;i=10;i+)printf(%5d,ai);printf(n);for(i=1;i=9;i+)min=i;for(j=i+1;jaj) min=j;temp=ai;ai=amin;amin=temp;printf(nThe sorted numbers:n);for(i=1;i=10;i+)printf(%5d,ai);printf(n);return 0;3.求一个33的整形矩阵对角线之和。#includeint main()int a33,sum=0;int i,j;printf(enter data:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%3d,&aij);for(i=0;i3;i+)sum=sum+aii;printf(sum=%6dn,sum);return 0;4.有一个排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。#includeint main()int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf(array a:n);for(i=0;iend)a10=number;elsefor(i=0;inumber)temp1=ai;ai=number;for(j=i+1;j11;j+)temp2=aj;aj=temp1;temp1=temp2;break;printf(Now array a:n); for(i=0;i11;i+)printf(%5d,ai);printf(n);return 0;5.将一个数组中的值按逆序重新存放。#include#define N 5int main()int aN,i,temp;printf(enter array a:n);for(i=0;iN;i+)scanf(%d,&ai);printf(array a:n); for(i=0;iN;i+)printf(%4d,ai);for(i=0;iN/2;i+)temp=ai;ai=aN-i-1; aN-i-1=temp;printf(nNow array a:n);for(i=0;iN;i+)printf(%4d,ai);printf(n);return 0;10.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。#includeint main()int i,j,upp,low,dig,spa,oth;char text380;upp=low=dig=spa=oth=0;for(i=0;i3;i+)printf(please input line %d:n,i+1);gets(texti);for(j=0;j=A&textij=a&textij=0&textij=9)dig+;else if(textij= )spa+;elseoth+;printf(nupper case:%dn,upp); printf(lower case:%dn,low);printf(digit :%dn,dig);printf(space :%dn,spa);printf(other :%dn,oth);return 0;13.编一程序,将两个字符串连接起来,不要用strcat函数。#includeint main()char s180,s240;int i=0,j=0;printf(input string1:);scanf(%s,s1); printf(input string2:);scanf(%s,s2);while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(nThe new string is:%sn,s1);return 0;第六次作业3.写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息。#includeint main()int prime(int);int n;printf(input an integer:);scanf(%d,&n);if(prime(n)printf(%d is a prime.n,n);elseprintf(%d is not a prime.n,n);return 0;int prime(int n)int flag=1,i;for(i=2;in/2&flag=1;i+)if(n%i=0)flag=0;return(flag);4.写一个函数,使给定的一个33的二维整型数组转置,即行列互换。#include#define N 3int arrayNN;int main()void convert(int array3);int i,j;printf(input array:n);for(i=0;iN;i+)for(j=0;jN;j+)scanf(%d,&arrayij);printf(noriginal array:n);for(i=0;iN;i+)for(j=0;jN;j+)printf(%5d,arrayij);printf(n);convert(array);printf(convert array:n);for(i=0;iN;i+)for(j=0;jN;j+)printf(%5d,arrayij);printf(n);return 0;void convert(int array3)int i,j,t;for(i=0;iN;i+)for(j=i+1;jN;j+)t=arrayij; arrayij=arrayji;arrayji=t;5.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。#include#includeint main()void inverse(char str);char str100;printf(input string:);scanf(%s,str);inverse(str);printf(inverse string:%sn,str);return 0;void inverse(char str)char t;int i,j;for(i=0,j=strlen(str);i(strlen(str)/2);i+,j-)t=stri;stri=strj-1;strj-1=t;6.写一个函数,将两个字符串连接。#includeint main()void concatenate(char string1,char string2,char string);char s1100,s2100,s100;printf(input string1:);scanf(%s,s1);printf(input string2:);scanf(%s,s2);concatenate(s1,s2,s);printf(nThe new string is %sn,s);return 0;void concatenate(char string1,char string2,char string)int i,j;for(i=0;string1i!=0;i+)stringi=string1i;for(j=0;string2j!=0;j+)stringi+j=string2j;stringi+j=0;9.编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。#includeint letter,digit,space,others;int main()void count(char str);char text80;printf(input string:n);gets(text);printf(string:);puts(text);letter=0;digit=0;space=0;others=0;count(text);printf(nletter:%dndigit:%dnspace:%dnothers:%dn,letter,digit,space,others);return 0;void count(char str)int i;for(i=0;stri!=0;i+)if(stri=a&stri=A&stri=0&stri=9)digit+;else if(stri=32)space+;elseothers+;第七次作业1.输入3个整数,按由小到大的顺序输出。#includeint main()void swap(int *p1,int *p2);int n1,n2,n3;int *p1,*p2,*p3;printf(input three integer n1,n2,n3:);scanf(%d,%d,%d,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1n2) swap(p1,p2);if(n1n3) swap(p1,p3);if(n2n3) swap(p2,p3);printf(Now,the order is:%d,%d,%dn,n1,n2,n3);return 0;void swap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;2.输入3个字符串,按由小到大的顺序输出。#include#includeint main()void swap(char *p1,char *p2);char str120,str231,str320;printf(input three line:n);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)0) swap(str1,str2);if(strcmp(str1,str3)0) swap(str1,str3);if(strcmp(str2,str3)0) swap(str2,str3);printf(Now,the order is:n);printf(%sn%sn%sn,str1,str2,str3);return 0;void swap(char *p1,char *p2)char p20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;进行处理;输出10个数。#includeint main()void input(int *);void max_min_value(int *);void output(int *);int number10;input(number);max_min_value(number);output(number);return 0;void input(int *number)int i;printf(input 10 numbers:);for(i=0;i10;i+)scanf(%d,&numberi);void max_min_value(int *number)int *max,*min,*p,temp;max=min=number;for(p=number+1;p*max) max=p;else if(*p*min) min=p;temp=number0;number0=*min;*min=temp;if(max=number) max=min;temp=number9;number9=*max;*max=temp;void output(int *number)int *p;printf(Now,they are: );for(p=number;pnumber+10;p+)printf(%d ,*p);printf(n);第八次作业6.写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。#includeint main()int length(char *p);int len;char str20;printf(input string: );scanf(%s,str);len=length(str);printf(The length of string is %d.n,len);return 0;int length(char *p)int n;n=0;while(*p!=0)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药销售人员法规与职业道德培训
- 市政排水沟施工详细方案
- 新手销售人员客户管理培训手册
- 心理康复报告与评估标准的制定及实施研究
- 宴会预订规程
- 农村客运车辆使用规程
- 慢性高血压患者护理方案
- 服装品质检验指南
- 考研中的挑战与突破
- 混凝土搅拌站安全风险管理报告
- 用Excel编写公式模板计算医学决定水平处的偏倚
- ISO 14067-2018:温室气体 产品碳足迹 量化要求和指南(中文版)
- 2024年度吉林省高校教师资格证之高等教育心理学考试题库
- 教育综合统计调查制度培训课件2023年修订
- 智能城市垃圾分类处理系统合同
- 乙酰丙酸论文
- 人教版 九年级历史上册 第一、二单元 单元测试卷(2024年秋)
- 偏瘫康复护理个案病例分析
- NBT 10643-2021 风电场用静止无功发生器技术要求与试验方法-PDF解密
- 铁路防雷及接地工程技术规范(TB 10180-2016)
- 胸痛的鉴别诊断和诊断流程课件
评论
0/150
提交评论