1、平时作业共 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 进制 037 31 0xlf 047 39 0x27 077 63 0x3f 064 52 0x34 100 64 0x40 144 100 0x64 3设有下面的变量定义: int d; float s; double v; char ch; 请用格式化输入库函数 scan
2、f 接收从键盘输入的数据,将它们分别存贮到这些变量中。 scanf(“%d %f %lf %c“, 二基本运算和表达式 设有下面的变量定义: 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=
3、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 编码
4、值,计算对应大写字母的 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、
5、 j、 k 中是否有且仅有一个为 0。 ( 1) if(n+jk 请指出语句 for(s=n=j=0;j0) flag=1; if (di= 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=“%s“n“,s); printf(“t8=“%s“n“,t); printf(“ch=%cn“,ch); printf(
6、“nExchange: str256=“%s“n“,str); return 0; 平时作业 3 1按要求定义如下的函数 函数原型: 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 int
7、 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); 输出结果为: 15 4设有变量定义如下: int d64,*p,*q,j,k; 请指出下面的语句序列把数组 d 中的哪些成员的值置为 0? j=16; k=5; for(p=d+j-k+1,q=d+j+k-1;p表示换行): File name: f.txt (使用者指出,要计算文本文件 f.txt 的行数) Lines: 112 (程序计算并输出该文件
8、的行数) #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); wh
9、ile(!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+); while(!feof(fp) if(fputc(fgetc(fp),fp1)=n) fprintf(fp1,“%d “,i+); printf(“cap=%d n“,cap+1); fclose(fp); fclose(fp1); 3假定有如下的类型命名: typedef double *PD; typedef PD PDS32; 并定义下面的变量: PD s,t; PDS v; 请指出变量 s、 t、 v 的类型。 s、 t 是 double 类型的指针变量, v 是 double 类型的指针变量数组,数组大小为 32;