C语言平时作业.doc_第1页
C语言平时作业.doc_第2页
C语言平时作业.doc_第3页
C语言平时作业.doc_第4页
C语言平时作业.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

平时作业共4次平时作业1一算术类型的数据1请指出下列各常量的类型(1) 0x12L (2) A (3) 12.5F (4) 0 (5) 23.6(1)16进制长整(2)字符型 (3)float (4) 整型 (5)实型2在下表的每行内写出等值(但为不同数制)的常量。8进制10进制16进制037310xlf047390x27077630x3f064520x34100640x401441000x643设有下面的变量定义: int d; float s; double v; char ch; 请用格式化输入库函数scanf接收从键盘输入的数据,将它们分别存贮到这些变量中。scanf(%d %f %lf %c, &d, &s, &v, &ch);二基本运算和表达式 设有下面的变量定义: int a=5,b=5,c=9,k,j,n,g1,g2; double s,t; char ch; unsigned u=-1;1请指出下面的表达式计算完成后产生的结果值及其类型,若表达式中包含具有副作用的基本运算,则请指出哪些变量的值发生了变化(写出变量的新值)。(1) k=2*a+(2) n=2*+b(3) s=n=t=c/4.0(4) s=c*=1/u(1) int, k=10,a=6; (2) int, n=12, b=6; (3) s类型double,值2.0,n=2,int ,t类型double,2.25 (4)s=0.0 double, c=0 int。2按要求写出下列表达式:(1)编号为1到32000的所有产品,按编号的次序装箱,每箱装8件产品,即,编号从1起到编号为8的产品装入第1箱,编号从9起到编号为16的产品装入第2箱,等等。写二个表达式,分别计算编号为n的产品对应的箱号g1,以及该产品在该箱内的序号g2。例如,编号为27的产品,其箱号为4,箱内序号为3。(2)变量ch中存贮了一个小写字母的ASCII编码值,计算对应大写字母的ASCII编码值。(3)变量n中存贮了一个非0数据,计算该数据的符号(数据为正结果为1,否则为-1)。1. g1= n/8; g2=n%8; 2. ch-32 3.n0 ? 1 : -1;3按要求写出下列判断情况的表达式:(1)变量n、j、k中存贮了三条线段的长度,判断这三条线段是否能构成一个三角形。(2)判断变量n中存贮的数据是否是整数区间-100,100内的一个奇数。(3)判断变量ch中是否存贮了字母(不论大小写)的ASCII编码值。(4)判断变量n、j的最大值是否等于100。(5)判断变量n、j、k中是否有且仅有一个为0。(1) if(n+jk & n+kj & k+jn) (2) if(n=-100 & n=A&ch=a&ch100 | j100 ) (5)if( (n=0 & j*k!=0) | (j=0 & n*k!=0) | (k=0 & n*j!=0) )平时作业21设有变量定义如下: int n,j,k,s;请指出语句 for(s=n=j=0;j6;+j) for(k=j-2;kj+2;+k) if(k0)break; s+=k; n+; 执行完成后,变量s和n的值分别是什么?s=48 n=162设有变量定义如下: int d64,j,flag;写一个程序段,判断数组d中的所有64个数据是否全部是正数,若是,置flag为1,否则置flag为0。void main() int d64; int i=0; int flag=0; for(i=0;i64;i+) scanf(%d,di); for(i=0;i0) flag=1; if (di0 | di=0) flag=0; break; printf(%dn,flag); 3写一个程序完成下面的处理: 从键盘接收使用者输入的至多1024个整数(当使用者输入0时,表示输入结束,0不作为输入数据),计算并按例示的格式输出:(1)这批数据的算术平均值(输出3位小数);(2)每个输入数据的原值和误差(一个数据的误差=该数据的值 - 平均值, 输出3位小数)。例如,使用者输入的3个数据是15、17、18时,程序的输出应为: Average=16.333 Data Error 1 15 -1.333 2 17 0.667 3 18 1.667#include stdio.h void main() int i, j; int a1024; int sum=0; float avg; for(j=0;j1024;j+) scanf(%d,&aj); if(aj=0) break; sum+=aj; printf(sum=%fn,sum); avg=float(sum)/j; printf(avg=%.3fn,avg); float cc; for(i=0;ij;i+) cc=ai-avg; printf(%dt%dt%fn,i+1,ai,cc); 4设有变量定义如下: char s64,t8,str256,ch; int j,k,n;且假定数组s和t中各已存贮了一个字符串,变量ch中存贮了一个字符的ASCII编码值。写一段程序,把字符串s中的所有字符ch置换成字符串t, 置换后产生的结果字符串存贮在数组str中。 例如,若字符数组s中的字符串是“k18:k72”, 字符数组t中的字符串是“No.”, 变量ch中存贮了小写字母k的ASCII编码值,则该程序段产生的结果字符串(存贮在数组str中)应为“No.18:No.72”。#include stdio.h #include string.h #define ERROR -1; int main() char s64,t8,str256,ch; int j,k,n; int nStr=0; /+Initialize the string variable strcpy(s,k18:k72); strcpy(t,No.); ch=k; /-initialization end j=strlen(s); k=strlen(t); for (n=0;n= 256) printf(Overstep the Max length of the str array!); return ERROR; if (sn = ch) memcpy(str+nStr,t,k); nStr+=k; else strnStr=sn; nStr+; strnStr=0x00; printf(s64=%sn,s); printf(t8=%sn,t); printf(ch=%cn,ch); printf(nExchange: str256=%sn,str); return 0; 平时作业31按要求定义如下的函数函数原型: int Even(int d,int n, int k1,int k2)功能说明: 函数Even计算数组d的所有n个数据中,值在闭区间k1,k2 内的偶数数据个数。参数说明: d 数组的起始地址。 n 数组中数据的个数。 k1 值区间的下界。 k2 值区间的上界。返回值: 值在区间k1,k2内的偶数数据的个数。int Even(int d,int n, int k1,int k2) int i,j=0; for(i=0;ik1 & dik2 & di%2=0) +j; return j; void main() int a6=8,9,12,16,11,5; int s1,s2,s3; s1=6,s2=15; s3=Even(a,6,s1,s2); printf(%dn,s3); 2设有直接递归函数print2的定义如下:int print2(int n) int k,c; if(n=0)return(0); k=print2(n/2); c=n%2; printf(%d,c); return(k+c);请指出语句 k=print2(39); 产生的输出以及函数调用完成后,变量k的值。结果为:1 0 0 1 1 1 4 其中k=3;3程序P运行时,使用者在键盘上的输入如下面带下划线的部分所示(表示换行):Input string: Shanghai2010(A)请指出该程序的输出结果。 程序P #include main() char s64,t64, *p,*q; int k; printf(Input string: ); scanf(%s,s); for(k=0,p=s,q=t;*p!=0;+p)if(*p9)*q+=*p; else +k; *q=0; printf(“%s%dn”,t,k);输出结果为:154设有变量定义如下: int d64,*p,*q,j,k; 请指出下面的语句序列把数组d中的哪些成员的值置为0? j=16; k=5; for(p=d+j-k+1,q=d+j+k-1;p=q;)*p+=*q-=0;把数组d中的d12,d13.d19,d20的值全置为0 #include stdio.h main() int d64,*p,*q,j,k; int i=0; for( i=0;i64;i+) di=i+1; j=16;k=5; for(p=d+j-k+1,q=d+j+k-1;p=q;) *p+=*q-=0; for(i=0;i64;i+) if (di=0) printf(D%dt,i); 平时作业41设有类型说明和变量定义如下: struct T long num; char name16; int score6; float aver; ; struct T d50;假定结构数组d中已存贮了50个学生的所有信息(学号num、姓名name、6门课程的成绩score和平均成绩aver),请写一段程序,寻找平均成绩(aver)最高的结构变量,并输出该结构变量中存贮的学号num和姓名 i,max; max=0; for(i=1;i50;i+) if(maxdi.aver); max=i; printf(num:%d name:%s,dmax.num,);2请写一个程序,计算并输出使用者指定的一个文本文件中的行数。要求该程序运行时的情况如下(带下划线的部分是使用者的输入,表示换行): File name: f.txt (使用者指出,要计算文本文件f.txt的行数) Lines: 112 (程序计算并输出该文件的行数)#include main() FILE *fp,*fp1; int cap=0, i=1; char mid,filename10; printf(Input the filename like *.txt!n); scanf(%s,filename); if(fp=fopen(filename,r)=NULL) printf(Can not open the file!n); exit (0); if(fp1=fopen(stdout.txt,w+)=NULL) printf(Can not open the file!n); exit (0); while(!feof(fp) mid=fgetc(fp); if(mid=n) cap+; fclose(fp); if(fp=fopen(filename,r)=NULL) printf(Can not open the file!n); exit (0); fprintf(fp1,%d ,i+);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论