char c[4]; }; main( )
{union data u;
scanf(“%d,%d”,&u.i[0],&u.i[1]);
printf(“i[0]=%d,i[1]=%d\\na=%f\\nb=%ld\\nc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c\\n”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]); }
输入两个整数10000、20000给u.i[0]和u.i[1]。 分析运行结果。 然后将scanf语句改为: scanf(“%ld”,&u.b);
输入60000给b。分析运行结果。
19
实验十一 位运算(2学时) 实验性质:验证性实验 一、实验目的
1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 二、实验内容
1、运行程序,并分析程序实现的功能。
main( )
{ unsigned int a;
unsigned int getbits(unsigned); printf(?\\ninput an octal number:?); scanf(?%o?,&a);
printf(?result:%o\\n?getbits(a)); }
unsigned int getbits(unsigned value) { unsigned int z; z=value&0100000; if(z==0100000) z=~value+1; else z=value; return(z); }
20
实验十二 文件(2学时) 实验性质:验证性实验 一、实验目的
1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。 3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容
1、下面的程序实现的功能是:从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件?test?中保存。输入的字符以?!?结束。 请运行程序,并分析结果,验证程序是否正确。 #include
if(!fp=fopen(?test?,?w?))==null) { prinf(?can not open the file\\n?); exit(0); }
printf(?input a string:\\n?); gets(str); while(str[i]!=‘!‘)
{ if(str[i]>=‘a‘&&str[i]<=‘z’) str[i]=str[i]-32; fputc(str[i],fp); i++; }
fclose(fp);
fp=fopen(?test?,?r?);
21
fgets(str,strlen(str)+1,fp); printf(?%s\\n?,str); fclose(fp); }
22